ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:201.61KB ,
资源ID:1797673      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1797673.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生教务管理系统.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

学生教务管理系统.docx

1、学生教务管理系统 学生教务管理系统 2 任务二 基于文件的学生/教务管理系统 2.1 前言 为了巩固我们C语言知识,并了解其在生活中的应用,由老师为我们带来了这个题目。通过实训,学会为实际应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,从而对C语言程序设计这门课能有一个更深刻的理解和认识;再者,实训相对于平时试验课来说,要完成的是一个难度较大的可执行综合性程序,培养需求分析和系统架构等处理复杂问题的能力,从而极大的提高学生的编程能力以及撰写文档的能力;希望能通过实训,实际做到理论和实践紧密结合,同时也为后续课程打下坚实的基础知识。 2.2 系统需求分析 2.2.1 问题定义 本系统可以

2、应用于教务处,进行对学生,教师,教务处人员的管理(添加,修改,删除,统计),人员查询,成绩查询(可以按照姓名查询,证件号查询)。 本系统主要面对学生,教师,教务处,所以进入该系统时可以选择不同的身份进入,若已存在账号,则可以直接进去选择自己的身份,若不存在账号,则需 2 要管理员进入添加,管理员可以进行的功能有成绩管理,学生管理,教师管理,管理员管理,每个模块都有添加,删除,修改,统计,查询五个基本功能。而教师则可以进行成绩的添加,修改,查询,等功能。学生只有查询和修改个人 信息的功能。 需求分析2.2.学管系管教学教学成管成个查修个管管管管管员 信息 理 2.3 系统设计 2.3.1系统架构

3、 将要实现的模块分级进行架构 3 学生管理系统 管理员模块:管理教师:教师添加,教师修改,教师删除,教师统计,教师查 询 管理学生:学生添加,学生修改,学生删除,学生统计,学生查 询管理管理员:管理员添加,管理员修改,管理员删除,管理员统 计,管理员查询成绩管理:计算个人成绩,计算各科成绩,计算平均成绩,计算 最高最低分,排序 学生模块:查询个人成绩,查询个人信息,修改个人信息,查教师模块:添加学生成绩,修改学生成绩,删除学生成绩,查询学生信息 询个人信息,修改个人信息。 2.3.2数据物理设计 学生 列姓charchar学 是 char 出身地 否 char 证份身 号 是char 方联系

4、式 4 教师为否据类可列名 数 空型 姓charchar教师char出身charcharchar课 管理列char姓char证件 是出身地 char char 否份身证 号 是char 系联方 式 5 成绩列名 数据类可否为char学floatfloatfloat语言floatfloatfloat总否float 平均分否 2.3.3功能模块管理员可以进行的功能有成绩管理,学生管理,教师管理,管理员管理,每个模块都有添加,删除,修改,统计,查询五个基本功能。而教师则可以进行成 绩的添加,修改,查询,等功能。学生只有查询和修改个人信息的功能。 6 2.4 系统实现 系统硬件环境为计算机,系统软件环

