学生成绩管理系统实验报告(附C语言源码)(共46页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《学生成绩管理系统实验报告(附C语言源码)(共46页).doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统实验报告(附C语言源码)(共46页).doc(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上程序设计训练报 告(附源码)题 目 学生成绩管理系统 学生姓名 学生学号 专业班级 指导老师 2012年7 月 专心-专注-专业目 录一、设计目的要求1二、设计功能简介1三、本人工作2四、详细设计方案21.需求分析22.模块详细设计2(1)模块功能2(2)定义函数功能说明4(3)模块算法流程图63.核心模块源程序104.实验结果16五、使用说明21六、程序设计心得体会21七、附录22附录1:参考文献22附录2:主要变量及自定义函数 说明22附录3:源程序代码22一、设计目的要求通过C语言程序设计这门课程,我想,我们应该达到的目的与要求应该有以下内容:1.在编辑应用程序
2、过程中,逐步加深对C语言编程的理解,掌握结构化程序设计的基本思路和方法;2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固,为以后的学习奠定基础;3.增强学生我们利用自己所学知识解决实际问题的能力4.掌握书写程序设计说明文档的能力二、设计功能简介本程序针对登录系统的不同身份(有管理员、学生两个身份)有不同的功能。管理员的功能有以下几个:1.管理用户:其中包括浏览用户、增添用户、修改用户、删除用户四个功能;2.管理成绩:其中包括浏览成绩、增添成绩、修改成绩、删除成绩、成绩排序五个功能;3.个人密码修改。学生的功能有:1.查看成绩:其中可直接查看各科成绩,也可查看单科、总分成绩的排名;2
3、.查看个人信息:3.修改个人密码。三、本人工作虽然编程本身是一件辛苦的事,但作为一个爱好电脑学科的我来说,并不在意。我在这个系统上,花了两天时间。为了这个系统,我反复查资料,调试,纠错最终完成了这整个系统。四、详细设计方案1.需求分析为了管理员能方便了解、管理班上学生的成绩与其他信息,也同时为了学生能够自主查询自己的成绩的具体情况与其他信息且不能查看别人的私密信息,设计了这个学生成绩管理系统。此系统能对相关信息进行录入、查询、显示、修改并保存在user.dat和score.dat这两个文件里。2.模块详细设计(1)模块功能u 管理员:l 浏览成绩(SurfScore():可以浏览已经录入系统的
4、所有成绩l 增添成绩(AddScore():可以添加学生的成绩l 修改成绩(ReviseScore():对已录入系统的成绩进行修改l 删除成绩(DelSocre():通过提供姓名和ID号,删除对应成绩成绩排名直接查看删除用户修改用户增添用户浏览用户删除成绩浏览成绩修改成绩增添成绩管理员管理成绩管理用户修改密码查看成绩修改个人密码查看个人信息学生登录登录l 排名(OutPut():管理员可以选择科目,对相应成绩进行排序(用冒泡排序法实现),也输出对应科目的没及格人数和及格率l 浏览用户(SurfUser():浏览所有的用户信息l 增添用户(AddUser():增添用户信息,并提供以后用户登录依据
5、,每个用户拥有唯一的ID号l 修改用户(ReviseUser():管理员可以通过此功能修改任何用户的资料,包括密码l 删除用户(DeleteUser():通过姓名和唯一ID号,删除对应用户资料l 密码修改(ReviseSecre():管理员仅可以修改自己的登录密码u 学生:l 查看成绩(ChaScore():学生只能查看各科成绩,不能查看名次l 成绩排名(OutPut():学生只能在此查看自己的成绩,和对应科目的排名l 查看个人信息(ChaInfo():学生只能查看自己的个人信息l 修改个人密码(ReviseSecre():这和管理员用的同一函数,只能修改自己的密码(2)定义函数功能说明结构体
6、说明:struct userinfo char id5; /学生的学号,或教职工的工号 char name10; /姓名 char secre7; /密码 char sex1; /性别 int flag; /权限标识 1为管理员 2为学生 char year5; /注册时间 user;struct score char name10; char id5; int scor5; /保存5单科成绩 float ave; /平均分 int all; /5单科成绩总分 ;全局变量说明:l int cho:用于用户在各个界面的选项l struct user.info g_user:在各个函数中,根据登陆
7、者的信息,实现某些功能输出一些信息l 在结构体struct user.info中也定义了全局变量user自定义函数、变量说明身份自定义函数功能说明变量公用Welcome()清屏,界面欢迎条Delay()暂停Login()登录ChuShiHua()第一次运行判断文件存在性,调用增添用户模块PaiXu()为OutPut提供排序参数OutPut()成绩排名,但针对不同身份,输出不同n记录用户个数、k标记有无记录、p记录不及格人数、xz记录排序科目ReviseSecre()修改自己的密码code7、secre7记录两个密码,判断是否相同管理员SurfUser()SurfUser()为浏览用户模块,需调
8、用SurfUser1()输出信息AddUser()增添用户,需调用Identy()提供身份tempflag记录临时身份、c判断用户选择、tempsecre7判断两次密码是否相同ReviseUser()修改用户资料结构体temp记录修改后的资料DeleteUser()提供要删除的用户信息,调用DeleteUser1()删除name10,id5两者记录要删除的信息SurfScore()调用SurfScore1()输出信息身份自定义函数功能说明变量管理员AddScore()增添成绩信息cjmaxuser临时记录要储存的成绩信息ReviseScore()修改成绩信息temp记录选择科目、score记录
9、成绩DelScore()删除成绩,需调用SurfScore1()浏览成绩struct score stumaxuser将文件信息全读入内存学生ChaScore1()直接查看成绩,需调用ChaScore()输出信息struct score one读入每个人的成绩,判断ChaInfo()只输出自己的信息(3)模块算法流程图开始判断user.dat存在F登录增添用户Yg_user.flag=1g_user.flag=2管理员界面学生界面FYY 总图YYF管理员界面管理用户界面Ycho=1Fcho=2F管理成绩界面Ycho=3F修改密码Ycho=0结束YF 管理员_菜单 YFFYFYcho=0结束YF
10、菜单的流程图都与管理员_菜单类似,就不在画菜单的流程图了。 学生成绩查询查询与此类似,不再画了。学生个人信息查询学生界面输出个人信息学生个人信息查询打开文件查找与登录人ID号相同的个人资料增加用户输入信息判断ID存在询问保存打开文件,保存继续添加用户管理员菜单YNYYNN管理员_增加用户管理用户界面打开文件删除判断存在要删除的人选择被删除人删除用户浏览用户修改用户选择被修改人输入修改后的信息浏览用户判断ID存在打开文件保存用户管理界面YN 管理员_删除用户 管理员_修改用户管理员的成绩管理下的功能与用户管理下的功能十分类似,就不在画成绩管理下功能的流程图了。管理员界面学生界面g_user.fl
11、ag=1读取用户信息、修改与登录身份相同的人的密码两次密码相同输入两次密码读取用户信息寻找修改密码OutPut()选择排名科目冒泡排序法排序读取成绩信息g_user.flag=1输出登录人成绩排名输出所有排名查看成绩界面成绩管理界面输出排名 备注:查看成绩界面是学生用的、成绩管理界面管理员用 管理员、学生_修改密码3.核心模块源程序登录模块:void Login() FILE *fp; int j=0; Welcome(); g_user.flag=0; printf(请登录:nn姓名:); scanf(%s,g_user.name); printf(密码:); while(g_user.se
12、crej=getch()!=r) /读取一个不在屏幕上显示的字符,如果该字符不为回车执行下面的内容 if(g_user.secrej=b) /如果是退格 printf(b b); /退格,但没有消除* j-; else printf(*); /打印* j+; g_user.secrej=0; /最后加结尾符 fp=fopen(user.dat,ab+); fseek(fp,0L,SEEK_SET); while(!feof(fp) fseek(fp,0L,SEEK_CUR); fscanf(fp,%s%s%s%s%d%s,user.name,user.id,user.sex,user.year
13、,&user.flag,user.secre); if(!strcmp(g_user.name,user.name)&!strcmp(g_user.secre,user.secre) g_user.flag=user.flag; strcpy(g_user.id,user.id); break; if(g_user.flag=0) Welcome(); printf(对不起,用户名与密码不匹配!); printf(nn1.重新登录n2.退出nn请选择:); scanf(%d,&cho); if(cho=1) Login(); else exit(0); fclose(fp); switch(g
14、_user.flag) case 1:Manager(); /管理员界面 break; case 2:Student(); /学生界面 break; 增加用户模块:void AddUser() /添加用户 char a7,c; struct userinfo one; int tempflag; FILE *fp; user.flag=0; Welcome(); printf(温馨提示:n1.ID为四位数n2.密码最多为6位n3.填写性别时,1代表女,2代表男n4.权限 1为管理员,2为学生n); printf(请填写以下信息:nn姓名:); scanf(%s,user.name); prin
15、tf(ID号:); scanf(%s,user.id); fp=fopen(user.dat,ab+); fseek(fp,0L,SEEK_SET); while(!feof(fp) fseek(fp,0L,SEEK_CUR); fscanf(fp,%s%s%s%s%d%s,one.name,one.id,one.sex,one.year,&one.flag,one.secre); if(!strcmp(one.id,user.id) printf(该ID号已有人使用!请另换!n按任意键继续); getchar(); AddUser(); fclose(fp); printf(注册时间:);
16、scanf(%s,user.year); printf(请输入密码:); scanf(%s,user.secre); printf(请确认密码:); scanf(%s,a); if(strcmp(a,user.secre) /判断两次密码是否相同 printf(两次密码不一致!n按任意键重新填写n); getchar(); AddUser(); printf(性别:); scanf(%s,user.sex); getchar(); /对付回车 if(g_user.flag=-1) tempflag=1; else Welcome(); tempflag=Identy(); printf(请确认
17、你的信息:nn); printf(姓名ttID号tt性别tt注册时间t身份n); printf(%stt%stt%stt%stt%d,user.name,user.id,user.sex,user.year,tempflag); printf(nn保存吗?(Y/N)); if(g_user.flag=1) getchar(); scanf(%c,&c); getchar(); if(c=Y|c=y) fp=fopen(user.dat,ab+); if(fp=NULL) printf(文件打开失败!); fprintf(fp, %s %s %s %s %d %s,user.name,user.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 实验 报告 语言 源码 46
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内