收藏 分销(赏)

教师工作量管理系统.doc

上传人:a199****6536 文档编号:3942753 上传时间:2024-07-24 格式:DOC 页数:18 大小:64.54KB
下载 相关 举报
教师工作量管理系统.doc_第1页
第1页 / 共18页
教师工作量管理系统.doc_第2页
第2页 / 共18页
教师工作量管理系统.doc_第3页
第3页 / 共18页
教师工作量管理系统.doc_第4页
第4页 / 共18页
教师工作量管理系统.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、沈 阳 航 空 航天大 学 课程设计学 号:班 级:姓 名:指导教师:2011年 3 月11日沈阳航空航天大学课程设计任务书系:动力与能源工程学院 专业:飞行器动力工程 班级:学号:题目:教师工作量管理系统一、课程设计时间201011第2学期第1周,即3月7日3月11日,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:计算每个老师在一个学期中所教课程的总工作量(教师的信息为:教师号、姓名、所授课程、班级数目、理论课时、实验课时、单个教学任务总课时).(1)输入教师教学信息,包括教师号、姓名、所授课程、班级数目、理论课时、实验课时.(2)插入教师授课信息.(3)教师工作量计算:

2、 计算单个教学任务总课时.计算原则如下表:班级数目单个教学任务总课时21.5(理论课时+实验课时)32(理论课时+实验课时)=42。5(理论课时+实验课时) 计算一个教师一个学期总的教学工作量。总的教学工作量等于所有单个教学任务总课时之和.(4)完整的教师信息显示。三、课程设计要求程序质量:1贯彻结构化程序设计思想.2用户界面友好,功能明确,操作方便;可以加以其它功能或修饰.3用户界面中的菜单至少应包括“输入教师信息”、“插入授课信息”、“工作量计算与显示、“退出”4项。4代码应适当缩进,并给出必要的注释,以增强程序的可读性.课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说

3、明书的内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩六、教师评语沈阳航空航天大学设计用纸目录一、需求分析1二、设计分析2三、主要界面截图4四、技术要点6五、个人总结9六、参考文献10七、源程序1114一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统主要适用于学校教务处的工作人员统计教师的课程量,系统首先应功能齐全,操作简便,还应该具有安全、稳定的特点。1. 安全性分析系统管理的数据涉及到学院的所有教师,数据量较大且是一种基础性数据,能够为其它方面的学生管理工作提供重要参考,所以要通过设置密码等手段确保数据不能被随意的删减和修改

4、.2。 稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃.3.主要功能分析(1)数据输入:在使用系统时,操作人员需要根据系统提示,按要求输入教师的个人信息以及教师的授课信息.若输入出现错误,操作人员可以根正,但必要是需要退出系统后重新进入系统输入.(2)数据保存:对于输入的数据,或被修改的数据以及统计结果应该保存到某个磁盘文件中,实现永久存储。文件的具体格式题目未作具体要求,所以可采用随机文件,也可采用文本文件.不管采用哪种文件形式,文件中的数据应有固定的格式,以便于程序自动读取或人工阅读.二、设计分析主要有6个功能模块,

5、每个模块对应一个C语言自定义函数.这些函数原型及其功能简述如下:1、程序总体结构图(传统流程图或NS框图)图1程序总体结构图2、主要功能模块框图(传统流程图或NS框图)(1)输入教师信息模块输入教师号pi。jsh=tea。jsh输入教师姓名strcpy(pi。name,tea。name)输入该名教师所授课程数目pi。a=tea。a图2输入教师信息模块(2)插入授课信息模块输入课程题目strcpy(wj。kctm,kc.kctm)输入该课程的班级数目wj。bjsm=kc。bjsm输入该课程理论课时数目wj.llks=kc。llks输入该课程实验课时数目wj。syks=kc。syks 图3插入授课

6、信息模块(3)教师工作量计算模块图4教师工作量计算模块三、主要界面截图图1 程序主界面图2 错误提示界面图3 退出系统界面图4 教师信息输入界面(输入系统校验数据)图5 信息输出界面四、技术要点1、结构体的应用定义了结构体用来描述教师的姓名、教师号、所授课程、班级数目、理论课时、实验课时.具体的定义如下:struct kcxxchar kctm15;int bjsm;int llks;int syks;;struct teacherint jsh;char name15;int a;struct kcxx shouke5;struct teacher tea100; struct teache

