语言_课程设计1五篇范文

时间:2019-05-12 17:57:21下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《语言_课程设计1》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《语言_课程设计1》。

第一篇:语言_课程设计1

汇编语言课程实验报告

实验名称

课程设计1 实验环境

硬件平台:Intel Core i5-3210M 操作系统:DOSBox 0.74 in Windows 8.1 软件工具:Turbo C 2.0, Debug, MASM 实验内容

将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。

实验步骤

1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏幕的程序,其汇编代码如下:;名称:show_str;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址;返回:显示在屏幕上 show_str:

push ax

push cx

push dx

push es

push si

push di

mov ax,0b800h

mov es,ax

mov al,160

mul dh

add dl,dl

mov dh,0

add ax,dx

mov di,ax

mov ah,cl

show_str_x:

mov cl,ds:[si]

mov ch,0

jcxz show_str_f

mov al,cl

mov es:[di],ax

inc si

inc di

inc di

jmp show_str_x

show_str_f:

pop di

pop si

pop es

pop dx

pop cx

pop ax

ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出来。第二个程序汇编代码如下:;名称:dtoc_word;功能:将一个word型数转化为字符串;参数:(ax)=word型的数据,ds:si指向字符串的首地址;返回:ds:[si]放此字符串,以0结尾 dtoc_word:

push ax

push bx

push cx

push dx

push si

mov bx,0

dtoc_word_x:

mov dx,0

mov cx,10

div cx

mov cx,ax

add dx,'0'

push dx

inc bx

jcxz dtoc_word_f

jmp dtoc_word_x

dtoc_word_f:

mov cx,bx

dtoc_word_x1:

pop ds:[si]

inc si

loop dtoc_word_x1

pop si

pop dx

pop cx

pop bx

pop ax

ret 3.除了以上两个程序,我们还需要考虑一个问题,即有些数据已经大于65535,应该编写一个新的程序,将一个double word型数转化为字符串。汇编代码如下:;名称:dtoc_dword;功能:将一个double word型数转化为字符串;参数:(dx)=数的高八位,(ax)=数的低八位;返回:ds:[si]放此字符串,以0结尾;备注:会用到divdw函数 dtoc_dword:

push ax

push bx

push cx

push dx

push si

mov bx,0

dtoc_dword_x:

mov cx,10

call divdw

push cx

inc bx

cmp ax,0

jne dtoc_dword_x

cmp dx,0

jne dtoc_dword_x

mov cx,bx

dtoc_dword_x1:

pop ds:[si]

add byte ptr ds:[si],'0'

inc si

loop dtoc_dword_x1

pop si

pop dx

pop cx

pop bx

pop ax

ret 4.考虑到div指令除法溢出的问题,我们还需要写一个程序,进行不会产生溢出的除法运算,如下:;名称:divdw;功能:除法,被除数32位,除数16位,商32位,余数16位,不会溢出;参数:(dx)=被除数高16位,(ax)=被除数低16位,(cx)=除数;返回:(dx)=商高16位,(ax)=商低16位,(cx)=余数 divdw:

push bx

push ax

mov ax,dx

mov dx,0

div cx

mov bx,ax

pop ax

div cx

mov cx,dx

mov dx,bx

pop bx

ret 5.将这四个子程序整合起来,并编写主程序。主程序代码如下:

assume cs:code

;Ps:函数中的标号为防止冲突,都加了本函数名为前缀

data segment

db '1975','1976','1977','1978','1979','1980','1981','1982','1983'

db '1984','1985','1986','1987','1988','1989','1990','1991','1992'

db '1993','1994','1995'

;以上是表示21年的21个字符串

dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514

dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000

;以上是表示21年公司总收的21个dword型数据

dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226

dw 11542,14430,45257,17800

;以上是表示21年公司雇员人数的21个word型数据 data ends

agency segment

db 8 dup(0)agency ends

code segment

start: mov ax,0b800h

mov es,ax

mov di,0

mov cx,80*24

x: mov byte ptr es:[di],' ';将屏幕清空

mov byte ptr es:[di+1],0

inc di

inc di

loop x

mov ax,data

mov es,ax

mov di,0

mov bx,0

mov ax,agency

mov ds,ax

mov si,0

mov dh,2

mov cx,21

x1: push cx

mov ax,es:[di]

mov ds:[si],ax

mov ax,es:[di+2]

mov ds:[si+2],ax

mov byte ptr ds:[si+4],0;显示年份

mov dl,0

mov cl,7

call show_str

mov ax,es:[84+di]

push dx

mov dx,es:[84+di+2]

call dtoc_dword

;显示收入

pop dx

mov dl,20

mov cl,7

call show_str

mov ax,es:[84+84+bx]

call dtoc_word

mov dl,40

;显示雇员数

mov cl,7

call show_str

mov ax,es:[84+di]

push dx

mov dx,es:[84+di+2]

div word ptr es:[84+84+bx];计算人均收入并显示

call dtoc_word

pop dx

mov dl,60

mov cl,7

call show_str

add di,4

add bx,2

add dh,1

pop cx

loop x1

mov ah,0

int 16h;加上按任意键继续功能,可以直接双击运行

mov ax,4c00h

int 21h 编译链接程序,其运行效果如下:

实验总结

这个题目实际是前几个题目代码的整合,难点还是在于如何计算显示的行和列,如果错位了1个字节,显示的时候就可能出现重叠之类的情况。还有要再写个dword型数据转ASCII字符的程序,不过有之前的经验,应该也不难。通过此次的程序设计训练,基本上对之前所学的所有知识都有了一个系统性的掌握。

第二篇:C语言课程设计

C语言课程设计

飞机空战小游戏

一、实验环境

运行系统 WINDOWSXP 编程工具C++6.0 地点 程序设计与仿真实验室

桌号19电脑IP地址221.12.10.218

二、实验目的和要求 实验目的:

(1)使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作算法。

(2)使学生进一步掌握程序设计、编写、调试能力。(3)使学生了解软件开发的基本步骤和内容。

实验要求::飞机空战小游戏。功能要求:

1)有主菜单界面,能让用户选择开始、退出、难度等级、查看用户积分功能;

2)飞机能通过A、S、D、W或上下左右键控制移动方向,使用空格键发射子弹;

3)屏幕随机出现从上到下的敌方子弹; 4)当打中敌方子弹时,积分加1;

5)当敌方子弹打正飞机时,游戏结束,并提示用户是否保存记录(记录包括用户名及积分值),保存后退回到主菜单;

