基于springboot教师工作量计算系统

一、项目介绍
论文针对在教师工作量计算系统信息数据规模大,管理员和教师用户需要对教师工作量涉及到的信息进行管理的需求,设计了教师工作量计算系统的框架,给出了教师工作量计算系统的总体设计,并对教师工作量计算系统的架构及关键模块的实现过程进行了详细论述。采用Java语言和MySQL数据库技术,基于springboot框架实现了一个完整系统的设计,为使用者提供了良好的教师工作量计算系统。

关键词:教师工作量计算系统;Java;MySQL;springboot框架

二、开发环境
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————

三、功能介绍
按照教师工作量计算系统的角色,我划分为了教师用户和管理员模块这两大部分。
教师用户模块:
(1)注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现教师工作量等信息查询,就必须有这个系统的账号,如果没有账号的话,可以注册教师用户进行相关的操作,同时用户还可以通过“我的”这以按钮对个人信息以及操作的信息进行管控。
(2)公告信息:教师可以在线上进行公告信息浏览等。
(3)教师工作量:教师登录后可以点击教师工作量查看工作等详细信息。
(4)教师工资:教师登录后可以查看和编辑教师的职称、评教等级、课程数量、教师学历、教师姓名、工资详情等进行提交相关信息。
(5)课程信息:教师登录后可以对课程信息进行查看、安排,并对授课后课程信息进行总结上传。
(6)课程资料:教师点击“课程资料”这个菜单按钮,可以对课程的资料进行查询、重置、删除、添加等相应操作。

管理员管理模块:
(1)人员管理:管理员可以对教师用户进行维护管理。
(2)公告消息:可对公告消息进行查询、重置、删除、添加等相应操作。
(3)教师工作量:可对教师的年度工作量进行查询、重置、删除、添加等相应操作。
(4)教师工资:可对教师的工资信息进行查询、重置、删除、添加等相应操作。
(5)课程信息:可对教师的课程信息进行查询、重置、删除、添加等相应操作。
(6)课程资料:可对教师的课程资料信息进行查询、重置、删除、添加等相应操作。

图3-4就是教师角色的用例展示。


图3-4 教师工作量计算系统教师角色用例图
图3-5就是管理员角色的用例展示。


图3-5教师工作量计算系统管理员角色用例图

五、效果图

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

六、文章目录

目 录
摘要 1
第1章 绪论 1
1.1 研究背景 1
1.2 研究意义 1
1.3论文结构与章节安排 1
第2章 相关技术 1
2.1开发技术 3
2.2 Java简介 3
2.3 MVVM模式 3
2.4 B/S结构 4
2.5 MySQL数据库 4
2.6 SpringBoot框架介绍 4
第3章 系统分析 1
3.1 可行性分析 3
3.2 系统流程分析 3
3.2.1 数据增加流程 4
3.2.2 数据修改流程 4
3.2.3 数据删除流程 5
3.3 系统功能分析 5
3.3.1 功能性分析 5
3.3.2 非功能性分析 6
3.4 系统用例分析 7
3.5本章小结 8
第4章 系统设计 9
4.1 系统架构设计 9
4.2 系统功能模块设计 9
4.2.1整体功能模块设计 10
4.2.2用户模块设计 10
4.2.3 教师工资管理模块设计 11
4.2.4课程信息管理模块设计 11
4.3 数据库设计 11
4.3.1 数据库概念结构设计 11
4.3.2 数据库逻辑结构设计 12
4.4本章小结 16
第5章 系统详细设计 18
5.1教师功能模块 18
5.2管理员功能模块 24
第6章 系统测试 27
6.1 系统测试用例 27
6.2 系统测试结果 28
结论 29
参考文献 30
致 谢 31

