教务信息管理系统课程设计报告(12页).docx
《教务信息管理系统课程设计报告(12页).docx》由会员分享,可在线阅读,更多相关《教务信息管理系统课程设计报告(12页).docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-教务信息管理系统课程设计报告-第 12 页高级语言程序设计课程设计教务信息管理系统题 目:班 级: 软件R7班学生学号:201231001015学生姓名: 麦建波指导老师: 姚金涛 提交时间:2013年5月6日华南农业大学 软件学院教务信息管理系统 1. 系统分析 1.1 问题描述本程序为教务信息管理系统,通过输入学生的相关信息,对数据进行处理和统计,并按需要输入统计处理后的数据到文件中。 1.2 系统功能(1)录入如下信息:学生基本信息:如学号、姓名、性别、年龄、宿舍号码、电话号码等;课程基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、 学分、重修否等。如果重修,需要考虑重修学
2、期、重修成绩,并且要考虑多次重修的情况。(2)录入选课信息(3)录入学生成绩(4)按班统计学生选课情况及考试成绩(5)按课程统计学生名单及考试成绩(6)统计并输出每个同学已修学分及不及格课程 1.3 功能需求描述:(1)加载学生信息及其课程成绩:从文件录入学生的基本资料和课程情况,并覆盖原有数据。(2)新增学生信息及其课程成绩:按要求录入学生的基本资料和课程情况,通过提示信息逐步操作。(3)按班统计学生选课情况及考试成绩:根据录入的数据,以班为单位逐个输出选课情况及对应的成绩。(4)按课程统计学生名单及考试成绩:按提示输入课程编号,查询对应课程的学生名单及其成绩。(5)统计并输出每个同学已修学
3、分及不及格课程:根据录入的数据进行统计,输出全部学生的已修学分及不及格课程的名称。(6)保存学生信息及其课程成绩并退出:将当前的学生基本资料和课程情况保存到文件,并覆盖原有文件。1.4 开发平台及工具介绍(1)硬件环境:u 处 理 器:Intel Pentium 166或更高u 内 存:32MB以上u 硬盘空间:2G以上u 显 卡:SVGA显示适配器(2)软件环境:u 操作系统:Windows98/Me/2000/XP/2007/Vista/7/8等 2. 系统设计 2.1 系统总体结构设计教务信息管理系统保存学生信息及其课程成绩并退出统计学生已修学分及不及格课程按课程统计学生名单及考试成绩按
4、班统计学生选课情况及考试成绩新增学生信息及其课程成绩加载学生信息及其课程成绩 2.2 系统各个功能模块设计(1)加载成功显示相关信息,并提示加载学生总数系统自动从根文件夹读取文件”stu.txt”,依照程序步骤将学生信息输入到程序加载学生信息及其课程成绩(2)学生学号输入“0”返回到主界面在已有加载数据基础上新增学生,依照提示信息依次将学生信息输入到程序新增学生信息及其课程成绩(3)输出完毕后自动返回到主界面继续工作基于当前数据,按班级R1R10分类统计并输出学生所有信息到屏幕和文件”case3.txt”按班统计学生选课情况及考试成绩(4)输入课程编号,查找出已修该课程所有学生并输出其成绩及重
5、修与否到屏幕和文件”case4.txt”课程编号输入“0”返回到主界面按课程统计学生名单及考试成绩(5)基于当前数据,将每位学生已修课程的学分总和及不及格课程输出到屏幕和文件”case5.txt”输出完毕后自动返回到主界面继续工作统计学生已修学分及不及格课程(6)保存成功显示相关信息,并提示保存学生总数,最后退出程序将当前数据以与加载相同的格式输出到文件”stu.txt”,并覆盖原本存在的该文件保存学生信息及其课程成绩并退出 2.3 数据结构的设计2.3.1学生信息数据结构typedef struct student int age,sub,cla; /年龄,选课数量,班级 double po
6、i; /已修学分 char stun15,name30,sex5,dorn10,phon20; /学号,姓名,性别,宿舍号码,短号电话号码 course les10; /课程信息 struct student*next;student;2.3.2课程信息数据结构typedef struct course char lessonn15,lessonname50,re5; /课程编号,课程名称,是否重修 double textmark,formalmark,mark,point; /考试成绩,平时成绩,综合成绩,学分 restudy res5; /重修情况 int restime; /重修次数co
7、urse;2.3.3重修情况数据结构typedef struct restudy int term; /重修学期 double resmark; /重修分数restudy; 2.4 界面设计程序界面应遵循简洁美观、方便使用的原则。2.4.1主界面充分考虑界面易于操作的系统需求,用printf语句构造简单的文字界面,具体主界面设计效果如图所示。2.4.2新增信息界面根据相关的文字提示,用户输入对应信息。 3. 系统实现基于系统需求分析与系统总体设计的结果,本系统采用Code:Blocks12.11软件平台基于C语言实现各模块的功能,下面按照模块的功能划分来分别阐述系统的详细设计和实现过程。3.1
8、头文件:#include #include #include 3.2主界面模块功能:功能选择界面输入:用户选择的功能选项编号处理:根据用户选项跳转到相关功能函数输出:相关功能函数的处理或显示界面程序清单:student *insstu(); /加载学生信息及其课程成绩student *inspoint(student *head,student *stud); /插入链表结点void clalesmark(student *head); /按班统计学生选课情况及考试成绩void lesstumark(student *head); /按课程统计学生名单及考试成绩void pointfail(s
9、tudent *head); /统计并输出每个同学已修学分及不及格课程student *adds(student *hd); /新增学生信息及其课程成绩student *savestu(student *head); /保存学生信息及其课程成绩int main(void) student *head,*p; int num,n; int size=sizeof(struct student); head=NULL; printf(tt*欢迎使用教务信息管理系统*); do printf(ntt* -请选择- *n); printf(tt* 1、加载学生信息及其课程成绩ttt2、新增学生信息及其
10、课程成绩 *n); printf(tt* 3、按班统计学生选课情况及考试成绩tt4、按课程统计学生名单及考试成绩 *n); printf(tt* 5、统计并输出每个同学已修学分及不及格课程t6、保存学生信息及其课程成绩并退出*n); printf(tt* -0、退出- *nn); fflush(stdin); /清除缓冲区 scanf(%d,&n); switch(n) case 1:head=insstu();break; case 3:clalesmark(head);break; case 4:lesstumark(head);break; case 5:pointfail(head);
11、break; case 2:head=adds(head);break; case 6:savestu(head);break; default :break; while(n!=0&n!=6); printf(ntt* -!谢谢使用!- *n); return 0;3.3加载信息模块功能:从根文件夹加载记录学生信息的文件输入:无处理:将所有学生信息形成链表输出:加载成功情况程序清单:student *insstu() student *p,*hd,*pt; int i,j,n=0; FILE *fp; fp = fopen( stu.txt , r ); /从根目录读取文件 int size
12、=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); /读取短
13、号电话号码 p-sub=0;p-poi=0; for(i=p-sub;ilesi.lessonn); /读取课程编号 if(strcmp(p-lesi.lessonn,0)=0)break; /课程编号为0返回 fscanf(fp,%s,&p-lesi.lessonname); /读取课程名称 fscanf(fp,%lf,&p-lesi.textmark); /读取考试成绩 fscanf(fp,%lf,&p-lesi.formalmark); /读取平时成绩 fscanf(fp,%lf,&p-lesi.mark); /读取综合成绩 fscanf(fp,%lf,&p-lesi.point); /
14、读取学分 p-poi+=p-lesi.point; /将该课程学分加入已修总学分 fscanf(fp,%s,&p-lesi.re); /读取是否重修 if(strcmp(p-lesi.re,是)=0) fscanf(fp,%d,&p-lesi.restime); /读取重修次数 for(j=0;jlesi.restime;j+) fscanf(fp,%d,&p-lesi.resj.term); /读取重修学期 fscanf(fp,%lf,&p-lesi.resj.resmark); /读取重修成绩 p-sub+; n+; if(n=1) hd=p;pt=p; else pt-next=p;pt
15、=p; pt-next=NULL; printf(加载学生数据成功!共加载%d位学生信息n,n); return hd;3.4新增信息模块功能:增加学生,并完整录入相关个人信息及选课信息输入:学生信息处理:将所得学生信息插入链表输出:无程序清单:student *adds(student *hd) student *p,*q,*r; int i,j; int size=sizeof(student); while(1) p=(student *)malloc(size); /hd=inspoint(hd,p); /p-next=NULL; printf(请输入学号(12位数字,返回请输入0):
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教务 信息管理 系统 课程设计 报告 12
限制150内