C语言期末大作业.docx

上传人:b****3 文档编号:10701536 上传时间:2023-05-27 格式:DOCX 页数:8 大小:16.62KB
下载 相关 举报
C语言期末大作业.docx_第1页
第1页 / 共8页
C语言期末大作业.docx_第2页
第2页 / 共8页
C语言期末大作业.docx_第3页
第3页 / 共8页
C语言期末大作业.docx_第4页
第4页 / 共8页
C语言期末大作业.docx_第5页
第5页 / 共8页
C语言期末大作业.docx_第6页
第6页 / 共8页
C语言期末大作业.docx_第7页
第7页 / 共8页
C语言期末大作业.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言期末大作业.docx

《C语言期末大作业.docx》由会员分享,可在线阅读,更多相关《C语言期末大作业.docx(8页珍藏版)》请在冰点文库上搜索。

C语言期末大作业.docx

C语言期末大作业

伊犁师范学院计算机科学系

实验训项目报告

一、小组成员及分工:

姓名:

张雁

学号:

二、指导老师:

王慧玲

三、说明程序编制要点,以及自己在项目制作中的难点及解决办法:

编写的要点:

编写N个函数分别用来求平均分;总分按降许序排列;按姓名查找学生的成绩;找出各科最高分的学生姓名,学号等。

编写主函数提供不同的选择途径。

难点:

函数之间的调用,姓名的比较和交换。

解决办法:

通过参数的传递;用字符串处理函数。

四、说明项目中所涉及的知识点及难点:

知识点:

基础知识,结构体,选择结构程序设计,循环结构程序设计,数组,字符数组,常用的字符串处理函数,函数的调用。

难点:

函数的调用,循环程序设计。

五、附录源程序:

注:

必须有一定的注释,说明函数功能以及主要语句所起的作用

#include"stdio.h"#include"string.h"

#definem5

voidsearch();

/*

声明按姓名查找学生的信息*/

voidave();

/*

声明turnoutaverage*/

voidpaixu();

/*

声明scorepaimingci*/

 

 

voidmaxandmin();/*

声明maxandminscorestudent'snumber,name

 

andeverycoursescore*/

 

structstudent/*声明defineastruct*/

 

intnum;/*student

'snumber*/

 

 

charname[10];

 

intmath,english,chinese;

/*threecoursescore*/

 

intno;

/*studentmingci*/

 

 

floatsum;

floatave;

}stu[m];

main()

