🍅 作者主頁:Java李楊勇
🍅 簡介:Java領域優質創作者🏆、【java李楊勇】公號作者? 簡歷模板、學習資料、面試題庫【關注我,都給你】
🍅文末獲取原始碼聯系🍅
臨近學期結束,還是畢業設計,你還在做java程式網路編程,期末作業,老師的作業要求覺得大了嗎?不知道畢業設計該怎么辦?網頁功能的數量是否太多?沒有合適的型別或系統?等等,這里,你想解決的問題,在這專欄👇🏻👇🏻👇🏻👇🏻
??Java專案精品實戰案例??
??web前端期末大作業網頁實戰??
都能滿足你的需求,原始Jsp、SSM、SpringBoot、以及HTML+CSS+JS頁面設計, web大學生網頁設計作業原始碼等等都可以參考得到解決,話不多說直接拿一個在線學生選課系統來舉例

前言介紹:
我校是由三個院校合并建成后進而升級為本科院校的,前幾年又將濰坊藝校合并進來,因此學生層次呈階梯式,培養模式也呈現多樣化,因此作為高校教育教學作業的核心作業之一的選課與排課的作業量必然會呈級數增長,顯然,傳統的選課排課方式已經不能適應目前我校特殊的教育狀況,迫切需要設計一款校園選課管理系統來提高其作業效率,我校目前有22個教學單位,68個本科專業,全日制在校學生近兩萬三千余人,校園選課管理系統充分將CRMc2]的技術和理念融入校園資訊系統,讓全體師生能乘載校園管理系統之便利用于科研作業及學習,很好地解決了以前學生選課難、老師作業量大等問題,相比于傳統的選課方式而言,基于Java的選課管理系統以計算機代替人力,將學校的管理者、教師、學生緊密相連,做到了資訊的高效互通,有了這款選課系統,學校的教務管理人員能夠做到使教學資源可以快速合理地分配使用,以盡量減少資源浪費;教師和選課管理人員可以極大地提高了作業效率,使得他們有更多的時間和精力專注于本職作業;學生在進行網上選課時保證做到及時性和準確性,避免了選課時候因重復和擁塞等不確定因素造成選課的失敗和延遲,它充分體現了在這個資訊化時代,實行系統化管理的優點,
主要功能設計:
運行環境: 最好是java jdk 1.8、mysql5 、Tomcat 7.x,8.x,9.x版本均可
主要技術: HTML+CSS+JavaScript+jsp+mysql
主要角色設計:
1.管理員:管理員登錄,學生管理,教師管理,班級管理,添加班級,添加教師,添加學生,課程管理,添加課程,系統用戶管理,添加用戶,修改密碼等功能,
2.教師: 教師登錄,選課管理,添加選課學生,成績管理,添加成績,查看學生資訊,查看班級資訊,查看個人檔案,修改密碼等功能,
3.學生:學生登錄,選課管理,成績查看,查看個人檔案,修改密碼等功能
主要功能截圖:
用戶登錄:
輸入賬號密碼選擇用戶角色進行登錄、每個角色對應不同功能權限

管理員首頁:
管理員登錄后主要功能模塊有:學生管理,教師管理,班級管理,添加班級,添加教師,添加學生,課程管理,添加課程,系統用戶管理,添加用戶,修改密碼等功能,

添加學生:

教師管理:
可以根據老師名稱查詢資料、以及添加、修改、洗掉老師資訊

班級管理
添加班級資訊:

課程管理和添加


修改密碼:
學生登錄系統:
主要功能設計:學生登錄,選課管理,成績查看,查看個人檔案,修改密碼等功能

教師登錄系統:
教師登錄,選課管理,添加選課學生,成績管理,添加成績,查看學生資訊,查看班級資訊,查看個人檔案,修改密碼等功能

