1、大连理工大学程序设计基础设计汇报装订线程序设计基础成绩管理系统设计学 生 姓 名: 杨晓欧 院系、班级 : 电信学部 电气1404 学 号 : 81098 联 系 电 话: Email : 完 成 日 期: .06.05 一、 设计任务伴随信息时代到来,办公趋向无纸化、高效化,对于学生成绩管理更是如此,基于此,我选择了程序设计基础学生成绩管理系统作为我课题,期望能够模拟教务系统中成绩录入和查询功效,编写自己成绩管理系统。从老师和学生两个角度分别实现成绩录入、删除、修改、排序、导出和查询功效。二、 程序设计和实现1. 程序结构程序设计基础学生成绩管理系统本程序面向两类用户即老师和学生,有两个入口
2、,老师登录需密码,共有添加,删除,修改,查找,密码修改五个功效,学生权限为查看本人具体成绩和本班排名。系统程序组成框图图1.所表示。老师入口学生入口 查看本人成绩查看本班成绩密码修改添加统计删除统计修改统计分类排序查找图 学生成绩管理系统程序功效组成框图2. 数据描述本系统使用结构体。结构体类型定义及结构体组员含义说明图;采取数组进行数据存放。 图 结构体类型定义及结构体组员含义说明 该程序除结构体数组外还定义了全局变量int tol,存放文件中学生统计总数,在每次添加/删除操作后全部会自增/自减,用来作为读取统计时结束标志。3. 功效模块设计(1) 函数名:void login ()函数功效
3、:显示登录界面入口参数:无出口参数:无算法描述:用if判定用户输入跳转对应界面。(2) 函数名:void star(int x)函数功效:在屏幕上显示给定个数“*”,用于优化界面。入口参数:整型,给定个数出口参数:无算法描述:用for循环显示*。(3) 函数名: void pwd()函数功效:密码输入界面入口参数:无出口参数:无算法描述:用strcmp对从键盘接收输入值和从文件读取密码值进行比较(4) 函数名:void key()函数功效:密码修改界面入口参数:无出口参数:无算法描述:将读入新密码密码写入文件(5) 函数名:void file_w(int t)函数功效:将学生统计写入文件入口参
4、数:整型,学生统计总数出口参数:无算法描述:for和fprintf(6) 函数名:void file_r(int t)函数功效:从文件中读入学生统计入口参数:整型,学生统计总数出口参数:无算法描述:for和fscanf(7) 函数名:void st()函数功效:学生登录界面入口参数:无出口参数:无算法描述:获取学号,使用次序查找在文件中查找该统计(8) 函数名:void st_scan(int i)函数功效:学生查看功效入口参数:整型,为学生该学生信息所在数组下标出口参数:无算法描述: 图开始输出菜单输入选择ee=0?返回上一级e=1?e=2?输出个人成绩输入班级i总数?班级相同?输出该统计i
5、+结束YNNYYNNYYN图 st_scan()函数步骤图 (9) 函数名:void tec()函数功效:老师功效菜单入口参数:无出口参数:无算法描述:switch语句实现功效选择(10) 函数名:void insert()函数功效:添加统计入口参数:无出口参数:无算法描述:先将原有信息读入结构体数组,追加新统计,然后一起写入文件(11) 函数名:void correct()函数功效:修改统计入口参数:无出口参数:无算法描述:读取文件,查找要修改统计,修改,重新写入文件(12) 函数名:void del()函数功效:删除统计入口参数:无出口参数:无算法描述:读取文件,查找要删除统计,删除,重新
6、写入文件(13) 函数名:void scan()函数功效:老师查看功效菜单入口参数:无出口参数:无算法描述:switch语句进行功效选择(14) 函数名:void scan_n()函数功效:老师按学号查找功效入口参数:无出口参数:无算法描述:读入文件,次序查找(15) 函数名:void scan_c()函数功效:老师按班级查看功效入口参数:无出口参数:无算法描述:读入文件,显示班级和输入值相同学生信息(16) 函数名:void scan_f()函数功效:查看挂科同学名单入口参数:无出口参数:无算法描述:读入文件,显示挂科标志量mem.flag为1同学(17) 函数名:void scan_a()
7、函数功效:查看全部学生排名入口参数:无出口参数:无算法描述:读入文件,选择法排序后显示三、 设计难点和处理方法1.页面跳转不正常问题。比如在密码输入数次错误时,会连续显示报错信息,键盘无法输入指令。在添加了fflush(stdin)语句后处理了问题。2.密码修改问题。之前密码定义为常量,不能进行修改,为实现密码修改功效及加密,将密码写入二进制文件,实现了修改,不过并没有做到加密。四、 设计效果和不足之处系统开启界面,调用system(“cls”);Sleep(); 经过学号查看个人成绩 查看班级成绩 老师登录需要输入密码 老师登录后菜单界面删除统计功效 密码修改功效老师查看功效子菜单全部学生排
8、名存在不足:1.界面显示、数据输出不整齐2.部分功效未实现屏蔽非法输入五、 对本课程学习体会及提议C语言是一门重视实践课程,不管课堂上你听有多仔细,上机实践还是会有这么那样问题,部分错误只有自己亲身经历,并努力处理才会影响深刻。从刚开始面对一堆error手足无措,到以后盯着调试窗口一点一点找逻辑错误,到现在想着怎样优化算法,输出友好界面,感谢12周以来老师辛劳讲授让我成长,当然我们现在水平还只是入门,以后还有更多挑战等着我们,但我相信只要多动脑,勤动手,我们编程水平会有更大提升!对课程一点提议是期望上机和理论课能交替进行,立即训练巩固理论课所学知识。附录:程序使用说明(1) 程序运行环境:本系统使用C-Free 5.0开发。(2) 文件夹设置:文件夹内共包含一个源程序(*.c),一个可实施文件(*.exe),一个密码统计文件(*.dat),三个文本文档统计数据及说明(*.txt),三个程序导出成绩单(*.doc)。(3) 操作说明:老师初始密码为123456;本系统最大可容纳100人,学生信息录入按以下格式即可:“81098 杨晓欧 男 电气1404 88 88 88”,其它操作根据提醒即可。