- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vc学生成绩管理系统-数据结构课程设计-课程设计_精品
vc学生成绩管理系统-数据结构课程设计-课程设计
vc学生成绩管理系统-数据结构课程设计
一、需求分析
本演示程序用TC编写,主要用到的数据结构是线性表的链式存储结构。因为学生成绩管理系统需要经常更新,修改数据。根据这个特点我们采用了链式存储结构。它是一种动态存储结构。根据数据的特点,每一条记录包含多个属性,我们定义了一个结构体Student。开发目的如下:能对成绩进行录入和修改;能计算每个学生的平均成绩以及各门功课的平均成绩;能根据学号来查相应的学生成绩;能根据学生成绩的高低进行排名。
1、?输入的形式和输入值的范围:学生的学号和姓名都为字符型,长度分别为6和5。输入的学号最多只能有5位,输入的姓名最多只能有4位。否则会出现乱码。学生的成绩在0-100之内。
2、? 输出的形式:以二进制的形式存储在你指定的硬盘里。
3、?程序所能达到的功能:
每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。
输入功能:可以一次完成无数条记录的输入。
显示功能:完成全部学生记录的显示。
查找功能:完成按姓名查找学生记录,并显示。
排序功能:按学生平均成绩进行排序。
插入功能:按平均成绩高低插入一条学生记录。
保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。
读取功能:将保存在文件中的学生记录读取出来。
有一个清晰美观界面来调用各个功能
????????
4、?测试数据:
num?name?Score1?Score2?Score3
10001?xing?88?98?86
10002?wang?99?69?87
10003?gong?78?99?89
?
?
二、概要设计
为了实现上述程序功能,需要定义结构体的抽象数据类型和全局变量:
ADT Student {
?数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n≥0}
?数据关系:R1={ai-1,ai|ai-1, ai∈D,i=2,…,n}
?基本操作:
??? IntiList(L)
????? 操作结果:构造一个空的线性表L
??? GetElem(L,i,e)
????? 初始条件:线性表L已存在,1≤i≤ListLength(L)。
????? 操作结果:用e返回L中第i个数据元素的值。
??? ListInsert(L,I,e)
????? 初始条件:线性表L已存在,1≤i≤ListLength(L)+1。
????? 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1。
??? ListDelete(L,I,e)
???? 初始条件:线性表L已存在且非空,1≤i≤ListLength(L)。
???? 操作结果:删除L中第i个数据元素,并用e返回其值,L的长度减1。
}ADT Student
下面是我们定义的结构体数组。整个链式存储结构中,所有在存储的记录(一个学生的信息)在物理位置上是不相邻的,是通过指针把各个结点联系在一起。每一个结点包含一条记录,包括学生的学号、姓名、三科的成绩、平均成绩、总分等等,存储下面所定义的结构体数组里面。这个结构体数组贯穿整个系统,可以说是整个系统的核心。
typedef struct stu?????? /*定义结构体数组用于缓存数据*/
{char num[6];
char name[5];
int score[3];
int sum;
float average;
int order;
struct stu *next;
}STUDENT;
三、详细设计
整个系统除了主函数外,另外还有10个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。各个函数的详细设计说明分别如下:
1、 主函数 main()
利用无限次循环for(;;)和switch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
2、 初始化函数 STUDENT???????? *init()
这是一个无参函数,里面只有一个语句,它的作用是使链表初始化,使head的值为NULL。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码!
3、 菜单选择函数 int menu_select();
这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择,中间还显示系统当前的时间。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!
4、 输入记录函数 STUDENT *create()
这是一个无参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入,函数结束后,带回一个指向链表头的指针head。
算法:先声明一个首节点head,并将head-next设为NULL
您可能关注的文档
- 对乳腺癌根治术患者的心理护理毕业论文_精品.doc
- 七年级思想品德下册课本习题答案缩印版_精品.doc
- 关于我国反腐倡廉建设的浅析 毕业论文_精品.doc
- 关于食品安全的论文_精品.docx
- 公文写作范文十三种文体格式(公务员需要了解的)_精品.doc
- 企业中层管理人员管理能力测试题—中层干部案例_精品.doc
- PC聚碳酸酯的应力开裂_精品.doc
- 农业项目贷款评审重点_精品.doc
- 关于加强柜面业务操作风险的思考_精品.doc
- 公路监理工程师 2012公路工程监理工程师考试(合同管理试题)_精品.doc
- 上海海洋大学《海洋环境分析技术》课件-21化学发光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-20分子荧光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-22色谱分离过程.pdf
- 上海海洋大学《海洋环境分析技术》课件-25气相色谱仪与固定液.pdf
- 上海海洋大学《海洋环境分析技术》课件-24色谱定性定量方法.pdf
- 上海海洋大学《海洋环境分析技术》课件-26气相色谱检测器.pdf
- 上海海洋大学《海洋环境分析技术》课件-29液相色谱固定相与流动相.pdf
- 上海海洋大学《海洋环境分析技术》课件-27气相色谱分离条件的选择.pdf
- 上海海洋大学《海洋环境分析技术》课件-28液相色谱仪器与类型.pdf
- 上海海洋大学《海洋环境分析技术》课件-3 原子光谱和分析光谱.pdf
文档评论(0)