6)当选择主菜单中的“查看用户积分”选项时,进入第二级菜单,用户可查看全部用户积分记录,也可仅查看积分最高者,也可根据用户输入的用户名查看;(此处要求使用到链表,用于临时存储用户积分数据);(对链表的查找操作)

7)所有用户积分信息使用文件进行永久性保存; 8)用户选择“难度等级”,可设定游戏不同难度,难度越高,出现敌方子弹数目及间隔将增加。

三、实验内容和结果

系统总体设计:编写出c语言代码,运行程序,并调试程序,最终实现游戏的功能。本程序主要包含游戏控制函数、设置是否继续游戏函数、输出函数、子弹移动函数、敌机移动函数、设置函数、菜单函数等7个主要函数,包含了不同的功能,对原来的程序作出了很大的改进,用到的主要语句有if语句,for语句、while语句、printf语句、switch语句等等,添加了颜色函数。

系统模块设计:包含游戏控制函数、设置是否继续游戏函数、输出函数、子弹移动函数、敌机移动函数、设置函数、菜单函数等7个主要函数,其中是否继续游戏函数,菜单函数主要运用了SWITCH语句和If语句,子弹移动函数,敌机移动函数通过数组内各数值的变化来完成,设置函数主要用PRINTF和SCANF语句进行各项数值的设置,游戏控制函数使用if函数,kbhit()函数,switch函数组合控制数组中飞机进行的移动和图案的变换。最后用打印数组的方式打印出数组变换。最后运用SWITCH函数进行各项菜单内容的操作。

实验的测试和结果:

四、实验中的问题及心得

通过本次试验,使我对c语言有了更深一层次的了解,对for语句、while语句、printf语句、switch语句、颜色函数等等的了解及使用更加详细了一些,明白了这些语句的用法,明确了c语言的使用环境,功能。同时我了解到了一些方法来实现一些C语言作为一个基础性编程语言是我们在以后编程中不可或缺的语言,使用率肯定会进一步增高。掌握了c语言就相当于掌握了一门技术,同时c语言相对而言简单一些,更容易理解。自己虽然对这个小游戏进行一部分的改造,但是我也感觉这只是其中的很很小的一部分,肯定会有更加强大的功能等待着我们去改善。

同时,我也发现了自己很多的不足,需要进一步加强这一方面的学习,在数据结构链表的使用上还很欠缺,无法使用链表进行数据的读取和输入,还有在两个程序的连接上还有困难,对于头文件的理解不到位,链表的结构,定义,使用指针的方式„„这些都需要提高。这些技能的欠缺导致了在 这个小游戏中无法顺利完成有关用户名和记录的一些要求。„„

附录:程序清单

#include #include #include #include #define N 50 void run();//游戏控制函数 void continuegame();//设置是否继续游戏函数 void print(int [][N]);//输出函数

void movebul(int [][N]);//子弹移动函数 void movepla(int [][N]);//敌机移动函数 void setting(void);//设置函数 void menu();//菜单 int scr[50][N]={0},pl=9,width=15,speed=16,density=40,score=0,death=0,length=18,y=0,x=5,z=15,life=1,max=0;//全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡,子弹,飞机,敌机初始图案,生命

char name[N];char first[N];void main(){ menu();getch();}

void print(int a[][N])//输出函数 { int i,j;system(“cls”);for(i=0;i

a[i][width-1]=4;

