1、 C C 语言课程设计报告语言课程设计报告 学生成绩管理系统学生成绩管理系统 学 院 计算机学院 专 业 软件工程(4)班 年 级 姓 名 学 号 教 师 一一.设计题目设计题目 学生成绩管理系统 二课程设计目的二课程设计目的 了解软件工程中的一些系统分析,模块分析,代码设计的概念,利用 WIN-TC 实现学 生成绩管理系统的录入、 查询、 删除、 统计等基本操作, 使用单链表结构实现学生成绩管理, 了解数据库管理的基本功能,掌握 C 语言中的结构体、指针、函数(系统函数、自定义函 数) 、文件操作等知识。通过对系统的分析和设计,进一步巩固 C 语言的学习,以提高对开 发环境的进一步认识和综合
2、编程能力。 三三 系统功能系统功能 1学生基本情况录入。 2 能够对已经录入的数据进行显示。 3能够进行数据的插入。 4删除基本数据的相关信息。 5复制基本数据的相关信息。 6能够从文件中读入记录。 7对输入的数据进行保存。 8可进行姓名的查询。如:姓陈的同学。 9可进行基本数据的统计计算。如: 统计每个学生各门功课的平均成绩及总分,根据总分进行名次排列。 对数据进行分类合计处理,统计个班级的总分,总平均分。 四系统功能模块结构图四系统功能模块结构图 本程序利用单链表存储结构完成对学生成绩的动态管理,其基本功能模块如下图所示: 图 1 程序功能模块结构图 五程序设计及各模块函数功能简述五程序设
3、计及各模块函数功能简述 1数据结构数据结构 链表是线形表的一种,线形表分为顺序存储结构和链式存储结构。线形表的顺序存储 结构的特点是逻辑关系上相邻的两个元素物理位置上也相邻, 因此可以随机存取表中任一元 素。 链式存储结构的特点是用一组任意的存储单元存储线形表的数据元素。 链表的最大的优 点是对表的添加、删除、查找、排序等操作比较方便,因此采用链表来存储学生相关信息。 且对结点的定义如下: 主程序 1.输入成绩记录 0.对表进行初始化 2.从表中删除记录 3.显示所有记录 4.按姓名查找记录 5.保存记录到文件 6.加载文件 7.计算总分和均分 8.插入记录到表中 9.复制文件 10.按分排序
4、 11.追加记录 13.分类合计 12.索引 15.版本信息 14.退出系统 typedef struct z1 /*定义数据结构*/ char no11; /*10 位学号*/ char name15; /*姓名*/ int scoreN; /*成绩*/ float sum; /*总分*/ float average; /*平均分*/ int order; /*排名*/ struct z1 *next; STUDENT; 2.main()主函数主函数 主函数是程序入口,采用模块化设计。首先在主程序中打印欢迎界面,声明一些必要变 量,作一无限循环程序,循环体为一开关语句,该语句设置一个断点,其
5、条件值是通过调用 主菜单函数得到的返回值,根据该值,调用相应的功能函数,同时设置一个断点,当返回值 为一定条件时结束程序。 3menu_select()主菜单主菜单 为了美化界面,制作单边框窗口,在窗口中显示主菜单。通过 putch()输出图形符号的 ASCII 码值(十六进制) ,达到显示的目的。 利用 Windows 函数制作显示窗口,该窗口与边框位置,大小基本一致,通过过仔细计 算且多次调试后得到其坐标值,用函数 gotoxy()来实现光标的移动。设置文本和背景色输出 菜单项。恢复原窗口,设计输入选择项,返回主函数。相关的一些函数如下: window、textbackground、clr
6、scr、textcolor、cprintf、bioskey、gotoxy、gettext、puttext、 putch。 putch(0xda); /*输出左上角边框*/ putch(0xc4); /*输出上边框水平线*/ putch(0xbf); /*输出右上角边框 */ gotoxy(10,i);putch(0xb3); /*输出左边的垂直线*/ gotoxy(63,i);putch(0xb3); /*输出右边的垂直线*/ putch(0xc0); /*输出左下角边框*/ putch(0xc4); /*输出下边框水平线*/ putch(0xd9); /*输出右下角边框*/ 对菜单选项的选择是利用移动光标按回车键进行选择。 4init()初始化初始化 单链表需要一个头指针来指向表的第一个结点, 对单链表的访问是从头指