学生教务管理系统_第1页
学生教务管理系统_第2页
学生教务管理系统_第3页
学生教务管理系统_第4页
学生教务管理系统_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生教务管理系统2任务二基于文件的学生/教务管理系统言为了巩固我们C语言知识,并了解其在生活中的应用,由老师为我们带来了这个题目。通过实训,学会为实际应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,从而对C语言程序设计这门课能有一个更深刻的理解和认识;再者,实训相对于平时试验课来说,要完成的是一个难度较大的可执行综合性程序,培养需求分析和系统架构等处理复杂问题的能力,从而极大的提高学生的编程能力以及撰写文档的能力;希望能通过实训,实际做到理论和实践紧密结合,同时也为后续课程打下坚实的基础知识。系统需求分析2.2.1问题定义本系统可以应用于教务处,进行对学生,教师,教务处人员的管理(添加,修改,删除,统计),人员查询,成绩查询(可以按照姓名查询,证件号查询)。本系统主要面对学生,教师,教务处,所以进入该系统时可以选择不同的身份进入,若已存在账号,则可以直接进去选择自己的身份,若不存在账号,则需要管理员进入添加,管理员可以进行的功能有成绩管理,学生管理,教师管理,管理员管理,每个模块都有添加,删除,修改,统计,查询五个基本功能。而教师则可以进行成绩的添加,修改,查询,等功能。学生只有查询和修改个人信息的功能。学学生管理系统管理员师教师管学生管成绩管管理员成绩管个人管查询修改个理理理管理理理人信息系统设计将要实现的模块分级进行架构学生管理系统管理教师:教师添加,教师修改,教师删除,教师统计,教师查询管理学生:学生添加,学生修改,学生删除,学生统计,学生查询管理管理员:管理员添加,管理员修改,管理员删除,管理员统计,管理员查询成绩管理:计算个人成绩,计算各科成绩,计算平均成绩,计算最高最低分,排序学生模块:查询个人成绩,查询个人信息,修改个人信息教师模块:添加学生成绩,修改学生成绩,删除学生成绩,查询学生信息,查询个人信息,修改个人信息。姓名身份证号联系方式教师姓名教师号身份证号数据类型charcharcharcharchar数据类型charcharcharchar可否为空否否是否是可否为空联联系方式课程管理员绩姓名证件号身份证号联系方式数学成绩体育成绩英语成绩社会实践分平均分数据类型数据类型floatfloatfloatfloatfloatfloatfloat可否为空否否是否是可否为空否否否否否否否否管理员可以进行的功能有成绩管理,学生管理,教师管理,管理员管理,每个模块都有添加,删除,修改,统计,查询五个基本功能。而教师则可以进行成绩的添加,修改,查询,等功能。学生只有查询和修改个人信息的功能。系统实现统软件环境:VC++,2.4.4系统功能模块设计与实现下面分别对该模块中的具体功能进行详细描述,并配相应功能的截图添加功能FILE*fp;charch2;inti=0,ch1;printf("欢迎进入防灾科技学院学生管理系统\n");printfy请输入n\n");scanf("%c",&ch2);if(ch2=='y'){{fp=fopen("","a+");/*输入所要添加的内容*/fwrite(&manager[i],sizeof(structmanager),1,fp);printf("%s,%s,%s,%s\n",manager[i].name,manager[i].sex,manager[i].mnum,manager[i].zhiwei);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf("%d",&ch1);fclose(fp);}while(ch1==1);}2.修改功能首先选择修改的依据,可以依据证件号,姓名两张方式修改。具体fp=fopen("","r+");printf("请输入需要修改的人员的编号\n");scanf("%s",str);for(i=0;fread(&manager[i],sizeof(structmanager),1,fp)!=0;i++){if(strcmp(str,manager[i].mnum)==0){printf("%s,%s,%s,%s\n",manager[i].name,manager[i].sex,manager[i].mnum,manager[i].zhiwei);printf("确认修改,确认请输入scanf("%d",&ch1);if(ch1==1){/*选择修改的类型*/scanf("%d",&ch2);switch(ch2){case1:{printf("请输入所要修改的姓名\n");scanf("%s",manager[i].name);fwrite(&manager[i],sizeof(structmanager),1,fp);}break;3.删除功能删除可以依据证件号和姓名查询,删除方法是,先找到需要删除的人,然后让排在其后的人员的信息替换这个人的信息。具体代码如FILE*fp;charname[20];inti,flag,n,j,ch;fp=fopen("","r+");printf("originaldata\n");for(i=0,flag=1;fread(&teacher[i],sizeof(structteacher),1,fp)!=0;i++)printf("%s,%s,%s,%s\n",manager[i].name,manager[i].sex,manager[i].mnum,manager[i].zhiwei);n=i+1;fclose(fp);{printf("请输入您所要删除的人员的名字\n");scanf("%s",name);fp=fopen("","r");for(i=0,flag=1;flag&&i<n;i++){if(strcmp(name,manager[i].name)==0){for(j=i;j<n-1;j++){/*后一个人的信息覆盖所需删除人的信息*/}flag=0;}}if(!flag)n=n-1;elseprintf("notfound\n");fp=fopen("","w");for(i=0;i<n;i++)fwrite(&manager[i],sizeof(structmanager),1,fp);fclose(fp);fp=fopen("","r");for(i=0,flag=1;fread(&manager[i],sizeof(structmanager),1,fp)!=0;i++)printf("%s,%s,%s,%s\n",manager[i].name,manager[i].sex,manager[i].mnum,manager[i].zhiwei);fclose(fp);printf("是否继续删除,继续请输入1,否则请输入0\n");scanf("%d",&ch);}while(ch==1);}4.查询功能FILE*fp;inti;charname[20];intch{printf("请输入姓名");scanf("%s",name);fp=fopen("","r");for(i=0;fread(&manager[i],sizeof(structmanager),1,fp)!=0;i++){if(strcmp(name,manager[i].name)==0)printf("%s,%s,%s,%s\n",manager[i].name,manager[i].sex,manager[i].mnum,manager[i].zhiwei);}fclose(fp);rintfnscanf("%d",&ch1);}while(ch1==1);}5.统计功能FILE*fp;ntnifp=fopen("","r");for(i=0;fread(&manager[i],sizeof(structmanager),1,fp)!=0;i++)n=i+1;fclose(fp);printf("共有%d名管理员\n",n);FILE*fp;charmnum[10],str[10];inti,flag,n;fp=fopen("","r+");printf("欢迎进入学生管理系统\n");printf("请输入证件号\n");scanf("%s",mnum);printf("请输入密码\n");scanf("%s",str);for(i=0;fread(&manager[i],sizeof(structmanager),1,fp)!=0;i++){n=i+1;printf("%d",n);}for(i=0,flag=1;i<n&&flag;i++){if((strcmp(mnum,manager[i].mnum)==0)&&(strcmp(str,manager[i].mima)==0)){managermanage();flag=0;}}fclose(fp);flagprintf("警告,密码输入错误\n");}添加由教师添加,根据教师所教授课程而添加,具体实现代码:FILE*fp,*fp1,*fp2;inti,n,k,j;chartnum[10],snum[10];str1[]="math",str2[]="ph",str3[]="c_language",str4[]="english",str5[]="practise";printf("请输入您的教师号\n");scanf("%s",tnum);fp=fopen("","r");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp)!=0;i++){if(strcmp(tnum,teacher[i].tnum)==0)n=i;}if(strcmp(teacher[n].course,str1)==0){fp1=fopen("","r");fp2=fopen("","a+");printf("请输入您所要添加学生的学号\n");scanf("%s",snum);for(i=0;fread(&student[i],sizeof(structstudent),1,fp1)!=0;i++){if(strcmp(snum,student[i].snum)==0)strcpy(grade[j].num,student[i].snum);}printf("请输入高等数学的成绩n;scanf("%f",&grade[j].math);fwrite(&grade[j],sizeof(structgrade),1,fp2);fclose(fp1);fclose(fp2);printf("是否继续添加,是1,否0\n");scanf("%d",&k);}while(k==1);}elseif(strcmp(teacher[n].course,str4)==0){继续添加其他课程elseprintf("不存在这门课,请核实\n");fclose(fp);}FILE*fp;inti;fp=fopen("","a+");for(i=0;fread(&grade[i],sizeof(structgrade),1,fp)!=0;i++){grade[i].sum=grade[i].math+grade[i].ph+grade[i].english+grade[i].c_language+grade[i].practise;grade[i].aver=grade[i].sum/5;printf("学号为%s的学生的总成绩是%f\n",grade[i].num,grade[i].sum);printf("学号为%s的学生的平均成绩是%f\n",grade[i].num,grade[i].aver);fwrite(&grade[i],sizeof(structgrade),1,fp);}fclose(fp);9.成绩排序主要是运用冒泡排序法。FILE*fp,*fp1;inti,n,j;floattemp;fp=fopen("","r");for(i=0;fread(&grade[i],sizeof(structgrade),1,fp)!=0;i++);n=i+1;for(i=0;i<n-1;i++){for(j=0;j<n-i;j++)if(grade[j].aver<grade[j+1].aver){temp=grade[j].aver;grade[j].aver=grade[j+1].aver;grade[j+1].aver=temp;}}for(i=0;i<n-1;i++){printf("学号为%s的学生的成绩为%f\n",grade[i].

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论