学生教务管理系统.doc

上传人:夺命阿水 文档编号:18338 上传时间:2022-07-04 格式:DOC 页数:10 大小:63.50KB
返回 下载 相关 举报
学生教务管理系统.doc_第1页
第1页 / 共10页
学生教务管理系统.doc_第2页
第2页 / 共10页
学生教务管理系统.doc_第3页
第3页 / 共10页
学生教务管理系统.doc_第4页
第4页 / 共10页
学生教务管理系统.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《学生教务管理系统.doc》由会员分享,可在线阅读,更多相关《学生教务管理系统.doc(10页珍藏版)》请在课桌文档上搜索。

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

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

3、:管理教师:教师添加,教师修改,教师删除,教师统计,教师查询 管理学生:学生添加,学生修改,学生删除,学生统计,学生查询 管理管理员:管理员添加,管理员修改,管理员删除,管理员统计,管理员查询成绩管理:计算个人成绩,计算各科成绩,计算平均成绩,计算最高最低分,排序学生模块:查询个人成绩,查询个人信息,修改个人信息教师模块:添加学生成绩,修改学生成绩,删除学生成绩,查询学生信息,查询个人信息,修改个人信息.数据物理设计 学生列名数据类型可否为空#char否学号char否出身地char是#号char否联系方式char是教师列名数据类型可否为空#char否教师号char否出身地char是#号char

4、否联系方式char是课程char否管理员列名数据类型可否为空#char否证件号char否出身地char是#号char否联系方式char是成绩列名数据类型可否为空学号char否数学成绩float否体育成绩float否英语成绩float否C语言成绩float否社会实践float否总分float否平均分float否功能模块管理员可以进行的功能有成绩管理,学生管理,教师管理,管理员管理,每个模块都有添加,删除,修改,统计,查询五个基本功能.而教师则可以进行成绩的添加,修改,查询,等功能.学生只有查询和修改个人信息的功能.2.4 系统实现系统硬件环境为计算机,系统软件环境:VC+6.0,TC3.0 系统

5、功能模块设计与实现.1功能实现下面分别对该模块中的具体功能进行详细描述,并配相应功能的截图1. 添加功能FILE *fp;char ch2;int i=0,ch1; printf;printf;scanf;ifdo fp=fopen; /*输入所要添加的内容*/fwrite&manageri,sizeof,1,fp;printf;printf; scanf;i+;fclose;while;2. 修改功能 首先选择修改的依据,可以依据证件号,#两张方式修改.具体实现代码如下:fp=fopen;printf;scanf;fori=0;fread&manageri,sizeof,1,fp!=0;i+

6、 ifstrcmp=0 printf;printf;scanf;if /*选择修改的类型*/ scanf; switch case 1: printf; scanf; fwrite&manageri,sizeof,1,fp; break;3. 删除功能删除可以依据证件号和#查询,删除方法是,先找到需要删除的人,然后让排在其后的人员的信息替换这个人的信息.具体代码如下:FILE *fp; char name20; int i,flag,n,j,ch; fp=fopen; printf; fori=0,flag=1;fread&teacheri,sizeof,1,fp!=0;i+ printf;

7、n=i+1; fclose; do printf; scanf; fp=fopen; fori=0,flag=1;flag&i ifstrcmp=0 forj=i;j /*后一个人的信息覆盖所需删除人的信息*/ flag=0; if n=n-1; else printf; fp=fopen; fori=0;i fwrite&manageri,sizeof,1,fp; fclose; fp=fopen; fori=0,flag=1;fread&manageri,sizeof,1,fp!=0;i+ printf; fclose; printf; scanf; while;4. 查询功能FILE *

8、fp; int i; char name20; int ch1; do printf; scanf; fp=fopen; fori=0;fread&manageri,sizeof,1,fp!=0;i+ ifstrcmp=0 printf; fclose; printf; scanf; while;5. 统计功能FILE *fp; int n,i;fp=fopen; fori=0;fread&manageri,sizeof,1,fp!=0;i+ n=i+1; fclose; printf;6. 权限管理:FILE *fp;char mnum10,str10;int i,flag,n;fp=fop

9、en;printf;printf;scanf; printf;scanf;fori=0;fread&manageri,sizeof,1,fp!=0;i+n=i+1;printf;fori=0,flag=1;iifstrcmp=0&strcmp=0 managermanage; flag=0; fclose;if printf;7成绩添加由教师添加,根据教师所教授课程而添加,具体实现代码:FILE *fp,*fp1,*fp2; int i,n,k,j; char tnum10,snum10; char str1=math,str2=ph,str3=c_language,str4=english,

10、str5=practise;printf;scanf; fp=fopen; fori=0;fread&teacheri,sizeof,1,fp!=0;i+ ifstrcmp=0 n=i; ifstrcmp=0dofp1=fopen;fp2=fopen;printf; scanf; j=0; fori=0;fread&studenti,sizeof,1,fp1!=0;i+ifstrcmp=0 strcpy;printf;scanf;fwrite&gradej,sizeof,1,fp2; j+; fclose; fclose;printf;scanf; while;else ifstrcmp=0继

11、续添加其他课程 else printf; fclose;8成绩计算:FILE *fp; int i; fp=fopen; fori=0;fread&gradei,sizeof,1,fp!=0;i+gradei.sum=gradei.math+gradei.ph+gradei.english+gradei.c_language+gradei.practise;gradei.aver=gradei.sum/5;printf; printf;fwrite&gradei,sizeof,1,fp; fclose;9成绩排序 主要是运用冒泡排序法. 代码:FILE *fp,*fp1;int i,n,j;f

12、loat temp; fp=fopen; fori=0;fread&gradei,sizeof,1,fp!=0;i+; n=i+1; fori=0;iforj=0;j ifgradej.aver temp=gradej.aver; gradej.aver=gradej+1.aver; gradej+1.aver=temp; fori=0;i printf;fp1=fopen;fwrite&gradei,sizeof,1,fp1; fclose;fclose;10计算成绩最高最低分,、采用穷比法,首先设第一个人的成绩是最高或最低,再和其他人员的成绩比较,直到所有人员比较完之后,找出最高分或最低分

13、.具体实现代码如下:FILE *fp,*fp1;int i,n,k;float max,min;fp=fopen; fp1=fopen; fori=0;fread&gradei,sizeof,1,fp!=0;i+ n=i+1; max=grade0.aver; min=grade0.aver; fori=1;i ifmax max=gradei.aver; k=i; grade_count.amax=max; strcpy; fori=1;i ifgradei.aver min=gradei.aver; k=i; grade_count.amin=min; strcpy; fwrite&grade_count,sizeof,1,fp; fclose; fclose;10 / 10

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号