资源描述
图书信息管理系统设计
大连理工大学《程序设计基础》设计报告
装
订
线
《程序设计基础》成绩管理系统设计
学 生 姓 名: 杨晓欧
院系、班级 : 电信学部 电气1404
学 号 : 201481098
联 系 电 话: 18340833523
Email : 2425360853@
完 成 日 期: 2015.06.05
- 3 -
《程序设计基础》成绩管理系统设计
一、 设计任务
随着信息时代的到来,办公趋向无纸化、高效化,对于学生成绩的管理更是如此,基于此,我选择了《程序设计基础》学生成绩管理系统作为我的课题,希望能够模仿教务系统中成绩的录入与查询功能,编写自己的成绩管理系统。从教师与学生两个角度分别实现成绩的录入、删除、修改、排序、导出与查询功能。
二、 程序设计与实现
1. 程序结构
《程序设计基础》学生成绩管理系统
本程序面向两类用户即教师与学生,有两个入口,教师登录需密码,共有添加,删除,修改,查找,密码修改五个功能,学生权限为查看本人详细成绩和本班排名。系统程序组成框图如图1.所示。
教师入口
学生入口
查看本人成绩
查看本班成绩
密码修改
添加记录
删除记录
修改记录
分类排序查找
图 学生成绩管理系统程序功能组成框图
2. 数据描述
本系统使用的结构体。结构体类型定义及结构体成员含义说明如图;采用数组进行数据存储。
图 结构体类型定义及结构体成员含义说明
该程序除结构体数组外还定义了全局变量int tol,存储文件中学生记录总数,在每次添加/删除操作后都会自增/自减,用来作为读取记录时结束的标志。
3. 功能模块设计
(1) 函数名:void login ()
函数功能:显示登录界面
入口参数:无
出口参数:无
算法描述:用if判断用户输入跳转相应界面。
(2) 函数名:void star(int x)
函数功能:在屏幕上显示给定个数“*”,用于优化界面。
入口参数:整型,给定的个数
出口参数:无
算法描述:用for循环显示*。
(3) 函数名: void pwd()
函数功能:密码输入界面
入口参数:无
出口参数:无
算法描述:用strcmp对从键盘接收输入值与从文件读取的密码值进行比较
(4) 函数名:void key()
函数功能:密码修改界面
入口参数:无
出口参数:无
算法描述:将读入的新密码密码写入文件
(5) 函数名:void file_w(int t)
函数功能:将学生记录写入文件
入口参数:整型,学生记录总数
出口参数:无
算法描述:for与fprintf
(6) 函数名:void file_r(int t)
函数功能:从文件中读入学生记录
入口参数:整型,学生记录总数
出口参数:无
算法描述:for与fscanf
(7) 函数名:void st()
函数功能:学生登录界面
入口参数:无
出口参数:无
算法描述:获取学号,使用顺序查找在文件中查找该记录
(8) 函数名:void st_scan(int i)
函数功能:学生查看功能
入口参数:整型,为学生该学生信息所在数组下标
出口参数:无
算法描述: 如图
开始
输出菜单
输入选择e
e=0?
返回上一级
e=1?
e=2?
输出个人成绩
输入班级
i<总数?
班级相同?
输出该记录
i++
结束
Y
N
N
Y
Y
N
N
Y
Y
N
图 st_scan()函数流程图
(9) 函数名:void tec()
函数功能:教师功能菜单
入口参数:无
出口参数:无
算法描述:switch语句实现功能选择
(10) 函数名:void insert()
函数功能:添加记录
入口参数:无
出口参数:无
算法描述:先将原有信息读入结构体数组,追加新记录,然后一起写入文件
(11) 函数名:void correct()
函数功能:修改记录
入口参数:无
出口参数:无
算法描述:读取文件,查找要修改的记录,修改,重新写入文件
(12) 函数名:void del()
函数功能:删除记录
入口参数:无
出口参数:无
算法描述:读取文件,查找要删除的记录,删除,重新写入文件
(13) 函数名:void scan()
函数功能:教师查看功能菜单
入口参数:无
出口参数:无
算法描述:switch语句进行功能选择
(14) 函数名:void scan_n()
函数功能:教师按学号查找功能
入口参数:无
出口参数:无
算法描述:读入文件,顺序查找
(15) 函数名:void scan_c()
函数功能:教师按班级查看功能
入口参数:无
出口参数:无
算法描述:读入文件,显示班级与输入值相同的学生信息
(16) 函数名:void scan_f()
函数功能:查看挂科同学名单
入口参数:无
出口参数:无
算法描述:读入文件,显示挂科标志量mem[].flag为1的同学
(17) 函数名:void scan_a()
函数功能:查看全部学生排名
入口参数:无
出口参数:无
算法描述:读入文件,选择法排序后显示
三、 设计难点与解决方法
1.页面跳转不正常的问题。例如在密码输入多次错误时,会持续显示报错信息,键盘无法输入指令。在添加了fflush(stdin)语句后解决了问题。
2.密码修改问题。之前密码定义为常量,不能进行修改,为实现密码修改功能及加密,将密码写入二进制文件,实现了修改,但是并没有做到加密。
四、 设计效果与不足之处
系统启动界面,调用system(“cls”);Sleep();
通过学号查看个人成绩
查看班级成绩
教师登录需要输入密码
教师登录后的菜单界面
删除记录功能
密码修改功能
教师查看功能子菜单
全部学生排名
存在的不足:1.界面显示、数据输出不整齐
2.部分功能未实现屏蔽非法输入
五、 对本课程学习体会及建议
C语言是一门重视实践的课程,无论课堂上你听的有多仔细,上机实践还是会有这样那样的问题,一些错误只有自己亲身经历,并努力解决才会影响深刻。从刚开始的面对一堆error手足无措,到之后盯着调试窗口一点一点找逻辑错误,到现在想着如何优化算法,输出友好界面,感谢12周以来老师的辛苦讲授让我成长,当然我们现在的水平还只是入门,今后还有更多的挑战等着我们,但我相信只要多动脑,勤动手,我们编程的水平会有更大的的提高!
对课程的一点建议是希望上机与理论课能交替进行,及时训练巩固理论课所学知识。
附录:程序使用说明
(1) 程序运行环境:本系统使用C-Free 5.0开发。
(2) 文件夹设置:文件夹内共包含一个源程序(*.c),一个可执行文件(*.exe),一个密码记录文件(*.dat),三个文本文档记录数据及说明(*.txt),三个程序导出的成绩单(*.doc)。
(3) 操作说明:教师初始密码为123456;本系统最大可容纳100人,学生信息录入按以下格式即可:“201481098 杨晓欧 男 电气1404 88 88 88”,其余操作按照提示即可。
其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。
二.培训的及要求培训目的
安全生产目标责任书
为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015年度安全生产目标的内容,现与财务部签订如下安全生产目标:
一、目标值:
1、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。
2、现金安全保管,不发生盗窃事故。
3、每月足额提取安全生产费用,保障安全生产投入资金的到位。
4、安全培训合格率为100%。
二、本单位安全工作上必须做到以下内容:
1、对本单位的安全生产负直接领导责任,必须模范遵守公司的各项安全管理制度,不发布与公司安全管理制度相抵触的指令,严格履行本人的安全职责,确保安全责任制在本单位全面落实,并全力支持安全工作。
2、保证公司各项安全管理制度和管理办法在本单位内全面实施,并自觉接受公司安全部门的监督和管理。
3、在确保安全的前提下组织生产,始终把安全工作放在首位,当“安全与交货期、质量”发生矛盾时,坚持安全第一的原则。
4、参加生产碰头会时,首先汇报本单位的安全生产情况和安全问题落实情况;在安排本单位生产任务时,必须安排安全工作内容,并写入记录。
5、在公司及政府的安全检查中杜绝各类违章现象。
6、组织本部门积极参加安全检查,做到有检查、有整改,记录全。
7、以身作则,不违章指挥、不违章操作。对发现的各类违章现象负有查禁的责任,同时要予以查处。
8、虚心接受员工提出的问题,杜绝不接受或盲目指挥;
9、发生事故,应立即报告主管领导,按照“四不放过”的原则召开事故分析会,提出整改措施和对责任者的处理意见,并填写事故登记表,严禁隐瞒不报或降低对责任者的处罚标准。
10、必须按规定对单位员工进行培训和新员工上岗教育;
11、严格执行公司安全生产十六项禁令,保证本单位所有人员不违章作业。
三、 安全奖惩:
1、对于全年实现安全目标的按照公司生产现场管理规定和工作说明书进行考核奖励;对于未实现安全目标的按照公司规定进行处罚。
2、每月接受主管领导指派人员对安全生产责任状的落
3
展开阅读全文