您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 教务信息管理系统课程设计报告
12020年4月19日教务信息管理系统课程设计报告《高级语言程序设计》课程设计题目:班级:软件R7班学生学号:31001015学生姓名:麦建波指导老师:姚金涛提交时间:5月6日华南农业大学软件学院教务信息管理系统文档仅供参考,不当之处,请联系改正。32020年4月19日教务信息管理系统1.系统分析1.1问题描述本程序为教务信息管理系统,经过输入学生的相关信息,对数据进行处理和统计,并按需要输入统计处理后的数据到文件中。1.2系统功能(1)录入如下信息:学生基本信息:如学号、姓名、性别、年龄、宿舍号码、电话号码等;课程基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。如果重修,需要考虑重修学期、重修成绩,而且要考虑多次重修的情况。(2)录入选课信息(3)录入学生成绩(4)按班统计学生选课情况及考试成绩(5)按课程统计学生名单及考试成绩(6)统计并输出每个同学已修学分及不及格课程文档仅供参考,不当之处,请联系改正。42020年4月19日1.3功能需求描述:(1)加载学生信息及其课程成绩:从文件录入学生的基本资料和课程情况,并覆盖原有数据。(2)新增学生信息及其课程成绩:按要求录入学生的基本资料和课程情况,经过提示信息逐步操作。(3)按班统计学生选课情况及考试成绩:根据录入的数据,以班为单位逐个输出选课情况及对应的成绩。(4)按课程统计学生名单及考试成绩:按提示输入课程编号,查询对应课程的学生名单及其成绩。(5)统计并输出每个同学已修学分及不及格课程:根据录入的数据进行统计,输出全部学生的已修学分及不及格课程的名称。(6)保存学生信息及其课程成绩并退出:将当前的学生基本资料和课程情况保存到文件,并覆盖原有文件。1.4开发平台及工具介绍(1)硬件环境:处理器:IntelPentium166或更高内存:32MB以上硬盘空间:2G以上文档仅供参考,不当之处,请联系改正。52020年4月19日显卡:SVGA显示适配器(2)软件环境:操作系统:Windows98/Me//XP//Vista/7/8等2.系统设计2.1系统总体结构设计2.2系统各个功能模块设计(1)教务信息管理系统加载学生信息及其课程成绩新增学生信息及其课程成绩按班统计学生选课情况及考试按课程统计学生名单及考试成统计学生已修学分及不及格课保存学生信息及其课程成绩并加载学生信息及其课程系统自动从根文件夹读取文加载成功显示相关信文档仅供参考,不当之处,请联系改正。62020年4月19日(2)(3)(4)(5)(6)2.3数据结构的设计2.3.1学生信息数据结构新增学生信息及其课程在已有加载数据基础上新增学生,依照提学生学号输入“0”返按班统计学生选课情况基于当前数据,按班级R1~R10分类统计并输出输出完毕后自动返回到按课程统计学生名单及输入课程编号,查找出已修该课程所有学生并课程编号输入“0”返统计学生已修学分及不基于当前数据,将每位学生已修课程的学分总输出完毕后自动返回到保存学生信息及其课程将当前数据以与加载相同的格式输出到文保存成功显示相关信息,并提示文档仅供参考,不当之处,请联系改正。72020年4月19日typedefstructstudent{intage,sub,cla;//年龄,选课数量,班级doublepoi;//已修学分charstun[15],name[30],sex[5],dorn[10],phon[20];//学号,姓名,性别,宿舍号码,短号电话号码courseles[10];//课程信息structstudent*next;}student;2.3.2课程信息数据结构typedefstructcourse{charlessonn[15],lessonname[50],re[5];//课程编号,课程名称,是否重修doubletextmark,formalmark,mark,point;//考试成绩,平时成绩,综合成绩,学分restudyres[5];//重修情况intrestime;//重文档仅供参考,不当之处,请联系改正。82020年4月19日修次数}course;2.3.3重修情况数据结构typedefstructrestudy{intterm;//重修学期doubleresmark;//重修分数}restudy;2.4界面设计程序界面应遵循简洁美观、方便使用的原则。2.4.1主界面充分考虑界面易于操作的系统需求,用printf语句构造简单的文字界面,具体主界面设计效果如图所示。2.4.2新增信息界面根据相关的文字提示,用户输入对应信息。文档仅供参考,不当之处,请联系改正。92020年4月19日3.系统实现基于系统需求分析与系统总体设计的结果,本系统采用Code::Blocks12.11软件平台基于C语言实现各模块的功能,下面按照模块的功能划分来分别阐述系统的详细设计和实现过程。3.1头文件:#includestdio.h#includestdlib.h#includestring.h3.2主界面模块功能:功能选择界面输入:用户选择的功能选项编号处理:根据用户选项跳转到相关功能函数输出:相关功能函数的处理或显示界面文档仅供参考,不当之处,请联系改正。102020年4月19日程序清单:student*insstu();//加载学生信息及其课程成绩student*inspoint(student*head,student*stud);//插入链表结点voidclalesmark(student*head);//按班统计学生选课情况及考试成绩voidlesstumark(student*head);//按课程统计学生名单及考试成绩voidpointfail(student*head);//统计并输出每个同学已修学分及不及格课程student*adds(student*hd);//新增学生信息及其课程成绩student*savestu(student*head);//保存学生信息及其课程成绩intmain(void){student*head,*p;intnum,n;intsize=sizeof(structstudent);head=NULL;文档仅供参考,不当之处,请联系改正。112020年4月19日printf(\t\t*****************************欢迎使用教务信息管理系统*****************************);do{printf(\n\t\t*------------------------------------请选择------------------------------------*\n);printf(\t\t*1、加载学生信息及其课程成绩\t\t\t2、新增学生信息及其课程成绩*\n);printf(\t\t*3、按班统计学生选课情况及考试成绩\t\t4、按课程统计学生名单及考试成绩*\n);printf(\t\t*5、统计并输出每个同学已修学分及不及格课程\t6、保存学生信息及其课程成绩并退出*\n);printf(\t\t*-----------------------------------0、退出------------------------------------*\n\n);fflush(stdin);//清除缓冲区scanf(%d,&n);switch(n){case1:head=insstu();break;case3:clalesmark(head);break;case4:lesstumark(head);break;case5:pointfail(head);break;文档仅供参考,不当之处,请联系改正。122020年4月19日case2:head=adds(head);break;case6:savestu(head);break;default:break;}}while(n!=0&&n!=6);printf(\n\t\t*----------------------------------!谢谢使用!----------------------------------*\n);return0;}3.3加载信息模块功能:从根文件夹加载记录学生信息的文件输入:无处理:将所有学生信息形成链表输出:加载成功情况程序清单:student*insstu(){student*p,*hd,*pt;inti,j,n=0;FILE*fp;fp=fopen(stu.txt,r);//从根目录读取文文档仅供参考,不当之处,请联系改正。132020年4月19日件intsize=sizeof(student);hd=NULL;while(1){p=(student*)malloc(size);fscanf(fp,%s,&p-stun);//读取学号if(strcmp(p-stun,0)==0)break;//学号为0返回fscanf(fp,%d,&p-cla);//读取班级fscanf(fp,%s,&p-name);//读取姓名fscanf(fp,%s,&p-sex);//读取性别fscanf(fp,%d,&p-age);//读取年龄fscanf(fp,%s,&p-dorn);//读取宿舍号码fscanf(fp,%s,&p-phon);//读取短号电话号码p-sub=0;p-poi=0;for(i=p-sub;i=10;i++){fscanf(fp,%s,&p-les[i].lessonn);//读取课程编号文档仅供参考,不当之处,请联系改正。142020年4月19日if(strcmp(p-les[i].lessonn,0)==0)break;//课程编号为0返回fscanf(fp,%s,&p-les[i].lessonname);//读取课程名称fscanf(fp,%lf,&p-les[i].textmark);//读取考试成绩fscanf(fp,%lf,&p-les[i].formalmark);//读取平时成绩fscanf(fp,%lf,&p-les[i].mark);//读取综合成绩fscanf(fp,%lf,&p-les[i].point);//读取学分p-poi+=p-les[i].point;//将该课程学分加入已修总学分fscanf(fp,%s,&p-les[i].re);//读取是否重修if(strcmp(p-les[i].re,是)==0){fscanf(fp,%d,&p-les[i].restime);//读取重修次数for(j=0;jp-les[i].restime;j++){文档仅供参考,不当之处,请联系改正。152020年4月19日fscanf(fp,%d,&p-les[i].res[j].term);//读取重修学期fscanf(fp,%lf,&p-les[i].res[j].resmark);//读取重修成绩}}p-sub++;}n++;if(n==1){hd=p;pt=p;}else{pt-next=p;pt=p;}}pt-next=NULL;printf(加载学生数据成功!共加载%d位学生信息\n,n);returnhd;}文档仅供参考,不当之处,请联系改正。162020年4月19日3.4新增信息模块功能:增加学生,并完整录入相关个人信息及选课信息输入:学生信息处理:将所得学生信息插入链表输出:无程序清单:student*adds(student*hd){student*p,*q,*r;inti,j;intsize=sizeof(student);while(1){p=(student*)malloc(size);//hd=inspoint(hd,p);//p-next=NULL;printf(请输入学号(12位数字,返回请输入0):);scanf(%s,&p-stun);if(strcmp(p-stun,0)==0)break
本文标题:教务信息管理系统课程设计报告
链接地址:https://www.777doc.com/doc-6035225 .html