1、 C 语言课程设计 报告 题目题目 : 学生成绩管理系统 姓名姓名 : 学号学号 : 班级班级 : 专业专业 : 学院学院 : 指导教师指导教师 : 2008 年年 12 月月 25 日日 一:题目与要求一:题目与要求 (一)、 课程设计题目 学生成绩管理系统的设计与实现 (二)、 课程设计目的 1、 进一步掌握和利用C语言进行程设计的能力; 2、 进一步理解和运用结构化程设计的思想和方法; 3、 初步掌握开发一个小型实用系统的基本方法; 4、 学会调试一个较长程序的基本方法; 5、 学会利用流程图或N-S图表示算法; 6、 掌握书写程设计开发文档的能力(书写课程设计报告); (三)、 设计内
2、容 1、每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。 2、输入功能:可以一次完成若干条记录的输入。 3、显示功能:完成全部学生记录的显示。 4、查找功能:完成按姓名查找学生记录,并显示。 5、排序功能:按学生平均成绩进行排序。 6、插入功能:按平均成绩高低插入一条学生记录。 7、将学生记录存在文件score中。 8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可 能清晰美观! (四)、 设计要求 1、 用C语言实现系统; 2、 利用结构体数组实现学生成绩的数据结构设计; 3、 系统具有增加,查询,插入,排序等基本功能; 4、 系统的各个功能模块要求用函数的形式实
3、现; 5、 完成设计任务并书写课程设计报告。 6、 将学生成绩信息存在文件中。 (五)、提交材料 1、课程设计报告 1)课程设计题目、内容、要求。 2)总体设计(包含几大功能模块)。 3)详细设计(各功能模块的具体实现算法流程图) 4)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。 5)调试分析(包含各模块的测试用例,及测试结果。) 6)总结(课程设计完成了哪些功能,还有哪些地方需要改进,及通过一周 的课程设计有何收获,调试程序的体会等) 二:程二:程序序数据结构说明数据结构说明: 链表的建立模块(一次性输入,输入个数由用户决定,最大可容纳 80 记录,最大数 可以在源程序中改) 。
4、 链表输出模块。 (在屏幕上显示当前链表的数据) 。 修改模块。 删除模块。 插入模块。 查找模块(按姓名查找) 。 插入模块。 排序模块(对记录进行排序,按平均成绩排序) 。 清屏。 10数据结构是这样的:学号只能由数字字符组成,最大可以个字符;姓名由字 符组成,最大可以个字符;三门科目分数都是整型;平均成绩是实型。 11程序中定义了学生的容量为个。容量可以在源程序宏定义中改,本程序宏定义 #define N 50 三三:各个模块的流程图各个模块的流程图 主菜单函数 主介面的流程图如下 清屏 显示一系列功能选项 输入 n 判断 n,(必须是 0) Y N W1=0 W1=1 While(w1
5、=1) 对 n 多分支选择 switch(n); n=1 n=2 n=3 n=4 n=5 n=6 n=7 n=8 n=9 链 表 建 立模块 链 表 输 出模块 修改模块 删 除 模 块 插 入 模 块 查 找 模 块 排 序 模 块 保 存 模 块 清屏 说明: 从该流程图中我们可以看出每个模块结构所对应的功能, 从而能够清楚的了解此程序 的结构网络, 只需把每个模块函数写好存放在对应的模块即可, 这能够大大的提高程序的可 读性。 (一) 、链表建立模块流程图 开辟一个新结点,并使 p,p指向它 读入一个学生数据给 p所指的结点 headNULL,n 当读入的 pnum 不是零 nn N 等
6、于? Y N headp(把 p所指的结点作为第 一个结点) Pnextp(把 p所指的结点连接 到表尾) Pp(p移到表尾) 再开辟一个新结点,使 p指向它 读入一个学生数据给 p所指的结点 表尾结点的指针变量置 NULL 说明:在此建立一个链表用于存放学生信息的结构体。 (二) 、链表输出模块流程图 Phead,使 p 指向第一个结点 Y P 指向的不是尾结点 N 当 p 指向的不是表尾 说明:链表输出是对学生信息输出的函数根据指针 P 所指向的结点而输出对应的学生个人 数据信息。 输出 p 所指向的结点 P 指向下一个结点 (三) 、修改模块流程图 定义 struct student s; int i,n,k,w0=1,w1,w2=0; 调用加载记