for(j=0;j

{

if(a[i][j]==0)printf(“ ”);

if((a[i][j]==1)&&(x<15))printf(“%c”,x);//输出我机的符号

if((a[i][j]==2)&&(z<35))printf(“%c”,z);//子弹

if((a[i][j]==3)&&(y<4))printf(“%c”,y+1);//输出敌机符号

if(i==1&&j==width-1)printf(“总积分:%d”,score);//显示得分

if(i==2&&j==width-1)printf(“已经死亡了%d 次,剩余 %d 条命”,death,life-death);//右上角显示死亡次数

if(i==3&&j==width-1)printf(“普通按键:AD控制左右飞行”);

if(i==4&&j==width-1)printf(“ W 发射子弹”);if(i==5&&j==width-1)printf(“特殊按键:+-号加减敌机速度”);if(i==6&&j==width-1)printf(“ /*号单列敌机密度减小增大(均有限制)”);

if(i==7&&j==width-1)printf(“VIP按键:X键变化飞机图案,Y键变化敌机图案”);

if(i==8&&j==width-1)printf(“tZ键变化子弹图案,P键增加生命(均有限制)”);

if(i==9&&j==width-1)printf(“注意:向下移动后按其他方向键飞机显现”);

} printf(“n”);} }

void movebul(int a[][N]){

int i,j;for(i=0;i

{

if(i==0&&a[i][j]==2)

a[i][j]=0;

if(a[i][j]==2)

{

if(a[i-1][j]==3)//加分

{

score+=1;

printf(“7”);

}

a[i][j]=0,a[i-1][j]=2;

}

} } void movepla(int a[][N]){ int i,j;for(i=length-1;i>=0;i--)//从最后一行往上是为了避免把敌机直接冲出数组。

for(j=0;j

if(i==length-1&&a[i][j]==3)

a[i][j]=0;//消除敌机,在最低层

if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;//敌机移动

}

if(a[length-2][pl]==3&&a[length-1][pl]==1)death++;//死亡 }

void continuegame()//继续游戏

{ printf(“用户%s”,name);printf(“你的得分是%dn”,score);if(score==0)printf(“tttt 恭喜你刷新了最低记录na”,score);if((score>0)&&(score<20))

printf(“tttt 回家再练 练吧na”,score);if(score>19)

printf(“tttt 你真厉害 na”,score);printf(“游戏结束n”);printf(“按y键继续游戏,空格键退出游戏(y/n)?n”);printf(“ttt”);switch(getch())//是否要继续游戏

{ case 'y': case 'Y':system(“cls”),death=0,score=0,life=1,x=5,y=0,z=15;menu();break;} }

void setting(void)//设置函数 { system(“cls”);//清屏

printf(“n 输入游戏界面的大小(默认3):1-10 ”);scanf(“%d”,&width);width=(width+1)*5;printf(“n 请输入敌机密度大小(默认3):1-5 ”);scanf(“%d”,&density);density=(7-density)*10;printf(“n 输入敌机的飞行速度大小(默认3):1-10 ”);scanf(“%d”,&speed);speed=(11-speed)*2;printf(“n 输入我机的生命(默认1):1-100 ”);scanf(“%d”,&life);printf(“n 输入飞机的图案(默认1):1-2 ”);scanf(“%d”,&x);x=x+4;printf(“n 输入子弹的图案(默认1):1-10 ”);scanf(“%d”,&z);z=z+14;printf(“n 输入敌机的图案(默认1):1-3 ”);scanf(“%d”,&y);y=y-1;} void run(){ int i=0,j=0,k=0,b=0;printf(“请输入用户名:”);scanf(“%s”,name);printf(“您的用户名是:%s”,name);if(getch()==27)setting();printf(“游戏说明:按AWSD控制我机左右飞行,空格键发射子弹n特殊按键:-号敌机减速,+号敌机加速n特殊按键:/号单列敌机密度减小,*号单列敌机密度增大n”);printf(“VIP按键:X键变化飞机图案,Y键变化敌机图案ntZ键变化子弹图案,P键增加生命n”);printf(“任意键开始游戏,esc键进入游戏设置n”);printf(“游戏时也可更改游戏设置任意键开始nn”);system(“color a”);//设置背景颜色

if(getch()==27)setting();scr[length-1][pl]=1;//我方飞机初始位置

scr[0][5]=3;while(death

{ if(kbhit())

switch(getch())//控制设置按键 {

case 'a':

case 'A':if(pl>0)

scr[length-1][pl]=0,scr[length-1][--pl]=1;break;

case 'd':

case 'D':if(pl

scr[length-1][pl]=0,scr[length-1][++pl]=1;break;case 'W':

case 'w':if(length>10)

{

scr[length-1][pl]=0,scr[length-2][pl]=1;

length=length-1;

};break;

case '+':if(speed>2)

{

speed=speed-2;

};break;

case '-':speed=speed+1;break;case '*':if(density>5)

{

density=density-5;

};break;

case '/':density=density+10;break;

case 'l':if(width<40)

{

width=width+2;

};break;

case 's':if(length<30)

{

scr[length-1][pl]=0;

length=length+1;

scr[length-1][pl]='5';

};break;

case ' ':scr[length-2][pl]=2;break;

case 'y':y=(y+1)%4;break;

case 'x':x=(x)%2+5;break;

case 'z':if(z<25)

{

z=z+1;

}

else z=15;break;

case 'p':life=life+1;break;} if(++j%density==0)//控制生产敌机的速度

{

j=0;

srand(time(NULL));//产生随机数

scr[0][rand()%width]=3;

scr[rand()%3][rand()%(width+2)]=3;

scr[rand()%2][rand()%(width+1)]=3;

scr[rand()%4][rand()%(width+4)]=3;//生成随机敌方飞机

} if(++i%speed==0)//控制敌机移动速度,相对于子弹移动速度

movepla(scr);//飞机移动

movebul(scr);//子弹移动

print(scr);//绘制游戏画面

} if(score>=max){

max=score;

for(i=0;i

{

name[i]=first[i];

} } if(score

score=score;} continuegame();getch();}

void menu(){ printf(“n1:游戏设置n2:游戏说明n3:开始游戏n4:查看用户信息n5:退出游戏n”);

switch(getch()){

case '1': setting();menu();break;

case '2':printf(“游戏说明:按AWSD控制我机左右飞行,空格键发射子弹n特殊按键:-号敌机减速,+号敌机加速n特殊按键:/号单列敌机密度减小,*号单列敌机密度增大n”);printf(“VIP按键:X键变化飞机图案,Y键变化敌机图案ntZ键变化子弹图案,P键增加生命n”);printf(“ 任意键开始游戏,esc键进入游戏设置n”);printf(“ 游戏时也可更改游戏设置”);menu();break;

case '3':run();menu();break;

case '4':seerecord();menu();break;

case '5':exit(0);break;default:menu();break;}

} seerecord(){ printf(“最高纪录为%s,%d”,first[N],max);}

第三篇:C语言课程设计范文

C语言程序设计课程设计

设计题目:专业:计算机科学与技术班级:2010级计算机二班组长姓名:马得才【P101712944】成员姓名:孙丽欣【P101712927】

赵广峰【P101712926】

迟成凯【P101712928】

冶成意【P101712930】

2010年5月20日

题目:

指导教师:普措才仁

一、案例需求

二、案例分析

三、案例设计

四、案例实现

五、参考文献

第四篇:C语言课程设计

#include #include int N1,N2,kk1,kk2,kk3;struct couse * head1,*head2,*emp1;struct student * head3,*head4,*emp2;struct couse//课程信息结构体 {

int num1;

char name1[20];

int score;

int nelepeo;//课程已选人数

int Melepeo;//课程人数上限

struct couse * next;};

int student();

//学生登陆 int teacher();

//教师登陆 struct student//学生信息结构体 {

int num2;

char name2[20];

int nelenum[50];//已选课程编号

int nelen;//已选课程数量

struct student * next;};

void Ms(){

for(kk1=0;kk1<1100;kk1++)

for(kk2=0;kk2<1200;kk2++)

for(kk3=0;kk3<1200;kk3++);} void keyboardc()//录入课程子函数(从键盘录入){ void intoc();struct couse *p1,*p2;N1=0;p1=p2=(struct couse*)malloc(sizeof(struct couse));printf(“n课程编号:”);fflush(stdin);scanf(“%d”,&p1->num1);printf(“n课程名称:”);scanf(“%s”,p1->name1);printf(“n学分:”);scanf(“%d”,&p1->score);printf(“n课程人数上限:”);scanf(“%d” ,&p1->Melepeo);printf(“ntttt输入成功!”);p1->nelepeo=0;head1=NULL;while(p1->num1!=0){

N1=N1+1;

if(N1==1)head1=p1;

else p2->next=p1;

p2=p1;

p1=(struct couse *)malloc(sizeof(struct couse));

printf(“n-----------------------------”);

printf(“n课程编号:(输入0结束)”);scanf(“%d”,&p1->num1);printf(“n课程名称:”);scanf(“%s”,p1->name1);printf(“n学分:”);scanf(“%d”,&p1->score);printf(“n课程人数上限:”);scanf(“%d” ,&p1->Melepeo);

p1->nelepeo=0;

printf(“ntttt输入成功!”);} p2->next=NULL;intoc();}

void filec()//录入键盘子函数(从文件录入){ void intoc();

FILE * fp;

char filepath[20];

struct couse *p1,*p2;

N1=0;

printf(“输入要读入的文件路径:”);

getchar();

gets(filepath);

if((fp=fopen(filepath,“r”))==NULL)

{

printf(“找不到%s文件!n”,filepath);

exit(0);

}

p1=p2=(struct couse*)malloc(sizeof(struct couse));

fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

head1=NULL;

while(!feof(fp))

{

N1=N1+1;

if(N1==1)head1=p1;

else p2->next=p1;

p2=p1;

p1=(struct couse *)malloc(sizeof(struct couse));

fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

}

p2->next=NULL;

intoc();}

void inputc()//录入课程主函数 {

int i;

printf(“ttt录入课程信息n”);

printf(“n1.从键盘录入n”);

printf(“2.从文件录入n”);

printf(“3.返回主菜单n”);

printf(“请选择(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):keyboardc();break;

case(2):filec();break;

case(3):system(“cls”);return;break;

//return

} }

void insertc(struct couse *incouse)//课程管理子函数(增加课程){ void intoc();

struct couse *p0,*p1,*p2;

p1=head1;

p0=incouse;

if(head1==NULL)

{

head1=p0;

p0->next=NULL;

}

else

{

while((p0->num1 > p1->num1)&&(p1->next!=NULL))

{

p2=p1;

p1=p1->next;

}

if(p0->num1 <= p1->num1)

{

if(head1==p1)head1=p0;

else p2->next=p0;

p0->next=p1;

}

else

{

p1->next=p0;

p0->next=NULL;

}

}

N1=N1+1;

intoc();}

void delc(int num1)//课程管理子函数(删除课程){ void intoc();

struct couse *p1,*p2;

if(head1==NULL)

{

printf(“n没有课程,无法删除!n”);

goto end;

}

p1=head1;

while(num1!=p1->num1 && p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

if(num1==p1->num1)

{

if(p1==head1)head1=p1->next;

else p2->next=p1->next;

printf(“已删除该编号课程!n”);

N1=N1-1;

}

else printf(“无该编号的课程!n”);

end:;

intoc();}

void managementc()//课程管理主函数 {

struct couse * incouse;

struct couse *p1;

int i,num1;

printf(“ttt课程管理n”);

printf(“1.新增课程n”);

printf(“2.删除课程n”);

printf(“3.返回主菜单n”);

printf(“请选择(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):

{

incouse=(struct couse *)malloc(sizeof(struct couse));

printf(“n课程编号:”);

fflush(stdin);

scanf(“%d”,&p1->num1);

printf(“n课程名称:”);

scanf(“%s”,p1->name1);

printf(“n学分:”);

scanf(“%d”,&p1->score);

printf(“n课程人数上限:”);

scanf(“%d” ,&p1->Melepeo);

printf(“ntttt输入成功!”);

incouse->nelepeo=0;

insertc(incouse);

break;

}

case(2):

{

printf(“请输入要删除课程的编号:n”);

scanf(“%d”,&num1);

delc(num1);

break;

}

case(3):system(“cls”);return;break;

} }

void keyboards()//录入学生信息子函数(从键盘录入){

void intos();

int i;

struct student *p1,*p2;

N2=0;

p1=p2=(struct student *)malloc(sizeof(struct student));

printf(“n学生学号:”);

scanf(“%d”,&p1->num2);

printf(“n学生姓名:”);

scanf(“%s”,p1->name2);

p1->nelen=0;

for(i=0;i<50;i++)p1->nelenum[i]=0;

head3=NULL;

while(p1->num2!=0)

{

N2=N2+1;

if(N2==1)head3=p1;

else p2->next=p1;

p2=p1;

p1=(struct student *)malloc(sizeof(struct student));

//return

printf(“n学生学号:(输入0结束!)”);

scanf(“%d”,&p1->num2);

printf(“n学生姓名:”);

scanf(“%s”,p1->name2);

p1->nelen=0;

for(i=0;i<50;i++)p1->nelenum[i]=0;

}

p2->next=NULL;

intos();return;} void files()//录入学生信息子函数(从文件录入){

int i=0;

FILE * fp;

char filepath[20];

struct student *p1,*p2;

N2=0;

printf(“输入要读入的文件路径:”);

getchar();

gets(filepath);

if((fp=fopen(filepath,“r”))==NULL)

{

printf(“找不到%s文件!n”,filepath);

exit(0);

}

p1=p2=(struct student*)malloc(sizeof(struct student));

fread(p1,sizeof(struct student),1,fp);

head3=NULL;

while(!feof(fp))

{

i=0;

N2=N2+1;

if(N2==1)head3=p1;

else p2->next=p1;

p2=p1;

p1=(struct student *)malloc(sizeof(struct student));

fread(p1,sizeof(struct student),1,fp);

}

p2->next=NULL;}

void inputs()//录入学生信息主函数 {

int i;

printf(“nttt录入学生信息n”);

printf(“n1.从键盘录入n”);

printf(“2.从文件录入n”);

printf(“3.返回主菜单n”);

printf(“请选择(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):keyboards();break;

case(2):files();break;

case(3):system(“cls”);return;break;

}

return 0;}

void inserts(struct student * incouse)//学生信息管理子函数(填加学生信息){ void intos();

struct student *p0,*p1,*p2;

p1=head3;

p0=incouse;

if(head3==NULL)

{

head3=p0;

p0->next=NULL;

}

else

{

while((p0->num2 > p1->num2)&&(p1->next!=NULL))

{

p2=p1;

p1=p1->next;

}

if(p0->num2 <= p1->num2)

{

if(head3==p1)head3=p0;

else p2->next=p0;

p0->next=p1;

}

else

{

//return

p1->next=p0;

p0->next=NULL;

}

}

N2=N2+1;

intos();}

void dels(int num2)//学生信息管理子函数(删除学生信息){ void intos();

struct student *p1,*p2;

if(head3==NULL)

{

printf(“n没有该学生信息,无法删除!n”);

goto end;

}

p1=head3;

while(num2!=p1->num2 && p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

if(num2==p1->num2)

{

if(p1==head3)head3=p1->next;

else p2->next=p1->next;

printf(“已删除该学生信息!n”);

N2=N2-1;

}

else printf(“无该学号的学生!n”);

intos();

end:;}

void managements()//学生信息管理主函数 {

struct student * incouse;

int i,num2;

printf(“ttt学生信息管理n”);

printf(“1.新增学生信息n”);

printf(“2.删除学生信息n”);

printf(“3.返回主菜单n”);

printf(“请选择(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):

{

incouse=(struct student *)malloc(sizeof(struct student));

incouse->nelen=0;

incouse->nelenum[0]=0;

printf(“学生学号t学生姓名n”);

scanf(“%d%s”,&incouse->num2,incouse->name2);

inserts(incouse);

break;

}

case(2):

{

printf(“请输入要删除学生的学号:n”);

scanf(“%d”,&num2);

dels(num2);

break;

}

case(3):system(“cls”);return;break;

//return

} }

void elect(struct student * s)//选课 {

void intos();

struct couse * p;

int num1,i;

printf(“请输入要选课的编号:n”);

scanf(“%d”,&num1);

for(i=0;s->nelenum[i]!=0;i++);

s->nelenum[i]=num1;

(s->nelen)++;

p=head1;

while(p->num1!=num1)p=p->next;

(p->nelepeo)++;

intos();} void cheak()//学生选课子函数(查询可选课程){

char e;

struct couse * c;

struct student * s;

int num2,i,j=0,t=0;

printf(“请输入你的学号:”);

scanf(“%d”,&num2);

s=head3;

while((s->num2!=num2)&&(s->next!=NULL))s=s->next;

if(s->num2!=num2)

{

printf(“不存在你的信息,请进入主菜单录入你的信息!n”);

goto end;

}

c=head1;

printf(“你的可选课程编号:n”);

while(c!=NULL)

{

for(t=0,i=0;s->nelenum[i]!=0;i++)

{

if(c->num1==s->nelenum[i])t=1;

}

if(t==0 &&(c->nelepeo!=c->Melepeo))

{

printf(“%dn”,c->num1);

j++;

}

c=c->next;

}

if(j==0)

{

printf(“你已选完所有课程,无法再多选!n”);

goto end;

}

printf(“选课(y/n)?:n”);

getchar();

e=getchar();

i=0;

while((e=='y')||(e=='Y'))

{

elect(s);

printf(“继续选课(y/n)?:n”);

getchar();

e=getchar();

}

end:;} void back(struct student * p)//退课 {

void intos();

struct couse * p1;

int num1,i,j;

printf(“请输入你要退掉的课程编号:n”);

scanf(“%d”,&num1);

p1=head1;

while(p1->num1!=num1)p1=p1->next;

for(i=0;p->nelenum[i]!=num1;i++);

for(j=i;p->nelenum[j]!=0;j++)p->nelenum[j]=p->nelenum[j+1];

p->nelenum[--j]=0;

(p1->nelepeo)--;

printf(“退课成功!n”);

intos();} void hcheak()//学生选课子函数(查询已选课程){

char c;

struct couse * p0;

struct student * p;

int num2,i,f=0;

printf(“请输入学号:n”);

scanf(“%d”,&num2);

p=head3;

while(p->num2!=num2 && p!=NULL)p=p->next;

if(p==NULL)

{

printf(“不存在你的信息,请回主菜单录入信息:n”);

goto end;

}

printf(“已选课程编号:n”);

if(p->nelenum[0]==0)

{

printf(“你还没选课!n”);

goto end;

}

for(i=0;p->nelenum[i]!=0;i++)

{

printf(“%dn”,p->nelenum[i]);

p0=head1;

while(p0->num1!=p->nelenum[i])p0=p0->next;

f=f+p0->score;

}

printf(“总学分:%dn”,f);

printf(“是否进行退课(y/n)?”);

getchar();

c=getchar();

while((c=='y')||(c=='Y'))

{

back(p);

printf(“继续退课(y/n)?”);

getchar();

c=getchar();

(p->nelen)--;

}

end:;} void elective()//学生选课主函数 {

int i;

printf(“ttt学生选课n”);

printf(“1.查询可选课程n”);

printf(“2.查询已选课程n”);

printf(“3.返回主菜单n”);

printf(“请输入(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):cheak();break;

case(2):hcheak();break;

case(3): system(“cls”);return;break;

// return

} } void listc()//输出课程信息 {

struct couse * p;

p=head1;

printf(“课程编号

课程名称

学分

课程已选人数

课程人数上限n”);

while(p!=NULL)

{

printf(“%-8d%10s%6d%8d%12dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

p=p->next;

} }

void lists()//输出学生信息 {

struct student * p;

p=head3;

printf(“学生学号

学生姓名

已选课程数量n”);

while(p!=NULL)

{

printf(“%-4d %10s %6dn”,p->num2,p->name2,p->nelen);

p=p->next;

} } void intoc()//存储课程信息 {

FILE * fp;

struct couse * p;

char filepath[30];

if((fp=fopen(“课程信息.dat”,“a+”))==NULL)

{

printf(“n保存失败!”);

exit(0);

}

p=head1;

while(p!=NULL)

{

fprintf(fp,“%d %s %d %d %dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

p=p->next;

}

fclose(fp);

printf(“课程信息已保存成功!n”);} void intos()//存储学生信息 { int i;

FILE * fp;

struct student * p;

char filepath[30];

if((fp=fopen(“学生信息.dat”,“a+”))==NULL)

{

printf(“n保存失败!”);

exit(0);

}

p=head3;

while(p!=NULL)

{

fwrite(p,sizeof(struct student),1,fp);

p=p->next;

}

fclose(fp);

printf(“学生信息已保存成功!n”);

printf(“ntttt选择菜单:”);

printf(“ntttt1.继续添加ntttt2.返回主菜单:”);

printf(“请选择:”);

scanf(“%d”,&i);

switch(i)

{

case 1:inputs();break;

case 2:teacher();break;

default:printf(“n输入有误!n”);} }

void store()//信息主函数 {

int i;

printf(“tt系统信息查看及存储n”);

printf(“1.查看课程信息n”);

printf(“2.查看学生信息n”);

printf(“3.返回主菜单n”);

printf(“请输入(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):listc();break;

case(2):lists();break;

case(3):system(“cls”);return;break;

} }

int main()//主函数

//retuen

{

int i;

FILE *fp;

printf(“nttt欢迎使用学生选课系统!n”);

printf(“n请选择菜单:”);

printf(“ntttt1.教师登陆ntttt2.学生登陆n”);

printf(“请选择:”);

scanf(“%d”,&i);

switch(i)

{

case 1:teacher();break;

case 2:student();break;

default:printf(“输入有误!”);

} }

int student()

{

int i;

printf(“ntttt1.学生选课n”);

printf(“ntttt2.系统信息查看及存储n”);

printf(“ntttt3.退出系统n”);

printf(“请选择:”);

scanf(“%d”,&i);

switch(i)

{

case 1:

{

system(“cls”);

elective();

break;

}

case 2:

{

system(“cls”);

store();

break;

}

default:printf(“输入有误!”);

}

}

int teacher()

{

FILE *fp;

int i;

printf(“菜单:n”);

printf(“1.录入课程信息n”);

printf(“2.课程管理n”);

printf(“3.录入学生信息n”);

printf(“4.学生信息管理n”);

printf(“5.系统信息查看n”);

printf(“6.退出系统n”);

if((fp=fopen(“课程信息.dat”,“rb”))==NULL)

{

printf(“n打开系统文件失败!

n”);

//fp=fopen(“信息.dat”,“rb”));

// }

// if(feof(fp))

// {

printf(“n还未添加课程信息,请添加课程信息!n”);

inputc();

}

while(!feof(fp))

{

emp1=(struct couse*)malloc(sizeof(struct couse));

if(emp1==NULL)

{

printf(“n分配内存失败!n”);

return;

}

fread(emp1,sizeof(struct couse),1,fp);

if(feof(fp))break;

if(head1==NULL)

{

head1=emp1;

head2=emp1;

}

else{

head2->next=emp1;

head2=emp1;

}

head2->next=NULL;

}

fclose(fp);

fp==NULL;

if((fp=fopen(“学生信息.dat”,“rb”))==NULL)

printf(“n打开系统文件失败!n”);

//

//if(feof(fp)==1)

// {

printf(“还未添加学生信息,请添加学生信息!”);

inputs();

while(!feof(fp))

{

emp1=(struct student*)malloc(sizeof(struct student));

if(emp2==NULL)

{

printf(“n分配内存失败!n”);

return;

}

fread(emp2,sizeof(struct student),1,fp);

if(feof(fp))break;

if(head3==NULL)

{

head3=emp2;

head4=emp2;

}

else{

head4->next=emp2;

head4=emp2;

}

head4->next=NULL;

}

fclose(fp);

fp==NULL;

printf(“n请输入菜单选项(1~6):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):

{

system(“cls”);

inputc();

break;

}

case(2):

{

system(“cls”);

managementc();

break;

}

case(3):

{

system(“cls”);

inputs();

break;

}

case(4):

{

system(“cls”);

managements();

break;

}

case(5):

{

system(“cls”);

store();

break;

}

case(6):

{

system(“cls”);

printf(“感谢使用本系统!nn再见!n”);

}

}

return 1;

}

第五篇:CC语言课程设计

1,/*100-999内的水仙花数的个数*/ #include main(){

int a,b,c,d,s,i=0;

for(a=100;a<=999;a++)

{

b=a/100;

c=a%100/10;

d=a%10;

s=b*b*b+c*c*c+d*d*d;

if(a==s)

i++;

}

printf(“%d”,i);

getch();} 2, /*x^2+y^2+z^2=55^2,则(x,y,z)称为方程的整数解的个数*/ #include main(){ int x,y,z,t=0,a,s;for(x=-55;x<=55;x++)

for(y=-55;y<=55;y++)

for(z=-55;z<=55;z++)

{

a= x*x+y*y+z*z;

s=55*55;

if(a==s&&x>y&&x>z&&x>y)

t++;

}

printf(“%d”,t);

getch();

} 3/*100-400内的水仙花数的个数*/ #include main(){

int a,b,c,d,s,i=0;

for(a=100;a<=400;a++)

{

b=a/100;

c=a%100/10;

d=a%10;

s=b*b*b+c*c*c+d*d*d;

if(a==s)

i++;

}

printf(“%d”,i);

getch();

}

