C语言教学PPT与习题答案第14章解读.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言教学PPT与习题答案第14章解读

第14章 教务管理系统 14.1 主要数据结构设计 14.2 程序界面设计 14.3 各个模块的实现 14.4 小结 14.1 主要数据结构设计 14.1.1 数据库中的表 14.1.2 功能模块的划分 14.1.3 内存文件与头文件 14.1.1 数据库中的表 教务管理系统首先要实现数据库管理。使用C语言实现数据库的框架,首先要解决的是数据库结构的描述以及数据库的存放问题。数据库是数据的集合,它由一个或多个表组成。每一个表中都存储了对一类对象的数据描述,表的每一列描述了对象的一个属性,如姓名、成绩等,而表的每一行则是对一个对象的具体描述。一般将表中的一行称作记录(record)或行(row),将表的每一列称作字段(field)或列(column)。若一个数据库只有一个表,则称之为简单数据库,若数据库由多个相关的表组成,则称其为关系数据库。 对于教务管理系统来说,整个数据库应该包含两个表,分别用来描述学生成绩信息和课程信息,在程序中体现对每个表的简单操作以及表之间的数据访问。其中学生信息可以利用简单的单链表来存放,而课程信息中采用邻接链表表示的图结构来描述。 14.1.2 功能模块的划分 对于一个完整的教务管理系统来说,应该能够实现学生记录的录入、学生成绩管理、学生记录查找、追加、删除、修改、保存以及教学计划的制定等功能。针对这样的需求,可以将整个教务管理系统划分为两大部分。即学生管理和课程管理。 14.1.3 内存文件与头文件 需要定义两个数据类型分别用来描述两个不同主题的数据,一个是学生信息,另一个是课程信息。用这种方式设定数据,方便管理系统对数据进行修改。 头文件chead.h定义各种数据结构体。 14.2 程序界面设计 程序主界面,有两个菜单分别管理学生记录和课程记录。在进入主界面后,可以输入选择选项,来决定进行哪种管理。而系统用到的其他菜单都设计为函数形式,应用的时候调用函数即可。在函数中通过putch()输出图形符号的ASCII码值(十六进制),达到显示的目的。 由print ()及menu()实现。 14.3 各个模块的实现 14.3.1 建立学生记录文件 14.3.2 录入学生成绩记录 14.3.3 计算本学期课程平均成绩 14.3.4 成绩排序 14.3.5 分类统计成绩分布情况 14.3.6 输出成绩 14.3.7 保存学生记录 14.3.8 学生的查找操作 14.3.9 追加学生记录 14.3.10 删除数据库中指定的学生记录 14.3.11 修改学生数据 14.3.12 建立课程信息表 14.3.13 安排课程的授课顺序 14.3.14 安排教学计划 14.3.15 实现教务管理系统 14.3.1 建立学生记录文件 系统使用前应先读出或者建立数据,设计函数根据提示建立学生记录文件,同时保存到内存中的文件。还要实现打开磁盘中的学生文件,将学生记录读入内存。 由init_s ()函数实现。 14.3.2 录入学生成绩记录 实际处理中,成绩的录入和学生记录管理分成不同的部分,设计函数为读入的学生记录录入成绩,同时保存到硬盘。 由input_g ()函数实现。 14.3.3 计算本学期课程平均成绩 成绩录入完毕以后,设计函数计算每门课程的平均成绩,输入成绩以及课程名称。 假设共有M门课程,因此计算每一门课程平均成绩的基本思路,就是循环M次,访问每个同学该门课程的成绩,并进行计算。具体的执行步骤为: (1)设定工作指针,访问学生记录链表。 (2)设定二层循环,访问M门课的每个同学的成绩,外循环为M门课程,内层循环访问每个同学该门课的成绩,成绩累计求和。 (3)退出内循环以后,计算平均值,然后输出成绩信息。 由ave_g ()函数实现。 14.3.4 成绩排序 成绩录入完毕后,设计函数按照每个学生的总成绩排序,排序结束后存盘。 单链表中排序可以按照插入法进行排序,从链表中拆下结点一一插入到新的链表中,保证新链表是有序的,具体的步骤: (1)从单链表中拆下头结点,利用工作指针指向首元结点。 (2)利用循环从工作指针开始逐个拆下结点,按照结点中的总成绩域中数据的大小,插入到新链表中。 (3)依次访问新链表中的结点,填充各个域的值。 (4)排序结束后,输出排序结果并保存。 由sort_g( )函数实现。 14.3.5 分类统计成绩分布情况 成绩录入完毕以后,设计函数统计各个分数段的每门课程成绩分布情况。 假设共有M门课程,统计每门课成绩的分段分布情况,共需要统计3个分数段,分别为大于等于80、大于等于60小于等于79、以及小于60的记录。设计3个函数来实现该功能,函数设计中访问每个学生每门课的成绩,看是否满足所设计的条件,需要用二层循环来设计。在筛

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档