学生成绩管理系统的设计与实现.doc
《学生成绩管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统的设计与实现.doc(13页珍藏版)》请在咨信网上搜索。
学生成绩管理系统的设计与实现 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 题目 :学生成绩管理系统的设计与实现 一、简介 1.设计目的: 加强自己在课程中学习的相关算法和方法的具体应用,使自己进一步熟悉理解和掌握树的逻辑结构和存储结构的知识,进一步掌握在C或其他语言中应用这些算法的能力。并且在此基础上利用其进行编程与设计,实现程序的设计,进一步提高使用理论知识指导解决实际问题的能力,并在此基础上强化自己的实践意识,提高自己的实际动手能力和创新能力。 2.问题的描述: 设计一个班级学生管理系统,希望可以处理每个学生的学习情况信息。学生学习情况信息包括学号、姓名、年龄、性别、班级、联系方式等,并能使管理人员通过界面完成对班级、学生信息的录入及对数据的查找、浏览。可以实现对学生的成绩的输入,输出,保存,修改,排序。可以添加和删除学生的信息。 输入:一组学生的信息,包括:学号、姓名、年龄、性别、班级、联系方式,成绩。 输出:输出到屏幕,保存到文件。 二、数据结构的设计: 定义一个单链表,储存学生的基本信息 : 学号、姓名、年龄、性别、班级、联系方式,成绩等. struct student { char num[10]; //学号 char name[20]; //姓名 char sex[4]; //性别 int age; //年龄 char Class[4]; //班级 char tele[11]; //电话 int computer; //计算机成绩 int math; //数学成绩 int English; //英语成绩 int totle; //总成绩 }; typedef struct Lnode { struct student data; struct Lnode *next; }LNode,*LinkList; 对学生信息的操作:输入,输出,保存,修改,排序,添加,删除。 void Add(LinkList L)函数, 输入: 从文件读入, fp=fopen(”student”,"wb"); 或从键盘输入。 void Save(LinkList L)保存,输出写入到文件。 fp=fopen(”student”,"ab+”); void Disp(LinkList L),输出到屏幕。 三、功能(函数)设计: 对于这次班级学生成绩管理系统的设计,总体上划分为三个模块实现,功能模块图,函数功能说明,具体功能描述如下: 1、学生管理模块:主要实现的功能为登记、修改某班某个学生的基本情况、删除某班某个学生的基本情况。 2、成绩管理模块:主要实现的功能为登记、修改某个学生某门课的成绩。 3、查询、浏览模块:主要实现的功能为查找、浏览每个学生的基本信息;查找、浏览每个学生的全部成绩信息。 四、界面设计: ⑴、首先进入界面,显示功能菜单; ⑵、输入你所选择的功能代号: 输入1:表示登记学生的信息; 若输入学生的学号为0,则返回选择菜单界面。 输入2:表示删除一个学生的所有信息; ①、 按学号删除; ②、 按姓名删除。 输入3:表示查询一个学生的信息; ①、按学号查询; ②、按姓名查询。 输入4:表示对某一个学生的成绩进行修改; 输入5:表示查看所有学生的信息; 输入6:表示对所有学生的总成绩由高到低进行排序; 输入7:表示保存所有学生的信息; 输入8:显示帮助信息,即显示功能菜单; 输入0:表示退出系统. 五、程序设计: 1、主函数:void main() ①、函数功能:利用函数调用的功能,实现、输出程序设计的最终想要的结果,即是形成一个学生信息管理系统,对所有学生及其所有的信息进行管理. ②、在程序运行的过程中,调用了添加、删除、查询、修改、显示、保存等函数. ③、程序流程图: 开始 输入功能序号 判断输入 做相应处理 提示输入错误 退出系统 是否保存 保存成功 结束 2、添加函数:void Add(LinkList L) ①、函数功能:登记学生的所有相关信息(学号、姓名、性别、年龄、电话、成绩等); ②、程序流程图: 输入学号num strcmp(s->data.num,num)==0 strcmp(s->data.num,num)!=0 结束 输入信息 num=0 num!=0 开始 3、删除函数:void Del(LinkList L) ①、函数功能:删除某个学生的所有相关信息;运行的过程中,调用了LNode* Locate(LinkList L,char findmess[],char nameornumorClass[])函数. ②、程序流程图: 输入学号num r->next=p->next;free(p); r->next=p->next;free(p); 结束 strcmp(p->data.num,num)==0 strcmp(p->data.name,name)==0 开始 输入姓名name 4、查询函数:void Qur(LinkList L) ①、函数功能:查询某个学生的所有信息;运行的过程中,调用了LNode* Locate(LinkList L,char findmess[],char nameornumorClass[])函数。 ②、程序流程图: 输入学号num 输出信息 输出信息 结束 strcmp(p->data.num,num)==0 strcmp(p->data.name,name)==0 开始 输入姓名name 5、修改函数:void Modify(LinkList L) ①、函数功能:对某个学生的成绩进行修改; ②、程序流程图: 输入学号num 结束 strcmp(p->data.num,num)==0 开始 输入修改的成绩 6、排序函数:void sort(LinkList &L) ①、函数功能:利用冒泡排序的思想,对学生的成绩进行由高到低的排序; ②、程序流程图: 开始 结束 t1->data.totle<t1->next->data.totle struct student s = t1->data; t1->data = t1->next->data; t1->next->data = s; 7、保存函数:void Save(LinkList L) ①、函数功能:保存所有登记的学生的所有信息; ②、程序流程图: 开始 结束 while (p) fwrite(p,sizeof(LNode),1,fp)==1 p=p->next;count++; 8、显示函数:void Disp(LinkList L) ①、函数功能:显示系统中存在的学生的相关信息; ②、程序流程图: 开始 结束 while (p) 输出信息 六、运行与测试: 1、测试的数据及其结果: ⑴、进入学生成绩管理系统界面: ⑵、输入测试的数据: 学号 姓名 性别 年龄 班级 电话 计算机成绩 数学成绩 英语成绩 第一个学生:1 1 1 1 1 1 1 1 1 第二个学生:2 2 2 2 2 2 2 2 2 第三个学生:3 3 3 3 3 3 3 3 3 第四个学生:4 4 4 4 4 4 4 4 4 第五个学生:5 5 5 5 5 5 5 5 5 显示学生信息登记的结果: ⑶、测试的数据: 删除一个学生的所有信息。删除:学号1。 显示删除后的结果: ⑷、测试的数据: 查询一个学生的所有信息.查询:学号2. 显示查询的结果: ⑸、测试的数据: 对一个学生的成绩进行修改。修改:学号3,计算机、数学、英语成绩分别为8、9、4。 显示修改后的结果: ⑹、对学生的总成绩采用冒泡排序: ⑺、保存所登记的学生的所有信息: 2、运行与测试期间遇到的问题及其解决办法。 (1).问题1:运行时,在没有头文件〈stdlib。h〉时,用了exit(1)语句,出现了错误; 解决办法:添加头文件<stdlib.h>; (2).问题2:缺少p—>data。totle=p->data。computer+p->data。math+p—〉data.English;,发现总成绩没有发生变化; 解决办法:添加p->data。totle=p—>puter+p->data.math+p-〉data。English; 七、结论: (1)在输入函数中设了一个无限循环,可以输入无数个学生的成绩信息,当学号为0的时候则停止输入。 (2)输入太多个学生的成绩时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,十七左右为最佳。 (3)在输入选项时不能输入字母,否则会死循环,建议不要乱输字母。 (4)刚开始时,先把成绩按总分排序,再插入一个学生的成绩,执行显示功能,虽然插入的学生的成绩能正常插入,但该学生的名次为0。后来,在插入成绩之后,调用排序函数,把所有成绩重新排序一次。 八、设计后的思考: 刚开始学习数据结构这门课时,感觉很难,看书看不懂,老师讲课也听不懂,做作业也不会做,好像什么都学不好,前途一片渺茫。为了学好这门课,为了更好的学习以后的专业知识,为以后的工作打下基础,我必须付出更多的努力。从那以后,我就将大部分的时间花在学习这门专业课上,加倍努力,除了多看课本,专心听课外,还额外的看了相应的课外资料书,遇到不懂得就问同学,与同学互相讨论。 经过一个多学期的奋战,我终于看到了一点点希望:发现自己开始掌握了相应的一部分知识,例如链表、栈和队列、树以及图等知识,而且还学会了磁盘文件保存的知识。尤其是经过了这次的课程设计,我不仅学会了知识,还学会了将专业知识与实际问题联系起来,并且运用专业知识去解决实际问题. 虽然这次课程设计,花了我不少的的时间,但是更重要的是,正是这些时间,让我见识到了数据结构这门课知识的重要性。 通过这次课程设计,我还得到了一个体会,做一个程序,或者开发一个软件,应该着重从它的后台制作入手,不能做出一个中看不中用的程序或者软件。 我相信,这次的课程设计会为我以后从事计算机工作打了一个小小的开头。 九、参考文献: 1、严蔚敏等. 数据结构(C语言版)。 清华大学出版社2004 2、谭浩强. C语言程序设计。 清华大学出版社。 2002 3、李春保. 数据结构教程上机实验指导。 清华大学出版社。 2005 13- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 设计 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文