5、境:VC+6.0,TC3.0 2.4.4 系统功能模块设计与实现 2.4.4.1功能实现 下面分别对该模块中的具体功能进行详细描述,并配相应功能的截图 1. 添加功能 FILE *fp; char ch2; int i=0,ch1; 牰湩晴尨欢迎进入防灾科技学院学生管理系统n); 瀠楲瑮?添加请输入y,退出请输入nn); scanf(%c,&ch2); if(ch2=y) do fp=fopen(manager.txt,a+); /*输入所要添加的内容*/ 7 fwrite(&manageri,sizeof(struct manager),1,fp); printf(%s,%s,%s,%sn,

6、manageri.name,manageri.sex,manageri.mnum,manageri.zhiwei); 牰湩晴尨是否继续添加,继续添加请输入1,否则输入0n); scanf(%d,&ch1); i+; fclose(fp); while(ch1=1); 2. 修改功能 首先选择修改的依据,可以依据证件号,姓名两张方式修改。具体实现代 8 码如下: fp=fopen(manager.txt,+); 牰湩晴尨请输入需要修改的人员的编号n); scanf(%s,str); for(i=0;fread(&manageri,sizeof(struct manager),1,fp)!=0;i

7、+) if(strcmp(str,manageri.mnum)=0) printf(%s,%s,%s,%sn,manageri.name,manageri.sex,manageri.mnum,manageri. zhiwei); 牰湩晴尨确认修改,确认请输入1,退出则输入0n); scanf(%d,&ch1); if(ch1=1) /*选择修改的类型*/ scanf(%d,&ch2); 9 switch(ch2) case 1: 牰湩晴尨请输入所要修改的姓名n); scanf(%s,manageri.name); fwrite(&manageri,sizeof(struct manager),

8、1,fp); break; 3. 删除功能 删除可以依据证件号和姓名查询,删除方法是,先找到需要删除的人,然后 10 让排在其后的人员的信息替换这个人的信息。具体代码如下: FILE *fp; char name20; int i,flag,n,j,ch; fp=fopen(manager.txt,+); printf(original datan); for(i=0,flag=1;fread(&teacheri,sizeof(struct teacher),1,fp)!=0;i+) printf(%s,%s,%s,%sn,manageri.name,manageri.sex,manageri

9、.mnum,manageri.zhiwei); n=i+1; fclose(fp); do 牰湩晴尨请输入您所要删除的人员的名字n); scanf(%s,name); fp=fopen(manager.txt,); 11 for(i=0,flag=1;flag∈i+) if(strcmp(name,manageri.name)=0) for(j=i;jn-1;j+) /*后一个人的信息覆盖所需删除人的信息*/ flag=0; if(!flag) n=n-1; else printf(ot foundn); fp=fopen(manager.txt,w); for(i=0;in;i+) f

10、write(&manageri,sizeof(struct manager),1,fp); fclose(fp); fp=fopen(manager.txt,); for(i=0,flag=1;fread(&manageri,sizeof(struct 12 manager),1,fp)!=0;i+) printf(%s,%s,%s,%sn,manageri.na me,manageri.sex,manageri.mnum,manageri.zhiw ei); fclose(fp); 牰湩晴尨是否继续删除,继续请输入1,否则请输入0 n); scanf(%d,&ch); while(ch=1)

11、; 4. 查询功能 FILE *fp; int i; char name20; int ch1; 13 do 牰湩晴尨请输入姓名); scanf(%s,name); fp=fopen(manager.txt,); for(i=0;fread(&manageri,sizeof(struct manager),1,fp)!=0;i+) if(strcmp(name,manageri.name)=0) printf(%s,%s,%s,%sn,manageri.name,manageri.sex,manageri.mnum,manageri.zhiwei); fclose(fp); 牰湩晴尨继续请输入

12、1,否则输入0n); scanf(%d,&ch1); while(ch1=1); 14 统计功能5.FILE *fp; int n,i; fp=fopen(manager.txt,); for(i=0;fread(&manageri,sizeof(struct manager),1,fp)!=0;i+) n=i+1; fclose(fp); n,n); 名管理员牰湩晴尨共有%d 权限管理: 6.FILE *fp; char mnum10,str10; int i,flag,n; fp=fopen(manager.txt,+); 15 牰湩晴尨欢迎进入学生管理系统n); 牰湩晴尨请输入证件号n)

13、; scanf(%s,mnum); 牰湩晴尨请输入密码 n); scanf(%s,str); for(i=0;fread(&manageri,sizeof(struct manager),1,fp)!=0;i+) n=i+1;printf(%d,n); for(i=0,flag=1;in&flag;i+) if(strcmp(mnum,manageri.mnum)=0)&(strcmp(str,manageri.mima)=0) managermanage(); flag=0; fclose(fp); if(flag) 16 牰湩晴尨警告,密码输入错误n); 7成绩添加 由教师添加,根据教师所