主要原始碼展示:
登錄表單處理:
@RequestMapping(value = "/login", method = {RequestMethod.POST})
public String login(Userlogin userlogin) throws Exception {
//Shiro實作登錄,,,,,,,
UsernamePasswordToken token = new UsernamePasswordToken(userlogin.getUsername(),
userlogin.getPassword());
Subject subject = SecurityUtils.getSubject();
//如果獲取不到用戶名就是登錄失敗,但登錄失敗的話,會直接拋出例外,,,
subject.login(token);
if (subject.hasRole("admin")&userlogin.getRole()==0) {
}else throw new CustomException("請選擇正確的身份登陸");
//業務層實作dao資料層操作,,,,,,,,
public Userlogin findByName(String name) throws Exception {
UserloginExample userloginExample = new UserloginExample();
UserloginExample.Criteria criteria = userloginExample.createCriteria();
criteria.andUsernameEqualTo(name);
List<Userlogin> list = userloginMapper.selectByExample(userloginExample);
return list.get(0);
}
課程管理查詢:
// 課程資訊顯示
@RequestMapping("/showCourse")
public String showCourse(Model model, Integer page) throws Exception {
List<CourseCustom> list = null;
//頁碼物件,,,,,,,,,,
PagingVO pagingVO = new PagingVO();
//設定總頁數,,,,,,,,
pagingVO.setTotalCount(courseService.getCountCouse());
if (page == null || page == 0) {
pagingVO.setToPageNo(1);
list = courseService.findByPaging(1);
} else {
pagingVO.setToPageNo(page);
list = courseService.findByPaging(page);
}
model.addAttribute("courseList", list);
model.addAttribute("pagingVO", pagingVO);
return "admin/showCourse";
}
教師查詢:
后臺資料操作顯示、后臺封裝資料以及分頁處理資料
// 教師頁面顯示,,,,,,
@RequestMapping("/showTeacher")
public String showTeacher(Model model, Integer page) throws Exception {
List<TeacherCustom> list = null;
//頁碼物件,,,,,
PagingVO pagingVO = new PagingVO();
//設定總頁數,,,,,,,,,,,,,,
pagingVO.setTotalCount(teacherService.getCountTeacher());
if (page == null || page == 0) {
pagingVO.setToPageNo(1);
list = teacherService.findByPaging(1);
} else {
pagingVO.setToPageNo(page);
list = teacherService.findByPaging(page);
}
model.addAttribute("teacherList", list);
model.addAttribute("pagingVO", pagingVO);
return "admin/showTeacher";
}
//獲取分頁查詢老師資訊,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
List<TeacherCustom> findByPaging(Integer toPageNo) throws Exception;
學生資訊顯示:
// 學生資訊顯示,,,,,,,,
@RequestMapping("/showStudent")
public String showStudent(Model model, Integer page) throws Exception {
List<StudentCustom> list = null;
//頁碼物件,,,,,,,,,,,,,,
PagingVO pagingVO = new PagingVO();
//設定總頁數,,,,,,,,,,,
pagingVO.setTotalCount(studentService.getCountStudent());
if (page == null || page == 0) {
pagingVO.setToPageNo(1);
list = studentService.findByPaging(1);
} else {
pagingVO.setToPageNo(page);
list = studentService.findByPaging(page);}
model.addAttribute("studentList", list);
model.addAttribute("pagingVO", pagingVO);
return "admin/showStudent";
}
// 添加學生資訊操作,,,,,,,
@RequestMapping(value = "/addStudent", method = {RequestMethod.POST})
public String addStudent(StudentCustom studentCustom, Model model) throws Exception {
Boolean result = studentService.save(studentCustom);
if (!result) {
model.addAttribute("message", "學號重復");
return "error";
}
//添加成功后,也添加到登錄表,,,,,,,,,,,,,,
Userlogin userlogin = new Userlogin();
userlogin.setUsername(studentCustom.getUserid().toString());
userlogin.setPassword("123");
userlogin.setRole(2);
userloginService.save(userlogin);
//重定向,,,,,,,,,,
return "redirect:/admin/showStudent";
}
// 已修課程,,,,,,,,,,,,,,,,,,,,
@RequestMapping(value = "/overCourse")
public String overCourse(Model model) throws Exception {
//獲取當前用戶名,,,,,,,,,,
Subject subject = SecurityUtils.getSubject();
StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal());
if (studentCustom==null){
throw new CustomException("你還沒有修完任何一門課,請先選課學習吧!");
}
List<SelectedCourseCustom> list = studentCustom.getSelectedCourseList();
model.addAttribute("selectedCourseList", list);
return "student/overCourse";
}
修改密碼:
// 本賬戶密碼重置,,,,,,,,,,,,,,,,,,,
@RequestMapping(value = "/passwordRest", method = {RequestMethod.POST})
public String passwordRest(String oldPassword, String password1) throws Exception {
Subject subject = SecurityUtils.getSubject();
String username = (String) subject.getPrincipal();
Userlogin userlogin = userloginService.findByName(username);
if (!oldPassword.equals(userlogin.getPassword())) {
throw new CustomException("舊密碼不正確,,,,,,,");
} else {
userlogin.setPassword(password1);
userloginService.updateByName(username, userlogin);
}
return "redirect:/logout";
}
部分資料庫設計:
DROP TABLE IF EXISTS `college`;
CREATE TABLE `college` (
`collegeID` int(11) NOT NULL,
`collegeName` varchar(200) NOT NULL COMMENT '課程名',
PRIMARY KEY (`collegeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of college
-- ----------------------------
INSERT INTO `college` VALUES ('1', '計算機系');
INSERT INTO `college` VALUES ('2', '設計系');
INSERT INTO `college` VALUES ('3', '財經系');
-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
`courseID` int(11) NOT NULL,
`courseName` varchar(200) NOT NULL COMMENT '課程名稱',
`teacherID` int(11) NOT NULL,
`courseTime` varchar(200) DEFAULT NULL COMMENT '開課時間',
`classRoom` varchar(200) DEFAULT NULL COMMENT '開課地點',
`courseWeek` int(200) DEFAULT NULL COMMENT '學時',
`courseType` varchar(20) DEFAULT NULL COMMENT '課程型別',
`collegeID` int(11) NOT NULL COMMENT '所屬院系',
`score` int(11) NOT NULL COMMENT '學分',
PRIMARY KEY (`courseID`),
KEY `collegeID` (`collegeID`),
KEY `teacherID` (`teacherID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES ('1', 'C語言程式設計', '1001', '周二', '科401', '18', '必修課', '1', '3');
INSERT INTO `course` VALUES ('2', 'Python爬蟲技巧', '1001', '周四', 'X402', '18', '必修課', '1', '3');
INSERT INTO `course` VALUES ('3', '資料結構', '1001', '周四', '科401', '18', '必修課', '1', '2');
INSERT INTO `course` VALUES ('4', 'Java程式設計', '1002', '周五', '科401', '18', '必修課', '1', '2');
INSERT INTO `course` VALUES ('5', '英語', '1002', '周四', 'X302', '18', '必修課', '2', '2');
INSERT INTO `course` VALUES ('6', '服裝設計', '1003', '周一', '科401', '18', '選修課', '2', '2');
-- ----------------------------
-- Table structure for file
-- ----------------------------
DROP TABLE IF EXISTS `file`;
CREATE TABLE `file` (
`fileID` varchar(100) COLLATE utf8_bin NOT NULL,
`fileName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`fileDesc` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`filePath` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`userID` int(11) DEFAULT NULL,
`fileExt1` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`fileExt2` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`fileExt3` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`fileID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Records of file
-- ----------------------------
INSERT INTO `file` VALUES ('3192d10378ea44d88d8b558562a480e3', '理工類模板.docx', '理工類模板.docx', 'E://upload/3192d10378ea44d88d8b558562a480e3.docx', null, null, null, null);
INSERT INTO `file` VALUES ('59c0f03696be4e73a64c7625f1887e88', '測測1231', '十分大師傅十分213', 'E://upload/59c0f03696be4e73a64c7625f1887e88.jpg', null, null, null, null);
INSERT INTO `file` VALUES ('8a1d671ba48f441ead14255e9fda3c96', '測測123', 'wrwerwer', 'E://upload/8a1d671ba48f441ead14255e9fda3c96.sql', null, null, null, null);
-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
`roleID` int(11) NOT NULL,
`roleName` varchar(20) NOT NULL,
`permissions` varchar(255) DEFAULT NULL COMMENT '權限',
PRIMARY KEY (`roleID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of role
-- ----------------------------
INSERT INTO `role` VALUES ('0', 'admin', null);
INSERT INTO `role` VALUES ('1', 'teacher', null);
INSERT INTO `role` VALUES ('2', 'student', null);
-- ----------------------------
-- Table structure for selectedcourse
-- ----------------------------
DROP TABLE IF EXISTS `selectedcourse`;
CREATE TABLE `selectedcourse` (
`courseID` int(11) NOT NULL,
`studentID` int(11) NOT NULL,
`mark` int(11) DEFAULT NULL COMMENT '成績',
KEY `courseID` (`courseID`),
KEY `studentID` (`studentID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of selectedcourse
-- ----------------------------
INSERT INTO `selectedcourse` VALUES ('2', '10001', '12');
INSERT INTO `selectedcourse` VALUES ('1', '10001', '95');
INSERT INTO `selectedcourse` VALUES ('1', '10002', '66');
INSERT INTO `selectedcourse` VALUES ('2', '10003', '99');
INSERT INTO `selectedcourse` VALUES ('5', '10001', null);
INSERT INTO `selectedcourse` VALUES ('3', '10001', null);
INSERT INTO `selectedcourse` VALUES ('1', '10003', null);
INSERT INTO `selectedcourse` VALUES ('4', '10003', null);
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) NOT NULL,
`sex` varchar(20) DEFAULT NULL,
`birthYear` date DEFAULT NULL COMMENT '出生日期',
`grade` date DEFAULT NULL COMMENT '入學時間',
`collegeID` int(11) NOT NULL COMMENT '院系id',
PRIMARY KEY (`userID`),
KEY `collegeID` (`collegeID`)
) ENGINE=InnoDB AUTO_INCREMENT=10006 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('9999', 'mike1', '男', '1996-09-03', '2019-11-13', '3');
INSERT INTO `student` VALUES ('10001', '小紅', '男', '2020-03-02', '2020-03-02', '1');
INSERT INTO `student` VALUES ('10002', '小綠', '男', '2020-03-10', '2020-03-10', '1');
INSERT INTO `student` VALUES ('10003', '小陳', '女', '1996-09-02', '2015-09-02', '2');
INSERT INTO `student` VALUES ('10005', '小左', '女', '1996-09-02', '2015-09-02', '2');
-- ----------------------------
-- Table structure for teacher
-- ----------------------------
DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) NOT NULL,
`sex` varchar(20) DEFAULT NULL,
`birthYear` date NOT NULL,
`degree` varchar(20) DEFAULT NULL COMMENT '學歷',
`title` varchar(255) DEFAULT NULL COMMENT '職稱',
`grade` date DEFAULT NULL COMMENT '入職時間',
`collegeID` int(11) NOT NULL COMMENT '院系',
PRIMARY KEY (`userID`),
KEY `collegeID` (`collegeID`)
) ENGINE=InnoDB AUTO_INCREMENT=1004 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of teacher
-- ----------------------------
INSERT INTO `teacher` VALUES ('1001', '劉老師', '女', '1990-03-08', '碩士', '副教授', '2015-09-02', '2');
INSERT INTO `teacher` VALUES ('1002', '張老師', '女', '1996-09-02', '博士', '講師', '2015-09-02', '1');
INSERT INTO `teacher` VALUES ('1003', '軟老師', '女', '1996-09-02', '碩士', '助教', '2017-07-07', '1');
-- ----------------------------
-- Table structure for userlogin
-- ----------------------------
DROP TABLE IF EXISTS `userlogin`;
CREATE TABLE `userlogin` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) NOT NULL,
`password` varchar(200) NOT NULL,
`role` int(11) NOT NULL DEFAULT '2' COMMENT '角色權限',
PRIMARY KEY (`userID`),
KEY `role` (`role`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of userlogin
-- ----------------------------
INSERT INTO `userlogin` VALUES ('1', 'admin', '123', '0');
INSERT INTO `userlogin` VALUES ('10', '10003', '123', '2');
INSERT INTO `userlogin` VALUES ('11', '10005', '123', '2');
INSERT INTO `userlogin` VALUES ('14', '1001', '123', '1');
INSERT INTO `userlogin` VALUES ('15', '1002', '123', '1');
INSERT INTO `userlogin` VALUES ('16', '1003', '123', '1');
INSERT INTO `userlogin` VALUES ('20', '9999', '123', '2');
INSERT INTO `userlogin` VALUES ('21', '10001', '123', '2');
INSERT INTO `userlogin` VALUES ('22', '10002', '123', '2');
總體來說這個專案適合java大學生用來作為課程設計或者java畢業設計參考使用
好了、今天就分享到這兒吧,我是小奧、下期見~~
獲取完整原始碼:
大家點贊、收藏、關注、評論啦 、查看👇🏻👇🏻👇🏻微信公眾號獲取聯系👇🏻👇🏻👇🏻
打卡 文章 更新 75/ 100天
精彩專欄推薦:
Java畢設專案精品實戰案例《100套》
HTML5大作業實戰案例《100套》
web大作業前端網頁實戰《100套》
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/310621.html
標籤:其他
