大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT)、PYTHON、PHP、C#、安卓等多项技术。
今天将为大家分析一个网上选排课系统(高校排课系统要求十分严格的可靠性和合理性。课表安排是保证高校顺利进行教学活动,按要求培 养合格人才的重要保证。课程表是一个院校日常教学工作的“指挥表”,是具体实施教学计划的重要组成部分,是教学管理的关键环节。如何科学合理地编排课程表 是每个学校教学管理的一项重要工作。因而开发一套符合实际需求的高校排课系统是非常必要的。),该项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIPSE。网上选排课系统为一个 后台项目。
为了完成该系统,我们首先需要对该系统进行需求分析。一个网上选排课系统应包含用户角色有管理员、老师、学生。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。
为了完成系统的功能需要为老师设置课程表,记录课程信息。在课程表中定义了两者的关联关系,其中课程的任课老师与老师的mingzi字段对应、课程的任课老师id与老师的id字段对应
。为了完成系统的功能需要为课程、学生设置选课记录表,记录选课记录信息。在选课记录表中定义了两者的关联关系,其中选课记录的课程与课程的mingcheng字段对应、选课记录的课程id与课程的id字段对应、选课记录的学生与学生的mingzi字段对应、选课记录的学生id与学生的id字段对应
。
总结得出该系统所有数据为:管理员(admin)、老师(laoshi)、学生(xuesheng)、课程(kecheng)、选课记录(xuankejilu)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
老师表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 老师id mingzi | VARCHAR(255) | | 名字 username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
学生表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 学生id mingzi | VARCHAR(255) | | 名字 username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
课程表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 课程id mingcheng | VARCHAR(255) | | 名称 shangkeshijian | VARCHAR(255) | | 上课时间 renkelaoshi | VARCHAR(255) | | 任课老师 renkelaoshiid | VARCHAR(255) | | 任课老师id shifoukexuan | VARCHAR(255) | | 是否可选 kexuanrenshu | VARCHAR(255) | | 可选人数 yixuanrenshu | VARCHAR(255) | | 已选人数
选课记录表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 选课记录id kecheng | VARCHAR(255) | | 课程 kechengid | VARCHAR(255) | | 课程id xuesheng | VARCHAR(255) | | 学生 xueshengid | VARCHAR(255) | | 学生id xuankeshijian | VARCHAR(255) | | 选课时间
sql建表语句
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for ggxuanpaike -- ---------------------------- DROP TABLE IF EXISTS `t_admin`; CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员'; -- ---------------------------- DROP TABLE IF EXISTS `t_laoshi`; CREATE TABLE `t_laoshi` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '老师id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='老师'; -- ---------------------------- DROP TABLE IF EXISTS `t_xuesheng`; CREATE TABLE `t_xuesheng` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '学生id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='学生'; -- ---------------------------- DROP TABLE IF EXISTS `t_kecheng`; CREATE TABLE `t_kecheng` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '课程id',`mingcheng` VARCHAR(255) DEFAULT NULL COMMENT '名称',`shangkeshijian` VARCHAR(255) DEFAULT NULL COMMENT '上课时间',`renkelaoshi` VARCHAR(255) DEFAULT NULL COMMENT '任课老师',`renkelaoshiid` INT(11) DEFAULT NULL COMMENT '任课老师id',`shifoukexuan` VARCHAR(255) DEFAULT NULL COMMENT '是否可选',`kexuanrenshu` VARCHAR(255) DEFAULT NULL COMMENT '可选人数',`yixuanrenshu` VARCHAR(255) DEFAULT NULL COMMENT '已选人数',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='课程'; -- ---------------------------- DROP TABLE IF EXISTS `t_xuankejilu`; CREATE TABLE `t_xuankejilu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '选课记录id',`kecheng` VARCHAR(255) DEFAULT NULL COMMENT '课程',`kechengid` INT(11) DEFAULT NULL COMMENT '课程id',`xuesheng` VARCHAR(255) DEFAULT NULL COMMENT '学生',`xueshengid` INT(11) DEFAULT NULL COMMENT '学生id',`xuankeshijian` VARCHAR(255) DEFAULT NULL COMMENT '选课时间',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='选课记录';
添加课程模块:
在kechengController中定义tianjiakechengact接收页面传入的课程参数,定义为kecheng。其中kecheng包含字段:名称,上课时间,任课老师,任课老师id,是否可选,可选人数,已选人数,使用tianjiakechengact将该课程对象存入数据库中,在kechengMapper中定义了insert方法,匹配数据库中的insert into kecheng语句实现将课程数据存入数据库的操作。该部分核心代码如下:
通过kechengdao的insert方法将页面传输的课程添加到数据库中 kechengdao.insert(kecheng);
将添加课程成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加课程成功");
返回课程管理界面
return "forward:/tianjiakecheng.action";
查询课程模块:
在后台中定义课程查询模块,在侧边栏中点击课程管理,可以跳转到课程管理界面。在该页面中通过kechengController中定义kechengguanli响应课程查询模块。在kechengguanli中查询出所有信息,返回页面进行循环展示。查询方法为kechengdao中的selectByexample方法。该部分核心代码如下:
生成课程样例类,通过example定义查询条件 KechengExample example = new KechengExample();
通过kechengdao的selectByExample方法查询出所有的课程信息 List kechengall = kechengdao.selectByExample(example);
将课程信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("kechengall", kechengall);
返回课程管理界面
return "forward:/kechengguanli.action";