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