4, /* 0-60内每位数的乘积大于和的数个数*/

#include main(){

int a,b,c,d,e,i=0;

for(a=0;a<=6;a++)

{

b=a/10;c=a%10;

d=a*b;e=a+b;

if(d==e)

i++;

}

printf(“%d”,i);

getch();

}

5/*满足1/A^2+1/B^2=1/C^2关系时,称为倒勾股数

*/

#include main(){

int a,b,c ,t=0;

float x,y,z;

for(a=1;a<=100;a++)

{ for(b=1;b<=100;b++)

for(c=1;c<=100;c++)

x=1/(a*a);

y=1/(b*b);

z=1/(c*c);

if(x+y==z&&a+b+c<150&&a+b+c>130&&a>b&&a>c&&b>c)

t++;

}

printf(“%d”,t);

getch();

} 6, /*爱因斯坦走台阶 */ #include main(){

int s;

for(s=0;;s++)

{

if(s%2==1&&s%3==2&&s/4==3&&s/5==4&&s/6==5&&s%7==0)break;

}

printf(“%d”,s);

getch();

} 7./*121-140内弦数的个数*/ #include main(){

int a=0,b=0,c=121 ,i=0;

for(c=121;c<=140;a++)

{

for(a=0;a<=15;a++)

for(b=0;b<=15;b++)

if(c*c==a*a+b*b)

i++;

continue;

printf(“%d”,i);

}

