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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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

   

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,endTime

FROM teacher,course,setup

WHERE teacher.teachID=setup.teachID AND course.courseID=setup.courseID

2视图teacher_information

SELECT teachID,teachName,teachSex,teachAge,degree,title,teachYear,roomName,deptName,stuName

FROM teacher,teacher_room,depratment

WHERE teacher.roomID=teacher_room.roomID AND teacher_room.deptID=depratment.deptID

3视图teacher_student

SELECT teacher.teachID,userName,className,courseName,teachName,time,grade,startTime,endTime

FROM student,class,sc,course,teacher,setup

WHERE 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,stuName

FROM student,class,major,depratment

WHERE 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,endTime

FROM student,class,sc,course,teacher,setup

WHERE 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.java

package 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;

    }



    @Override

    public String toString() {

        return "User{" + "id=" + id + ", uname='" + uname + '\'' + ", upass='" + upass + '\'' + ", type=" + type + '}';

    }



    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.java

package 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.java

package 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= ?";



    @Override

    public 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;//登录失败

    }



    @Override

    public 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;

    }



    @Override

    public 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;

    }



    @Override

    public 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;

    }



    @Override

    public 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

    }



    @Override

    public 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

    }

    @Override

    public 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

    }

   

    @Override

    public 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

    }

   

    @Override

    public 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.java



package 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.java

package 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 block

            e.printStackTrace();

        }

               

    }



    public static Connection getConnection() {

        try {

            //System.out.println("数据库连接成功");

            return DriverManager.getConnection(url,username,password);

       

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            System.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.java

package 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.Driver

url=jdbc:mysql://localhost:3306/edu_manage

username=root

password=13657588218man

六、程序结果截图

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

七、结果分析与心得体会

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

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

“教务管理系统——数据库课程设计mysql+java” 的相关文章