教师工作量管理系统-课程设计-C语言.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date教师工作量管理系统-课程设计-C语言教师工作量管理系统-课程设计-C语言 成 绩 评 定 表学生姓名张宁班级学号1209030104专 业统计学课程设计题目教师工作量管理系统 评语组长签字:成绩日期 20 年 月 日课程设计任务书学 院理学院专 业统计学学生姓名左茹班级学号1209030104课程设计题目设计一个教师工作量管理系统:根据老师的上课情况,按照班级系数、职称等推算出工作量及报酬。实践教学要求与任务:1、 进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;2、 针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。3、 本次设计的教师工作量管理系统,需要运用到结构体、循环、数组、函数调用等大量知识点。通过这个设计,来增加 C语言知识的运用能力和自主学习能力。4、通过此次课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。进一步掌握C语言中有关重要的数据结构,诸如:数组、结构数组等在程序开发中的应用。工作计划与进度安排:第一天:确定题目,查找相关资料第二天:程序设计第三、四天:程序调试、测试第五天:答辩指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日目录第一章. 需求分析.4第二章. 总体设计.5第三章. 详细设计图.6第四章. 测试.8第五章. 总结.8第六章. 程序代码.9第七章. 参考文献.13 第一章需求分析(一) 研究背景:随着高等学校的快速发展,高校教师的规模越来越大,教职工的数量也越来越多,每年对高校教师的评教管理无疑是一项琐碎、复杂而又十分细致的工作。关于工作量的计算,项目繁多,而且一般不允许出错。在以往,教务部门对教师工作量的统计工作一直都是采取手工的方式,每年需填制大量的表格,这就会耗费工作人员大量的时间和精力。如若采用专门的计算机管理系统,不仅能够保证工作量核算准确无误、快速输出,而且还可以利用计算机对有关工作量的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高教师工作量管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。使用计算机管理系统来管理高校教师工作量已成为目前的趋势,使用计算机可以高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范数据管理行为,从而提高管理效率和水平。高校教师工作量管理系统便是以计算机为工具,通过对工作量管理所需的信息管理,不仅把管理人员从繁琐的数据计算处理中解脱出来,而且优化了管理体系,使其高效化,简易化、智能化,也提高了透明性和互动性。(二) 产品功能: (1)工作量信息录入:教师一个教学任务的信息为:教师编号(不重复)、姓名、授课班级系数、理论课时、实验课时、教学任务总课时。提供录入界面供用户输入数据,并以合理数据结构,诸如:结构数组或数据文件的形式加以保存。 (2)工作量计算:以教师为单位,计算出该教师一个学年的总工作量。计算公式如下:a. 教学任务总课时。计算方法如下表:小班班级数目 单个教学任务总课时 2 1.5*(理论课时+实验课时) 3 2*(理论课时+实验课时)>=4 2.5*(理论课时+实验课时)b. 一个学年总的教学工作量=所有单个教学任务总课时之和*职称系数。其中:正教授系数=1.2;副教授系统=1.1;其他职称系数=1。 (3)查找:能查找一个教师年度工作量明细、查找某教师年度总作量。(6)系统以菜单方式工作,界面应清晰直观,便于用户操作。第二章总体设计 主函数数据录入计算工作量查找数据 菜单函数 退出1.主函数 main()功能:调用菜单函数;2.菜单函数main_menu()功能:提供用户选择的入口,进入其他模块进行相关处理;3.信息输入函数 input_teacher_information()功能:录入需查询的教师和课程的相关信息(结构数组形式);4.查询教师工作量及报酬函数total_task ()功能:调用相关模块,对指定的信息项进行查询;第三章 详细设计图流程图主函数流程图 :开始 定义全局变量liang量主要选择菜单否输入错误是否菜单选项是否小于0或大于3数据录入计算工作量查找数据退出主要菜单流程图:是输入错误根据所选项接入子函数输入选项菜单选项是否小于0或大于3是 工作量计算流程图: 单个教学任务总课时=实验课时+理论课时否是职称=正教授职系=1.2否是职系=1.1年度总工作量=所有单个教学任务总课时之和*职系数输出小班数目小班数目=2=2是A=1.5否小班数目=3A=2.5A=2否是职称=副教授职称=1.0第四章.测试第五章.总结对于这次我设计的教师工作管理,我感觉自己花了很多的时间并投入很多努力,虽然总是一次一次出现ERROR运行不了让人感到特气馁,但我还是坚持了下来,通过同学的帮助,把错误一个一个都解决掉了,最后才得以成功。所以我要感谢老师和帮助过我的同学,让我在我的第一次课设中坚持了下来。通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。这会对以后的学习有所帮助。第六章 程序代码#include<stdio.h>#define MAX 100typedef struct courseint theory;int experiment;int class_num;float total;course; struct teacherint id;char name10;course cour10;int num;float total;float reward;int profession;teacherMAX;int main()int N=0,K; void main_menu(); void input_teacher_information(); void total_task(); main_menu(); K=getchar(); switch(K) case '1':input_teacher_information(N);break; case '2':total_task();break; case '0':exit(0);break; default:printf("terror!n"); clrscr(); return 0;void main_menu() printf("t Welcome To Teacher's Management Systemn"); printf("t-n"); printf("t* 1>Input teacher's information *n"); printf("t* 2>Inquire about the amount of teacher's total task *n"); printf("t* 0>Exit *n"); printf("t-n"); printf("please input the order number you need:n");void input_teacher_information()int i,j,N;char title;float all_total=0;printf("tplease input the number of teachers:n");scanf("%d",&N);if (N>=MAX)printf("terror!the number is reach limit!n");for (j=1;j<=N;j+)printf("please input NO.%d teacher's information:n",j);printf("tplease input teacher's id:");scanf("%d",&teacherj.id);printf("tplease input teacher's name:n");scanf("%s",teacherj.name);printf("tplease choose teacher's positional titles:n");printf("A. Full Professor B. Associate Professor C.Othersn");scanf("%c",&title);switch(title)case 'A':teacherj. profession=1.2;break; case 'B':teacherj. profession=1.1;break; case 'C':teacherj. profession=1.0;break; default:printf("terror!n");printf("tplease input the number of teacher's courses:n");scanf("%d",&teacherj.num);for (i=0;i<teacherj.num;i+)printf("tplease input the NO.%d course's information:n",i+1);printf("tplease input the number of theory course:n");scanf("%d",&teacherj.couri.theory);printf("tplease input the number of experiment course:n");scanf("%d",&teacherj.couri.experiment);printf("tplease input the number of class(>=2):");scanf("%d",&teacherj.couri.class_num);if (teacherj.couri.class_num<2)printf("t terror ! the number of class need more than 2!n");if (teacherj.couri.class_num=2)teacherj.couri.total=1.5*(teacherj.couri.theory +teacherj.couri.experiment);if (teacherj.couri.class_num=3)teacherj.couri.total=2*(teacherj.couri.theory +teacherj.couri.experiment);if (teacherj.couri.class_num>=4)teacherj. couri.total=2.5*(teacherj.couri.theory +teacherj.couri.experiment);for(j=1;j<=N;j+)for(i=0;i<=teacherj.num;i+) all_total=all_total+teacherj.couri.total; teacherj.total=teacherj.profession*all_total; teacherj.reward=30* teacherj.total; all_total=0;printf("tDO you want to exit?(y/n)n");if(getchar()='y')main_menu();void total_task()int N;char H;printf("please input teacher's id:n");scanf("%d",&N);printf("NAME ID TOTAL TASK REWARDn");printf("%-7s%-8d%-14.1f%-9.1f",teacherN.name,teacherN.id,teacherN.total,teacherN.reward);printf("tDO you want to exit?(yn)n");H=getchar();if(H='y')main_menu();参考资料C程序设计(第四版) 谭浩强 著-