getch();} 8/*1000内其十位数是6能被8整除数的个数*/ #include main(){

int a,i=0;

for(a=10;a<=1000;a++)

{

if(a%100/10==6&&a%8==0)

i++;

}

printf(“%d”,i);

getch();

}

9/* 0-60内每位数的乘积大于和的数个数*/

#include main(){

int a,b,c,d,e,i=0;

for(a=0;a<=60;a++)

{

b=a/10;c=a%10;

d=c*b;e=c+b;

if(d>e)

i++;

}

printf(“%d”,i);

getch();

}

10./* 1-5000内能被5整除偶数之和大于500和的值*/

#include main(){

int a, b=0;

for(a=2;a<=5000;a+=2)

{

if(a%5==0)

b=b+a;

while(b>500);

printf(“%d”,b);

}

getch();

}

11./* 100-500内能被3整除余2和能被5整除余3的个数*/ #include main(){

int a, b=0;

for(a=100;a<=500;a++)

{

if(a%3==2&&a%5==3)

b++;

}

printf(“%d”,b);

getch();

} 12/* 1-7000内能被3或者能被7整除的个数*/ #include main(){

int a, b=0;

for(a=1;a<=7000;a++)

{

if(a%3==0||a%7==0)

b++;

}

printf(“%d”,b);

