欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    学生教务管理系统.doc

    • 资源ID:1143283       资源大小:63.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生教务管理系统.doc

    2 任务二 基于文件的学生/教务管理系统2.1 前言为了巩固我们C语言知识,并了解其在生活中的应用,由老师为我们带来了这个题目.通过实训,学会为实际应用涉与的数据选择适当的逻辑结构、存储结构与相应的算法,从而对C语言程序设计这门课能有一个更深刻的理解和认识;再者,实训相对于平时试验课来说,要完成的是一个难度较大的可执行综合性程序,培养需求分析和系统架构等处理复杂问题的能力,从而极大的提高学生的编程能力以与撰写文档的能力;希望能通过实训,实际做到理论和实践紧密结合,同时也为后续课程打下坚实的基础知识.2.2 系统需求分析 问题定义本系统可以应用于教务处,进行对学生,教师,教务处人员的管理添加,修改,删除,统计,人员查询,成绩查询可以按照#查询,证件号查询.本系统主要面对学生,教师,教务处,所以进入该系统时可以选择不同的身份进入,若已存在账号,则可以直接进去选择自己的身份,若不存在账号,则需要管理员进入添加,管理员可以进行的功能有成绩管理,学生管理,教师管理,管理员管理,每个模块都有添加,删除,修改,统计,查询五个基本功能.而教师则可以进行成绩的添加,修改,查询,等功能.学生只有查询和修改个人信息的功能.需求分析学生管理系统管理员教师学生教师管理学生管理成绩管理管理员管理成绩管理个人管理查询修改个人信息2.3 系统设计2.3.1系统架构将要实现的模块分级进行架构 学生管理系统管理员模块:管理教师:教师添加,教师修改,教师删除,教师统计,教师查询 管理学生:学生添加,学生修改,学生删除,学生统计,学生查询 管理管理员:管理员添加,管理员修改,管理员删除,管理员统计,管理员查询成绩管理:计算个人成绩,计算各科成绩,计算平均成绩,计算最高最低分,排序学生模块:查询个人成绩,查询个人信息,修改个人信息教师模块:添加学生成绩,修改学生成绩,删除学生成绩,查询学生信息,查询个人信息,修改个人信息.数据物理设计 学生列名数据类型可否为空#char否学号char否出身地char是#号char否联系方式char是教师列名数据类型可否为空#char否教师号char否出身地char是#号char否联系方式char是课程char否管理员列名数据类型可否为空#char否证件号char否出身地char是#号char否联系方式char是成绩列名数据类型可否为空学号char否数学成绩float否体育成绩float否英语成绩float否C语言成绩float否社会实践float否总分float否平均分float否功能模块管理员可以进行的功能有成绩管理,学生管理,教师管理,管理员管理,每个模块都有添加,删除,修改,统计,查询五个基本功能.而教师则可以进行成绩的添加,修改,查询,等功能.学生只有查询和修改个人信息的功能.2.4 系统实现系统硬件环境为计算机,系统软件环境:VC+6.0,TC3.0 系统功能模块设计与实现.1功能实现下面分别对该模块中的具体功能进行详细描述,并配相应功能的截图1. 添加功能FILE *fp;char ch2;int i=0,ch1; printf<"欢迎进入防灾科技学院学生管理系统n">printf<"添加请输入y,退出请输入nn">scanf<"%c",&ch2>if<ch2='y'>do fp=fopen<"manager.txt","a+"> /*输入所要添加的内容*/fwrite<&manageri,sizeof<struct manager>,1,fp>printf<"%s,%s,%s,%sn",manageri.name,manageri.sex,manageri.mnum,manageri.zhiwei>printf<"是否继续添加,继续添加请输入1,否则输入0n"> scanf<"%d",&ch1>i+;fclose<fp>while<ch1=1>2. 修改功能 首先选择修改的依据,可以依据证件号,#两张方式修改.具体实现代码如下:fp=fopen<"manager.txt","r+">printf<"请输入需要修改的人员的编号n">scanf<"%s",str>for<i=0;fread<&manageri,sizeof<struct manager>,1,fp>!=0;i+> if<strcmp<str,manageri.mnum>=0> printf<"%s,%s,%s,%sn",manageri.name,manageri.sex,manageri.mnum,manageri.zhiwei>printf<"确认修改,确认请输入1,退出则输入0n">scanf<"%d",&ch1>if<ch1=1> /*选择修改的类型*/ scanf<"%d",&ch2> switch<ch2> case 1: printf<"请输入所要修改的#n"> scanf<"%s",manageri.name> fwrite<&manageri,sizeof<struct manager>,1,fp> break;3. 删除功能删除可以依据证件号和#查询,删除方法是,先找到需要删除的人,然后让排在其后的人员的信息替换这个人的信息.具体代码如下:FILE *fp; char name20; int i,flag,n,j,ch; fp=fopen<"manager.txt","r+"> 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.mnum,manageri.zhiwei> n=i+1; fclose<fp> do printf<"请输入您所要删除的人员的名字n"> scanf<"%s",name> fp=fopen<"manager.txt","r"> for<i=0,flag=1;flag&&i<n;i+> if<strcmp<name,manageri.name>=0> for<j=i;j<n-1;j+> /*后一个人的信息覆盖所需删除人的信息*/ flag=0; if<!flag> n=n-1; else printf<"not foundn"> fp=fopen<"manager.txt","w"> for<i=0;i<n;i+> fwrite<&manageri,sizeof<struct manager>,1,fp> fclose<fp> fp=fopen<"manager.txt","r"> for<i=0,flag=1;fread<&manageri,sizeof<struct manager>,1,fp>!=0;i+> printf<"%s,%s,%s,%sn",manageri.name,manageri.sex,manageri.mnum,manageri.zhiwei> fclose<fp> printf<"是否继续删除,继续请输入1,否则请输入0 n"> scanf<"%d",&ch> while<ch=1>4. 查询功能FILE *fp; int i; char name20; int ch1; do printf<"请输入#"> scanf<"%s",name> fp=fopen<"manager.txt","r"> 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> printf<"继续请输入1,否则输入0n"> scanf<"%d",&ch1> while<ch1=1>5. 统计功能FILE *fp; int n,i;fp=fopen<"manager.txt","r"> for<i=0;fread<&manageri,sizeof<struct manager>,1,fp>!=0;i+> n=i+1; fclose<fp> printf<"共有%d名管理员n",n>6. 权限管理:FILE *fp;char mnum10,str10;int i,flag,n;fp=fopen<"manager.txt","r+">printf<"欢迎进入学生管理系统n">printf<"请输入证件号n">scanf<"%s",mnum> printf<"请输入密码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;i<n&&flag;i+>if<<strcmp<mnum,manageri.mnum>=0>&&<strcmp<str,manageri.mima>=0>> managermanage<> flag=0; fclose<fp>if<flag> printf<"警告,密码输入错误n">7成绩添加由教师添加,根据教师所教授课程而添加,具体实现代码:FILE *fp,*fp1,*fp2; int i,n,k,j; char tnum10,snum10; char str1="math",str2="ph",str3="c_language",str4="english",str5="practise"printf<"请输入您的教师号n">scanf<"%s",tnum> fp=fopen<"teacher.txt","r"> for<i=0;fread<&teacheri,sizeof<struct teacher>,1,fp>!=0;i+> if<strcmp<tnum,teacheri.tnum>=0> n=i; if<strcmp<teachern.course,str1>=0>dofp1=fopen<"student.txt","r">fp2=fopen<"grade.txt","a+">printf<"请输入您所要添加学生的学号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>printf<"请输入高等数学的成绩n">scanf<"%f",&gradej.math>fwrite<&gradej,sizeof<struct grade>,1,fp2> j+; fclose<fp1> fclose<fp2>printf<"是否继续添加,是1,否0n">scanf<"%d",&k> while<k=1>else if<strcmp<teachern.course,str4>=0>继续添加其他课程 else printf<"不存在这门课,请核实n"> fclose<fp>8成绩计算:FILE *fp; int i; fp=fopen<"grade.txt","a+"> for<i=0;fread<&gradei,sizeof<struct grade>,1,fp>!=0;i+>gradei.sum=gradei.math+gradei.ph+gradei.english+gradei.c_language+gradei.practise;gradei.aver=gradei.sum/5;printf<"学号为%s的学生的总成绩是%fn",gradei.num,gradei.sum> printf<"学号为%s的学生的平均成绩是%fn",gradei.num,gradei.aver>fwrite<&gradei,sizeof<struct grade>,1,fp> fclose<fp>9成绩排序 主要是运用冒泡排序法. 代码:FILE *fp,*fp1;int i,n,j;float temp; fp=fopen<"grade.txt","r"> for<i=0;fread<&gradei,sizeof<struct grade>,1,fp>!=0;i+> n=i+1; for<i=0;i<n-1;i+>for<j=0;j<n-i;j+> if<gradej.aver<gradej+1.aver> temp=gradej.aver; gradej.aver=gradej+1.aver; gradej+1.aver=temp; for<i=0;i<n-1;i+> printf<"学号为%s的学生的成绩为%fn",gradei.num,gradei.aver>fp1=fopen<"grade1.txt","a+">fwrite<&gradei,sizeof<struct grade>,1,fp1> fclose<fp1>fclose<fp>10计算成绩最高最低分,、采用穷比法,首先设第一个人的成绩是最高或最低,再和其他人员的成绩比较,直到所有人员比较完之后,找出最高分或最低分.具体实现代码如下:FILE *fp,*fp1;int i,n,k;float max,min;fp=fopen<"grade.txt","r"> fp1=fopen<"count.txt","a+"> for<i=0;fread<&gradei,sizeof<struct grade>,1,fp>!=0;i+> n=i+1; max=grade0.aver; min=grade0.aver; for<i=1;i<n;i+> if<max<gradei.aver> max=gradei.aver; k=i; grade_count.amax=max; strcpy<grade_count.str1,gradek.num> for<i=1;i<n;i+> if<min>gradei.aver> 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>10 / 10

    注意事项

    本文(学生教务管理系统.doc)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开