《C语言知识期末大作业.doc》由会员分享,可在线阅读,更多相关《C语言知识期末大作业.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.*伊犁师范学院计算机科学系实验训项目报告一、小组成员及分工:姓名:张雁学号:09080605041二、指导老师:王慧玲三、说明程序编制要点,以及自己在项目制作中的难点及解决办法:编写的要点:编写N个函数分别用来求平均分;总分按降许序排列;按姓名查找学生的成绩;找出各科最高分的学生姓名,学号等。编写主函数提供不同的选择途径。难点:函数之间的调用,姓名的比较和交换。解决办法:通过参数的传递;用字符串处理函数。 四、说明项目中所涉及的知识点及难点:知识点:基础知识,结构体,选择结构程序设计,循环结构程序设计,数组,字符数组,常用的字符串处理函数,函数的调用。难点:函数的调用,循环程序设计。五、附录
2、源程序:注:必须有一定的注释,说明函数功能以及主要语句所起的作用#include stdio.h#include string.h#define m 5void search(); /*声明按姓名查找学生的信息*/void ave(); /*声明turn out average*/void paixu(); /* 声明score pai mingci*/void maxandmin(); /*声明maxandmin score students number,name and every course score*/struct student /*声明define a struct*/ in
3、t num; /*students number */ char name10; int math,english,chinese; /*three course score*/ int no; /* student mingci*/ float sum; float ave;stum;main() int i; int q=0,p; for(i=0;im;i+) printf(num:); scanf(%d,&stui.num); printf(name:); scanf(%s,stui.name); printf(input score:); scanf(%d,%d,%d,&stui.ma
4、th,&stui.chinese,&stui.english); printf(n); system(cls); while(q=0) printf(n); printf(1 find average scoren); printf(2 find sum score paimingn); printf(3 find student name output about student messagen); printf(4 find the max score and min score students messagen); printf(other number exit!n); print
5、f(n); printf(please input number:n); scanf(%d,&p); switch(p) /*用开关语句SWITCH进行选择*/ case 1:ave(stu); break; /*选择1,求平均分*/ case 2:paixu(stu); break; /*选择2,求总分按降序排列*/ case 3:search(stu,m); break; /*选择3,求按姓名查找学生的信息*/ case 4: maxandmin(stu,m); break; /*选择4,求各科的最高分和最 defult :q=1;exit(0); getch();void ave(str
6、uct student stu) /*求学生的平均分*/ int i; printf(1 find aveage score:n); printf(numtnametsumtaven); for(i=0;im;i+) /*通过循环语句求学生的总分和平均分*/ stui.sum=0; stui.sum+=stui.math; stui.sum+=stui.chinese; stui.sum+=stui.english; stui.ave=stui.sum/3; printf(%dt%st%.0ft%.1fn,stui.num,stui.name,stui.sum,stui.ave); void
7、paixu(struct student stu) /*sum score line*/ int i,j,a; float t; char b10; printf(2 find sum score paimingn); for(i=0;im;i+) stui.no=i+1; /*gei mingci fu chuzhi*/ for(i=0;im-1;i+) for(j=i+1;jm;j+) if(stui.sumstuj.sum) a=stui.num;stui.num=stuj.num;stuj.num=a; t=stui.sum;stui.sum=stuj.sum;stuj.sum=t;
8、strcpy(b,stui.name); strcpy(stui.name,stuj.name); strcpy(stuj.name,b); /*运用字符串复制函数交换学生的姓名*/ printf(numtnametsumtnon); for(j=0;jm;j+) printf(%3dt%st,stuj.num,stuj.name); printf(%.0f,stuj.sum); printf(t%dn,stuj.no); void search(struct student stu) /*search students name*/ int i; char n10; printf(3 fin
9、d student name output about student messagen); printf(input name:n); scanf(%s,n); for(i=0;im;i+) /*use “for circulation” search students name*/ if(strcmp(n,stui.name)=0) /*用字符串比较函数进行比较*/ printf(numtnametsumtavetmathtchinesetenglishn);printf(%dt%st%.0ft%.1f,stui.num,stui.name,stui.sum,stui.ave);print
10、f(t%dt%dt%d,stui.math,stui.chinese,stui.english);break; /*分别输出要查找的学生的学号,姓名,总分,平均分,和各科的成绩*/ Void maxandmin(struct student stu) /*输出各科学生的最高分和最低分*/ int i,a=0,b=0,c=0,d=0,e=0,f=0; int maxm,maxc,maxe,minm,minc,mine; printf(4 find the max score and min score students messagen); for(i=0;im;i+) if(stua.math
11、stui.math) b=i;minm=stub.math; if(stuc.chinesestui.chinese)d=i;minc=stud.chinese; if(stue.englishstui.english)f=i;mine=stuf.english; printf(the max scorennnumtnametmathtchinesetenglish:n); printf(%dt%st%dn,stua.num,stua.name,maxm); printf(%dt%stt%dn,stuc.num,stuc.name,maxc); printf(%dt%sttt%d,stue.n
12、um,stue.name,maxe); printf(n); printf(the min score nnnumtnametmathtchinesetenglish:n); printf(%dt%st%dn,stub.num,stub.name,minm); printf(%dt%stt%dn,stud.num,stud.name,minc); printf(%dt%sttt%d,stuf.num,stuf.name,mine);一输入学生信息(学号,姓名,各科的成绩)二编译成功进入主菜单:三选择1对学生的成绩求总分,平均分:四选择2对学生信息排序五选择3输入要查找的学生的姓名(这里找的是zj)六选择4求各科成绩的最高分和最低分的学生的信息:六、感想现在,我终于把大作业做好了,虽然做这次作业我花了很多时间但是我十分的高兴,因为收获很多,从开始思路的模糊混乱,到最终的清晰整齐。我认为本次作业综合了本学期几乎所有的知识点,要想顺利的完成这次作业必须要牢固的掌握所学的知识点,细节决定成败,编程的过程中一定要仔细,避免出现基础的错误,比如根据不同的数据类型,输入输出的格式控制符也不同。当编程过程中遇到困难的时候要多看一些书,与同学进行讨论,多请教老师,多思考,通过不断的交流学习,就能对知识的理解更加深刻,并提高自己的编程能力。