getch();

} 13./*3-100内非偶数非素数之和*/ #include main(){

int a,i,k, b=0;

for(a=3;a<=100;a+=2)

{

k=sqrt(a);

for(i=2;i<=k;i++)

{if(a%i==0)break;

if(i>k+1)

b=b+a;}

}

printf(“%d”,b);

getch();

}

14/*求满足ijk+kji=1534,且i

#include main(){

int j,i,k, b=0;

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

for(i=0;i

if(100*i+10*j+k+100*k+10*j+i==1534)

b++;

printf(“%d”,b);

getch();

}

15/*有四位数ABCD的个数,该四位数是11的倍数,且A=B+C,即第2位数加上第3位数等于第1位数。4 */

#include main(){

int j,i,k,a, b=0;

for(j=1000;j<=9999;j++)

{

i= j/1000;

k=j%1000/100;

a=j%100/10;

if(j%11==0&&i==k+a)

b++;

}

printf(“%d”,b);

getch();

} 16/*求三位数的偶数中,所有各位数字之和是15的倍数的数的个数*/ #include main(){

int j,i,k,a,s, b=0;for(j=100;j<=999;j+=2)

{

i= j/100;

k=j%100 /10;

a=j%10;

s=i+k+a;

if(s%15==0)

b++;

}

