热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

教务管理系统——数据库课程设计mysql+java

数据库原理与应用课程设计任务书https:download.csdn.netdownloadweixin_4838833085448967https:download.csdn

数据库原理与应用课程设计


   

https://download.csdn.net/download/weixin_48388330/85448967https://download.csdn.net/download/weixin_48388330/85448967 此为工程文件资源包


【题目】

教务管理系统(或自拟题目


【目的】

该实践性环节对于巩固学生的数据库知识,系统地掌握数据库设计理论与应用,加强学生的实践动手能力和提高学生的综合开发经验十分重要和必要。

本课程分为系统需求分析与数据库设计、应用程序功能设计和系统集成调试三个阶段进行。

主要目标如下:

1、加深学生对数据库系统、应用程序设计语言的理论知识的理解和应用水平。

2、通过设计实际的数据库系统应用课题,使学生进一步熟悉数据库管理系统的操作技术,并提高动手能力以及分析问题、解决问题的能力。


【要求】

1、每个学生必须独立完成;

2、课程设计累计时间为1周(20学时、集中或分散);

3、整个数据库系统设计,后台数据库可用SQL Server或MYSQL,前台开发工具与编程语言任选。

4、课程设计期间,中期检查与考勤采用线上管理模式,特定时间无故缺席按旷课处理;缺席时间达三分之一课时以上者,未按规定要求上交课程设计报告与设计成果的学生,其成绩按不及格处理。

5、不参与设计且不提交任何成果,缺席答辩的同学,成绩计零分(或按旷考处理)。


【内容】

1、按照题目《教务管理系统》(或自拟题目)的应用需求进行调研,通过需求分析、模拟数据,提取实体、实体与实体之间的联系,运用数据库设计方法进行数据库的设计,并插入一定量的实验数据。

2、根据系统的实际应用功能需求、以及考核标准来完成对应难度的数据库系统后台开发。

3实现应用程序功能的设计、编程、优化功能。(选做)


【考核标准】

(1) 学生用户,通过输入学号、密码进入系统。能修改个人信息,修改密码;能查询课程库所有课程信息,但不能修改;能查询自己的个人成绩,但不能修改(及格要求)。

(2) 设置管理员超级用户,通过输入账号、密码进入系统。能查询及修改数据库中的任意表,如用户表、学生信息表、课程库表、成绩表等(中等要求)。

(3) 用户表中追加教师用户。数据库中增加教师教学任务表,教师能根据课程库中的课程,给自己添加、删除、修改教学任务。(良好要求)

(4) 完善教务管理系统。学生能看到教师的教学任务,并能做到学生选课;教师对自己上课的课程,能给已选课的学生打成绩(优秀要求)。

注:编程过程中工程文件名必须取自己的学号;程序运行结果中,能打开的各个窗口名必须包含自己的学号,此项没有成绩作0分处理。


【设计报告】

1、课程设计报告要求:

(1)不少于3000字,用A4纸排版并打印。

(2)主要内容及装订顺序:封面(统一格式)、课程设计任务书、正文、教师评语表等。

(3)正文部分应该包括需求分析、数据库设计(含概念设计、逻辑设计、物理设计)、程序模块设计(含功能需求、用户界面设计、程序代码设计与分析、调试及运行结果)等。

(4)设计报告严禁抄袭,不允许雷同,否则按不及格论处。

2、课程的设计最终需要提交的内容:

(1)排版合理规范、内容体系完整(按上面的要求)的设计报告。

(2)数据库与应用系统(数据库的完整备份文件,源程序代码对应项目工程压缩文件统一命名后通过网络上传至指导老师指定的云班课对应的任务下)。

(3)系统功能简介与系统移植、安装、设置、口令、关键操作说明等WORD帮助文档。(选做)

3、课程设计的成绩评定:

课程的成绩由四部分构成,分别是考勤20%、设计报告40%、数据库应用系统20%、答辩20%。

成绩计分按优、良、中、及格和不及格五个等级评定。

附表:

数据库课程设计课题选题表


课题序号

课题名称

功能设计重点

1

图书销售管理系统

销售查询、统计、汇总分析

2

通用工资管理系统

工资级别、月报表、年度汇总

3

报刊订阅管理系统

报刊订阅费用、分发与结算

4

医药销售管理系统

销售查询、统计、汇总分析

5

电话计费管理系统

计费方式设计与费用统计

6

宾馆客房管理系统

客房预订、退订、入住及费用

7

学生学籍管理系统

学籍注册、日常管理、退、休学

8

车站售票管理系统

预售票、退票、换票,节假浮动

9

汽车销售管理系统

销售查询、统计、汇总分析

10

仓储物资管理系统

物资库存的统计、查询与分析

11

企业人事管理系统

人事管理与其他系统的接口

12

选修课程管理系统

选修课程流程管理与成绩管理

13

*线上授课管理系统 

线上课程、教师、考勤、授课资源

14

*疫情综合管理系统

社区服务、志愿者、出入管理、定位


 课程设计实验报告


一、题目:

《教务管理系统》


二、需求分析:

   1、对功能的定义 

(1)学生日常管理

 a)限于全体学生操作。 

 b)一般浏览者只能查看教务信息,不能对它做任何修改。而且不同的用户级别所看到的教务信息是有限制的。 