#include #include #include #include #include #define MAX_NAME 20 #define NULL 0 struct course { char course_name[MAX_NAME]; int class_num; int ch_per; int ex_per; struct course *next; }; struct teacher { char teacher_num[MAX_NAME]; char teacher_name[MAX_NAME]; struct teacher *next; struct course *chead; struct course *ctail; }; struct teacher *thead,*ttail,*found; //*********************************************************************** //主菜单 void menu() { system("cls"); printf("*************************************\n"); printf("* 1.输入教师信息 *\n"); printf("* 2.插入授课信息 *\n"); printf("* 3.工作量计算与显示 *\n"); printf("* 4.退出 *\n"); printf("*************************************\n"); printf("请输入要操作的序号:"); } int isExist(char number[]) //判断输入的教师号是否已经存在 { struct teacher *p; p=thead; while(p!=NULL && (strcmp(p->teacher_num,number)!=0)) p=p->next; found=p; if(p==NULL) return 0; else return 1; } //************************************************************************ //增加教师教学信息模块 void addIn() { struct teacher *p; struct course *pcourse; char teacher_num[MAX_NAME]; char teacher_name[MAX_NAME]; char course_name[MAX_NAME]; int class_num; int ch_per; int ex_per; while(1) { system("cls"); printf("****************************************************\n"); printf("* 输入教师的信息,以输入教师号为#结束输入 *\n"); printf("****************************************************\n"); printf("输入教师号:"); fflush(stdin); scanf("%s",teacher_num); if(isExist(teacher_num)) { printf("!!!该教师号已经存在,请重新输入。\n按任意键重新输入...\n"); getch(); } else { if(strcmp(teacher_num,"#")==0) { printf("**************************************************\n"); printf("输入结束。按任意键返回主菜单...\n"); getch(); return; } printf("输入教师姓名:");fflush(stdin);scanf("%s",teacher_name); printf("****************************************************\n"); printf("* 输入教师授课信息 *\n"); printf("****************************************************\n"); printf("输入课程名称:");fflush(stdin);scanf("%s",course_name); printf("输入班级数目:");fflush(stdin);scanf("%d",&class_num); printf("输入理论课时:");fflush(stdin);scanf("%d",&ch_per); printf("输入实验课时:");fflush(stdin);scanf("%d",&ex_per); pcourse=(struct course *)malloc(sizeof(struct course)); strcpy(pcourse->course_name,course_name); pcourse->class_num=class_num; pcourse->ch_per=ch_per; pcourse->ex_per=ex_per; pcourse->next=NULL; p=(struct teacher *)malloc(sizeof(struct teacher)); strcpy(p->teacher_num,teacher_num); strcpy(p->teacher_name,teacher_name); p->chead=pcourse; p->ctail=pcourse; if(thead==NULL) { thead=p; ttail=p; } else { ttail->next=p; ttail=p; } ttail->next=NULL; } } } //************************************************************************ //插入教师授课信息模块 void addCourseInfo() { struct course *pcourse; char teacher_num[MAX_NAME]; char course_name[MAX_NAME]; int class_num; int ch_per; int ex_per; system("cls"); if(thead==NULL) { printf("****************************************************\n"); printf("* 当前没有可用的教师信息,按任意键返回主菜单... *\n"); printf("****************************************************\n"); getch(); return; } while(1) { system("cls"); printf("输入教师号:");fflush(stdin);scanf("%s",teacher_num); if(isExist(teacher_num)) break; else { printf("!!!该教师号不存在,请重新输入.\n按任意键重新输入...\n"); getch(); } } printf("****************************************************\n"); printf("* 输入教师授课信息 *\n"); printf("****************************************************\n"); printf("输入课程名称:");fflush(stdin);scanf("%s",course_name); printf("输入班级数目:");fflush(stdin);scanf("%d",&class_num); printf("输入理论课时:");fflush(stdin);scanf("%d",&ch_per); printf("输入实验课时:");fflush(stdin);scanf("%d",&ex_per); pcourse=(struct course *)malloc(sizeof(struct course)); strcpy(pcourse->course_name,course_name); pcourse->class_num=class_num; pcourse->ch_per=ch_per; pcourse->ex_per=ex_per; pcourse->next=NULL; found->ctail->next=pcourse; found->ctail=pcourse; } //************************************************************************ //计算并显示 void calcu() { struct teacher *p; struct course *pcourse; float single_per=0.0; float total_per=0.0; system("cls"); if(thead==NULL) { printf("****************************************************\n"); printf("* 当前没有可用的教师信息,按任意键返回主菜单... *\n"); printf("****************************************************\n"); getch(); return; } p=thead; while(p!=NULL) { total_per=0.0; printf("----------------------------------------------------------------------\n"); printf("教师号:%s\n",p->teacher_num); printf("教师姓名:%s\n",p->teacher_name); printf("----------------------------------------------------------------------\n"); printf("课程名称 班级数目 理论课时 实验课时 单教学任务总课时\n"); printf("----------------------------------------------------------------------\n"); pcourse=p->chead; while(pcourse!=NULL) { single_per=0.0; if(pcourse->class_num==1) single_per=pcourse->ch_per+pcourse->ex_per; if(pcourse->class_num==2) single_per=1.5*(pcourse->ch_per+pcourse->ex_per); if(pcourse->class_num==3) single_per=2.0*(pcourse->ch_per+pcourse->ex_per); if(pcourse->class_num>=4) single_per=2.5*(pcourse->ch_per+pcourse->ex_per); printf("%-10s%-10d%-10d%-10d%-7.3f\n",pcourse->course_name,pcourse->class_num,pcourse->ch_per,pcourse->ex_per,single_per); total_per+=single_per; pcourse=pcourse->next; } printf("----------------------------------------------------------------------\n"); printf("一个学期总的教学工作量:%7.3f\n",total_per); printf("----------------------------------------------------------------------\n\n\n\n"); p=p->next; } printf("\t****************************************************\n"); printf("\t* 已经显示完毕,按任意键返回主菜单... *\n"); printf("\t****************************************************\n"); getch(); } //************************************************************************ //主函数 void main() { int order; while(1) { menu(); fflush(stdin); scanf("%d",&order); switch (order) { case 1:addIn();break; case 2:addCourseInfo();break; case 3:calcu();break; case 4:exit(0);break; default: printf("输入的序号有误,请检查后重新输入...\n"); getch(); break; } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值