课程设计(论文学生成绩管理系统.doc

上传人:sccc 文档编号:4865685 上传时间:2023-05-20 格式:DOC 页数:19 大小:582.01KB
返回 下载 相关 举报
课程设计(论文学生成绩管理系统.doc_第1页
第1页 / 共19页
课程设计(论文学生成绩管理系统.doc_第2页
第2页 / 共19页
课程设计(论文学生成绩管理系统.doc_第3页
第3页 / 共19页
课程设计(论文学生成绩管理系统.doc_第4页
第4页 / 共19页
课程设计(论文学生成绩管理系统.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《课程设计(论文学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《课程设计(论文学生成绩管理系统.doc(19页珍藏版)》请在三一办公上搜索。

1、题目:学生成绩管理系统姓名学号:19目录一 问题的描述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运行错误124.13逻辑错误134.2系统仍存在的问题13五系统使用说明14五 测试结果15六 课

2、程设计心得18八参考文献18一 问题的描述1.1 问题描述随着数字信息的蓬勃发展,而今越来越多的行业要用到必要的软件来提高工作效率,尤其是对于学校学生成绩管理的现代化、科学化的要求逐渐迫切起来。越来越多的人认识到学生成绩管理计算机化的重要性和必要性。希望能够有一套提高管理效率、操作上简洁方便,并能满足各种必要功能的系统。 本系统使用Visual C+6.0作为开发工具。编写操作台程序。编写简单的菜单,提供了一个可视化的操作界面,使用户可以对学生基本信息操作,可以实现各科成绩的基本操作,使用户能够方便地管理学生成绩信息。1.2 基本需求学生成绩管理系统针对主要用户为教师,此系统可以实现用户对学生

3、基本信息的添加、修改、删除操作,也可以对学生成绩进行输入、管理、显示功能,还有对于不及格科目超过两科的学生名单统计,也可以对各科成绩进行排名。二 需求分析根据程序的功能划分,可划分为以下几个模块:1、学生基本信息设置模块用户在此模块中可以够添加,删除,修改学生的基本信息2、各科成绩录入模块用户在这个模块之中可以对各个学生的各科成绩进行录入3、成绩统计模块用户在此模块可以选择查看各科成绩的排名情况,或者不及格科目超过两门的学生名单统计4、信息查询模块用户在此模块可以查询全部的学生数据,也可以查询某个学生的信息三 系统设计3.1 主函数流程图根据用户需求,系统主函数的流程图如下:3.2 主程序结构

4、及其声明本程序运用链表结构,将各数据联系起来,实现学生各个数据的添加、删除、修改等等功能。分别创建四个头文件,来实现主函数流程图中四个大的作用模块,其中学生基本信息管理的头文件命名为StuSet.h,各科成绩录入模块的头文件命名为RecordSet.h,学生成绩统计模块的头文件命名为RecordTongJi.h,学生信息查询模块的头文件命名为InformSeek.h。在StuSet头文件中,创立结构,并定义结构体链表,定义全局变量链表头指针、尾指针、New指针,定义学生数变量n(即节点数),其声明如下:3.3 各个操作函数的流程图3.3.1 添加学生信息函数在添加学生基本信息函数中,运用链表的

5、创建方法,其流程图如下: 3.3.2 修改学生信息函数学生信息修改函数是简单的链表结点数据修改,由于尚未输入信息之前没有数据,故无法修改,所以本函数加入了一个判断语句,其流程图如下:3.3.3 删除学生信息函数删除学生数据的函数即删除结点的函数,其流程图如下:3.3.4 游历链表(输出数据)函数输出全部数据的函数,即游历链表的函数,其函数流程图为:3.3.5 比较函数(即成绩排名函数)成绩排名函数利用了冒泡法给学生各科成绩进行排序,交换所有数据,而后一一输出,其流程图为: 3.3.6 单科成绩录入函数若未添加学生基本信息,则无法录入各科成绩,会提示请添加学生基本信息,该函数的流程图为:3.3.

6、7 挂科超过两门名单统计函数此函数我运用了一个计数变量q,来控制输出,当挂了一科(即一个科目的分数少于60分),q 便自加1,q的初始值为0,即当q = 2时输出该生的名字以及学号,其流程图为:四 编码与调试分析本系统编码过程中遇到过很多问题,现按其类别一一举出。4.1 遇到过的错误4.11 语法错误最初遇到的语法错误便是在主菜单中的语法错误,开始定义了选择项的变量为整型,选择时若是输入了一个字符,便会进行菜单的无限循环。后来改为数组类型,用了switch循环语句,改掉了这个bug 并能提示输入错误,请重新选择。后来遇到一个语法错误,是在编挂科超过两门学生名单统计时,计数变量q的语法错误,开始

7、定义q 是在循环外定义的,这样在每次执行循环之前q的初值都是执行完上一次的值,并不是0,所以程序会显示各个学生的信息,现代码改为如下:在每次循环之前q都为0,避免了出错。4.12 运行错误编码时候遇到的运行错误,也是解决掉程序的一个重大的bug 。开始本程序在调用过添加学生信息(即创建一个链表)之后,若再继续添加学生信息,则程序会出错,因为此时相当于创建了两个链表。为修改这个错误,我创建了一个“继续添加学生信息”选项,此函数为再创建一个链表并直接接在原先链表尾部,使程序得以运行,此函数为:4.13 逻辑错误在做比较函数的时候,曾遇到一个逻辑上的错误,便是利用冒泡法做比较的时候,开始没有细想一趟

8、中的比较和一共要比较几次与两个结构体指针往下指的关系,于是导致程序编译没有问题但是运行却不是那个结果。后来想到了这点,那段代码改为:即,每次两两比较后,pnew 与 pcomp 均往后移动一个位置;而每趟比较过后,pnew 与pcomp均归为起始点(即pnew 指向链表第一个数据,pcomp指向链表第二个数据),这样修改便避免了这个逻辑错误。4.2 系统仍存在的问题本系统仍存在Bug ,因为我定义的学号为int 型,学生各科成绩均为double型,所以当误输入这些数据为一个字符的时候,系统将会无限循环当前的画面。这个问题有待解决。五系统使用说明主菜单选择1 学生基本信息设置子菜单1中选择1 添

9、加学生信息子菜单1中选择2 修改学生信息子菜单1中选择3 删除学生信息子菜单1中选择 4 继续添加学生信息主菜单选择2 各科成绩录入子菜单 2 中选择 1 高数成绩录入子菜单 2 中选择 2 英语成绩录入子菜单 2 中选择 3 C+成绩录入主菜单选择3 成绩统计菜单子菜单 3 中选择 1 各科排名情况子菜单 3 中选择 2 挂科超过两门学生名单显示主菜单选择4 信息查询菜单子菜单 4 选择1 全部信息显示子菜单 4 选择2 查询学生信息主菜单选择5 退出系统五 测试结果如图,当程序开始运行时,会弹出主菜单,选择一进行学生基本信息设置当选择一,进入基本信息设置的子菜单,这里可以有添加修改删除,以

10、及继续添加的选项当选择添加学生信息时,输入学号姓名性别,若不想继续添加,将学号置为0即可,输入完学生信息后,回车键回到主菜单若想继续添加,则选择基本信息设置中的4选项,继续添加学生信息与此函数运行结果一样,在此不做截图。修改、删除学生信息,均为输入学号进行修改、删除。若无此学号,则会出现错误提示:若找到此学号的结点,修改函数执行结果为:先输出此函数的当前数据,再进行新数据的输入,输入新数据完成后回车键会回到主菜单,可以选择执行其他作用函数。同样删除函数成功删除后会有“数据已删除”的提示,在此不作截图。各科成绩录入,选择后会按用户开始输入学生信息的顺序提示:请输入XX同学的XX成绩,在此以高数成

11、绩为例: 在各科成绩都录入完全之后,选择成绩统计菜单中的各科排名,就会显示单科的排名状况,以高数成绩排名为例,程序运行如下:挂科超过两门选项运行结果亦如此,在这里不作截图。信息查询选项中,全部信息显示,将会显示当前所有的信息:查询学生个人信息选项中,提示要查询的学生学号,若有此人,则输出该生全部信息,若无此人,则提示无此人信息。查到了未查到六 课程设计心得通过对于课程设计学生成绩管理系统的思考,编码,各个资料的学习,使得我了解了链表的基本使用方法,并学会了在程序编码过程中所遇到的各种困难的应对方法,以及各个小算法以及各种头文件之间联系知识的增长,还学会了构造菜单以及子菜单的循环算法等等。总之,通过此课程设计以及各个老师的悉心教导,使我受益匪浅,感觉自己不仅在程序方面大有提高,在应对学习中各种困难的心态也有所改变,使自己心态更为坚强,来应对学习生活中的各种艰难险阻。八参考文献C程序设计(第四版) 谭浩强 编著C程序设计(第四版)学习辅导 谭浩强 编著C+面向对象程序设计 谭浩强 编著

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号