printf(“%d”,b);

getch();

} 17/*四位数的奇数中,所有各位数字之积是125的倍数的数的和*/ #include main(){

int j,i,k,a,c,s, b=0;for(j=1111;j<=9999;j+=2)

{

i= j/1000;

k=j%1000 /100;

a=j%100/10;

c=j%10;

s=i*k*a*c;

if(s%125==0)

b=b+j;

}

printf(“%d”,b);

getch();

}

18/*5000以内能被17或者23整除的正整数的个数 */

#include main(){

int j,i,k,a,c,s, b=0;for(j=1;j<=5000;j++)

{

if(j%17==0||j%23==0)

b++;

}

printf(“%d”,b);

getch();

}

19/*四位数的偶数中,所有各位数字之和是30的倍数的数的和

*/

#include main(){

int j,i,k,a,c,s, b=0;for(j=1000;j<=9999;j+=2)

{

i=j/1000;

k=j%1000/100;

a=j%100/10;

c=j/10;

s=i+k+a+c;

if(s%30==0)

b=b+j;

}

printf(“%d”,b);

getch();

} 21/*统计1000~9999之间的所有满足以下条件的四位数的个数。该数是一个完全平方数*/ #include #include main(){

int a,b,c ,d,s,x,y,t=0;

for(s=1000;s<=9999;s++)

{

a=s/1000;

b=s%1000/100;

c=s%100/10;

d=s%10;

x=sqrt(s);

y=x*x;

if(a+b==12&&c*d==24&&y==s)

t++;

}

printf(“%d”,t);

getch();

} 22/*S=1+3+5+7+9+…,求S不大于9000的最大值*/ #include main(){

int j ,s=0;for(j=1;;j+=2)

{

s+=j;if(s>9000)break;

}

s=s-j;

printf(“%d”,s);

getch();

} 23/*S=2+4+8+16+32+…,求S不大于1500的最大值*/

#include main(){

int j ,s=0;for(j=2;;j=2*j)

{

s+=j;

if(s>1500)break;

}

s=s-j;

printf(“%d”,s);

getch();

} /*m的值为50时,计算下列公式的值T=1-1/2-1/3-1/4-…-1/m*/

#include main(){

float n,m,s,T;

s=0;

for(n=2;n<=50;n++){

m=-1/n;

s=s+m;

}

T=1+s;

printf(“%0.4f”,T);

getch();

}

26, /*当n的值为25时,计算下列公式的值: s=1+1/1!+1/2!+1/3!+…+1/n*/

#include main(){

float s,T;

int m=1,n=1;

s=0;

for(n=1;n<=25;n++){

m=m*n;

s=s+1/m;

}

T=1+s;

printf(“%0.4f”,T);

getch();

} 27/*斐波那契数列,10000000以内最大的斐波那契数*/ #include main(){ long int f1,f2 ,n;f1=1;f2=1;

do

{

f1=f1+f2;

f2=f1+f2;

}while(f1>10000000);

printf(“%ldn%ld”,f1,f2);

getch();

} 28/*计算y=1+2/3+3/5+4/7+.....+n/(2*n-1)的值,n=50*/ #include main(){ float y=0,m,s;int t,n;for(n=1;n<=50;n++){

t=2*n-1;

m=1.0/t;

s=m*n;

y+=s;

}

printf(“%.2f”,y);

getch();

} 29/*计算y=x/1!-x^3/3!+x^5/5!-x^7/7!...前20项的值x=2*/

#include main(){

float y=0,m,s,x;int t,n;

for(n=1;n<=20;n++){

x=-4*x;

m=2*n+1;

t=t*m*(m-1);

s+= x/t;

}

printf(“%.2f”,y);

getch();

}

30/*梅森尼数2^n-1是素数,【2-21】内的梅森尼数个数 */

#include #include

main(){

int n,m,i,j,k,x=0;for(n=2;n<=21;n++){ m=2*m;

i=m-1;

k=sqrt(i);

for(j=3;j<=k;j++)

if(i%k==0)break;if(j>=k+1)x++;

}

printf(“%d”,x);

getch();

}

31/*两位数分子分母各个数之和的比等于原来的值*/

#include

main(){

int n,m,a,b,c,d,s;float x,y;for(n=10;n<=98;n++)for(m=11;m<=99;m++)

{ a=n/10;

b=n%10;

c=m/10;

d=m%10;

x=n/m;

y=(a+b)/(c+d);

if(m>n&&x==y)

s+=a+b+c+d;

}

printf(“%d”,s);

getch();

} 32/* 1-50内构成直角三角形的组数 */ #include

main(){

int x,y,z,n=0,t;

for(x=1;x<=50;x++)

{

for(y=1;y<=50;y++)

for(z=1;z<=50;z++)

if(x+y>z&&x*x+y*y==z*z)

n++;}

t=n/3;

printf(“%d ”,t);

getch();

} 33/*一正整数递减,每次减半后减一,10次后剩一 */ #include

main(){

int n, s=0,m=1;

for(n=2;n<=10;n++)

{

m= 2*(m+1);

}

printf(“%dn”,m);

getch();

}

34./* 2/1,3/2,5/3,.....前50项和*/ #include

main(){

int x1=1,x2=2, n;float t,s=0;

for(n=1;n<=50;n++)

{ t=x2/x1;

s+=t;

x2=x1+x2;

x1=x2;

}

printf(“%.2f ”,s);

getch();

}

35,/*求五位数各个位数平方和为100的最大五位数*/

#include

main(){

int x,a,b,c,d,e,m,n,max;

for(x=10000;x<=99999;x++)

{

a=x/10000;

b=x%10000/1000;

c=x%1000/100;

d=x%100/10;

e=x%10;

m=a*a+b*b+c*c+d*d+e*e;

if(m==100)break;

max=x;

}

for(n=x;n<=99999;n++)

{

a=n/10000;

b=n%10000/1000;

c=n%1000/100;

d=n%100/10;

e=n%10;

m=a*a+b*b+c*c+d*d+e*e;

if(m==100)

max=n;

}

printf(“%ld ”,max);

getch();

} 36,#include main(){

long int y,k;

int x,i=0;

for(x=2;x<=1000;x++)

