《2022年C语言期末大作业 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言期末大作业 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 伊 犁 师 范 学 院 计 算 机 科 学 系实 验 训 项 目 报 告一 、 小 组 成 员 及 分 工 :姓 名 : 张 雁学 号 : 09080605041二、指导老师:王 慧 玲三 、 说 明 程 序 编 制 要 点 , 以 及 自 己 在 项 目 制 作 中 的 难点 及 解 决 办 法 :编 写 的 要 点 :编 写 N 个 函 数 分 别 用 来 求 平 均 分 ;总 分 按降 许 序 排 列 ; 按 姓 名 查 找 学 生 的 成 绩 ; 找 出 各 科最 高 分 的 学 生 姓 名 , 学 号 等 。 编 写 主 函 数 提 供 不同 的 选 择 途 径 。难 点 : 函
2、 数 之 间 的 调 用 , 姓 名 的 比 较 和 交 换 。解 决 办 法 :通 过 参 数 的 传 递 ; 用 字 符 串 处 理 函 数 。四、说明项目中所涉及的知识点及难点:知识点 :基础知识,结构体,选择结构程序设计, 循环结构程序设计,数组,字符数组,常用的字符串处理函数,函数的调用。难点: 函数的调用,循环程序设计。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 2 五、附录源程序:注:必须有一定的注释,说明函
3、数功能以及主要语句所起的作用#include stdio.h #include string.h #define m 5 void 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*/ int num
4、; /*student s 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; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 3 for(i=0;im;i+) printf(
5、num:); scanf(%d,&stui.num); printf(name:); scanf(%s,stui.name); printf(input score:); scanf(%d,%d,%d,&stui.math,&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 studen
6、t messagen); printf(4 find the max score and min score students messagen); printf(other number exit!n); printf(n); printf(please input number:n); scanf(%d,&p); switch(p) /*用开关语句 SWITCH 进行选择 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - -
7、- 4 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(struct student stu) /*求学生的平均分 */ int i; printf(1 find aveage score:n); pri
8、ntf(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; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 5 printf(%dt%st%.0ft%.1fn,stu
9、i.num,stui.name,stui.sum,stui.ave); void 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;
10、t=stui.sum;stui.sum=stuj.sum;stuj.sum=t; strcpy(b,stui.name); strcpy(stui.name,stuj.name); strcpy(stuj.name,b); /*运用字符串复制函数交换学生的姓名*/ printf(numtnametsumtnon); for(j=0;jm;j+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 6 printf(%3dt%st,
11、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 find student name output about student messagen); printf(input name:n); scanf(%s,n); for(i=0;im;i+) /*use “ for circulation” search student s name*/ if
12、(strcmp(n,stui.name)=0) /*用字符串比较函数进行比较*/ printf(numtnametsumtavetmathtchinesetenglishn); printf(%dt%st%.0ft%.1f,stui.num,stui.name,stui.sum,stui.ave); printf(t%dt%dt%d,stui.math,stui.chinese,stui.english); break; /*分别输出要查找的学生的学号,姓名,总分,平均分,和各科的成绩 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
13、- - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - 7 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.mathstui.math) b=i;minm=stub.math;
14、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.num,stue.name,maxe); printf(n);
15、printf(the min score nnnumtnametmathtchinesetenglish:n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - 8 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); 一
16、输入学生信息(学号,姓名,各科的成绩)二编译成功进入主菜单:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - 9 三选择 1 对学生的成绩求总分,平均分:四选择 2 对学生信息排序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - 10 五选择 3 输入要查找的学生
17、的姓名(这里找的是zj)六选择 4 求各科成绩的最高分和最低分的学生的信息:六、感想现在,我终于把大作业做好了,虽然做这次作业我花了很多时间但是我十分的高兴,因为收获很多,从开始思路的模糊混乱,到最终的清晰整齐。 我认为本次作业综合了本学期几乎所有的知识点,要想顺利的完成这次作业必须要牢固的掌握所学的知识点,细节决定成败,编程的过程中一定要仔细,避免出现基础的错误,比如根据不同的数据类型, 输入输出的格式控制符也不同。当编程过程中遇到困难名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 11 的时候要多看一些书,与同学进行讨论,多请教老师,多思考,通过不断的交流学习, 就能对知识的理解更加深刻, 并提高自己的编程能力。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -
限制150内