课程设计报告与相关教材.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计报告 需求分析: 本程序要求并利用C语言编程实现信息录入、信息查询、信息删除与修改等基本 功能和排序、信息保存、信息装载等扩充功能。为此首先应该对全体功能进行整体架构。 对于信息记录的所有操作涉及到应用程序与数据库之间的同步通信(Convection)。根据扩展功能的要求,程序可以将外部存储数据记录的文件假拟成数据库文件(Database File),当用户根据主菜单选择相应的操作时,触发一个事件,调用外部存储文件进行加载操作,或者将目前在内存中的数据存放到用户自定义的外部文件中。 应用系统的基本功能应该在所有数据都暂存于内存中时实现。所有基本功能的操作要求有一个完善的数据结构,将所有相关数据都有机联系在一起。一个学生的学号、姓名、以及各门课程的成绩与平均分等信息的总和是一个记录。由于本设计题目没有明确说明课程的设置情况,比如,已有几门课程?以后是否需要新增或者删减课程?因此,本程序暂定为目前只有语文(Chinese)、数学(Maths)、英语(English)三门课程,平均分是这三门课程成绩的算术平均值。 设计题目要求在输入输入学号时,程序提供查询某学生各门课程的成绩及平均成绩的功能。为此,我们应该认识到学号必须是唯一的(现实中也如此,而姓名可以相同),一个学号对应唯一的一个记录(如果该记录存在的话)。这与目前的数据库应用软件(比如Access、Delphi、Orachel、Visual Basic、FoxPro等)的基本原理是一致的,学号可以看成是一个主关键字段,姓名可以看成是一个次关键字段。当用户输入的一个学号值在数据库中查询到时,可以显示出该学号对应的学生的所有信息,包括学号、姓名、各门课程的分数和平均分。用户键入的选择值触发查询所有学生各门课程的成绩这一事件时,程序打印出目前缓存在内存中的所有相关信息。 对信息的删除与修改在信息查询的基础上加以实现。同样,学号作为主关键字段唯一地标识一个记录。如果数据库里面有这个记录,那么程序提供根据用户的选择对该记录进行删除或修改的功能。程序应该提供友好的提示语言,将每一步操作和操作结果告知给用户,以提醒用户最大可能地利用程序进行规范满意的操作。由于操作不当将导致程序运行异常的,程序应该具有相当的健壮性应付可能出现的任何情况,这不是程序运行系统平台的责任,保证程序完善健壮而尽可能地减少Bug是程序员的责任。 在扩展功能的实现方面,应该灵活地根据用户的选择进行相应的操作,并显示出正确结果。而信息记录的保存和修改,涉及到对外部存储文件的操作,应该尽可能地依据多用户、多选择、多应用的原则来进行程序设计。 系统功能模块图解: 系统严格地按照设计要求实现,基本上每次操作都触发一个当前菜单定义的事件。 系统功能模块图如下: 设计说明:(包括各功能模块的设计说明和源码) 主菜单:使用函数void MainMenu()不用返回任何值,只是做告知用户菜单选择界面的输出; 二级菜单:使用函数void RequireRecords()和void SortRecords(),功能类似于主菜单。用于在用户进入到信息查询功能体和对所有数据记录排序功能体时告知用户选择操作。 菜单选择操作:使用函数void SelectMain(Record *head, char s)对一级主菜单选择触发的事件采取相应的操作,使用函数void SelectRequire(PRecord head, char c)和void SelectSort(PRecord head, char c)分别对二级菜单选择实现查询或排序功能出发的事件采取相应的操作。 整个程序设计始终抓住关联所有相关记录的链表表头,函数PRecord Init(PRecord head)用于对在主函数声明的链表表头进行初始化,构造一带有头节点的一空链表。返回的是头节点指针(表头)。 函数PRecord AddRecord(PRecord head, PRecord pr) 使用头插法对每个输入的信息记录紧跟着录入到数据链的头节点之后。返回头节点指针(表头)。 函数PRecord SearchRecord(PRecord head, char *num)用于在已知的数据链中查询用户输入的学号num所对应的记录,如果数据链为空或者查询不到,函数返回值为空指针。否则,返回指向所查询到的记录的指针。 函数void Print_Record(Record *p)用于打印并输出传入的已知指针指向的记录的所有信息(学号,姓名,各门课程成绩,平均分)。 函数void Search_All(Record *head)用于遍历整条数据链,查询所有学生各门课程的成绩并且打印输出。 函数void DeleteRecord(PRecord head, char *num

文档评论(0)

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

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

1亿VIP精品文档

相关文档