精华内容
下载资源
问答
  • 这里使用JAVA语言编写的简易的学生选课系统,展现的都是这个系统核心代码。其中有不足欢迎批评和指正!链接数据库的代码package connection;//连接数据库studentimport java.sql.Connection;import java.sql....

    这里使用JAVA语言编写的简易的学生选课系统,展现的都是这个系统核心代码。

    其中有不足欢迎批评和指正!

    链接数据库的代码

    package connection;

    //连接数据库student

    import java.sql.Connection;

    import java.sql.DriverManager;

    //import java.sql.Statement;

    import java.sql.SQLException;

    public class xu{

    private static Connection conn = null;

    static {

    try {

    // 注册驱动

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

    // 获得一个数据库连接

    conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=student","sa","123456");

    }catch(ClassNotFoundException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    public static Connection getConnection() {

    return conn;

    }

    }

    选课的操作代码

    package connection;

    import java.sql.*;

    import java.util.*;

    public class test1{

    private static String ID;// 此处的ID设为全局变量,在下面某些方法里会用到

    private static Scanner console = new Scanner(System.in);

    private static String managerPass = "123456";

    private static Connection conn = xu.getConnection();

    public static void main(String [] args) throws SQLException {

    System.out.println("Welcome to the student selection system!\n\n"

    +"if you are maneger please choose 6、7、8、9、10\n"

    +"if you are student Please choose 1、2、3、4、5、10\n");

    ShowMenu();

    }

    public static void ShowMenu() throws SQLException {

    System.out.println("-----------option-------------\n");

    System.out.println("1--Student login"); // 学生登录

    System.out.println("2--Change password"); // 学生修改密码

    System.out.println("3--Choose course"); // 学生选课

    System.out.println("4--Get course list"); // 学生查看自己的课程表

    System.out.println("5--Student rigistration"); // 学生注册账号

    System.out.println("6--Create student"); // 管理员创建学生

    System.out.println("7--Create course"); // 管理员创建课表

    System.out.println("8--Get student list"); // 管理员查看学生表

    System.out.println("9--Get course list1"); // 管理员查看选课表里的课程

    System.out.println("10--exit\n"); // 退出

    Test();

    }

    public static void Test() throws SQLException {

    System.out.println("manager choose 1 ,student choose 0");

    int choose1 = console.nextInt(); //int 用nextInt()

    if(choose1 == 1) {

    System.out.println("Please input your password :");

    String password = console.next(); //String 用next()

    if(password.equals(managerPass)) {

    System.out.println("Welcome manager!\n");

    ManagerMenu1();

    }

    else {

    System.out.println("Your password is worry!"); }

    }

    else if(choose1 == 0) {

    System.out.println("Welcome Student!");

    StudentMenu1();

    }

    }

    /*管理员操作菜单*/

    public static void ManagerMenu1() throws SQLException {

    System.out.println("----------Manager----------\n");

    System.out.println("Please choose option");

    int choose2 = console.nextInt();

    switch(choose2) {

    case 1 :

    case 2 :

    case 3 :

    case 4 :

    case 5 :

    System.out.println("This is student`s option,try again!");

    ManagerMenu1();

    break;

    case 6 : CreateStu();break;

    case 7 : CreateCourse();break;

    case 8 : GetStudentList();break;

    case 9 : GetCourseList1();break;

    case 10 : System.exit(0);break;

    default : System.out.println("Please input an right number , try again!"); ManagerMenu1();

    }

    }

    /*学生操作菜单*/

    public static void StudentMenu1() throws SQLException {

    System.out.println("----------Student----------\n");

    System.out.println("Please input option");

    int choose3 = console.nextInt();

    switch(choose3) {

    case 1 : StuLogin();break;

    case 2 : ChangePass();break;

    //在进行Choose course,Get course list之前都要求学生进行StuLogin操作

    case 3 :

    case 4 : System.out.println("you must login before you can do it!\n");StuLogin();break;

    case 5 : StuRigistration();break;

    case 6 :

    case 7 :

    case 8 :

    case 9 : System.out.println("This is manager`s option,try again!");StudentMenu1();break;

    case 10 : System.exit(0);break;

    default : System.out.println("Please input an right number,try again!");StudentMenu1();

    }

    }

    /*管理员创建课程*/

    public static void CreateCourse() throws SQLException{

    try {

    /* 通过connection数据库链接对象 创建一个statement对象数据库操作对象,stat对象再获取一个执行sql的语句。

    * stat对象就是java程序与Database的一个连接通道*/

    Statement stat = conn.createStatement();

    String sql1 = "insert into course(couID,couName,couTeacher)values(1,'软件工程','黄伟国')";

    String sql2 = "insert into course(couID,couName,couTeacher)values(2,'数据库','韦美雁')";

    String sql3 = "insert into course(couID,couName,couTeacher)values(3,'算法设计','黎明')";

    String sql4 = "insert into course(couID,couName,couTeacher)values(4,'大学英语','章琴')";

    String sql5 = "insert into course(couID,couName,couTeacher)values(5,'Java','唐雅媛')";

    int a = stat.executeUpdate(sql1);

    int b = stat.executeUpdate(sql2);

    int c = stat.executeUpdate(sql3);

    int d = stat.executeUpdate(sql4);

    int e = stat.executeUpdate(sql5);

    int sum = a + b + c + d + e;

    System.out.println("成功添加"+ sum + "行课程数据");

    ManagerMenu1();

    } catch (SQLException e) {

    // TODO Auto-generated catch block

    //e.printStackTrace();

    System.out.println("Course already exists");

    ManagerMenu1();

    }

    }

    /*管理员创建学生*/

    public static void CreateStu() throws SQLException {

    try {

    Statement stat = conn.createStatement();

    String sql1 = "insert into student(stuID,stuName) Values(20160501,'徐明正')";

    // 这里对学生信息的输入也必须一个一个输入,这是系统的缺陷,问题待解决

    int a = stat.executeUpdate(sql1);

    System.out.println("成功添加"+ a + "行学生数据");

    ManagerMenu1();

    }catch(SQLException e) {

    // TODO Auto-generated catch block

    System.out.println("The student already exists");

    ManagerMenu1();

    }

    }

    /*学生登录*/

    public static void StuLogin() throws SQLException {

    System.out.println("Please input your stuID"); // 输入账号

    ID = console.next();

    System.out.println("Please input your Password"); // 输入密码

    String stuPassword = console.next();

    String stuID = null;

    String Password = null;

    Statement stat ;

    ResultSet rs ;

    try {

    stat = conn.createStatement();

    String sql1 = "select * from login "; /* 从login表中查询其所有属性值,则stuID 和 Password都有了。

    rs是结果集。查询出的记录是一个列表,初始时指针指向的是第一条记录之前的。*/

    boolean flag;

    rs = stat.executeQuery(sql1);

    while(flag = rs.next()) { // rs.next(); //返回值为true or false

    stuID = rs.getString("stuID");

    Password = rs.getString("Password");

    if( ID.equals(stuID) && stuPassword.equals(Password)) // 注意这里,跳出循环的条件很重要

    break;

    // 如果在数据库里没有找到与用户输入的stuID和Password相匹配的stuID和Password,flag则变为false

    }

    if(!flag){ // 当flag 为 false 时

    System.out.println("The ID or Password is worry!Please input your ID and Password again\n");

    StuLogin();

    }

    else {

    System.out.println("***"+ID+"***"+stuID +"***"+stuPassword+"***"+Password+"***");

    System.out.println("Login Successful!\n");

    System.out.println("------------------Please choose option------------------\n"

    //+"If you want to Change Password ,Please choose 2\n"

    +"If you want to Choose Course,Please choose 3\n"+"If you want to Get Course List,Please choose 4\n"

    +"If you want to exit ,Please choose 8\n");

    int choose4 = console.nextInt();

    switch(choose4) {

    // case 2 : ChangePass();break;

    case 3 : ChooseCourse();break;

    case 4 : GetCourseList();break;

    case 10 : System.exit(0);break;

    default : System.out.println("You input an invalid number!");

    }

    }

    } catch (SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    /*在这里说明一下 方法execute 、executeQuery、executeUpdate三者的区别

    * 方法executeQuery 用于单个结果集的语句,如select。他会把查询的结果放入ResultSet类对象中供使用。

    * 方法executeUpdate 用于执行insert、update或delete语句以及SQL DDL(数据定义语言),如create table 和 drop table 。

    * 方法execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。*/

    /*学生修改密码*/

    public static void ChangePass() throws SQLException {

    //System.out.println(ID);

    /*此处的ID应该必须要重新输入,否则当选择对数据库中某个ID更新的Password进行修改时,没有对应的ID*/

    System.out.println("Please input your ID");

    String ID = console.next();

    System.out.println("Please input your new Password");

    String NewPassword = console.next();

    Statement stat ;

    try {

    stat = conn.createStatement(); // 两种写法都可以

    // stat = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

    String sql ="UPDATE login SET Password =" + "" + NewPassword + " where stuID ="+ ID;

    //注意,此处的NewPassword 和 ID 没有要用''括起来

    // String sql1 ="UPDATE login SET Password = 111 where stuID = 20156022";

    int a = stat.executeUpdate(sql);

    System.out.println(a);

    if(a != 0) {

    System.out.println("成功修改"+a+"行记录");

    System.out.println("Your new Password is "+ NewPassword);

    StudentMenu1();

    }

    elseSystem.out.println("\n"+"Changing the Password is failed!");

    }catch(SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    /*学生选课*/

    public static void ChooseCourse() throws SQLException {

    System.out.println(ID);

    String couID = null;

    String couName = null;

    String couTeacher = null;

    Statement stat;

    ResultSet rs;

    try {

    stat = conn.createStatement();

    String sql = "select * from course";

    rs = stat.executeQuery(sql);

    System.out.println("--------可选课程的信息-------");

    while(rs.next()) {

    couID = rs.getString("couID");

    couName = rs.getString("couName");

    couTeacher = rs.getString("couTeacher");

    System.out.println(couID + " " + couName + " " + couTeacher);

    }

    System.out.println("\n Please choose your course \n");

    stat= conn.createStatement();

    // 此处stuID固定位学生登录时所用的ID,这样可以保证登录自己的账号却能选别的账号的课程

    System.out.println("input CourseID");

    int ID1 = console.nextInt();

    int ID2 = console.nextInt();

    int ID3 = console.nextInt();

    // 这样写 ,学生选课的数目必须固定为3门,问题待解决

    String sql1 = "insert into stuCourse(stuID,couID1,couID2,couID3)VALUES(" + ID + ","+ ID1 + "," + ID2 + "," +ID3 +")";

    int i = stat.executeUpdate(sql1);

    if(i != 0) {

    System.out.println("成功选入课程");

    GetCourseList();

    }

    else System.out.println("选课错误");

    } catch (SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    /*学生获取已选课程列表*/

    public static void GetCourseList() throws SQLException {

    System.out.println("\nHere is your course that you have choose\n");

    Statement stat = null;

    ResultSet rs = null;

    try {

    stat = conn.createStatement();

    String sql = "select * from stuCourse ";

    rs = stat.executeQuery(sql);

    String stuID = null;

    String couID1 = null;

    String couID2 = null;

    String couID3 = null;

    String couID4 = null;

    while(rs.next()) {

    stuID = rs.getString("stuID");

    couID1 = rs.getString("couID1");

    couID2 = rs.getString("couID2");

    couID3 = rs.getString("couID3");

    couID4 = rs.getString("couID4");

    if(stuID.equals(ID))

    System.out.println(stuID + " " + couID1 + " " + couID2 + " " + couID3 + " " + couID4 + "\n");

    }

    }catch(SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    /*学生注册*/

    public static void StuRigistration() throws SQLException{

    System.out.println("Please input your ID ");

    String ID = console.next();

    System.out.println("Please input your Password");

    String Password = console.next();

    try {

    Statement stat = conn.createStatement();

    String sql1 = "insert into login(stuID,Password)Values(" + ID + ", " + Password + ")";

    //这里密码只能输入数字,问题待解决

    int a = stat .executeUpdate(sql1);

    System.out.println("成功注册"+ a +"个账号");

    StudentMenu1();

    }catch(SQLException e) {

    // TODO Auto-generated catch block

    System.out.println("ID already exists");

    }

    }

    /* 管理员查看学生表 */

    public static void GetStudentList() {

    System.out.println("\n Here is student` information \n");

    Statement stat = null;

    ResultSet rs = null;

    try {

    stat = conn.createStatement();

    String sql = "select * from student ";

    rs = stat.executeQuery(sql);

    String stuID = null;

    String stuName = null;

    while(rs.next()) {

    stuID = rs.getString("stuID");

    stuName= rs.getString("stuName");

    System.out.println(stuID + " " + stuName + "\n");

    ManagerMenu1();

    }

    }catch(SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    /* 管理员查看选课表里的课程*/

    public static void GetCourseList1() {

    System.out.println("\n Here is course`information \n");

    Statement stat = null;

    ResultSet rs = null;

    try {

    stat = conn.createStatement();

    String sql = "select * from course ";

    rs = stat.executeQuery(sql);

    String couID = null;

    String couName = null;

    String couTeacher = null;

    while(rs.next()) {

    couID = rs.getString("couID");

    couName = rs.getString("couName");

    couTeacher = rs.getString("couTeacher");

    System.out.println(couID + " " + couName + " " + couTeacher + "\n");

    ManagerMenu1();

    }

    }catch(SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    展开全文
  • java_学生选课系统

    2013-06-01 22:30:14
    java编写选课系统,能实现管理员教师和学生的基本功能 管理员登录、修改密码、查看信息、删除信息 教师注册、登录、发布课程、修改课程内容、登记成绩 学生注册、登录、选课、退选、查看成绩
  • JAVA语言编写学生选课系统,开发工具为eclipse
  • JAVA | 学生选课系统

    2018-06-21 23:11:00
    这里使用JAVA语言编写的简易的学生选课系统,展现的都是这个系统核心代码。 其中有不足欢迎批评和指正! 链接数据库的代码 package connection;//连接数据库student import java.sql.Connection;import java....

    这里使用JAVA语言编写的简易的学生选课系统,展现的都是这个系统核心代码。

    其中有不足欢迎批评和指正!

     

    链接数据库的代码

    package connection;
    //连接数据库student

    import java.sql.Connection;
    import java.sql.DriverManager;
    //import java.sql.Statement;
    import java.sql.SQLException;

    public class xu{

    private static Connection conn = null;
    static {
    try {
    // 注册驱动
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    // 获得一个数据库连接
    conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=student","sa","123456");
    }catch(ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    public static Connection getConnection() {
    return conn;
    }
    }

     

     

    选课的操作代码

    package connection;

    import java.sql.*;
    import java.util.*;

    public class test1{

    private static String ID; // 此处的ID设为全局变量,在下面某些方法里会用到
    private static Scanner console = new Scanner(System.in);
    private static String managerPass = "123456";
    private static Connection conn = xu.getConnection();


    public static void main(String [] args) throws SQLException {

    System.out.println("Welcome to the student selection system!\n\n"
    +"if you are maneger please choose 6、7、8、9、10\n"
    +"if you are student Please choose 1、2、3、4、5、10\n");
    ShowMenu();
    }

    public static void ShowMenu() throws SQLException {

    System.out.println("-----------option-------------\n");

    System.out.println("1--Student login"); // 学生登录
    System.out.println("2--Change password"); // 学生修改密码
    System.out.println("3--Choose course"); // 学生选课
    System.out.println("4--Get course list"); // 学生查看自己的课程表
    System.out.println("5--Student rigistration"); // 学生注册账号
    System.out.println("6--Create student"); // 管理员创建学生
    System.out.println("7--Create course"); // 管理员创建课表
    System.out.println("8--Get student list"); // 管理员查看学生表
    System.out.println("9--Get course list1"); // 管理员查看选课表里的课程
    System.out.println("10--exit\n"); // 退出

    Test();
    }



    public static void Test() throws SQLException {

    System.out.println("manager choose 1 ,student choose 0");
    int choose1 = console.nextInt(); //int 用nextInt()

    if(choose1 == 1) {

    System.out.println("Please input your password :");
    String password = console.next(); //String 用next()

    if(password.equals(managerPass)) {

    System.out.println("Welcome manager!\n");
    ManagerMenu1();
    }

    else {

    System.out.println("Your password is worry!"); }
    }

    else if(choose1 == 0) {

    System.out.println("Welcome Student!");
    StudentMenu1();
    }
    }



    /*管理员操作菜单*/
    public static void ManagerMenu1() throws SQLException {

    System.out.println("----------Manager----------\n");
    System.out.println("Please choose option");
    int choose2 = console.nextInt();

    switch(choose2) {

    case 1 :
    case 2 :
    case 3 :
    case 4 :
    case 5 :
    System.out.println("This is student`s option,try again!");
    ManagerMenu1();
    break;
    case 6 : CreateStu();break;
    case 7 : CreateCourse();break;
    case 8 : GetStudentList();break;
    case 9 : GetCourseList1();break;
    case 10 : System.exit(0);break;
    default : System.out.println("Please input an right number , try again!"); ManagerMenu1();

    }
    }



    /*学生操作菜单*/
    public static void StudentMenu1() throws SQLException {

    System.out.println("----------Student----------\n");
    System.out.println("Please input option");
    int choose3 = console.nextInt();

    switch(choose3) {

    case 1 : StuLogin();break;
    case 2 : ChangePass();break;

    //在进行Choose course,Get course list之前都要求学生进行StuLogin操作

    case 3 :
    case 4 : System.out.println("you must login before you can do it!\n");StuLogin();break;
    case 5 : StuRigistration();break;
    case 6 :
    case 7 :
    case 8 :
    case 9 : System.out.println("This is manager`s option,try again!");StudentMenu1();break;
    case 10 : System.exit(0);break;
    default : System.out.println("Please input an right number,try again!");StudentMenu1();

    }
    }



    /*管理员创建课程*/
    public static void CreateCourse() throws SQLException{

    try {
    /* 通过connection数据库链接对象 创建一个statement对象数据库操作对象,stat对象再获取一个执行sql的语句。
    * stat对象就是java程序与Database的一个连接通道*/

    Statement stat = conn.createStatement();
    String sql1 = "insert into course(couID,couName,couTeacher)values(1,'软件工程','黄伟国')";
    String sql2 = "insert into course(couID,couName,couTeacher)values(2,'数据库','韦美雁')";
    String sql3 = "insert into course(couID,couName,couTeacher)values(3,'算法设计','黎明')";
    String sql4 = "insert into course(couID,couName,couTeacher)values(4,'大学英语','章琴')";
    String sql5 = "insert into course(couID,couName,couTeacher)values(5,'Java','唐雅媛')";

    int a = stat.executeUpdate(sql1);
    int b = stat.executeUpdate(sql2);
    int c = stat.executeUpdate(sql3);
    int d = stat.executeUpdate(sql4);
    int e = stat.executeUpdate(sql5);

    int sum = a + b + c + d + e;
    System.out.println("成功添加"+ sum + "行课程数据");
    ManagerMenu1();

    } catch (SQLException e) {
    // TODO Auto-generated catch block
    // e.printStackTrace();
    System.out.println("Course already exists");

    ManagerMenu1();
    }
    }



    /*管理员创建学生*/
    public static void CreateStu() throws SQLException {


    try {
    Statement stat = conn.createStatement();
    String sql1 = "insert into student(stuID,stuName) Values(20160501,'徐明正')";

    // 这里对学生信息的输入也必须一个一个输入,这是系统的缺陷,问题待解决

    int a = stat.executeUpdate(sql1);
    System.out.println("成功添加"+ a + "行学生数据");
    ManagerMenu1();

    }catch(SQLException e) {
    // TODO Auto-generated catch block
    System.out.println("The student already exists");

    ManagerMenu1();
    }
    }


    /*学生登录*/
    public static void StuLogin() throws SQLException {

    System.out.println("Please input your stuID"); // 输入账号
    ID = console.next();

    System.out.println("Please input your Password"); // 输入密码
    String stuPassword = console.next();

    String stuID = null;
    String Password = null;

    Statement stat ;
    ResultSet rs ;

    try {
    stat = conn.createStatement();
    String sql1 = "select * from login "; /* 从login表中查询其所有属性值,则stuID 和 Password都有了。
    rs是结果集。查询出的记录是一个列表,初始时指针指向的是第一条记录之前的。*/
    boolean flag;
    rs = stat.executeQuery(sql1);

    while(flag = rs.next()) { // rs.next(); //返回值为true or false

    stuID = rs.getString("stuID");
    Password = rs.getString("Password");

    if( ID.equals(stuID) && stuPassword.equals(Password)) // 注意这里,跳出循环的条件很重要

    break;

    // 如果在数据库里没有找到与用户输入的stuID和Password相匹配的stuID和Password,flag则变为false

    }

    if(!flag){ // 当flag 为 false 时

    System.out.println("The ID or Password is worry!Please input your ID and Password again\n");
    StuLogin();
    }

    else {
    System.out.println("***"+ID+"***"+stuID +"***"+stuPassword+"***"+Password+"***");

    System.out.println("Login Successful!\n");
    System.out.println("------------------Please choose option------------------\n"
    // +"If you want to Change Password ,Please choose 2\n"
    +"If you want to Choose Course,Please choose 3\n"+"If you want to Get Course List,Please choose 4\n"
    +"If you want to exit ,Please choose 8\n");

    int choose4 = console.nextInt();

    switch(choose4) {

    // case 2 : ChangePass();break;
    case 3 : ChooseCourse();break;
    case 4 : GetCourseList();break;
    case 10 : System.exit(0);break;
    default : System.out.println("You input an invalid number!");

    }

    }

    } catch (SQLException e) {

    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }

    /*在这里说明一下 方法execute 、executeQuery、executeUpdate三者的区别
    * 方法executeQuery 用于单个结果集的语句,如select。他会把查询的结果放入ResultSet类对象中供使用。
    * 方法executeUpdate 用于执行insert、update或delete语句<返回值为整数>以及SQL DDL(数据定义语言),如create table 和 drop table <返回值为零>。
    * 方法execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。*/



    /*学生修改密码*/
    public static void ChangePass() throws SQLException {

    // System.out.println(ID);

    /*此处的ID应该必须要重新输入,否则当选择对数据库中某个ID更新的Password进行修改时,没有对应的ID*/

    System.out.println("Please input your ID");
    String ID = console.next();
    System.out.println("Please input your new Password");
    String NewPassword = console.next();

    Statement stat ;

    try {

    stat = conn.createStatement(); // 两种写法都可以
    // stat = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql ="UPDATE login SET Password =" + "" + NewPassword + " where stuID ="+ ID;

    //注意,此处的NewPassword 和 ID 没有要用''括起来

    // String sql1 ="UPDATE login SET Password = 111 where stuID = 20156022";

    int a = stat.executeUpdate(sql);
    System.out.println(a);

    if(a != 0) {

    System.out.println("成功修改"+a+"行记录");
    System.out.println("Your new Password is "+ NewPassword);

    StudentMenu1();
    }

    else System.out.println("\n"+"Changing the Password is failed!");

    }catch(SQLException e) {

    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }



    /*学生选课*/
    public static void ChooseCourse() throws SQLException {

    System.out.println(ID);
    String couID = null;
    String couName = null;
    String couTeacher = null;

    Statement stat;
    ResultSet rs;

    try {

    stat = conn.createStatement();
    String sql = "select * from course";
    rs = stat.executeQuery(sql);

    System.out.println("--------可选课程的信息-------");
    while(rs.next()) {

    couID = rs.getString("couID");
    couName = rs.getString("couName");
    couTeacher = rs.getString("couTeacher");

    System.out.println(couID + " " + couName + " " + couTeacher);
    }

    System.out.println("\n Please choose your course \n");

    stat= conn.createStatement();

    // 此处stuID固定位学生登录时所用的ID,这样可以保证登录自己的账号却能选别的账号的课程

    System.out.println("input CourseID");
    int ID1 = console.nextInt();
    int ID2 = console.nextInt();
    int ID3 = console.nextInt();

    // 这样写 ,学生选课的数目必须固定为3门,问题待解决

    String sql1 = "insert into stuCourse(stuID,couID1,couID2,couID3)VALUES(" + ID + ","+ ID1 + "," + ID2 + "," +ID3 +")";
    int i = stat.executeUpdate(sql1);

    if(i != 0) {
    System.out.println("成功选入课程");

    GetCourseList();
    }
    else System.out.println("选课错误");

    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }



    /*学生获取已选课程列表*/
    public static void GetCourseList() throws SQLException {

    System.out.println("\nHere is your course that you have choose\n");

    Statement stat = null;
    ResultSet rs = null;

    try {

    stat = conn.createStatement();
    String sql = "select * from stuCourse ";
    rs = stat.executeQuery(sql);

    String stuID = null;
    String couID1 = null;
    String couID2 = null;
    String couID3 = null;
    String couID4 = null;

    while(rs.next()) {

    stuID = rs.getString("stuID");
    couID1 = rs.getString("couID1");
    couID2 = rs.getString("couID2");
    couID3 = rs.getString("couID3");
    couID4 = rs.getString("couID4");


    if(stuID.equals(ID))

    System.out.println(stuID + " " + couID1 + " " + couID2 + " " + couID3 + " " + couID4 + "\n");

    }

    }catch(SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }



    /*学生注册*/
    public static void StuRigistration() throws SQLException{

    System.out.println("Please input your ID ");
    String ID = console.next();
    System.out.println("Please input your Password");
    String Password = console.next();

    try {
    Statement stat = conn.createStatement();
    String sql1 = "insert into login(stuID,Password)Values(" + ID + ", " + Password + ")";
    //这里密码只能输入数字,问题待解决

    int a = stat .executeUpdate(sql1);
    System.out.println("成功注册"+ a +"个账号");

    StudentMenu1();

    }catch(SQLException e) {
    // TODO Auto-generated catch block
    System.out.println("ID already exists");
    }
    }


    /* 管理员查看学生表 */
    public static void GetStudentList() {

    System.out.println("\n Here is student` information \n");

    Statement stat = null;
    ResultSet rs = null;

    try {

    stat = conn.createStatement();
    String sql = "select * from student ";
    rs = stat.executeQuery(sql);

    String stuID = null;
    String stuName = null;

    while(rs.next()) {

    stuID = rs.getString("stuID");
    stuName= rs.getString("stuName");

    System.out.println(stuID + " " + stuName + "\n");

    ManagerMenu1();
    }

    }catch(SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }


    /* 管理员查看选课表里的课程*/
    public static void GetCourseList1() {

    System.out.println("\n Here is course`information \n");

    Statement stat = null;
    ResultSet rs = null;

    try {

    stat = conn.createStatement();
    String sql = "select * from course ";
    rs = stat.executeQuery(sql);

    String couID = null;
    String couName = null;
    String couTeacher = null;


    while(rs.next()) {

    couID = rs.getString("couID");
    couName = rs.getString("couName");
    couTeacher = rs.getString("couTeacher");

    System.out.println(couID + " " + couName + " " + couTeacher + "\n");

    ManagerMenu1();
    }

    }catch(SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }

    转载于:https://www.cnblogs.com/mz-xiansheng/p/9211383.html

    展开全文
  • java高校学生选课系统

    热门讨论 2011-07-04 16:29:47
    3.1.1 编写目的 7 3.1.2 开发系统的技术可行性 7 3.1.3 开发系统的法律可行性 7 3.1.4 社会条件上的可行性 7 3.2 功能需求分析 8 3.2.1 功能需求分类 8 3.2.2 用例图 8 3.3 非功能性需求分析 11 3.3.1 用户...
  • 比较完善的学生选课系统任务。包括学生身份,管理员身份等;并且需要实现了很多方法。学者自己实现任务要求。
  • 学生选课系统(Java编写)

    热门讨论 2008-01-10 14:43:49
    这个选课系统是用的是JAVA语言,使用了STRUTS构建的MVC模式,数据库使用的是MySQL。 内含原程序、数据库文件以及word文档形式的报告。
  • 学生选课系统 有控制台型的代码 也有图形界面型的代码
  • JAVA学生在线选课系统的设计与实现

    热门讨论 2012-11-17 10:47:43
    学生在线选课系统主要使用JAVA语言进行编写,利用B/S结构,主要采用MVC模式。本系统主要用到了STRUTS技术和SPRING技术。通过MYSQL数据库对系统的基本数据进行存储。系统包括三个用户组:系统管理员、学生用户、教师...
  • 基于eclipse和mysql编写学生选课系统

    千次阅读 热门讨论 2020-03-04 21:03:55
    基于eclipse和mysql编写学生选课系统 学生选课管理系统是我在大学期间做的课程设计 ,本人如今也是刚刚毕业,正在学java ,请大神们忽略,我还只是一个菜鸟。 学生选课功能架构图 该管理系统分管理员和用户两个...

    基于eclipse和mysql编写的学生选课系统

    学生选课管理系统是我在大学期间做的课程设计 ,本人如今也是刚刚毕业,正在学java ,请大神们忽略,我还只是一个菜鸟。

    学生选课功能架构图

    在这里插入图片描述

    该管理系统分管理员和用户两个角色,能够实现学生登陆选课系统查找所有的课程然后进行选课操作。管理员登陆学生选课管理系统院系类别的添加,搜索和维护,教师信息的添加、搜索和维护、课程信息的添加搜索和维护。每个模块相互独立且功能较单一,这样使得系统功能不再抽象,系统内部逻辑关系也能清晰明了。

    整体系统ER图

    在这里插入图片描述

    数据库相关表的建立,只列出几张表并不完全。

    用户注册表

    在这里插入图片描述

    院系表

    在这里插入图片描述
    教师表
    在这里插入图片描述

    实现的登陆界面如下:

    在这里插入图片描述

    学生注册界面:

    在这里插入图片描述

    学生选课界面在这里插入图片描述

    院系信息维护界面

    在这里插入图片描述

    课程添加界面

    在这里插入图片描述

    课程信息维护界面

    在这里插入图片描述

    教师添加界面

    在这里插入图片描述

    教师信息查询修改删除维护界面:

    在这里插入图片描述

    实现数据库链接代码如下:

    public class DbUtil {
    private String dbUrl="jdbc:mysql://localhost:3306/db_student?serverTimezone=GMT%2B8";
    		       //数据库连接地址   由于数据库为最新版本  导致驱动名称已改为com.mysql.cj.jdbc.Driver
                   //由于时区错乱  执行命令给MySQL服务器设置时区为东八区    serverTimezone=GMT%2B8
    private String dbUserName="root";     //用户名
    private String dbPassword="123456";      //密码
    private String jdbcName="com.mysql.cj.jdbc.Driver";    //驱动名称
    //获取数据库连接
    
    public Connection getCon()throws Exception{
    	Class.forName(jdbcName);        //动态加载
    	Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
    
        return con;
    }
    /**
     * 关闭数据库连接
     * @param con
     * @throws Exception
     */
    public void closeCon(Connection con)throws Exception{
    	if(con!=null){
    		con.close();
    	}
    }
    public static void main(String[] args) {
    	DbUtil dbUtil=new DbUtil();
    	try {
    		dbUtil.getCon();
    		System.out.println("数据库连接成功");
    	} catch (Exception e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    		System.out.println("数据库连接失败");
    	}
    }
    
    }
    

    教师添加功能代码实现如下:

    private void teacherAddActionPerformed(ActionEvent evt) {
    		String teacherNum=this.teacherNumTxt.getText();
    		String teacherName=this.teacherNameTxt.getText();
    		String year=this.yearTxt.getText();
    		String health=this.healthTxt.getText();
    		String deptDesc=this.deptDescTxt.getText();
    		if(StringUtil.isEmpty(teacherNum)){
    			JOptionPane.showMessageDialog(null, "教师编号不能为空!");
    			return;
    }
    		if(StringUtil.isEmpty(teacherName)){
    			JOptionPane.showMessageDialog(null, "教师姓名不能为空!");
    return;
    		}
    		if(StringUtil.isEmpty(year)){
    			JOptionPane.showMessageDialog(null, "教师年龄不能为空!");
    			return;
    		}
    		if(StringUtil.isEmpty(health)){
    			JOptionPane.showMessageDialog(null, "教师健康不能为空!");
    			return;
    		}
    		String sex="";
    		if(manJrb.isSelected()){
    			sex="男";
    		}else if(femaleJrb.isSelected()){
    			sex="女";
    		}
    		Dept dept=(Dept) deptJcb.getSelectedItem();
    		int deptId=dept.getId();
    Teacher teacher=new Teacher( teacherNum,  teacherName,  sex,  year,   health,  deptId, deptDesc);
    		Connection con=null;
    		try{
    			con=dbUtil.getCon();
    			int addNum=teacherDao.add(con, teacher);
    			if(addNum==1){
    				JOptionPane.showMessageDialog(null, "教师添加成功!");
    				resetValue();
    			}else{
    				JOptionPane.showMessageDialog(null, "教师添加失败!");
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    			JOptionPane.showMessageDialog(null, "教师添加失败!");
    		}finally{
    			try {
    				dbUtil.closeCon(con);
    			} catch (Exception e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    

    教师修改功能代码如下:

    private void teacherUpdateActionPerformed(ActionEvent evt) {
    		String id=this.idTxt.getText();
    if(StringUtil.isEmpty(id)){
    			JOptionPane.showMessageDialog(null, "请选择要修改的记录");
    			return;
    		}
    		String teacherNum=this.teacherNumTxt.getText();
    		String teacherName=this.teacherNameTxt.getText();
    		String year=this.yearTxt.getText();
    		String health=this.healthTxt.getText();
    		String deptDesc=this.deptDescTxt.getText();
    		if(StringUtil.isEmpty(teacherNum)){
    			JOptionPane.showMessageDialog(null, "教师编号不能为空!");
    			return;
    		}
    		if(StringUtil.isEmpty(teacherName)){
    			JOptionPane.showMessageDialog(null, "教师姓名不能为空!");
    			return;
    		}
    		if(StringUtil.isEmpty(year)){
    			JOptionPane.showMessageDialog(null, "教师年龄不能为空!");
    			return;
    		}
    		if(StringUtil.isEmpty(health)){
    			JOptionPane.showMessageDialog(null, "教师健康不能为空!");
    			return;
    		}
    		String sex="";
    		if(manJrb.isSelected()){
    			sex="男";
    		}else if(femaleJrb.isSelected()){
    			sex="女";
    }
    		Dept dept=(Dept) deptJcb.getSelectedItem();
    		 int deptId=dept.getId();
    	Teacher teacher=new Teacher( Integer.parseInt(id),teacherNum,teacherName,sex,year,
    health,deptId,deptDesc);
    		 Connection con=null;
    		 try{
    			con=dbUtil.getCon();
    			int addNum=teacherDao.update(con, teacher);
    			if(addNum==1){
    				JOptionPane.showMessageDialog(null, "教师信息修改成功!");
    				resetValue();
    				this.fillTable(new Teacher());
    			}else{
    				JOptionPane.showMessageDialog(null, "教师信息修改失败!");
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    			JOptionPane.showMessageDialog(null, "教师信息修改失败!");
    		}finally{
    			try {
    				dbUtil.closeCon(con);
    			} catch (Exception e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    	}
    

    标题实现的功能不多 能够基本满足选课需求,实现增删改查。

    展开全文
  • 使用ssm框架编写java系统
  • 使用java编写学生选课系统,有学生端。管理员端,和教师端,数据库使用sqlsever2012数据库,界面做得很优美.,功能明确,代码层次有结构
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼SQL脚本我已经写好,求高人帮忙。--创建数据库学生createdatabasestudentgo--使用数据库usestudentgo--创建学生信息表createtablestuInfo(snochar(11)notnullcheck...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    SQL脚本我已经写好,求高人帮忙。

    --创建数据库学生

    create database student

    go

    --使用数据库

    use student

    go

    --创建学生信息表

    create table stuInfo

    (

    sno char(11) not null check(sno like '513%') primary key,

    sname char(8) not null,

    sex char(2) not null check(sex in ('男','女')),

    age int not null check(age between 18 and 50) default(18),

    class char(4) not null,

    nation char(10) not null

    )

    go

    --创建课程信息表

    create table course

    (

    cid int not null check(cid between 1 and 100) primary key,

    cname char(10) not null unique,

    ct int not null check(ct between 1 and 200),

    tscore int not null default(100),

    mark varchar(50)

    )

    go

    --创建学生选课表

    create table sc

    (

    sno char(11) not null,

    cid int not null,

    score float not null default(0)

    )

    go

    --加约束

    --联合主键

    alter table sc

    add constraint PK_sc primary key(sno,cid)

    go

    --加外键+级联

    alter table sc

    add constraint FK_sno foreign key(sno) references stuInfo(sno) on delete cascade on update cascade

    go

    alter table sc

    add constraint FK_cid foreign key(cid) references course(cid)  on delete cascade on update cascade

    go

    --创建权限表

    create table login

    (

    lid int not null identity(1,1) primary key,

    admin char(20) not null unique,

    pwd char(20) not null,

    jb char(6) not null check(jb in ('管理员','学生'))

    )

    go

    --------------------------------------------------------------------------

    --插入

    insert into stuInfo values('51360522017','张三','男',default,'T25','中国湖北')

    insert into course values(1,'s1-java',100,100,null)

    insert into sc values('51360522017',1,90)

    insert into login values('wgf','123456','管理员')

    insert into login values('张三','123456','学生')

    go

    --查询

    select * from stuInfo

    select * from course

    select * from sc

    select * from login

    go

    -------------------------------------------------------------------------

    展开全文
  • 学生选课系统

    2015-02-03 22:22:58
    通过应用数据结构的相关知识,使用Java语言编写的小型学生选课系统,能实现从文件导入课程,选课完成后保存到本地文件等功能,同时还有注册登录的功能。
  • 学生选课系统.zip

    2020-05-28 21:42:50
    学生选课系统源代码,用java语言编写,mysql数据库。一个完善的选课系统,下载既可以部署使用,界面美观完善,
  • 基于ssh框架的高校学生在线选课系统,本系统为计算机专业毕业设计编写,方便使用,易于理解和掌握,在此仅供学习交流,希望对您有所帮助。
  • JSP做的学生网上选课系统,数据库Mysql,可作初学Java Web开发的参考实例项目,编写工具Myeclipse,直接导入即可查看
  • 这是关于教务选课系统java代码,可用于学生对软件编写的参考
  • 2. 学生管理界面:查询和修改学生的个人信息和密码,查询课程库所有课程信息,查询自己的个人成绩,查看老师的教学任务和选课。 3. 老师管理界面:根据课程库的课程信息,添加,删除,修改教学任务,给选该课程的...
  • 基于java web的学生选课老师开课系统 记录大三的数据库大作业的开发经验,我主要负责的是java后端开发,对servlet接口,前端的交互,数据库的对接有一定的掌握。 项目地址 一、运行方式 IDE我使用的是IDEA,这个...
  • JAVA 学生管理系统

    2009-11-04 20:02:49
    Java编写学生管理系统, 主要有学科,选课,成绩,学生管理的模块
  • 本项目是用JAVA编写的一个学生成绩管理系统+选课。主要涉及到的技术有JAVA+Mysql+jQuery+JS等等,用了easyui的框架,代码采用MVC结构编写。该项目只完成一部分,代码写的比较乱吧。。但对于新手来说可以参考参考。
  • Java学生管理小系统

    2020-07-04 22:45:24
    用来记录学生选课信息的类(SelectCourse) 以及一个用来完成录入过程的类(Test)。 下附上代码 import java.util.Scanner; public class Test { public static void main(String[] args) { Student[] students
  • 今天在使用JAVA编写学生选课系统的时候,遇到了中文写入MySQL乱码的问题。 解决办法: 1.数据库采用UTF-8编码。 2.java连接数据库时:"jdbc:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=...
  • 后台采用Java编写,使用了spring+springMVC+mybatis; 数据库采用的是mysql。 2.项目中的角色功能:管理员(编辑公告、批量导入学生/教师/课程基本信息、及增删改查、对系统接口访问权限的控制); 教师(录入学生...
  • 学籍管理系统 java SSH

    2013-06-05 18:34:28
    自己编写java程序,运用S2SH框架,包含对学生的管理,和选课系统,管理老师,课程,管理员权限
  • 当年自己学校毕业做毕设的时候,因那时网络还没有现在那么...以学生成绩作为主题,辅以班级、学生、老师、课程、选课等管理模块(当然因为是做实例,也没有把所有的模块都涉及到)。 系统角色 1.admin admin是管理.
  • 利用java和mysql实现教学管理系统。 教学管理系统主要是在eclipse利用java代码完成编写,并与数据库进行连接,使得两边都能控制数据库的数据变化。 仅供初学者参考。...(3)学生选课和学生课表的打.
  • 学生成绩管理系统

    2019-07-17 21:55:44
    课设总结 这次课设的题目是学生成绩管理系统,做的不是很完善,时间有点急促。实现的功能就是增删改查,分为教师端,学生端,管理员端,教师和学生只有增...Java代码是用eclipse编写,界面需要用到eclipse的winbu...
  • 基于ssm的学生成绩管理系统

    千次阅读 2020-07-04 16:55:52
    后台采用Java编写,使用了spring+springMVC+mybatis; 数据库采用的是mysql。 2.项目中的角色功能:管理员(编辑公告、批量导入学生/教师/课程基本信息、及增删改查、对系统接口访问权限的控制); 教师(录入...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

java编写学生选课系统

java 订阅