学生成绩管理系统《数据结构》课程设计汇编

上传人:i**** 文档编号:51473799 上传时间:2022-01-26 格式:DOCX 页数:22 大小:250.83KB
返回 下载 相关 举报
学生成绩管理系统《数据结构》课程设计汇编_第1页
第1页 / 共22页
学生成绩管理系统《数据结构》课程设计汇编_第2页
第2页 / 共22页
学生成绩管理系统《数据结构》课程设计汇编_第3页
第3页 / 共22页
点击查看更多>>
资源描述
学习 -好资料1 系统需求说明书1.1 系统软件界面介绍1.1 系统界面介绍本系统的软件界卖弄是使用C 语言编译生成的一个系统操作菜单。操作菜单界面总共有七个选项可以供用户操作选择,分别为策划给你记录入、成绩查询、成绩删除、成绩修改、成绩统计、成绩查询、显示所有信息、退出系统。菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入0-6 中的任意数字,系统便会进入相应的功能操作。如果出现错误操作,系统会给出输入错误请从新输入等提示或者自动跳出回到主菜单界面。1.2 系统设计要求本系统设计要求使用C 语言以及数据与结构的知识点对系统进行编译。要求学生熟练掌握数据结构的线性表和链表,以及C 怨言的文件读一些操作,结构体、指针等知识更多精品文档学习 -好资料点,并且学以致用,熟练应用。在处理数据时要求采用线性表存放成绩信息,结点的数据域可包括:班级、学号、姓名、课程名称、选课学期和成绩,程序退出时采用文件的形式永久保存成绩信息。1.3 系统设计要求系统的设计主要从以下几大块进行设计体现:头文件的定义,包括数据结构中的函数头、结构体的定义,进行一个总体的规划布局。将与学生有关的个人信息如班级、学号、姓名等都定义为一个节点型的数据然后在创建链表和指向各个数据的节点。利用抽象数据类型将不同类型的数据进行管理!其次是主函数的定义和设计,主函数申请并创建一个链表,然后将系统所有的函数功能通过 Switch 条件语句进行统筹,从而实现对各个子函数的调用。并且通过文件读写将系统的数据保存到文件当中。最后便是系统中各个函数块的功能实现。在写子函数时必须统筹兼顾,考虑到各个方面。入系统类存的合理分配,如果内存一旦出错系统就回崩溃,信息就有可能出错。更多精品文档学习 -好资料2 系统的分析与设计2.1 系统分析系统的主要工作流程图如下,当进入操作主菜单界面时,会有相应的不同的操作选项供用户选择,但操作完成后就晚会到系统主菜单。主菜单Switch1234567成成删成成显退绩绩除绩绩示出录修成统查信系入改绩计询息统程序结束图 2.1 系统操作流程图2.2 系统功能分析更多精品文档学习 -好资料系统主要石油几大函数块来实现整个系统的功能。1)学生个人成绩信息录入当用户选择第一项操作时,便进入学生成绩录入的函数。其流程图如下:成绩录入输入学号输入班级输入姓名返回主菜单输入分数输入学期输入科目图 2.2 成绩录入操作流程图2)学生成绩修改其流程图如下:成绩修改输入要修改学生学号输入要修改分数返回主菜单图 2.3 成绩录入操作流程图3) 学生成绩删除其流程图如下:成绩删除输入要删除学生学号删除返回主菜单更多精品文档学习 -好资料图 2.4 成绩删除操作流程图4)学生成绩统计其流程图如下:成绩删除统计方式11统统计计所某有个输入查询班级班班级级返回主菜单图 2.5 成绩统计操作流程图5)学生成绩查询其流程图如下:更多精品文档学习 -好资料成绩查询查询方式12个班人级成成输入查询学生学号绩绩输入查询班级查查询询返回主菜单图 2.6 成绩统计操作流程图6)所有学生成绩信息显示其流程图如下:成绩显示返回主菜单图 2.7 所有学生成绩和个人信息显示操作流程图更多精品文档学习 -好资料3 代码实现3.1创建结构体和链表解释typedef structchar Number20; /学号char Class20;/班级char Name20;/姓名char Subject20; /科目int term;/学期int Score;/分数Node;/ 链表的定义typedef structint count;Node StudentMAX;List;/线性表的定义typedef structchar Class20;/ 班级名字int Acount;/ 班级优秀的人数int Dcount;/ 班级不及格的人数int count;/ 班级总人数ClassInfor;创建一个链表,并定义数据对象;在创建线性表用来计数和存储信息。3.2学生成绩的录入代码解释void Insert(List *L, ClassInfor *S)/成绩录入char Number20;char Class20;char Name20;char Subject20;int Term;int Score;int i, flag = 0;printf(ntttt请输入学号 : );scanf(%s, Number);更多精品文档学习 -好资料getchar();if(strcmp(L-StudentL-count - 1.Number, Number) 0)/录入学号与最后学号进行比较printf(nnttt 不合法学号,学号应大于 %s, L-StudentL-count - 1.Number);return;printf(ntttt请输入班级 : );scanf(%s, Class);getchar();for(i = 0; i = 90)/优秀人数 +1Si.Acount+;if(Score count; i = 0; i-)if(strcmp(L-Studenti.Class, Class) = 0)更多精品文档学习 -好资料strcpy(L-Studenti + 1.Number, Number);strcpy(L-Studenti + 1.Class, Class);strcpy(L-Studenti + 1.Name, Name);strcpy(L-Studenti + 1.Subject, Subject);L-Studenti + 1.term = Term;L-Studenti + 1.Score = Score;L-count+;/所插入班级人数 +1return;elseL-Studenti + 1 = L-Studenti;该函数实现了对学生成绩信息的录入。3.3学生成绩的修改代码解释oid Change(List *L, ClassInfor *S)/成绩修改char Number20;/, Class20;int i, flag = 0;printf(nnttt请输入要修改学生的学号: );scanf(%s, Number);getchar();for(i = 0; i Studenti.Number,Number) = 0)/ 通过比较输入的学号和文件当中存储的学号,然后通过链表访问到该学生。flag = 1;break;if(flag = 0)printf(nnttt请输入正确的学号 !n);return;/ 输出此人信息printf(nnttt班级 : %sn, L-Studenti.Class);printf(nnttt学号 : %sn, L-Studenti.Number);printf(nnttt姓名 : %sn, L-Studenti.Name);更多精品文档学习 -好资料printf(nnttt学期 : %dn, L-Studenti.term);printf(nnttt课程 : %dn, L-Studenti.Subject);printf(nnttt分数 : %dn, L-Studenti.Score);printf(nnttt请输入修改数据结构后的分数: );scanf(%d, &L-Studenti.Score);getchar();该函数块实现对学生信息的修改,通过了比较,然后由链表访问到。3.4学生信息的删除代码解释void Delect(List *L, ClassInfor *S)/删除学生信息char Number20;int i, j, flag = 0;printf(nnt);printf(ttt请输入要删除的学号 : );scanf(%s, Number);getchar();for(i = 0; i count; i+)if(strcmp(L-Studenti.Number, Number) = 0)flag = 1;break;if(flag)for(j = 0; j Studenti.Class) = 0)Si.count-;/该班级人数 -1break;for(j = i; j count - i; j+)L-Studentj = L-Studentj + 1;L-count-;return;printf(ttt没有该学号的学生 n);更多精品文档学习 -好资料该函数通过链表访问实现了对学生信息的删除void Display(List *L)/显示输出所有学生信息int k;for(k = 0; k count; k+)printf(n);printf(班级 : %s , L-Studentk.Class);printf(学号 : %s , L-Studentk.Number);printf(姓名 : %s , L-Studentk.Name);printf(学期 : %d , L-Studentk.term);printf(课程 : %s , L-Studentk.Subject);printf(分数 : %d , L-Studentk.Score);printf(nn);该函数实现了对学生信息的输出。3.5学生成绩统计的代码解释void Search(List *L, ClassInfor *S)/统计函数块int x;printf(nnttt1.统计所有班级 n);printf(nnttt2.统计某个班级 n);printf(nnttt);scanf(%d, &x);getchar();if(x = 1)DisplayAll(L, S);/统计所有班级所有学生if(x = 2)DisplayClass(L, S);/统计某个班级所有学生该函数实现了对所有学生或者某个班级学生的优秀率和及格率进行统计并输出3.6学生成绩查询的代码解释void Find(List *L, ClassInfor *S)/成绩查询函数块int x;printf(nnttt1.个人成绩查询 n);更多精品文档学习 -好资料printf(nnttt2.班级成绩查询 n);printf(nnttt请输入操作 : );scanf(%d, &x);getchar();switch(x)case 1:PersonalFind(L, S);/个人成绩查询break;case 2:ClassFind(L, S);/班级成绩查询break;该函数实现了对学生信息的查询。3.7 所有学生信息成绩显示的代码解释void Display(List *L)/显示输出所有学生信息int k;for(k = 0; k count; k+)printf(n);printf(班级 : %s , L-Studentk.Class);printf(学号 : %s , L-Studentk.Number);printf(姓名 : %s , L-Studentk.Name);printf(学期 : %d , L-Studentk.term);printf(课程 : %s , L-Studentk.Subject);printf(分数 : %d , L-Studentk.Score);printf(nn);该函数通过链表访问实现了对学生成绩的显示。更多精品文档学习 -好资料4 系统功能实现4.1系统功能主菜单界面实现图 4.1 系统操作菜单主页面4.2学生成绩录入界面实现更多精品文档学习 -好资料图 4.2 学生成绩录入操作界面4.3 学生成绩删除界面实现图 4.3 学生信息的删除操作界面4.4 学生成绩统计界面实现更多精品文档学习 -好资料图 4.4 统计所有班级的优秀率和及格率操作界面图 4.5 统计某个班级的优秀率和及格率4.5 学生成查询计界面实现更多精品文档学习 -好资料图 4.6 按学生个人成绩查询操作界面图 4.7 按班级查询学生成绩操作界面4.6 所有学生个人信息成绩显示界面实现更多精品文档学习 -好资料图 4.8 所有学生个人信息成绩的显示更多精品文档学习 -好资料5 系统使用说明书1. 成绩录入:在本操作中,用户可以录入新添加的学生信息和成绩。当用户退出系统时,系统会自动保存新添加的学生信息,并写入文件。2. 成绩修改:在本操作中,用户可根据学生学号访问并修改学生成绩退出系统时总动保存修改后的学生成绩。3. 删除信息:再此目录下,用户根据学号访问到要删除的学生,并删除其所有个人信息。4. 成绩统计:在此操作中,用户可以根据提示分别统计所有班级所有学生和每个班级所有学生的优秀率和及格率。5. 成绩查询:在此操作中,用户可根据某个学生的学号查询该学生的班级、科目、考试成绩等个人信息;也可以根据班级名称查询某个班级的所有学生的信息。6. 显示所有信息:该操作会读取文件当中所存储的所有学生的个人信息,并输出到显示屏幕。0退出系统:用户只要按0 键便会退出操作系统。更多精品文档学习 -好资料6 总结两周时间的数据结构课程设计终于结束,在整个课程设计的过程当中,从前期两天的任务理解,思考大致框架和程序设计思路,然后后再通过查询相应的资料,上网搜寻一些相应的程序学习其设计的思路方法。在准备充分后便开始进行代码编写,首先定义链表、结构体、主要功能的函数块等,将大的框架先准备完备,前期设计就算初步完成了。接下来便是根据任务书题目当中的具体要求,一步一步实现具体的功能。在这期间出现不少问题,有没有掌握到的知识,如对快速排序没有掌握,从而不知道该如何怎样快速显示出所有学生的信息;有因马虎大意而导致的小错误,如文本录入是学生信息数目没有录入够,而导致最终读取显示学生信息时出现乱码,死循环等;也有思考不够全面等造成的一系列困难。但还是在经过一番思路整理,请教老师和同学自己困惑、不懂的地方,然后在一步步的修改和完善,一次次的调试和优化,从而实现所有的功能和要求,最终终于将程序顺利运行!更多精品文档学习 -好资料7 参考文献1 吴伟民 . 结构( C语言版) . 大学出版社 20002 程杰 . 大话数据结构 . 清华大学出版社 2011.63 谭浩强 . C 程序设计(第三版) . 清华大学出版设 20084 苏仕华 . 数据结构课程设计 . 北京:机械工业出版社 2005更多精品文档学习 -好资料8 致谢历经两周的努力,一份关于学生成绩管理系统的数据结构课程设计任务终于完成了。在整个设计过程当中,遇到很多不懂得问题和麻烦,但经过自己的努力,不懂的知识就下来自己上网搜索资料, 查阅相关书籍,和向懂得同学请教, 向老师询问寻求帮助,最终很多问题还是都逐个解决。在此,我要感谢所有帮助我的同学和老师,感谢他们的细心讲解和耐心的指导,从而才使我能顺利的完成本次的课程设计。在本次的课程设计当中,对数据结构有了更进一步的了解和掌握。对自己在程序设计的思路和想法方面有了一定的收获,让自己学到不少东西。再次衷心感谢所有帮助过我的老师和同学。更多精品文档学习 -好资料更多精品文档
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!