(2)教师日常管理 

 a)查询单条教务信息:主要适合全体老师操作的。在窗体上先可以选择查询的条件,再输入关键字名。按查询即可。 

 b)查询全部教务信息:是给管理员用的,为了方便管理员查找,也有关键字搜索和模糊搜索,查到记录后,也可双击记录即可显示详细信息。 

 c)成绩查询:输入学号、密码即可查询学生成绩 

(3)操作管理 

 a)仅限管理员。其中可以添加、修改、删除操作学生,设置他们的权限、级别及密码。 

 b)系统整理信息:显示距离管理员整理系统的时间。 

(4)评教管理  

a)打印单条教务记录:适用于一般浏览者和用户。他们只能打印在他们的权限范围内所能查看的教务。  

b)打印全部教务:市委管理员设置的,他们可以根据需要设置打印。 

(5)选课管理  

a)学生进行网上选课  

b)对选课情况进行统计及分析,并生成新的课表


三、数据分析与建模:

 

 一个学校有多个系,一个系有多个专业,也有多个教研室。每个教研室有多名教师。每个专业有不同的班级,每个学生只有一个专业,每个班级由多名学生组成。每个学生可选多个课程,每个课程也可以同时由多名学生选择。一个课程可由多个教师所教,每个教师也可教多个课程。每个教师可指导多名学生。选课中有学生所选课程的成绩,教师任课中有每个教师所开设课程的课程时间。

E-R图:

关系模型:

学生(学号,姓名,性别,年龄,入学年份,班号,职工号)
班级(班号,班名,专业号)
专业(专业号,专业名,系号)
系(系号,系名,学校名)

教研室(教研室号,教研室名,系号)
老师(职工号,姓名,性别,年龄,学历,职称,入职时间,教研室号)
课程(课程号,课程名,时间,学时,学分,先修课,职工号)
选修(学号,课程号,成绩)
任课(职工号,课程号,开课时间,结课时间)

关系模式:

student(userID,userName,userSex,userAge,markYear,classID,teachID)

class(classID,className,majorID)

major(majorID,majorName,deptID)

depratment(deptID,deptName,stuName)

teacher_room(roomID,roomName,deptID)

teacher(teachID,teachName,teachSex,teachAge,degree,title,teachYear,roomID)

course(courseID,courseName,time,hours,credit,cpno,teachID)

sc(userID,courseID,grade)

setup(teachID,courseID,startTime,endTime)


四、数据库建立:

各表的属性以及外键、主键等为下图所示(对象):

如下创建了10个表,5个视图,用于方便程序系统开发:

1.各个表所拥有的属性以及类型、长度和主键等如下图所示:

2.之后添加外键:

3.添加各元组数据(此处不展示)

4.创建视图:

使用

