数据结构课程设计报告-学生成绩管理系统.doc
文本预览下载声明
学生成绩管理系统设计
一、需求分析
随着社会的发展,学校的规模不断的扩大,日常教学活动中提取相关信息,以反映教学情况。传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。使用计算机可以高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。学生成绩管理系统以计算机为工具,通过对学生成绩管理所需的信息管理,把管理人员和老师从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。
信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。为了适应现代社会人们高度强烈的时间观念,系统软件为教学办公室带来了极大的方便。该软件是以语言为实现语言,其功能在系统内部有源代码直接完成。通过操作,可以了解本软件的基本工作原理。只需输入一些简单的汉字、数字,即可达到自己的目标数据结构形式:链表+二叉排序树。以成绩为节点建立二叉排序树,以学生为节点,以链表形式接在成绩节点之后。
功能:查找(按学号、成绩、姓名)、插入、删除、统计(统计平均成绩、,统计分数段的人数。) #define HEADER3 |----------|---------------|----|----|----|-------|--------|-----|
#define FORMAT | %-10s |%-15s|%4d|%4d|%4d| %4d | %.2f |%4d |\n
#defineDATA p-data.num,p-data.name,p-data.egrade,p-data.mgrade,p-data.cgrade,p-data.total,p-data.ave,p-data.mingci
#define END --------------------------------------------------------------------- \n
2.建立查询菜单,方便软件使用者根据根据自己的需要进行操作:
void menu()
{
system(cls);
cprintf( 学生成绩管理系统 \n);
cprintf( *************************Menu********************************\n);
cprintf(* 1 输入成绩 2 删除成绩 *\n);
cprintf(* 3 查询成绩 4 修改成绩 *\n);
cprintf(* 5 插入成绩 6 统计成绩 *\n);
cprintf(* 7 名次排名 8 保存成绩 *\n);
cprintf(* 9 显示成绩 0 退出系统 *\n);
cprintf(**************************************************\n);
cprintf( 本软件由张进,杨秀玲共同设计,欢迎使用!\n);
}
3.定义与学生有关的数据结构
typedef struct student /*标记为student*/
{
char num[10]; /*学号*/
char name[15]; /*姓名*/
int cgrade; /*C语言成绩*/
int mgrade; /*数学成绩*/
int egrade; /*英语成绩*/
int total; /*总分*/
float ave; /*平均分*/
int mingci; /*名次*/
};
4.由于是动态内存分配空间的数据操作,而非文件I/O,那么在程序一开始的时候首先得建立数据,返回头成绩节点。于是首先要有一个创建数据的函数:Creat()。分析要求,可以得到一些初步的功能函数:插入函数Insert()、查找函数Search()(种:按学号、按姓名)、删除函数Delete()、输出学生信息函数Print()。
1. Creat():以二叉排序树的定义建立树并返回根节点,在输入学生信息的同时判断是否已有该成绩节点,若有则直接链在该成绩的学生节点之后;若无,开辟新空间给此成绩节点,并
显示全部