{ y=x*x;

k=y-x;

if(x<10&&k%10==0)

i=i+x;

if(x>=10&&x<=99&&k%100==0)

i=i+x;

if(x>=100&&x<=999&&k%1000==0)

i=i+x;

if(x==1000&&k%10000)

i=i+x;

}

printf(“%d”,i);

getch();} 37/*求50-150之间的友对数*/

#include main(){ int x,y,z, i,t=0;for(x=50;x<=150;x++){

y=x+1;

z=x*y-1;

for(i=2;x<=z-1;i++)

{

if(z%i==0)break;

if(z%i!=0)

{

if(i==z-1)

t++;}

}

}

printf(“%d”,t);

getch();

}

38/* 求[1,30000]之内E数的个数,E(1)=E(2)=1;E(n)=(n-1)*E(n-1)+(n-2)*E(n-2)*/

#include main(){

int i,j=2,n;

long int a[]={0,1,1};

for(n=3;;n++)

{ a[n]=(n-1)*a[n-1]+(n-2)*a[n-2];

for(i=1;i<=30000;i++)

{

if(a[n]==i)

{j++;break;}

if(a[n]>=30000)

break;

}

if(a[n]>=30000)

break;

}

printf(“%d”,j);

getch();}

39./*试求所有两位绝对素数的和,绝对素数是交换位子后仍为素数*/

#include main(){

int i,j,a,b,x,k,s=0;

for(i=11;i<=99;i+=2)

for(j=2;j<=i-1;j++)

{if(i%j==0)

break;

if(i%j!=0)

{if(j==i-1)

{a=i/10;

b=i%10;

x=10*b+a;

for(k=2;k<=x-1;k++)

{if(x%k==0)

break;

if(x%k!=0)

{if(k==x-1)

s=s+i;}}

}

}

}

printf(“%d”,s);

getch();} 40./*f(0)=f(1)=1,f(2)=0f(n)=f(n-1)-2*f(n-2)+f(n-3),(n>2)求f(0)到f(50)中的最大值*/ #include main(){

long int a[50]={1,1,0},max;

int i;

for(i=3;i<=50;i++)

{ max=a[1];

a[i]=a[i-1]-2*a[i-2]+a[i-3];

if(max

max=a[i];

else

max=max;

}

printf(“%ld”,max);

getch();} 41,/*f(n)=f(n-1)+2*f(n-2)-5*f(n-3),f(0)=1,f(1)=2,f(2)=3,求f(0)+f(1)+…f(30)*/

#include main(){

long int a[31]={1,2,3},s=a[0]+a[1]+a[2];

int i;

for(i=3;i<=30;i++)

{

a[i]=a[i-1]+2*a[i-2]-5*a[i-3];

s=s+a[i];

}

printf(“%ld”,s);

getch();}

42./*A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ……, 求A50*/

#include main(){

float a[51]={0,1};

int i;

for(i=2;i<=50;i++)

{

a[i]=1.0/(1+a[i-1]);

}

printf(“%.3f”,a[50]);

getch();}

43./*A,B为正整数, A

#include main(){

int A,B,d,min=2699;

long int c;

for(B=2;B<=2698;B++)

for(A=1;A

{c=A*B;

if(c==2698)

{ d=A+B;

if(min>d)

min=d;}

}

for(B=2;;B++)

{for(A=1;A

{min=A+B;

c=A*B;

if(c==2698)

break;}

if(c==2698)

break;}

printf(“%d”,B);

getch();} 44/*A main(){

int A,B,d,min=2699;

long int c;

for(B=2;B<=2698;B++)

for(A=1;A

{c=A*B;

if(c==2698)

{ d=A+B;

if(min>d)

min=d;}

}

printf(“%d”,min);

getch();} 45/*的自然数对中B之和求所有小于或等于100*/

#include main(){

int a,b,A,B,j,i,s=0;

for(A=1;A<=100;A++)

for(B=1;B<=A;B++)

{ a=A+B;

b=A-B;

for(i=1;i<=15;i++)

if(a==i*i)

{for(j=1;j<=10;j++)

if(b==j*j)

s=s+B;}

}

printf(“%d”,s);

getch();}

46./*问大、中、小学生的人数分配共有多少种不同的解*/

#include main(){

int i,j,k,s,y=0;

for(i=1;i<=30;i++)

for(j=1;j<=40;j++)

for(k=1;k<=60;k++)

{s=4*i+3*j+2*k;

if(s==120)

y++;

}

printf(“%d”,y);

getch();}

下载语言_课程设计1五篇范文word格式文档
下载语言_课程设计1五篇范文.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    2012语言课程设计任务书

    河南工程学院 《汇编语言》 课程设计任务书 适用专业:计算机科学与技术适用班级: 本科2014年12月20日 《汇编语言》课程设计任务书 一、课程设计目的与任务 汇编语言课程设计......

    C语言课程设计

    - 1 1 前言 让自己所学的知识应用于实际生活中,理论联系生活,学以致用,我们将更好服务于民。我们是新一代的年轻人,要想将来在社会上更好的立足,就必须让自己强大起来,努力的学习......

    C语言课程设计报告

    C语言课程设计报告 班级: 10电子本1 学号: 10303033122 姓名: 指导老师: 方文森完成日期: 温州大学城市学院课程设计 目 录 1、课程设计目的和要求 ............................

    c语言课程设计总结

    c语言课程设计总结5篇c语言课程设计总结(一):c语言课程设计总结心得经过一个学期的学习,我对C语言有了必须的了解。C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语......

    《C语言》课程设计教学大纲

    荆楚理工学院 《C语言程序设计》课程设计教学大纲 一、 课程名称: C语言程序设计 二、 课程代码: Z04013 三、 课程管理: 计算机工程学院(部)计算机应用教研室 四、 教学对象:......

    C语言课程设计任务书

    《C语言程序设计》课程设计 任务书及指导书 自动化学院 2011年 C语言课程设计任务书及指导书1 题目:学院教学信息管理系统 功能:学院教学信息管理系统,每一条记录包括教师的......

    语言程序设计课程设计指导书

    汇编语言程序设计课程设计指导书 一、 课程设计的目的 本课程设计是《汇编语言程序设计》课程的后继教学环节,其宗旨是使学生通过对一个较大型的、综合性的应用程序进行阅读......

    C语言课程设计选题

    C语言课程设计选题 题一、《学生成绩管理系统》 1、 写一个“学生成绩管理”程序,要求程序如下功能: (1) 成绩录入,(2)成绩修改(按学号修改),(3)成绩查询(至少提供按学号、按姓名、按班......