CAEATE VIEW <视图名>(列名,

AS

创建视图(此处只附SELECT语句)

(1)视图teacher_sc:

SELECT teacher.teachID,teachName,courseName,time,hours,startTime,endTimeFROM teacher,course,setupWHERE teacher.teachID=setup.teachID AND course.courseID=setup.courseID

(2)视图teacher_information:

SELECT teachID,teachName,teachSex,teachAge,degree,title,teachYear,roomName,deptName,stuNameFROM teacher,teacher_room,depratmentWHERE teacher.roomID=teacher_room.roomID AND teacher_room.deptID=depratment.deptID

(3)视图teacher_student:

SELECT teacher.teachID,userName,className,courseName,teachName,time,grade,startTime,endTimeFROM student,class,sc,course,teacher,setupWHERE student.classID=class.classID AND sc.userID=student.userID AND sc.courseID=course.courseID AND course.teachID=teacher.teachID AND teacher.teachID=setup.teachID AND setup.courseID=course.courseID

(4)视图student_information:

SELECT userID,userName,userSex,userage,markYear,className,majorName,deptName,stuNameFROM student,class,major,depratmentWHERE student.classID=class.classID AND class.majorID=major.majorID AND major.deptID=depratment.deptID

(5)视图student_sc_grade:

SELECT student.userID,userName,className,courseName,teachName,time,grade,startTime,endTimeFROM student,class,sc,course,teacher,setupWHERE student.classID=class.classID AND sc.userID=student.userID AND sc.courseID=course.courseID AND course.teachID=teacher.teachID AND teacher.teachID=setup.teachID AND setup.courseID=course.courseID

 


五、数据库应用开发与运行:(程序代码、界面图、详细功能说明,选做)

//Users.javapackage com.tjl.bean;@SuppressWarnings("all")public class User {private int id;private String uname;private String upass;private int type;public User() {super();}public User(String uname, String upass) {super();this.uname = uname;this.upass = upass;}public User(String uname, String upass, int type) {super();this.uname = uname;this.upass = upass;this.type = type;}public User(int id, String uname, String upass, int type) {super();this.id = id;this.uname = uname;this.upass = upass;this.type = type;}@Overridepublic String toString() {return "User{" + "id=" + id + ", uname=&#39;" + uname + &#39;\&#39;&#39; + ", upass=&#39;" + upass + &#39;\&#39;&#39; + ", type=" + type + &#39;}&#39;;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getUpass() {return upass;}public void setUpass(String upass) {this.upass = upass;}public int getType() {return type;}public void setType(int type) {this.type = type;}}

//UserDao.javapackage com.tjl.dao;import com.tjl.bean.User;public interface UserDao {int login(User user);boolean insert(User user);boolean delete(String uname);boolean update(User user);User select(String uname);User select_stu_information(String uname);User select_stu_sc(String uname);User select_teacher_information(String uname);User select_teacher_sc(String uname);}

// UserDao_Imp.javapackage com.tjl.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.tjl.bean.User;import com.tjl.jdbc.JDBCUtils;public class UserDao_Imp implements UserDao {int whether=0;private static final String SQL_USER_LOGIN = "select type from user where uname = ? and upass = ?";private static final String SQL_USER_INSET = "insert into user values (id,?,?,2)";private static final String SQL_USER_DELETE = "delete from user where uname = ?";private static final String SQL_USER_UPDATE = "update user set upass = ? where uname = ?";private static final String SQL_USER_SELECT = "select * from user where uname = ?";private static final String SQL_STU_information_SELECT = "SELECT * FROM student_information WHERE userID= ?";private static final String SQL_STU_sc_grade_SELECT = "SELECT * FROM student_sc_grade WHERE userID= ?";private static final String SQL_TEACHER_information_SELECT = "SELECT * FROM teacher_information WHERE teachID= ?";private static final String SQL_TEACHER_sc_SELECT = "SELECT * FROM teacher_sc WHERE teachID= ?";@Overridepublic int login(User user) {Connection cOnn= JDBCUtils.getConnection();PreparedStatement prepareStatement = null;ResultSet result = null;try {prepareStatement = conn.prepareStatement(SQL_USER_LOGIN);prepareStatement.setString(1,user.getUname());//设置第一个问号的值prepareStatement.setString(2,user.getUpass());//设置第二个问号的值result = prepareStatement.executeQuery();while(result.next()){int type = result.getInt("type");return type;}} catch (SQLException e) {e.printStackTrace();}finally {JDBCUtils.close(conn,prepareStatement,result);}return -1;//登录失败}@Overridepublic boolean insert(User user) {Connection cOnn= JDBCUtils.getConnection();PreparedStatement prepareStatement = null;try {//数据库中已经将type的默认值设置为2,所以这里不需要设置type的值prepareStatement = conn.prepareStatement(SQL_USER_INSET);prepareStatement.setString(1,user.getUname());//设置第一个问号的值prepareStatement.setString(2,user.getUpass());//设置第二个问号的值int line = prepareStatement.executeUpdate();return line>0?true:false;} catch (SQLException e) {e.printStackTrace();}finally {JDBCUtils.close(conn,prepareStatement,null);}return false;}@Overridepublic boolean delete(String uname) {Connection cOnn= JDBCUtils.getConnection();PreparedStatement prepareStatement = null;try {prepareStatement = conn.prepareStatement(SQL_USER_DELETE);prepareStatement.setString(1,uname);//设置第一个问号的值int line = prepareStatement.executeUpdate();return line>0?true:false;} catch (SQLException e) {e.printStackTrace();}finally {JDBCUtils.close(conn,prepareStatement,null);}return false;}@Overridepublic boolean update(User user) {Connection cOnn= JDBCUtils.getConnection();PreparedStatement prepareStatement = null;try {prepareStatement = conn.prepareStatement(SQL_USER_UPDATE);prepareStatement.setString(1,user.getUpass());//设置第一个问号的值prepareStatement.setString(2,user.getUname());//设置第二个问号的值int line = prepareStatement.executeUpdate();return line>0?true:false;} catch (SQLException e) {e.printStackTrace();}finally {JDBCUtils.close(conn,prepareStatement,null);}return false;}@Overridepublic User select(String uname) {Connection cOnn= JDBCUtils.getConnection();PreparedStatement prepareStatement = null;ResultSet result = null;try {prepareStatement = conn.prepareStatement(SQL_USER_SELECT);prepareStatement.setString(1,uname);//设置第一个问号的值result = prepareStatement.executeQuery();while(result.next()){int id = result.getInt("id");uname = result.getString("uname");String upass = result.getString("upass");int type = result.getInt("type");return new User(id,uname,upass,type);}} catch (SQLException e) {e.printStackTrace();}finally {JDBCUtils.close(conn,prepareStatement,result);}return null;//查询失败返回null}@Overridepublic User select_stu_information(String uname) {Connection cOnn= JDBCUtils.getConnection();PreparedStatement prepareStatement = null;ResultSet result = null;try {prepareStatement = conn.prepareStatement(SQL_STU_information_SELECT);prepareStatement.setString(1,uname);//设置第一个问号的值result = prepareStatement.executeQuery();while(result.next()){System.out.println("—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");System.out.print("|学校    |");System.out.print("学号     |");System.out.print("姓名 |");System.out.print("性别 |");System.out.print("年龄 |");System.out.print("入学时间 |");System.out.print("班级         |");System.out.print("专业         |");System.out.println("学院       |");System.out.print("|"+result.getString("stuName")+"    |");System.out.print(result.getInt("userID")+"    |");System.out.print(result.getString("userName")+"   |");System.out.print(result.getString("userSex")+"    |");System.out.print(result.getInt("userage")+"   |");System.out.print(result.getString("markYear")+"   |");System.out.print(result.getString("className")+"  |");System.out.print(result.getString("majorName")+"  |");System.out.println(result.getString("deptName")+" |");System.out.println("—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");System.out.println();return null;}} catch (SQLException e) {e.printStackTrace();}finally {JDBCUtils.close(conn,prepareStatement,result);}return null;//查询失败返回null}@Overridepublic User select_stu_sc(String uname) {Connection cOnn= JDBCUtils.getConnection();PreparedStatement prepareStatement = null;ResultSet result = null;try {prepareStatement = conn.prepareStatement(SQL_STU_sc_grade_SELECT);prepareStatement.setString(1,uname);//设置第一个问号的值result = prepareStatement.executeQuery();System.out.println("————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");System.out.print("|学号    |");System.out.print("姓名 |");System.out.print("班级         |");System.out.print("课程     |");System.out.print("课程老师 |");System.out.print("时间     |");System.out.print("课程成绩 |");System.out.print("课程开始时间 |");System.out.println("课程结束时间   |");System.out.println("————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");while(result.next()){System.out.print("|"+result.getInt("userID")+"    |");System.out.print(result.getString("userName")+"   |");System.out.print(result.getString("className")+"  |");System.out.print(result.getString("courseName")+" |");System.out.print(result.getString("teachName")+"      |");System.out.print(result.getString("time")+"   |");System.out.print(result.getInt("grade")+"     |");System.out.print(result.getString("startTime")+"  |");System.out.println(result.getString("endTime")+"  |");System.out.println("————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");System.out.println();}} catch (SQLException e) {e.printStackTrace();}finally {JDBCUtils.close(conn,prepareStatement,result);}return null;//查询失败返回null}@Overridepublic User select_teacher_information(String uname) {Connection cOnn= JDBCUtils.getConnection();PreparedStatement prepareStatement = null;ResultSet result = null;try {prepareStatement = conn.prepareStatement(SQL_TEACHER_information_SELECT);prepareStatement.setString(1,uname);//设置第一个问号的值result = prepareStatement.executeQuery();while(result.next()){System.out.println("—————————————————————————————————————————————————————————————————————————————————————————————————————————————————");System.out.print("|学校    |");System.out.print("职工号   |");System.out.print("姓名 |");System.out.print("性别 |");System.out.print("年龄 |");System.out.print("学历 |");System.out.print("职称 |");System.out.print("入教时间 |");System.out.print("教研室       |");System.out.println("学院       |");System.out.print("|"+result.getString("stuName")+"    |");System.out.print(result.getInt("teachID")+"   |");System.out.print(result.getString("teachName")+"  |");System.out.print(result.getString("teachSex")+"   |");System.out.print(result.getInt("teachAge")+"  |");System.out.print(result.getString("degree")+" |");System.out.print(result.getString("title")+"  |");System.out.print(result.getString("teachYear")+"  |");System.out.print(result.getString("roomName")+"   |");System.out.println(result.getString("deptName")+" |");System.out.println("—————————————————————————————————————————————————————————————————————————————————————————————————————————————————");System.out.println();return null;}} catch (SQLException e) {e.printStackTrace();}finally {JDBCUtils.close(conn,prepareStatement,result);}return null;//查询失败返回null}@Overridepublic User select_teacher_sc(String uname) {Connection cOnn= JDBCUtils.getConnection();PreparedStatement prepareStatement = null;ResultSet result = null;try {prepareStatement = conn.prepareStatement(SQL_TEACHER_sc_SELECT);prepareStatement.setString(1,uname);//设置第一个问号的值result = prepareStatement.executeQuery();System.out.println("—————————————————————————————————————————————————————————————————————————————————————————");System.out.print("|职工号  |");System.out.print("姓名 |");System.out.print("课程     |");System.out.print("时间     |");System.out.print("学时 |");System.out.print("开始教学 |");System.out.println("结束教学   |");while(result.next()){System.out.print("|"+result.getInt("teachID")+"   |");System.out.print(result.getString("teachName")+"  |");System.out.print(result.getString("courseName")+" |");System.out.print(result.getString("time")+"   |");System.out.print(result.getString("hours")+"  |");System.out.print(result.getString("startTime")+"  |");System.out.println(result.getString("endTime")+"  |");System.out.println("—————————————————————————————————————————————————————————————————————————————————————————");System.out.println();whether=1;}if(whether==0)             System.out.println("\n暂无课程教学\n");} catch (SQLException e) {e.printStackTrace();}finally {JDBCUtils.close(conn,prepareStatement,result);}return null;//查询失败返回null}}

//View.javapackage com.tjl.view;import com.tjl.bean.User;import java.util.Scanner;public class View {private static Scanner input = new Scanner(System.in);static String users=null;// 首页界面public static User indexView() {System.out.println("***********************************");System.out.println("********\t教务管理系统\t*******");System.out.println("*********\t请根据提示操作\t*******");System.out.println("**********\t请输入账号:\t***********");String uname = input.nextLine();users=uname;System.out.println("**********\t请输入密码:\t***********");String upass = input.nextLine();System.out.println("***********************************");return new User(uname, upass);}//管理者菜单界面public static int managerMenuView(){System.out.println("***********************************");System.out.println("********\t欢迎管理员回家\t*******");System.out.println("*********\t请根据提示操作\t*******");System.out.println("**********\t0.退出\t\t***********");System.out.println("**********\t1.添加学生信息\t***********");System.out.println("**********\t2.删除学生信息\t***********");System.out.println("**********\t3.修改学生信息\t***********");System.out.println("**********\t4.查询学生信息\t***********");String type = input.nextLine();int item = Integer.parseInt(type);if(item<0||item>4) {System.out.println("输入错误,请重新输入:");return managerMenuView();}System.out.println("***********************************");return item;}//增加用户界面public static User addMenuView(){System.out.println("***********************************");System.out.println("********\t添加用户界面\t*******");System.out.println("*********\t请根据提示操作\t*******");System.out.println("**********\t请输入账号:\t***********");String uname = input.nextLine();System.out.println("**********\t请输入密码:\t***********");String upass = input.nextLine();System.out.println("***********************************");return new User(uname,upass);}//删除用户界面public static String deleteMenuView(){System.out.println("***********************************");System.out.println("********\t删除用户界面\t*******");System.out.println("*********\t请根据提示操作\t*******");System.out.println("**********\t请输入账号:\t***********");String uname = input.nextLine();System.out.println("***********************************");return uname;}//更新修改用户界面public static User updateMenuView(){System.out.println("***********************************");System.out.println("********\t修改用户界面\t*******");System.out.println("*********\t请根据提示操作\t*******");System.out.println("**********\t请输入账号:\t***********");String uname = input.nextLine();System.out.println("**********\t请输入新密码:\t***********");String upass = input.nextLine();System.out.println("***********************************");return new User(uname,upass);}//查询用户界面public static String selectMenuView(){System.out.println("***********************************");System.out.println("********\t查询用户界面\t*******");System.out.println("*********\t请根据提示操作\t*******");System.out.println("**********\t请输入查询账号:\t***********");String uname = input.nextLine();System.out.println("***********************************");return uname;}public static void printUser(User user) {System.out.println("用户ID:"+user.getId());System.out.println("用户名:"+user.getUname());System.out.println("密码:"+user.getUpass());if(user.getType()==1) {System.out.println("用户权限:管理员");}else if(user.getType()==2){System.out.println("用户权限:学生");}else {System.out.println("用户权限:老师");}}//学生界面public static int studentMenuView(){System.out.println("***********************************");System.out.println("********\t欢迎学生回家\t*******");System.out.println("*********\t请根据提示操作\t*******");System.out.println("**********\t0.退出\t\t***********");System.out.println("**********\t1.修改密码\t***********");System.out.println("**********\t2.查询个人信息\t***********");System.out.println("**********\t3.查询选课信息\t***********");boolean flag = true;int num = -1;while(flag){num = Integer.parseInt(input.nextLine());if (num >= 0 && num <= 3) {flag = false;//退出循环break;}System.out.println("输入错误,请重新输入:");}System.out.println("***********************************");return num;}//修改密码界面public static String alterPassView(){System.out.println("***********************************");System.out.println("********\t修改密码界面\t*******");System.out.println("*********\t请根据提示操作\t*******");System.out.println("**********\t请输入新密码:\t***********");String upass = input.nextLine();System.out.println("***********************************");return upass;}//学生界面public static int teacherMenuView(){System.out.println("***********************************");System.out.println("********\t欢迎老师回家\t*******");System.out.println("*********\t请根据提示操作\t*******");System.out.println("**********\t0.退出\t\t***********");System.out.println("**********\t1.修改密码\t***********");System.out.println("**********\t2.查询个人信息\t***********");System.out.println("**********\t3.查询课表信息\t***********");boolean flag = true;int num = -1;while(flag){num = Integer.parseInt(input.nextLine());if (num >= 0 && num <= 3) {flag = false;//退出循环break;}System.out.println("输入错误,请重新输入:");}System.out.println("***********************************");return num;}}

//JDBCUtils.javapackage com.tjl.jdbc;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;public class JDBCUtils {private static String driver;private static String url;private static String username;private static String password;static {InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");Properties p=new Properties();try {p.load(is);driver = p.getProperty("driver");url = p.getProperty("url");username = p.getProperty("username");password = p.getProperty("password");//加载驱动Class.forName(driver);//System.out.println("驱动加载成功");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static Connection getConnection() {try {//System.out.println("数据库连接成功");return DriverManager.getConnection(url,username,password);} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("数据库连接失败");e.printStackTrace();}return null;}public static void close(Connection conn, Statement statement, ResultSet result) {try {if(result!=null) {result.close();result=null;}if(statement!=null) {statement.close();statement=null;}if(conn!=null) {conn.close();cOnn=null;}}catch (SQLException e) {e.printStackTrace();}}}

//Contral.javapackage com.tjl.controller;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.tjl.bean.User;import com.tjl.dao.UserDao_Imp;import com.tjl.jdbc.JDBCUtils;import com.tjl.view.View;public class Control {private static final String SQL_STU_information_SELECT = "SELECT * FROM student_information WHERE userID= ?";static UserDao_Imp userDao_Imp = new UserDao_Imp();public static void main(String[] args) {while (true) {User user = View.indexView();//UserDao_Imp userDao_Imp = new UserDao_Imp();//User user = null;//int type = -1;//boolean flag=true;//循环标志位//user = View.indexView();//type = userDao.login(user);int type = userDao_Imp.login(user);switch (type) {case -1:System.out.println("登录失败,请重新登录:");break;case 1:System.out.println("恭喜管理员登录成功!");managerServer();break;case 2:System.out.println("恭喜学生登录成功!");studentServer(user.getUname());break;case 3:System.out.println("恭喜老师登录成功!");teacherServer(user.getUname());default:break;}}}//管理员控制public static void managerServer(){boolean flag=true;//循环标志位//UserDao_Imp userDao_Imp = new UserDao_Imp();while (flag){int choice = View.managerMenuView();//选择操作switch (choice){case 0:System.out.println("退出系统,再见!");flag=false;break;case 1:User newUser = View.addMenuView();if (userDao_Imp.insert(newUser)){System.out.println("恭喜添加成功!");}else {System.out.println("插入失败");}break;case 2:String uname = View.deleteMenuView();if (userDao_Imp.delete(uname)){System.out.println("恭喜删除成功");}else {System.out.println("删除失败");}break;case 3:User user = View.updateMenuView();if (userDao_Imp.update(user)){System.out.println("恭喜修改成功!");}else {System.out.println("修改失败");}break;case 4:String uname2 = View.selectMenuView();User selectUser = userDao_Imp.select(uname2);if (selectUser!=null){System.out.println("您查询的信息如下:");//System.out.printf("姓名:%s \n密码:%s \n用户类型:%d\n",//      selectUser.getUname(),selectUser.getUpass(),selectUser.getType());View.printUser(selectUser);}else {System.out.println("查询失败,查无此人");}break;default:break;}}}//学生控制public static void studentServer(String uname){boolean flag=true;//循环标志位while (flag){int choice = View.studentMenuView();//选择操作switch (choice){case 0:System.out.println("退出系统,再见!");flag=false;break;case 1:String psw = View.alterPassView();if (userDao_Imp.update(new User(uname,psw))){System.out.println("恭喜修改密码成功!");}else {System.out.println("修改密码失败!");}break;case 2:userDao_Imp.select_stu_information(uname);break;case 3:userDao_Imp.select_stu_sc(uname);break;default:break;}}}//老师控制private static void teacherServer(String uname) {boolean flag=true;//循环标志位while (flag){int choice = View.teacherMenuView();//选择操作switch (choice){case 0:System.out.println("退出系统,再见!");flag=false;break;case 1:String psw = View.alterPassView();if (userDao_Imp.update(new User(uname,psw))){System.out.println("恭喜修改密码成功!");}else {System.out.println("修改密码失败!");}break;case 2:userDao_Imp.select_teacher_information(uname);break;case 3:userDao_Imp.select_teacher_sc(uname);break;default:break;}}}}

// db.properties(用于连接数据库的系统以及账号和密码)driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/edu_manageusername=rootpassword=13657588218man

六、程序结果截图

通过对学生的账号和密码以及管理员账号和密码以及老师的账号和密码,通过与数据库的匹配,识别进入不同的系统。实现管理员的增删改查,以及学生和老师的查询等。


七、结果分析与心得体会:

本学期学习了数据库原理课程,本次课程所对应的课程设计,通过本次课程设计,深刻学习到了数据库的应用与学习。本次课程设计有多个命题,不过对于自己能力的评定,最后选择学习过程中最熟悉的《教务管理系统》。通过网上资料的学习、以及书本的知识,先构建自己的需求设计,然后进行E-R图的构建,再进行关系模型的构建,最后使用MySQL进行表和视图的建立。

数据库的建立完成后,通过资料的学习,想进行程序的开发,最后使用eclipse,进行与数据库的连接,完成最后的增删改查。虽然没有达到最后自己所想的预期,不过通过本次经历也学习到了很多知识。总的来说,本次课程设计,收获颇多,不仅储备了自己的知识,还学习到了许多新知识,对今后的学习与应用有了进一步的学习。


推荐阅读
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
author-avatar
炜一爱妮
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有