{

inti;

intq=0,p;

for(i=0;i

{printf("num:

");

scanf("%d",&stu[i].num);

printf("name:

");

scanf("%s",stu[i].name);

printf("inputscore:

");

scanf("%d,%d,%d",&stu[i].math,&stu[i].chinese,&stu[i].english);printf("\n");

}

system("cls");

while(q==0)

{

printf("\n");

printf("1findaveragescore\n");

printf("2findsumscorepaiming\n");

printf("3findstudentnameoutputaboutstudentmessage\n");

student's

printf("4findthemaxscoreandminscoremessage\n");

printf("othernumberexit!

\n");

printf("\n");

printf("pleaseinputnumber:

\n");

scanf("%d",&p);

 

switch(p)

/*

用开关语句SWITCH进行选择*/

 

选择1,求平均分*/

case1:

ave(stu);break;/*

case2:

paixu(stu);break;/*选择2,求总分按降序排列*/

case3:

search(stu,m);break;/*选择3,求按姓名查找学生的信

息*/

case4:

maxandmin(stu,m);break;/*选择4,求各科的最高分和

defult:

q=1;exit(0);

}

}

getch();

}

voidave(structstudentstu[])/*求学生的平均分*/

{

inti;

printf("1findaveagescore:

\n");

printf("num\tname\tsum\tave\n");

for(i=0;i

{stu[i].sum=0;

stu[i].sum+=stu[i].math;

stu[i].sum+=stu[i].chinese;

stu[i].sum+=stu[i].english;

stu[i].ave=stu[i].sum/3;

printf("%d\t%s\t%.0f\t%.1f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].ave);

}

}

voidpaixu(structstudentstu[])/*sumscoreline*/

{

inti,j,a;floatt;charb[10];

printf("2findsumscorepaiming\n");

for(i=0;i

stu[i].no=i+1;/*geimingcifuchuzhi*/for(i=0;i

for(j=i+1;j

if(stu[i].sum

{a=stu[i].num;stu[i].num=stu[j].num;stu[j].num=a;t=stu[i].sum;stu[i].sum=stu[j].sum;stu[j].sum=t;

strcpy(b,stu[i].name);

strcpy(stu[i].name,stu[j].name);

strcpy(stu[j].name,b);/*运用字符串复制函数交换学生的姓名*/

printf("num\tname\tsum\tno\n");

for(j=0;j

{printf("%3d\t%s\t",stu[j].num,stu[j].name);

printf("%.0f",stu[j].sum);

printf("\t%d\n",stu[j].no);

}

}

voidsearch(structstudentstu[])/*searchstudent'sname*/

{

inti;

charn[10];

printf("3findstudentnameoutputaboutstudentmessage\n");

printf("inputname:

\n");

scanf("%s",n);

for(i=0;i

name*/

if(strcmp(n,stu[i].name)==0)/*用字符串比较函数进行比较*/

{

printf("num\tname\tsum\tave\tmath\tchinese\tenglish\n");

printf("%d\t%s\t%.0f\t%.1f",stu[i].num,stu[i].name,stu[i].sum,stu[i].ave);

printf("\t%d\t%d\t%d",stu[i].math,stu[i].chinese,stu[i].english

);

break;/*分别输出要查找的学生的学号,姓名,总分,平均分,和各科的成绩*/

}

}

Voidmaxandmin(structstudentstu[])

/*输出各科学生的最高分和最低分*/

{

inti,a=0,b=0,c=0,d=0,e=0,f=0;

intmaxm,maxc,maxe,minm,minc,mine;

printf("4findthemaxscoreandminscorestudent's

for(i=0;i

{

if(stu[a].mathstu[i].math)b=i;minm=stu[b].math;if(stu[c].chinesestu[i].chinese)d=i;minc=stu[d].chinese;if(stu[e].englishstu[i].english)f=i;mine=stu[f].english;

}

printf("the

message\n");

max

score\n\nnum\tname\tmath\tchinese\tenglish:

\n");

printf("%d\t%s\t%d\n",stu[a].num,stu[a].name,maxm);

printf("%d\t%s\t\t%d\n",stu[c].num,stu[c].name,maxc);

printf("%d\t%s\t\t\t%d",stu[e].num,stu[e].name,maxe);

printf("\n");

printf("theminscore

\n\nnum\tname\tmath\tchinese\tenglish:

\n");

printf("%d\t%s\t%d\n",stu[b].num,stu[b].name,minm);

printf("%d\t%s\t\t%d\n",stu[d].num,stu[d].name,minc);

printf("%d\t%s\t\t\t%d",stu[f].num,stu[f].name,mine);

}

《一》输入学生信息(学号,姓名,各科的成绩)

《二》编译成功进入主菜单:

《三》选择1对学生的成绩求总分,平均分:

《四》选择2对学生信息排序

《五》选择3输入要查找的学生的姓名(这里找的是zj)

《六》选择4求各科成绩的最高分和最低分的学生的信息:

六、感想

现在,我终于把大作业做好了,虽然做这次作业我花了很多时间但是我十分的高兴,因为收获很多,从开始思路的模糊混乱,到最终的清晰整齐。

我认为本次作业综合了本学期几乎所有的知识点,要想顺利的完成这次作业必须要牢固的掌握所学的知识点,细节决定成败,编程的过程中一定要仔细,避免出现基础的错误,比如根据不同的数据类型,输入输出的格式控制符也不同。

当编程过程中遇到困难的时候要多看一些书,与同学进行讨论,多请教老师,多思考,通过不断的交流学习,就能对知识的理解更加深刻,并提高自己的编程能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2