




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 系统需求说明书1.1系统软件界面介绍1.1系统界面介绍本系统的软件界卖弄是使用C语言编译生成的一个系统操作菜单。操作菜单界面总共有七个选项可以供用户操作选择,分别为策划给你记录入、成绩查询、成绩删除、成绩修改、成绩统计、成绩查询、显示所有信息、退出系统。菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入0-6中的任意数字,系统便会进入相应的功能操作。如果出现错误操作,系统会给出输入错误请从新输入等提示或者自动跳出回到主菜单界面。1.2系统设计要求本系统设计要求使用C语言以及数据与结构的知识点对系统进行编译。要求学生熟练掌握数据结构的线性表和链表,以及C怨言的文件读一些操作,结构体、
2、指针等知识点,并且学以致用,熟练应用。在处理数据时要求采用线性表存放成绩信息,结点的数据域可包括:班级、学号、姓名、课程名称、选课学期和成绩,程序退出时采用文件的形式永久保存成绩信息。1.3系统设计要求系统的设计主要从以下几大块进行设计体现:头文件的定义,包括数据结构中的函数头、结构体的定义,进行一个总体的规划布局。将与学生有关的个人信息如班级、学号、姓名等都定义为一个节点型的数据然后在创建链表和指向各个数据的节点。利用抽象数据类型将不同类型的数据进行管理!其次是主函数的定义和设计,主函数申请并创建一个链表,然后将系统所有的函数功能通过Switch条件语句进行统筹,从而实现对各个子函数的调用。
3、并且通过文件读写将系统的数据保存到文件当中。最后便是系统中各个函数块的功能实现。在写子函数时必须统筹兼顾,考虑到各个方面。入系统类存的合理分配,如果内存一旦出错系统就回崩溃,信息就有可能出错。2 系统的分析与设计2.1系统分析系统的主要工作流程图如下,当进入操作主菜单界面时,会有相应的不同的操作选项供用户选择,但操作完成后就晚会到系统主菜单。主菜单Switch1成绩录入2成绩修改3删除成绩4成绩统计5成绩查询6显示信息7退出系统程序结束图2.1 系统操作流程图2.2系统功能分析系统主要石油几大函数块来实现整个系统的功能。1)学生个人成绩信息录入当用户选择第一项操作时,便进入学生成绩录入的函数。
4、其流程图如下:输入姓名输入班级输入学号成绩录入返回主菜单输入分数输入学期输入科目图2.2 成绩录入操作流程图2)学生成绩修改其流程图如下:成绩修改输入要修改分数输入要修改学生学号返回主菜单图2.3 成绩录入操作流程图3)学生成绩删除其流程图如下:成绩删除返回主菜单删除输入要删除学生学号图2.4 成绩删除操作流程图4)学生成绩统计其流程图如下:成绩删除统计方式1统计所有班级1统计某个班级输入查询班级返回主菜单图2.5 成绩统计操作流程图5)学生成绩查询其流程图如下:成绩查询查询方式2班级成绩查询1个人成绩查询输入查询学生学号输入查询班级返回主菜单图2.6 成绩统计操作流程图6)所有学生成绩信息显
5、示其流程图如下:返回主菜单成绩显示图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;/班级不
6、及格的人数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, Numbe
7、r) 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, Cl
8、ass);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
9、 = 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,
10、 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 Numb
11、er20;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-;retu
12、rn;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
13、, 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);/统计某个班级所有学生该函数实现了对所有学生或者某个班级学生的优秀率和及格率进行统计并
14、输出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)/显示输出所有
15、学生信息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 系统功能主菜单界
16、面实现图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. 成绩修改:在本操作中,用户可根据学
17、生学号访问并修改学生成绩退出系统时总动保存修改后的学生成绩。3. 删除信息:再此目录下,用户根据学号访问到要删除的学生,并删除其所有个人信息。4. 成绩统计:在此操作中,用户可以根据提示分别统计所有班级所有学生和每个班级所有学生的优秀率和及格率。5. 成绩查询:在此操作中,用户可根据某个学生的学号查询该学生的班级、科目、考试成绩等个人信息;也可以根据班级名称查询某个班级的所有学生的信息。6. 显示所有信息:该操作会读取文件当中所存储的所有学生的个人信息,并输出到显示屏幕。0退出系统:用户只要按0键便会退出操作系统。6 总结两周时间的数据结构课程设计终于结束,在整个课程设计的过程当中,从前期两天
18、的任务理解,思考大致框架和程序设计思路,然后后再通过查询相应的资料,上网搜寻一些相应的程序学习其设计的思路方法。在准备充分后便开始进行代码编写 ,首先定义链表、结构体、主要功能的函数块等,将大的框架先准备完备,前期设计就算初步完成了。接下来便是根据任务书题目当中的具体要求,一步一步实现具体的功能。在这期间出现不少问题,有没有掌握到的知识,如对快速排序没有掌握,从而不知道该如何怎样快速显示出所有学生的信息;有因马虎大意而导致的小错误,如文本录入是学生信息数目没有录入够,而导致最终读取显示学生信息时出现乱码,死循环等;也有思考不够全面等造成的一系列困难。但还是在经过一番思路整理,请教老师和同学自己困惑、不懂的地方,然后在一步步的修改和完善,一次次的调试和优化,从而实现所有的功能和要求,最终终于将程序顺利运行! 7 参考文献1 吴伟民. 结构(C语言版). 大学出版社 20002 程杰. 大话数据结构. 清华大学出版社 2011.63 谭浩强. C程序设计(第三版). 清华大学出版设 20084 苏仕华.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国炖牛羊肉香料市场分析及竞争策略研究报告
- 2025至2030年中国冬瓜盅行业投资前景及策略咨询研究报告
- 青少年劳动教育夏令营工作计划
- 2025年铝塑复合散热器项目可行性研究报告
- 不同土壤条件对稻米食味品质的影响研究
- 2025年杂木粉碎多用机项目可行性研究报告
- 冀教版四年级数学家长辅导计划
- 一年级组长班级管理计划
- 食堂承包经营合作合同
- 苏教版四年级下册课外活动复习计划
- 生物信息学中的序列比对与比对分析-全面剖析
- 2025-2030国内干式真空泵行业市场发展现状及竞争格局与投资发展前景研究报告
- 《关于进一步强化食品安全全链条监管的意见》解读学习课件(2025年3月颁发)
- 预防合同诈骗
- 王庄矿5.0Mt-a新井设计 - 厚煤层回采巷道支护技术研究
- 2025年电力电子技术试题及答案
- 2025年安全生产考试题库(安全知识)安全教育与培训试题册
- ISO 37001-2025 反贿赂管理体系要求及使用指南(中文版-雷泽佳译-2025)
- 第18课 清朝的边疆治理 课件 七年级历史下册 人教统编版2024版
- 砭石疗法与传统中医理论的关系及发展
- 浙江台州历年中考语文文言文阅读试题33篇(含答案与翻译)(截至2023年)
评论
0/150
提交评论