7、r p;float sum100;/存放教师的工作量/所定义的结构体主要用于定义数组。2、文件操作此程序的文件操作主要是对教师信息及其授课信息的保存,将系统使用的数据及统计结果录入磁盘文件中以便查阅。具体的程序如下:void save(float sum,int n,int b)int z,i;FILE *fp, fc, fq;printf(请确认信息,如需文件保存请输入1并回车,无需保存输入2并回车。n”);/*教师信息及统计结果的保存/scanf(”d”,&z);if(z=1)if(fp=fopen(”teacher_xx”,”wb)=NULL)printf(”文件打开失败n”);prin

8、tf(”未保存n”);else fc=fopen(”kechen_xx,wb”);fq=fopen(teacher_gzl”,wb);for(i=1;i=n;i+)if(fwrite(teai,sizeof(struct teacher),1,fp)!=1)printf(”文件输出失败n);elsefwrite(sumi,4,1,fq);fclose(fp);fclose(fc);fclose(fq);printf(”保存成功n”);elseprintf(”未保存n”);3、教师教学任务的算法教师教学任务的计算是根据教学计算原则计算的.首先自定义函数计算单课时的教学任务,然后在主函数中循环调用

9、该函数计算出所有课时的任务量,最后将其求和即可。具体程序如下:自定义函数部分:float dan(int bjs,int llks,int syks)float dgks;if(bjs=4)dgks=(llks+syks)*2.5;elseif(bjs=3)dgks=2(llks+syks);elsedgks=(llks+syks)*1。5;return dgks; 主函数调用部分: case 3:/计算/if((cd1=1)&(cd2=2)for(e=1;e=n;e+)for(f=1;f=be;f+)/*e指定的是人数,f指定的是课程数/c=pe。shoukef。bjsm;af=dan(c,

10、pe。shoukef。llks,pe.shoukef。syks);sume=0;for(f=1;f=be;f+)sume+=af;printf(”第 %d 位教师的工作量=。2fn,e,sume);五、个人总结经过一周的课程设计后,我对C语言有了更加深入的认识。以前我们学习C语言只是仅限于书本的理论认识,上机调试一些简单的程序,对于把书中的知识真正运用到现实中去,去解决生活中的问题还未有过。这次的课程设计让我们切身感觉到了理论知识的实际作用,那些生活中的许多现象也不再那么神奇。由于C语言学了有些时日,所以在设计过程中参考了一些资料。面对这样陌生的课题,刚开始也是茫然一片,思路很混乱,不知道从何

11、处开始.经过一段时间的思考,我确定了编程思路,先解决程序的各分支问题,然后再将各部分的程序组合在一起从而完成程序的设计.当然,这也不是顺利的,编程需要无数次的修改,有时候还要完全推翻之前的模块设计重新开始,有时候也会因为出现一点小错误而无法通过编译时对着电脑苦思冥想。不过付出终是有回报的,自己编写的程序基本完成了所需要的功能,至于程序的一些优化和修饰就感觉简单多了.虽然变好了程序,获得了运行的结果,但是我也自知其中存在许多的不足之处,比如程序过于冗长,运行过程中界面有些混乱,容易让操作人员产生误解,某些功能不太完善。当然也有其有点所在,如程序结构清晰,有明确的操作提示等。总之,经过几天的课程设

12、计,我对C语言有了更加浓厚的兴趣,它是一件非常有用的工具,学好它对我们以后的工作大有裨益。六、参考文献1, 谭浩强C程序设计北京:清华大学出版社,2005七、源程序(所书写的全部源程序,排版要规范)#include /定义全局变量以指代教师的个人信息和其授课信息/struct kcxxchar kctm15;int bjsm;int llks;int syks;struct teacherint jsh;char name15;int a;struct kcxx shouke5;;struct teacher tea100;struct teacher p;float sum100;/存放教师

13、的工作量*/主函数开始/void main()int i,j,b10,n,c,e,f,l=0;int cd1,cd2,cd3,cd4;float a10;p=tea;/*申明函数部分*/void shuru1(int i);void shuru2(int i,int j);float dan(int bjs,int llks,int syks);void shuchu(int b,int n,float sum);void save(float sum,int n,int b);/输出界面/printf(*nn);printf(” n);printf(”欢迎进入教师工作量管理系统nnn”);p