14、教授课程而添加,具体实现代码: FILE *fp,*fp1,*fp2; int i,n,k,j; char tnum10,snum10; char 瑳?嵛尽慭桴?瑳?嵛尽桰?瑳?嵛尽彣慬杮慵敧,str4=english,str5=practise; 牰湩晴尨请输入您的教师号n); scanf(%s,tnum); fp=fopen( eacher.txt,); for(i=0;fread(&teacheri,sizeof(struct teacher),1,fp)!=0;i+) 17 if(strcmp(tnum,teacheri.tnum)=0) n=i; if(strcmp(teachern

15、.course,str1)=0) do fp1=fopen(student.txt,); fp2=fopen(grade.txt,a+); 牰湩晴尨请输入您所要添加学生的学号n); scanf(%s,snum); j=0; for(i=0;fread(&studenti,sizeof(struct student),1,fp1)!=0;i+) if(strcmp(snum,studenti.snum)=0) strcpy(gradej.num,studenti.snum); 牰湩晴尨请输入高等数学的成绩 18 n); scanf(%f,&gradej.math); fwrite(&gradej

16、,sizeof(struct grade),1,fp2); j+; fclose(fp1); fclose(fp2); 牰湩晴尨是否继续添加,是1,否0n); scanf(%d,&k); while(k=1); else if(strcmp(teachern.course,str4)=0) 继续添加其他课程 else 牰湩晴尨不存在这门课,请核实n); fclose(fp); 19 :成绩计算8FILE *fp; int i; fp=fopen(grade.txt,a+); for(i=0;fread(&gradei,sizeof(struct grade),1,fp)!=0;i+) grad

17、ei.sum=gradei.math+gradei.ph+g radei.english+gradei.c_language+gradei.practise; gradei.aver=gradei.sum/5; 绩总成的学%s号牰湩晴尨 学为的生%fn,gradei.num,gradei.sum); 是 20 牰湩晴尨学号为%s的学生的平均成绩是%fn,gradei.num,gradei.aver); fwrite(&gradei,sizeof(struct grade),1,fp); fclose(fp); 9成绩排序 主要是运用冒泡排序法。 代码: FILE *fp,*fp1; int i

18、,n,j; float temp; fp=fopen(grade.txt,); for(i=0;fread(&gradei,sizeof(struct grade),1,fp)!=0;i+); n=i+1; 21 for(i=0;in-1;i+) for(j=0;jn-i;j+) if(gradej.avergradej+1.aver) temp=gradej.aver; gradej.aver=gradej+1.aver; gradej+1.aver=temp; for(i=0;in-1;i+) 牰湩晴尨学号为%s的学生的成绩为%fn,gradei.num,gradei.aver); fp1

19、=fopen(grade1.txt,a+); fwrite(&gradei,sizeof(struct grade),1,fp1); fclose(fp1); fclose(fp); 10计算成绩最高最低分,、 采用穷比法,首先设第一个人的成绩是最高或最低,再和其他人员的成绩比较,直到所有人员比较完之后,找出最高分或最低分。具体实现代码如下: 22 FILE *fp,*fp1; int i,n,k; float max,min; fp=fopen(grade.txt,); fp1=fopen(count.txt,a+); for(i=0;fread(&gradei,sizeof(struct

20、grade),1,fp)!=0;i+) n=i+1; max=grade0.aver; min=grade0.aver; for(i=1;in;i+) if(maxgradei.aver) max=gradei.aver; k=i; grade_count.amax=max; strcpy(grade_count.str1,gradek.num); for(i=1;igradei.aver) 23 min=gradei.aver; k=i; grade_count.amin=min; strcpy(grade_count.str2,gradek.num); fwrite(&grade_count,sizeof(struct grade_count),1,fp); fclose(fp); fclose(fp1); 24

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2