完整word版C语言期末大作业.docx
- 文档编号:25466167
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:9
- 大小:82.21KB
完整word版C语言期末大作业.docx
《完整word版C语言期末大作业.docx》由会员分享,可在线阅读,更多相关《完整word版C语言期末大作业.docx(9页珍藏版)》请在冰豆网上搜索。
完整word版C语言期末大作业
伊犁师范学院计算机科学系
实验训项目报告
一、小组成员及分工:
姓名:
张雁
学号:
0908*******
二、指导老师:
王慧玲
三、说明程序编制要点,以及自己在项目制作中的难点及解决办法:
编写的要点:
编写N个函数分别用来求平均分;总分按降许序排列;按姓名查找学生的成绩;找出各科最高分的学生姓名,学号等。
编写主函数提供不同的选择途径。
难点:
函数之间的调用,姓名的比较和交换。
解决办法:
通过参数的传递;用字符串处理函数。
四、说明项目中所涉及的知识点及难点:
知识点:
基础知识,结构体,选择结构程序设计,循环结构程序设计,数组,字符数组,常用的字符串处理函数,函数的调用。
难点:
函数的调用,循环程序设计。
五、附录源程序:
注:
必须有一定的注释,说明函数功能以及主要语句所起的作用
#include"stdio.h"
#include"string.h"
#definem5
voidsearch();/*声明按姓名查找学生的信息*/
voidave();/*声明turnoutaverage*/
voidpaixu();/*声明scorepaimingci*/
voidmaxandmin();/*声明maxandminscorestudent'snumber,nameandeverycoursescore*/
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"); printf("4findthemaxscoreandminscorestudent'smessage\n"); printf("othernumberexit! \n"); printf("\n"); printf("pleaseinputnumber: \n"); scanf("%d",&p); switch(p)/*用开关语句SWITCH进行选择*/ { case1: ave(stu);break;/*选择1,求平均分*/ 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 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'smessage\n"); for(i=0;i { if(stu[a].math if(stu[b].math>stu[i].math)b=i;minm=stu[b].math; if(stu[c].chinese if(stu[d].chinese>stu[i].chinese)d=i;minc=stu[d].chinese; if(stu[e].english if(stu[f].english>stu[i].english)f=i;mine=stu[f].english; } printf("themaxscore\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求各科成绩的最高分和最低分的学生的信息: 六、感想 现在,我终于把大作业做好了,虽然做这次作业我花了很多时间但是我十分的高兴,因为收获很多,从开始思路的模糊混乱,到最终的清晰整齐。 我认为本次作业综合了本学期几乎所有的知识点,要想顺利的完成这次作业必须要牢固的掌握所学的知识点,细节决定成败,编程的过程中一定要仔细,避免出现基础的错误,比如根据不同的数据类型,输入输出的格式控制符也不同。 当编程过程中遇到困难的时候要多看一些书,与同学进行讨论,多请教老师,多思考,通过不断的交流学习,就能对知识的理解更加深刻,并提高自己的编程能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 语言 期末 作业