14、rintf(”*nnn”);while(1)/输出系统菜单/printf(” 系统菜单n”);printf( *n”);printf(” 。 输入教师信息 n”);printf( 。 插入授课信息 *n”);printf( 。 教师工作量计算 n”);printf(” . 输出统计结果 n);printf(” * 。 保存教师信息及统计结果 n”);printf( . 退出 n”);printf(” *nn”);printf(” 说明:请按菜单序号依次执行,且必须首先执行前三项,重复输入将覆盖之前的输入信息.nn”);printf(” 请选择需要执行的菜单项:nn”);scanf(d,l);s

15、witch(l)case 1:printf(” 请输入所需统计的教师人数,且人数小于一百n”);scanf(%d,&n);for(i=1;i=n;i+)printf(请输入第 d 位教师信息n”,i);shuru1(i);/输入教师信息*/bi=pi.a;/*b表示的是教师所授课程的数目,i指定第几位教师*/if(i=n)break;cd1=1;printf(”输入结束,请进入下一项nn);break;case 2:if(cd1=1)printf(请对应输入教师的授课信息n);for(i=1;i=n;i+)printf(请输入第 %d 位教师的课程信息n”,i);for(j=1;j=bi;j+

16、)shuru2(i,j);/输入课程信息*/if(j=bi)break;printf(请输入下一课程信息!n”);if(i=n)break;cd2=2;printf(”输入结束,请进入下一项nn”);elseprintf(” o()o 请先输入教师信息!nnn);break;case 3:if(cd1=1)&(cd2=2)for(e=1;e=n;e+)for(f=1;f=be;f+)c=pe.shoukef.bjsm;af=dan(c,pe。shoukef.llks,pe.shoukef。syks);sume=0;for(f=1;f=be;f+)sume+=af;printf(”第 d 位教师

17、的工作量=。2fn”,e,sume);cd3=3;printf(计算完成,请进入下一项nn”);elseprintf(” o()o请先输入教师信息及其授课信息!nnnn);break;case 4:if(cd1=1)&(cd2=2)(cd3=3))shuchu(b,n,sum);/*调用输出函数,输出完整的教师信息/cd4=4;printf(”输出完成,请进入下一项nn”);elseprintf(” o()o请先完善输入信息!nnnn);break;case 5:if(cd1=1)&(cd2=2)(cd3=3)) save(sum,n,b);elseprintf(” o()o请先完善信息并运算

18、!nnnn”);break;case 6:printf(” 程序结束*谢谢使用n);printf(” _ _ _ _ _ nnnn”);exit(0);default: printf(输入错误,请输入菜单中存在的序号!n=3)dgks=2(llks+syks);elsedgks=(llks+syks)1。5;return dgks;/输出函数/void shuchu(int *b,int n,float sum)int i,j;printf(”nnn”);printf(” 信息输出如下:nn”);printf(”::::::::::::::::::::::::::::::::n”);for(i

19、=1;i=n;i+)printf(教师号 教师姓名n”);printf(”5d 10snn,pi.jsh,pi。name);printf(”所授课程 班级数目 理论课时 实验课时n”);for(j=1;j=bi;j+)printf(”5s 10d %10d 10dnn”,pi。shoukej。kctm,pi.shoukej。bjsm,pi.shoukej.llks,pi.shoukej。syks);printf(”总教学工作量=。2f课时n,sumi);printf(”:::::::::::::::::::::::::::n);printf(nn);/*保存信息/void save(float

20、 sum,int n,int b)int z,i;FILE *fp, *fq;printf(”请确认信息,如需文件保存请输入1并回车,否则输入2并回车.n);/*教师信息及统计结果的保存/scanf(”%d”,z);if(z=1)if((fp=fopen(”teacher_xx”,”wb)=NULL)printf(”文件打开失败n”);printf(未保存n);elsefq=fopen(”teacher_gzl”,wb”);for(i=1;i=n;i+)if(fwrite(&teai,sizeof(struct teacher),1,fp)!=1)printf(”文件输出失败n”);elsefwrite(&sumi,4,1,fq);fclose(fp);fclose(fq);printf(”保存成功n”);elseprintf(未保存n”);

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服