ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:245.35KB ,
资源ID:19619843      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19619843.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计报告学生成绩记录簿文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计报告学生成绩记录簿文档格式.docx

1、 4.将子函数与主函数相连即可。该程序可以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能; 还可以求出平均成绩,并排序2.1程序系统的结构2.2程序流程图课程编号查询学生成绩学号查询姓名查询查询班级成绩2.3功能 成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 100 之间的整数,学分: 1 5之间的实型数。􀁺 添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示; 查

2、询(班级或个人)成绩: 查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。 查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。拓展功能:a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示;b) 每次修改的数据写入文件2.4性能方便,灵活,直观,易用输入项:char name10 设置学生名称long int id 定义学号为长整型float avg 平均分为实数输出项 int m1,m2,m3,score,xf; 定义整型 float avg; 以浮点型输出平均分主程序提供一个界面,允许

3、用户选择。使用switch语句,用时直接输入数字即可。增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”时结束。删除函数,功能是删除,分为两步,先找后删。找,用strcmp函数 来做如果找到记录i值,反之记为-1;删除可以从i项开始将数组的后一项赋值给前一项。前一项自动被删掉。这样完成删除。查询函数与之类似,将删除改为输出即可;求平均值函数与查询类似只是输出时只输出平均值而已。按平均值排序只要加一个排序函数即可。退出函数什么都不写,即可。 No Yes32 算法本程序参考了冒泡法其代码结构为:For(i=0;ik;i+) For(j=i;jb) 其中也多次用到了循环和判断结构3 运

4、行结果及说明1开始时2添加3删除4查询学生成绩(1)按名字查询(2)按学号查询4查询班级成绩5写入文本文件6读取文本文件4 课程设计总结短短的俩周已经过去了,在此我将交出我一周的成果,我真是百感交错1 原先写程序直接编,条理性太差。如果先做一个流程图就条理很多。2 学会了将文件存入和读取,并学会在文件中加入信息和删除信息。3 我在查找学生姓名时遇到困难,从课本上找到了一个函数 strcmp,解决了问题困难: 我在定义学生的学号时首先用整型%d。发现输出与录入不同。改用长整型%ld仍然不行。但是字符型%s却可以做到。! 事实上,与过去相比,我认为这短短的一周给我的感悟更为强烈。 在此,首先我要感

5、谢 老师,是 老师把我带进了这一门,俗话说的好“万丈高楼平地起”,所以说,基础很重要。而 老师讲课认真,讲也很透彻,使我们能较好的理解这门课,可以跟紧课堂进度,是我们有机会能打下结实良好的基础。而且 老师在平时也鼓励我们多提问,在我们遇到问题时 ,富有耐心地为我们解答。在此再次感谢老师对我们不辞操劳的讲解!谢谢!一开始,当我第一眼看到这课程设计的时候,我感到十分的“痛苦” ,老实说,在还未进行编程之前,我就感到这与我们之前的编程完全不一样,与这次相比,以前的上机实验就像是小孩子玩得,一点技术含量也没有。以前的那些实验只要看看书,花上一二个小时,基本就可以完成了,而且以前的小程序最多也不过二三十

6、行,不像这次要百来行。从中可见它的难度,从而联想到那些专业编程员,我更深刻感到自己的不足。由于之前从未进行过如此大的编程,所以一开始根本没头绪,后来只好用死办法,像写作文一样,首先先在纸上列出大致的提纲,然后再一个个慢慢延伸展开,最后再输入计算机,用它来运行。可惜不运行还好,一运行只见一片的红色错误提示。有些错误很简单,很好改,是由于自己的粗枝大叶引起的,比如:有些字符未定义,漏了一个“;”等。但也有些高深莫测的问题,例如:当我好不容易把程序运行出来后,却发现当我选择删除这一项时,会发现不论我选择是按学号删除还是按姓名删除都不会出现我所要删除的内容,而是直接询问确定删除请按1。又或者是当我添加

7、时是添加了三个同学的成绩,但当我查询全班成绩时,却只有两位同学的成绩。后来在百思不得其解之下,我只好向周围同学寻求帮助,最终在大家的帮助之下才解决的,诸如此类的问题还不少!有的已经解决,但有些还未,可惜时间不够,也只能如此。经过这一周的课程设计,我发现我懂得了很多,它使我在编程时更仔细了,也使我学会了向周围人求教,培养了我自我学习,独立思考。并且 ,使我更体会到了和高中的不一样,一切靠自觉,没有人会跟在你后面一直催你,告诉你该怎样怎样。同时,我也更加了解到自己的不足,基础严重不扎实。虽然这门课快结束了,但我会努力在假期中把自己的基础补好,期待在下次的课程设计时能够得心应手!参考文献:1谭浩强.

