C语言编写方案-学生成绩管理系统.docxVIP

  • 1
  • 0
  • 约1.76万字
  • 约 28页
  • 2021-02-05 发布于天津
  • 举报
笑山皿语言程序设计》课程综合案例 常州信息职业技术学院 笑山皿语言程序设计》课程综合案例 常州信息职业技术学院 第 第 PAGE #页共25页 星沁3《 星沁3《C语言程序设计》课程综合案例 常州信息职业技术学院 第 第 PAGE #页共25页 难易程度 中等 开发语言 C 开发工具 操作系统:Win dows XP 或更咼 开发平台:VC++ 6.0 关键字 学生成绩管理 《C语言程序设计》课程综合案例 案例03学生成绩管理系统 3.1需求分析 在对学生成绩管理系统进行需求分析的过程中,需要确定系统的主要功能,对软件开发的主要目的、 软件的使用领域和有关该软件开发的软硬件环境进行详细的分析。 3.1.1系统概述 学生成绩管理系统主要用于对学生的学号、姓名及各项学科成绩进行增、删、改、查等操作。系统给 用户提供了一个简单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。 3.1.2系统运行环境 一、 硬件环境 处理器:In tel Pen tium 166 MX 或更高 内存:32MB 硬盘空间:1GB 显卡:SVGA显示适配器 二、 软件环境 操作系统:Win dows 98/ME/2000/XP 3.1.3功能需求描述 输入学生信息:用户根据提示输入学生的学号、姓名、各科成绩,并由系统计算总分和平均分, 并设置名次的初始值为 0。可一次性输入多条学生记录。 查找学生信息:按照学生姓名查找学生信息,如果存在,则提示用户找到并输出查找结果。 插入学生信息:插入在指定学号的记录前,先查找指定学号是否存在,若存在,直接插入在此记 录前,若不存在,则插入在所有记录最后。 4?修改学生信息:提示用户输入要修改的学生学号,查找该学号是否存在,成功则允许修改该学生 的姓名、学科成绩等主要内容,并重新计算总分和平均分;失败,显示没找到。 5.删除学生信息:提示用户输入要删除的学生学号,如在,则删除,若没有,则提示相应信息。 6?保存信息至文件: 将所有的学生成绩信息保存到磁盘文件中,以方便用户管理。 7?读文件:将磁盘文件中的数据读到内存以供用户进行查询、修改、删除、添加、排序等操作。 学生成绩排序:根据学生成绩的总分进行降序排列,并将排序结果显示给用户。 计算学生总分和平均分:计算每位学生的总分和平均分,并计算所有学生的总分和平均分。 文件备份:将磁盘文件做一个备份文件,以防止数据意外丢失。 3.2总体设计 3.2.1设计思路 程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构 具有同样的重要性。在管理程序中,若使用静态数组保存数据,则会占用连续的存储空间。它的缺点是需 要预先估计记录大小, 如果估计得过大,则浪费空间,如果小了,不容易扩充。特别是当需要动态变化时, 例如插入数据和删除数据等操作需要移动数据,容易出错。所以我们使用单链表结构来管理学生成绩,这 样,不用事先估计学生人数,方便随时插入和删除学生记录,且不必移动数据,实现动态管理。代价是牺 牲一部分空间用来存放表示结点关系的指针。当然,链表的灵活性也带来了管理的复杂性。 3.2.2系统模块结构图 本程序利用单链表存储结构完成对学生成绩的动态管理,其基本功能模块如图 3-1所示。 学生成绩管理系统 输入记录模块更新记录模块统计记录 模块输出记录模-T—?从文件读入从键盘输入查询记录)( 总图3-1基本功能模块图输 出 输入记录 模块 更新记录 模块 统计记录 模块 输出记录模 -T —? 从文件读入 从键盘输入 查询记录 )( 总 图3-1基本功能模块图 输 出 至 1屏 幕 文件备份 3.2.3数据结构设计 将一个学生当作一个结点,这个结点的类型为结构体,结构体中的域表示学生的属性,每个结点除了 笑血S 笑血S《C语言程序设计》课程综合案例 常州信息职业技术学院 第 第 PAGE #页共25页 笑《 笑《C语言程序设计》课程综合案例 常州信息职业技术学院 第 第 PAGE #页共25页 存放属性外,还存放结点之间的关系,即存放指向后继结点的指针。结点结构如下: #define N 3 //定义课程门数,可以根据情况设定 typedef struct stude nt// 定义数据结构 { char no[10]; // 学号 char name[20]; // 姓名 float score[N]; // 各门课成绩 float sum; // 总分 float ave;// 平均分 int order;// 名次 struct student *next;//指向后继结点的指针 }STU;〃结构体类型名 3?2?4功能模块设计 、main()主函数 mai n()函 mai n()函 0-12 程序采用模块化设计,

文档评论(0)

1亿VIP精品文档

相关文档