C语言程序设计报告-学生成绩记录簿.pdf
《C语言程序设计报告-学生成绩记录簿.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计报告-学生成绩记录簿.pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.上海应用技术学院课程设计20112011 20122012 学年第学年第 2 2 学期学期设计题目设计题目成绩记录簿成绩记录簿院(系)院(系)计算机科学与信息工程计算机科学与信息工程专专业业网络工程网络工程班班级级 11104301 11104301学号学号 1110430115 1110430115学生姓名学生姓名 xx xx设计时间设计时间 2012.06.252012.07.06 2012.06.252012.07.06指导教师指导教师 xxx xxx提交日期提交日期 2012.07.06 2012.07.06.目录目录1.1.概述概述1.11.1 题目题目1.21.2 程序简述程序简
2、述1.31.3 程序性能程序性能2 2 课题分析课题分析2.12.1 程序系统的结构2.22.2 结构流程图结构流程图2.32.3 功能2.42.4性能性能2.52.5输入输出项信息输入输出项信息3 3 功能模块说明功能模块说明3.13.1流程逻辑流程逻辑3.23.2算法算法4 4程序测试,运行结果及说明程序测试,运行结果及说明5 5 课程设计总结课程设计总结6 6附录(参考文献,原代码解析,限制条件,程序测附录(参考文献,原代码解析,限制条件,程序测试)试)6 61 1参考文献参考文献.6 62 2原代码解析原代码解析6.36.3 限制条件限制条件1.1.概述概述1.11.1 题目题目成绩记
3、录簿成绩记录簿1.21.2 程序描述程序描述本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。1.建立一个主界面 2.用 switch 语句进行分类讨论 3.分别进入录入,查询,删除,求平均值等子函数。4.将子函数与主函数相连即可。1.31.3程序性能程序性能该程序可以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;还可以
4、求出平均成绩,并排序2 2 课题分析课题分析.2.1 程序系统的结构添加成绩主函数求平均值删除成绩查询按平均值排序退出2.2 程序流程图程序流程图课程编号.添加成绩查询成绩添加学生学号添加学生姓名添加课程编号添加学生成绩查询学生成绩查询班级成绩查询学生成绩查询班级成绩学号查询姓名查询课程编号.2.32.3 功能功能成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 100 之间的整数,学分:1 5之间的实型数。添加成绩:需要输入学生的学号或姓名、课程
5、编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。拓展功能:a)程序启动时先从文件读入数据,如果文件中没有数据则给出提示;b)每次修改的数据写入文件2.42.4 性能性能方便,灵活,直观,易用2.52.5输入输出项信息输入输出项信息输入项:输入项:char name10char name10设置学生名称设置学生名称long int idlong int id定义学号为长整型定义学号为长整
6、型floatfloatavgavg平均分为实数平均分为实数输出项输出项int m1,m2,m3,score,xf;int m1,m2,m3,score,xf;定义整型float avg;float avg;以浮点型输出平均分3 3 功能模块说明功能模块说明3.13.1.流程逻辑流程逻辑主程序提供一个界面,允许用户选择。使用 switch 语句,用时直接输入数字即可。增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”时结束。删除函数,功能是删除,分为两步,先找后删。找,用strcmp 函数来做如果找到记录 i 值,反之记为-1;删除可以从 i 项开始将数组的后一项赋值给前一项。前一项
7、自动被删掉。这样完成删除。查询函数与之类似,将删除改为输出即可;.求平均值函数与查询类似只是输出时只输出平均值而已。按平均值排序只要加一个排序函数即可。退出函数什么都不写,即可。开始输入口令主菜单No选择的序号是否符合需求Yes3 32 2 算法算法本程序参考了冒泡法其代码结构为:For(i=0;ik;i+).添加学生成绩添加班级成绩删除成绩查询学生成绩查询班级成绩写入文件读取文件退出系统.For(j=i;jb)其中也多次用到了循环和判断结构3 3 运行结果及说明运行结果及说明1 1开始时开始时2 2添加添加.3删除4查询学生成绩(1)按名字查询.(2)按学号查询4查询班级成绩.5写入文本文件
8、.6 6读取文本文件读取文本文件4 4 课程设计总结课程设计总结短短的俩周已经过去了,在此我将交出我一周的成果,我真是百感交错1原先写程序直接编,条理性太差。如果先做一个流程图就条理很多。2学会了将文件存入和读取,并学会在文件中加入信息和删除信息。3我在查找学生姓名时遇到困难,从课本上找到了一个函数 strcmp,解决了.问题困难:我在定义学生的学号时首先用整型%d。发现输出与录入不同。改用长整型%ld 仍然不行。但是字符型%s 却可以做到。!事实上,与过去相比,我认为这短短的一周给我的感悟更为强烈。在此,首先我要感谢 老师,是 老师把我带进了这一门,俗话说的好“万丈高楼平地起”,所以说,基础
9、很重要。而 老师讲课认真,讲也很透彻,使我们能较好的理解这门课,可以跟紧课堂进度,是我们有机会能打下结实良好的基础。而且 老师在平时也鼓励我们多提问,在我们遇到问题时,富有耐心地为我们解答。在此再次感谢老师对我们不辞操劳的讲解!谢谢!一开始,当我第一眼看到这课程设计的时候,我感到十分的“痛苦”,老实说,在还未进行编程之前,我就感到这与我们之前的编程完全不一样,与这次相比,以前的上机实验就像是小孩子玩得,一点技术含量也没有。以前的那些实验只要看看书,花上一二个小时,基本就可以完成了,而且以前的小程序最多也不过二三十行,不像这次要百来行。从中可见它的难度,从而联想到那些专业编程员,我更深刻感到自己
10、的不足。由于之前从未进行过如此大的编程,所以一开始根本没头绪,后来只好用死办法,像写作文一样,首先先在纸上列出大致的提纲,然后再一个个慢慢延伸展开,最后再输入计算机,用它来运行。可惜不运行还好,一运行只见一片的红色错误提示。有些错误很简单,很好改,是由于自己的粗枝大叶引起的,比如:有些字符未定义,漏了一个“;”等。但也有些高深莫测的问题,例如:当我好不容易把程序运行出来后,却发现当我选择删除这一项时,会发现不论我选择是按学号删除还是按姓名删除都不会出现我所要删除的内容,而是直接询问确定删除请按 1。又或者是当我添加时是添加了三个同学的成绩,但当我查询全班成绩时,却只有两位同学的成绩。后来在百思
11、不得其解之下,我只好向周围同学寻求帮助,最终在大家的帮助之下才解决的,诸如此类的问题还不少!有的已经解决,但有些还未,可惜时间不够,也只能如此。经过这一周的课程设计,我发现我懂得了很多,它使我在编程时更仔细了,也使我学会了向周围人求教,培养了我自我学习,独立思考。并且,使我更体会到了和高中的不一样,一切靠自觉,没有人会跟在你后面一直催你,告诉你该怎样怎样。同时,我也更加了解到自己的不足,基础严重不扎实。虽然这门课快结束了,但我会努力在假期中把自己的基础补好,期待在下次的课程设计时能够得心应手!6 6附录(参考文献,原代码解析,限制条件,程序测附录(参考文献,原代码解析,限制条件,程序测试)试)
12、参考文献:.1谭浩强.C程序设计(第三版).北京:清华大学出版社,20052谭浩强.C程序设计题解与上机指导(第三版).北京:清华大学出版社,20053 Herbert Schildt.C语言大全(第四版).北京:电子工业出版社,20044Samuel P.Harbison,Guy L.Steele.C语言参考手册(第5版).北京:机械工业出版社,20035张建勋.C语言程序设计教程.北京:清华大学出版社,2008.26崔武子.C程序设计教程(第2版).北京:清华大学出版社,2007.6(第2版)7K.N.KingC 语言程序设计:现代方法(第2 版)北京:人民邮电出版社,2010原代码解析:
13、原代码解析:#include#include#include#include#include#include#define MAX 1000#define MAX 1000struct Lessonstruct Lesson char LessonName100;char LessonName100;char LessonNumber100;char LessonNumber100;int LessonMark;int LessonMark;float LessonCredit;float LessonCredit;struct Studentstruct Student char Name1
14、00;char Name100;char Number100;char Number100;int LessonCount;int LessonCount;struct Lesson L100;struct Lesson L100;struct Student SMAX;struct Student SMAX;int StudentCount=0;int StudentCount=0;void PrintInterface();void PrintInterface();int Student_Insert();int Student_Insert();int Student_Delete()
15、;int Student_Delete();void Student_Select();void Student_Select();void Class_Select();void Class_Select();void WriteFile();void WriteFile();void ReadFile();void ReadFile();int main()int main().int n;int n;PrintInterface();PrintInterface();scanf(%d,&n);scanf(%d,&n);void PrintInterface()void PrintInte
16、rface()int n;int n;while(1)while(1)printf(n-);printf(n-);printf(n|1printf(n|1、添加、添加|n);|n);printf(n|2printf(n|2、删除、删除|n);|n);printf(n|3printf(n|3、查学生成绩、查学生成绩|n);|n);printf(n|4printf(n|4、查班成绩表、查班成绩表|n);|n);printf(n|5printf(n|5、写入文本文件、写入文本文件|n);|n);printf(n|6printf(n|6、读取文本文件、读取文本文件|n);|n);printf(n|0p
17、rintf(n|0、退出、退出|n);|n);printf(n-);printf(n-);printf(nprintf(n 选择操作选择操作:);:);scanf(%d,&n);scanf(%d,&n);switch(n)switch(n)case 1:case 1:if(Student_Insert()if(Student_Insert()printf(nprintf(n 添加成功添加成功.回车继续回车继续n);n);elseelseprintf(nprintf(n 添加失败添加失败.回车继续回车继续n);n);break;break;case 2:case 2:Student_Delete
18、();Student_Delete();break;break;case 3:case 3:Student_Select();Student_Select();break;break;case 4:case 4:Class_Select();Class_Select();break;break;.case 5:case 5:WriteFile();WriteFile();break;break;case 6:case 6:ReadFile();ReadFile();break;break;case 0:case 0:exit(1);exit(1);break;break;default:def
19、ault:printf(printf(无此功能无此功能,请重新选择请重新选择,按回车确定按回车确定n);n);return 0;return 0;int Student_Insert()int Student_Insert()int i,j,n;int i,j,n;printf(nprintf(n 请输入所添加的学生人数请输入所添加的学生人数:);:);scanf(%d,&n);scanf(%d,&n);if(StudentCount+n=MAX)if(StudentCount+n=MAX)return 0;return 0;for(i=StudentCount;i StudentCount+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 报告 学生 成绩 记录簿
限制150内