《课程设计(论文)-学生成绩管理系统》由会员分享,可在线阅读,更多相关《课程设计(论文)-学生成绩管理系统(19页珍藏版)》请在金锄头文库上搜索。
1、1题目:学生成绩管理系统姓名学号:2目录一 问题的描述 .31.1 问题描 述 .31.2 基本需求 .3二 需求分析 .3三 系统设计 .43.1 主函数流程图 .43.2 主程序结构及其声明 .53.3 各个操作函数的流程图 .63.3.1 添加学生信息函数 .63.3.2 修改学生信息函数 .73.3.3 删除学生信息函数 .83.3.4 游历链表(输出数据)函数 .93.3.5 比较函数(即成绩排名函数) .93.3.6 单科成绩录入函数 .103.3.7 挂科超过两门名单统计函数 .10四 编码与调试分析 .114.1 遇到过的错误 .114.11 语法错误 .114.12 运行错误
2、 .124.13 逻辑错误 .134.2 系统仍存在的问题 .13五系统使用说明 .14五 测试结果 .15六 课程设计心得 .18八参考文献 .1831问题的描述1.1 问题描述随着数字信息的蓬勃发展,而今越来越多的行业要用到必要的软件来提高工作效率,尤其是对于学校学生成绩管理的现代化、科学化的要求逐渐迫切起来。越来越多的人认识到学生成绩管理计算机化的重要性和必要性。希望能够有一套提高管理效率、操作上简洁方便,并能满足各种必要功能的系统。本系统使用 Visual C+6.0 作为开发工具。编写操作台程序。编写简单的菜单,提供了一个可视化的操作界面,使用户可以对学生基本信息操作,可以实现各科成
3、绩的基本操作,使用户能够方便地管理学生成绩信息。1.2 基本需求学生成绩管理系统针对主要用户为教师,此系统可以实现用户对学生基本信息的添加、修改、删除操作,也可以对学生成绩进行输入、管理、显示功能,还有对于不及格科目超过两科的学生名单统计,也可以对各科成绩进行排名。2需求分析根据程序的功能划分,可划分为以下几个模块:1、学生基本信息设置模块用户在此模块中可以够添加,删除,修改学生的基本信息2、各科成绩录入模块用户在这个模块之中可以对各个学生的各科成绩进行录入3、成绩统计模块用户在此模块可以选择查看各科成绩的排名情况,或者不及格科目超过两门的学生名单统计4、信息查询模块用户在此模块可以查询全部的
4、学生数据,也可以查询某个学生的信息43系统设计3.1 主函数流程图根据用户需求,系统主函数的流程图如下:两两两两两两两两两两两两两两两两 两两两两两两两两 两两两两两两 两两两两两两两两两两 两两 两两 两两 C+两两两两两两两两两两两两两两两两 两两 C+两两两两两两 两两两两两两两两53.2 主程序结构及其声明本程序运用链表结构,将各数据联系起来,实现学生各个数据的添加、删除、修改等等功能。分别创建四个头文件,来实现主函数流程图中四个大的作用模块,其中学生基本信息管理的头文件命名为 StuSet.h,各科成绩录入模块的头文件命名为RecordSet.h,学生成绩统计模块的头文件命名为 Re
5、cordTongJi.h,学生信息查询模块的头文件命名为 InformSeek.h。在 StuSet 头文件中,创立结构,并定义结构体链表,定义全局变量链表头指针、尾指针、New 指针,定义学生数变量 n(即节点数) ,其声明如下:63.3 各个操作函数的流程图3.3.1 添加学生信息函数在添加学生基本信息函数中,运用链表的创建方法,其流程图如下:开辟一个新结点 , 并使 p n e w 、 p t a i l 指向它读入一个学生基本信息数据 , 给 p n e w 所指向的结点定义头指针 p h e a d = N U L L 当输入的 p n e w - n u m 不是零n = n +
6、1n 等于 1 ?真 假将头指针地址 p h e a d 交给 p n e w 即把 p n e w 作为第一个结点P t a i l - n e x t = p n e w( 把 p n e w 所指的结点连接到表尾 )P t a i l = p n e w ( p t a i l 移至表尾 )再开辟一个结点 , 使 p n e w 指向它读入一个学生基本信息给 p n e w 所指向的结点表尾结点的指针变量置 N U L L73.3.2 修改学生信息函数学生信息修改函数是简单的链表结点数据修改,由于尚未输入信息之前没有数据,故无法修改,所以本函数加入了一个判断语句,其流程图如下:游历链表读
7、入所输入的学号 m学号 m 存在 ?真 假输出要修改的学生的基本信息并提示请输入新的资料提示尚未输入任何数据 , 返回主菜单重新选择 !输入要修改的新的资料表尾结点的指针变量置 N U L L83.3.3 删除学生信息函数删除学生数据的函数即删除结点的函数,其流程图如下:链表是否为一个空表p n e w = p h e a d输出 “ 空表 ! ”是是否p n e w 是要删除的结点 ?否p n e w 所指是头结点 ?输出 “ 未找到该生信息 ” 的提示是 否当 n u m ! = p n e w - n u m 以及 p n e w 所指的结点不是表尾结点p t a i l = p n e w ( 即 p t a i l 后移一个位置 )p n e w = p n e w - n e x t ( 即 p n e w 后移一个位置 )p h e a d = p n e w - n e x t( 删除头结点 )p t a i