成绩评定表课程设计任务书目录第一章.需求分析 (4)第二章.总体设计 (5)第三章.详细设计图 (6)第四章.测试 (8)第五章.总结 (8)第六章.程序代码 (9)第七章.参考文献 (13)第一章.需求分析(一)研究背景:随着高等学校的快速发展,高校教师的规模越来越大,教职工的数量也越来越多,每年对高校教师的评教管理无疑是一项琐碎、复杂而又十分细致的工作。
关于工作量的计算,项目繁多,而且一般不允许出错。
在以往,教务部门对教师工作量的统计工作一直都是采取手工的方式,每年需填制大量的表格,这就会耗费工作人员大量的时间和精力。
如若采用专门的计算机管理系统,不仅能够保证工作量核算准确无误、快速输出,而且还可以利用计算机对有关工作量的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高教师工作量管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。
使用计算机管理系统来管理高校教师工作量已成为目前的趋势,使用计算机可以高速,快捷地完成以上工作。
在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规数据管理行为,从而提高管理效率和水平。
高校教师工作量管理系统便是以计算机为工具,通过对工作量管理所需的信息管理,不仅把管理人员从繁琐的数据计算处理中解脱出来,而且优化了管理体系,使其高效化,简易化、智能化,也提高了透明性和互动性。
(二)产品功能:(1)工作量信息录入:教师一个教学任务的信息为:教师编号(不重复)、姓名、授课班级系数、理论课时、实验课时、教学任务总课时。
提供录入界面供用户输入数据,并以合理数据结构,诸如:结构数组或数据文件的形式加以保存。
(2)工作量计算:以教师为单位,计算出该教师一个学年的总工作量。
计算公式如下:a. 教学任务总课时。
计算方法如下表:b. 一个学年总的教学工作量=所有单个教学任务总课时之和*职称系数。
其中:正教授系数=1.2;副教授系统=1.1;其他职称系数=1。
(3)查找:能查找一个教师年度工作量明细、查找某教师年度总作量。
(6)系统以菜单方式工作,界面应清晰直观,便于用户操作。
第二章.总体设计1.主函数main()功能:调用菜单函数;2.菜单函数main_menu()功能:提供用户选择的入口,进入其他模块进行相关处理;3.信息输入函数input_teacher_information()功能:录入需查询的教师和课程的相关信息(结构数组形式);4.查询教师工作量及报酬函数total_task ()功能:调用相关模块,对指定的信息项进行查询;第三章详细设计图流程图主函数流程图:主要菜单流程图:工作量计算流程图:职称=1.0 第四章.测试第五章.总结对于这次我设计的教师工作管理,我感觉自己花了很多的时间并投入很多努力,虽然总是一次一次出现ERROR运行不了让人感到特气馁,但我还是坚持了下来,通过同学的帮助,把错误一个一个都解决掉了,最后才得以成功。
所以我要感谢老师和帮助过我的同学,让我在我的第一次课设中坚持了下来。
通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。
这会对以后的学习有所帮助。
第六章程序代码#include<stdio.h>#define MAX 100typedef struct course{int theory;int experiment;int class_num;float total;}course;struct teacher{int id;char name[10];course cour[10];int num;float total;float reward;int profession;}teacher[MAX];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 System\n");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",&teacher[j].id);printf("\tplease input teacher's name:\n");scanf("%s",teacher[j].name);printf("\tplease choose teacher's positional titles:\n");printf("A. Full Professor B. Associate Professor C.Others\n"); scanf("%c",&title);switch(title){case 'A':teacher[j]. profession=1.2;break;case 'B':teacher[j]. profession=1.1;break;case 'C':teacher[j]. profession=1.0;break;default:printf("terror!\n");}printf("\tplease input the number of teacher's courses:\n"); scanf("%d",&teacher[j].num);for (i=0;i<teacher[j].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",&teacher[j].cour[i].theory);printf("\tplease input the number of experiment course:\n");scanf("%d",&teacher[j].cour[i].experiment);printf("\tplease input the number of class(>=2):");scanf("%d",&teacher[j].cour[i].class_num);if (teacher[j].cour[i].class_num<2)printf("t terror ! the number of class need more than 2!\n");if (teacher[j].cour[i].class_num==2)teacher[j].cour[i].total=1.5*(teacher[j].cour[i].theory+teacher[j].cour[i].experiment);if (teacher[j].cour[i].class_num==3)teacher[j].cour[i].total=2*(teacher[j].cour[i].theory+teacher[j].cour[i].experiment);if (teacher[j].cour[i].class_num>=4)teacher[j]. cour[i].total=2.5*(teacher[j].cour[i].theory +teacher[j].cour[i].experiment);}}for(j=1;j<=N;j++){for(i=0;i<=teacher[j].num;i++){all_total=all_total+teacher[j].cour[i].total;teacher[j].total=teacher[j].profession*all_total;teacher[j].reward=30* teacher[j].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 REWARD\n");printf("%-7s%-8d%-14.1f%-9.1f",teacher[N].name,teacher[N].id,teach er[N].total,teacher[N].reward);printf("\tDO you want to exit?(y\n)\n");H=getchar();if(H=='y') main_menu(); }。