vc学生成绩管理系统-数据结构课程设计-课程设计_精品.docVIP

vc学生成绩管理系统-数据结构课程设计-课程设计_精品.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

您可能关注的文档

文档评论(0)

seunk + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档