8、 C程序设计(第三版) . 北京:清华大学出版社, 2005 2谭浩强. C程序设计题解与上机指导(第三版) . 北京:3 Herbert Schildt. C语言大全(第四版). 北京:电子工业出版社, 2004 4Samuel P.Harbison ,Guy L.Steele. C语言参考手册(第5版). 北京:机械工业出版社,2003 5张建勋. C语言程序设计教程. 北京:清华大学出版社, 2008.2 6崔武子. C程序设计教程(第2版). 北京:清华大学出版社, 2007.6(第2版) 7K.N.KingC语言程序设计:现代方法(第2版)北京:人民邮电出版社,2010原代码解析:#

9、include stdlib.hstring.h#define MAX 1000struct Lesson char LessonName100; char LessonNumber100; int LessonMark; float LessonCredit;struct Student char Name100; char Number100; int LessonCount; struct Lesson L100;struct Student SMAX;int StudentCount = 0;void PrintInterface();int Student_Insert();int

10、Student_Delete();void Student_Select();void Class_Select();void WriteFile();void ReadFile();int main() int n; PrintInterface(); scanf(%d, &n); void PrintInterface() while (1) printf(n - );n| 1、添加 |nn| 2、删除 |nn| 3、查学生成绩 |nn| 4、查班成绩表 |nn| 5、写入文本文件 |nn| 6、读取文本文件 |nn| 0、退出 |nn选择操作:,& switch(n) case 1: i

11、f (Student_Insert() printf(n添加成功.回车继续n else n添加失败.回车继续n break; case 2: Student_Delete(); case 3: Student_Select(); case 4: Class_Select(); break; case 5: WriteFile(); case 6: ReadFile(); case 0: exit(1); default:无此功能,请重新选择,按回车确定n return 0;int Student_Insert() int i,j,n;n请输入所添加的学生人数: if (StudentCount

12、 + n = MAX) for (i = StudentCount; i StudentCount + n; +i)nt第%d个学生:n, i - StudentCount + 1);nt学生学号: scanf(%sSi.Number); if(strlen(Si.Number)!=8) printf(输入错误,请重新输入 return 0; nt学生姓名:, Si.Name);nt该学生所修课程数:Si.LessonCount); for (j = 0; j Si.LessonCount; +j)nt第%d门课:, j + 1);ntt课程编号: scanf(, Si.Lj.LessonNu

13、mber); if(strlen(Si.Lj.LessonNumber)!=5) 输入错误,请重新输入!ntt课程名称:,Si.Lj.LessonName);ntt课程成绩:Si.Lj.LessonMark); if(Si.Lj.LessonMark100)ntt课程学分:%fSi.Lj.LessonCredit); if(Si.Lj.LessonCredit5) if (Si.Lj.LessonMark StudentCount)n未找到该学生nn else StudentCount-;void Student_Select() int x; char y100;n输入所查学生信息(1.姓名

14、 2.学号)选择:x); if (x = 1 | x = 2) if (x = 1)n姓名: fflush(stdin); gets(a); if (0=strcmp(Si.Name,a)n学号:%st姓名:%sn, Si.Number, Si.Name);n课程编号t课程名称t课程成绩t课程学分n-n%stt%stt%dtt%fn, Si.Lj.LessonNumber, Si.Lj.LessonName, Si.Lj.LessonMark, Si.Lj.LessonCredit);nn fflush(stdin); gets(y); if (strcmp(Si.Number,y)=0),

15、Si.Lj.LessonNumber,Si.Lj.LessonName, Si.Lj.LessonMark,Si.Lj.LessonCredit);查找完毕.回车继续n getchar();选择错误.回车继续n return;void Class_Select() double x=0,y=0,z=0;n请输入课程编号:学号t姓名t课程名称t课程成绩t课程学分n-n if (strcmp(Si.Lj.LessonNumber,a)=0)%st%st%stt%dtt%fn, Si.Number, Si.Name, Si.Lj.LessonName, Si.Lj.LessonMark, Si.Lj

16、.LessonCredit); z+=Si.Lj.LessonMark; x+; if (Si.Lj.LessonMark = 60) y+;n平均分:%ft及格率:%f%nn, z/x, y/x*100);n查找完毕.回车继续nvoid WriteFile() FILE *fp;n请输入写入的文件地址:nn地址输入格式:例如d:Student.txt:a);n写入中.n if (fp = fopen(a,w) fprintf(fp,%dn,StudentCount);%st%st%dn,Si.Number, Si.Name,Si.LessonCount);%st%st%dt%fn, Si.Lj.LessonNumber,Si.Lj.LessonName, Si.Lj.LessonMark,Si.Lj.LessonCredit);n写入完成.回车继续n fclose(fp);n写入失败.回车继续nvoid ReadFile()n请输入读取的文件地址:student.txt:n读取中.nr) fscanf(fp,StudentCount);%s%s%dSi.Number, &Si.Name,&%s%s%d%fSi.Lj.Les

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1