2022年C语言课程设计 3.pdf





《2022年C语言课程设计 3.pdf》由会员分享,可在线阅读,更多相关《2022年C语言课程设计 3.pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1C语言课程设计学生成绩统计20 12 年 6 月 8日名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 18 页 -2设计题目:学生成绩统计设计条件:掌握 c 语言的基本知识;能够熟练的应用顺序结构、选择结构、循环结构,能够善于应用结构体数组和对文件的输入输出。设计内容:学期考试结束,统计有 N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。假设某班有:30 人(姓名自定)考试课程有:高等数学、物理、外语、C 语言、德育 5 门课程。将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的
2、功能主要包括3 方面:1输入成绩到文件中2输出成绩3输出不及格学生名单4成绩排序5修改记录6删除记录7插入记录等主函数中对 3 个功能选择(菜单),调用对应的函数完成。下达日期:2012年 5 月 25 号完成日期:6 月 8 号名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 18 页 -3目录1.前言-42.设计思路-43.设计过程-44.程序流程图-65.程序清单-76.总结-17附录 1.源程序-7附录 2.调试与测试-13名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 18 页 -41.前言批完卷子后,面对一数量巨大的成绩时,老师们不免会很头疼。如果有那么一
3、个“学生成绩程序”,有排序、更改等之类的功能,会让老师们的工作轻松很多的。设计这个程序,主要应用了结构体数组和文件这两个知识点,再结合顺序、循环、选择、函数来实现功能。2.设计思路首先建立一个student结构体,把结构体里面的内容写入一个文件中。然后先把主函数main()写好,再把子函数完善好,最后测试、修改,直至最完美状态。3.设计过程一开始先将主要的框架写好,确定没有问题后,再编写功能函数:这里出现了一个问题:#define N 3000#include#include#include int system(const char*string);struct student/声明结构体类
4、型struct student/以下 4行为结构体的成员char name20;float score5;float aver;int cla;void input(struct studentstu);void ji();void prin();void main()char choice,zlq=y;int over=0;struct student stuN,*p=stu;while(!over)/循环语句if(zlq=Y|zlq=y)printf(*功能选择*n);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 18 页 -5printf(1.输入成绩到文件中n);pri
5、ntf(2.输出成绩 n);printf(3.编辑 n);printf(*n);printf(你的选择(1-3):);scanf(%c,&choice);printf(n);switch(choice)/用 switch 来进行选择case1:input(p);break;case2:prin();break;case3:ji();break;default:printf(输入错误!n);continue;void input(struct student stu)/输入成绩printf(inputn);return;void prin()printf(prinn);void ji()/编辑函
6、数printf(jin);输入 1,然后按 enter,会出现两次主菜单,如下图:(修改了很多遍后还是这样,问同学也没有解决掉问题,因为下星期要考试,所以我就没有再去研究,希望老师能原谅)编写子函数时也遇到了很多问题,但是发现大多数的问题是因为名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 18 页 -6一些细节没有注意到,而导致功能不对。4.程序流程图YN开始输出菜单根据菜单输入choice的值选择程序输入输出编辑是 否 返回 主 菜单结束排序输出成绩输 出不 及格 名单返回修改删除插入返回名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 18 页 -75.程序清单
7、各函数的功能和实现:a.输入某班的所有学生的成绩:输入信息包括班级、姓名、各科成绩并写入文件“stud”中;可用函数void input(struct studentstu)来实现。b.输出模块:函数void prin()里嵌套 4 个函数用于排序、输出成绩、输出不及格名单、返回;排序:函数 void list(struct studentstu)只是实现排序的功能,要想输出名单得需再次选择选项“2”。输出:输出学生的信息以及成绩void print(structstudentstu):通过输入班别来查看某个班的相关情况。输出平均分不及格的名单:用函数 void prinot(struct s
8、tudentstu)来实现输出所有平均分不及格的学生的班级及姓名c.编辑模块:函数 void bian()中应用 4 个函数加于循环选择,可以进行选择修改、删除、插入、返回;修改:在函数void change(structstudentstu)里面输入需要修改的学生的班级、姓名及成绩,就可以对某班某个学生的成绩进行修改。删除:用函数 void del(struct studentstu)实现。插入:用函数 void ser(structstudentstu)实现d.判断是否返回主菜单:用判断语言if。附录 1源程序#define N 3000#include#include#include i
9、nt system(const char*string);struct student/声明结构体类型 struct student/以下 4 行为结构体的成员char name20;float score5;float aver;int cla;void input(struct student stu);void print(structstudent stu);void prinot(structstudent stu);void list(struct student stu);void change(struct student stu);void del(struct studen
10、t stu);void ser(struct student stu);void bian();名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 18 页 -8void prin();int M;FILE*fp;/定义一个指向文件的指针变量fpvoid main()char choice,zlq=y;int over=0;while(!over)/循环语句if(zlq=Y|zlq=y)printf(*功 能 选 择*n);printf(1.输入成绩到文件中 n);printf(2.输出成绩 n);printf(3.编辑n);printf(*n);printf(你的选择(1-3):)
11、;scanf(%c,&choice);printf(n);switch(choice)/用 switch 来进行选择case1:input(p);break;case2:prin();break;case3:bian();break;default:printf(输入错误!n);continue;if(!over)/在每次运行完选项后,选择退出还是继续printf(nnn返回主菜单吗?n(请输入 Y 或者 N,Y 代表是,N 代表不是.)n);scanf(%s,&zlq);system(CLS);if(zlq=N|zlq=n)printf(欢迎下次使用.n);名师资料总结-精品资料欢迎下载-名
12、师精心整理-第 8 页,共 18 页 -9over=1;if(zlq!=Y&zlq!=N&zlq!=y&zlq!=n)printf(n输入错误!将退出 n);over=1;void input(struct student stu)/输入成绩int i,x,y,c,T,S;printf(输入班别:);scanf(%d,&c);printf(此班一共有多少学生:);scanf(%d,&T);printf(n);M=M+T;S=M-T;printf(请输入%d 位学生的信息:姓名、课程:高等数学、物理、外语、C语言、德育的成绩:n,T);for(i=S;iM;i+)/输入每位同学的情况scanf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言课程设计 2022 语言 课程设计

限制150内