当前位置:文档之家› 数据结构课程设计报告-学生成绩管理系统

数据结构课程设计报告-学生成绩管理系统

学院:职业技术学院专业:计算机科学与技术姓名:学号: 062002110311 班级:计科061班实习性质:课程设计实习地点:蔡家关校区国合楼二楼计算机房指导教师:曾劼成绩:学生成绩管理系统设计一、需求分析随着社会的发展,学校的规模不断的扩大,日常教学活动中提取相关信息,以反映教学情况。

传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。

使用计算机可以高速,快捷地完成以上工作。

在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。

学生成绩管理系统以计算机为工具,通过对学生成绩管理所需的信息管理,把管理人员和老师从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。

信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。

计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。

为了适应现代社会人们高度强烈的时间观念,学生成绩管理系统软件为教学办公室带来了极大的方便。

该软件是以C语言为实现语言,其功能在系统内部有源代码直接完成。

通过操作目录,管理者和老师可以了解本软件的基本工作原理。

管理者和老师只需输入一些简单的汉字、数字,即可达到自己管理学生成绩的目标。

在学生成绩管理系统中,需要从大量的日常教学活动中提取相关信息,以反映教学情况。

传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。

使用计算机可以高速,快捷地完成以上工作。

在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。

通过本学生成绩管理系统,可以从一下几个方面减少老师的工作负担和提高学校的管理效率,实现学校的信息化和自动化。

1.应用学生成绩管理系统,把老师从繁杂的学生成绩了登记分数、统计分数、学生排名等等的工作职工解脱出来,把更多的时间和精力用来提高教学质量和学生的辅导工作上,提高学生的学生效率和成绩。

2.应用学生成绩管理系统,可以学校教务处的工作效率,有效的管理学校学生的成绩,更加科学的统计管理学生成绩。

学生成绩管理适用各学校的教学老师用于班上的学生成绩了登录、统计和对班上学生成绩的排名。

学生管理系统以计算机为工具,通过对学生成绩管理所需的信息管理,把老师从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。

二、概要设计数据结构形式:链表+二叉排序树。

以成绩为节点建立二叉排序树,以学生为节点,以链表形式接在成绩节点之后。

功能:查找(按学号、成绩、姓名)、插入、删除、统计(统计平均成绩、,统计分数段的人数。

)学生成绩管理系统是以计算机为工具,通过对教务管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。

软件开发的意图为便于学校和老师的管理,方便查看有关学校及学生的情况。

如教学老师对学生成绩的修改、删除、查找、添加、总分数的统计、总分排名,单科排名等。

成绩管理系统是面向中学的管理系统,其目的是提高老师对学生的科学化管理。

本软件针对学校的管理现状和要求,从理论和应用的角度论述了学生成绩管理信息系统的特点、功能、设计思路。

本系统主要包括五个模块:学生成绩录入、学生成绩查询、学生成绩的添加、修改、统计学生的总成绩、并对其进行排名、求每个学生的平均分等这八个模块基本实现设计。

1.定义头文件,包括标准输入输出函数库、标准函数库、字符串函数库、屏幕操作函数库#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"#define HEADER1 "学生成绩\n"#define HEADER2 " |学号|姓名| C |数学|英语| 总分 | 平均 |名次 |\n"#define HEADER3 " |----------|---------------|----|----|----|-------|--------|-----| "#define FORMAT " | %-10s |%-15s|%4d|%4d|%4d| %4d | %.2f |%4d|\n"#defineDATAp->data.num,p->,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()(2种:按学号、按姓名)、删除函数Delete()、输出学生信息函数Print()。

1. Creat():以二叉排序树的定义建立树并返回根节点,在输入学生信息的同时判断是否已有该成绩节点,若有则直接链在该成绩的学生节点之后;若无,开辟新空间给此成绩节点,并把学生节点链在其后。

2. Insert():方法和Creat()一样,只要指明根节点就可以了。

3. Search():按成绩:只要按二叉排序树的定义就可以找到成绩,然后遍历其成绩节点后的学生链按学号:遍历二叉排序树的方法。

按姓名:遍历二叉排序树的方法。

4. Delet():在查找成绩的时候就可以返回该成绩的节点指针和其父节点指针,那么可以根据二叉排序树的删除定义进行操作。

5. Print():遍历二叉排序树的方法。

6.Tongji():统计该班的总分第一名和单科第一,和各科不及格人数。

三、详细设计一、对整体的设计思想进行构思,并写出软件大概的设计步骤和软件要实现的功能,并对需要的硬件设备和软件进行准备,电脑等相关的设备和资料。

1.打开TC编译器,新建一个文件。

图12.输入源程序,实现学生成绩管理系统的相关功能。

二、软件具体功能的设计方法和步骤。

1、定义整个程序需要的头文件,#include "stdio.h" /*标准输入输出函数库*/#include "stdlib.h" /*标准函数库*/#include "string.h" /*字符串函数库*/#include "conio.h" /*屏幕操作函数库*/3.定义所有和学生有关的数据结构。

typedef struct student{char num[10]; /*学号*/char name[15]; /*姓名*/int cgrade; /*C语言成绩*/int mgrade; /*数学成绩*/int egrade; /*英语成绩*/int total; /*总分*/float ave; /*平均分*/int mingci; /*名次*/};4.编写学生成绩管理系统的菜单,方便软件使用者的操作。

cprintf(" 学生成绩管理系统\n");cprintf("******************菜单********************************\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");5.定义错误信息时函数调用,软件的提示信息。

void Wrong(){printf("\n\n\n\n\n***********输入错误,任意键返回!**********\n"); getchar();6.定义查询时的错误提示函数。

相关主题