java学生选课系统完整源代码.docx

上传人:b****5 文档编号:7629531 上传时间:2023-01-25 格式:DOCX 页数:78 大小:197.27KB
下载 相关 举报
java学生选课系统完整源代码.docx_第1页
第1页 / 共78页
java学生选课系统完整源代码.docx_第2页
第2页 / 共78页
java学生选课系统完整源代码.docx_第3页
第3页 / 共78页
java学生选课系统完整源代码.docx_第4页
第4页 / 共78页
java学生选课系统完整源代码.docx_第5页
第5页 / 共78页
点击查看更多>>
下载资源
资源描述

java学生选课系统完整源代码.docx

《java学生选课系统完整源代码.docx》由会员分享,可在线阅读,更多相关《java学生选课系统完整源代码.docx(78页珍藏版)》请在冰豆网上搜索。

java学生选课系统完整源代码.docx

java学生选课系统完整源代码

 

课程设计说明文档

学生选课管理系统的设计与实现

 

学校:

华南理工大学广州汽车学院

系别:

计算机工程系

专业班级:

信息与计算科学

姓名:

学号:

 

一、课程设计目的

通过这次的设计,主要是做出一个小型的管理系统,来加强对JAVA所学知识的巩固和融会贯通,可以说是对一个学期所学知识的一个小结,加深对JAVA数据库的理解。

二、需求分析

功能需求分析:

该系统具备管理学生信息、课程信息、选课信息的功能:

用户通过输入账号和密码进下该系统后,可以进行一些基础维护(学生信息维护、课程信息维护、选课信息维护)。

全部都可以进行增加、修改、删除、模糊查询。

三、数据项:

1表admin(用户表)

Field

Type

Null

Key

Comment

Username

char(10)

——

PRI

用户名

password

char(10)

——

——

密码

Name

Char(10)

——

——

用户昵称

2表S(学生信息表)

Field

Type

Null

Key

Comment

Sno

nvarchar(50)

——

PRI

学号

Sname

nvarchar(50)

——

——

姓名

Sx

nvarchar(50)

——

——

系别

3表C(课程信息表)

Field

Type

Null

Key

Comment

Cno

nvarchar(50)

——

PRI

课号

Cname

nvarchar(50)

——

——

课名

4表SC(学生信息表)

Field

Type

Null

Key

Comment

Cno

nvarchar(50)

——

PRI

课号

Sno

nvarchar(50)

——

PRI

学号

C

nvarchar(50)

——

——

成绩

 

四、系统功能描述

该小型系统主要是用于管理学生及课程的基本信息,主要功能包括四方面的:

1.管理学生信息,其中包括添加,删除,修改等操作。

2.管理课程信息,其中包括添加,删除,修改等操作。

3.管理选课信息,其中包括添加,删除,修改等操作。

4.查询信息,其中包括查询学生信息,查询课程信息,查询选课信息等操作。

 

五、代码分析

连接数据库方法:

这是java连接数据库的驱动,有关数据库的操作都要用到他。

publicstaticConnectionCONN(){

StringdriverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//加载JDBC驱动

StringdbURL="jdbc:

sqlserver:

//localhost:

1433;DatabaseName=student";//连接服务器和数据库test,此处student是数据库名

StringuserName="sa";//默认用户名

StringuserPwd="mima";//密码

ConnectiondbConn=null;

try{

Class.forName(driverName);

dbConn=DriverManager.getConnection(dbURL,userName,userPwd);

System.out.println("ConnectionSuccessful!

");

//如果连接成功控制台输出ConnectionSuccessful!

}catch(Exceptione){

e.printStackTrace();}

returndbConn;}

用户登录界面user.java:

登录时,凡是账号密码未填写、输入错误账号密码都会提出错误提示框。

在填写好账号密码后,会读取数据库里admin表,并查询其输入是否存在,若无误,则登录到用户界面。

publicclassUserextendsJFrame{

privateJLabeluse,password;

privateJTextFieldk1;//用户名输入框

privateJPasswordFieldk2;//密码输入框

privateJButtonb1,b2;

//登录窗口

publicUser(JFramef){

super("系统登录");

Containerc=getContentPane();

c.setLayout(newFlowLayout());

use=newJLabel("username:

");

use.setFont(newFont("Serif",Font.PLAIN,20));

password=newJLabel("password:

");

password.setFont(newFont("Serif",Font.PLAIN,20));

k1=newJTextField(12);

k2=newJPasswordField(12);

b1=newJButton("登录");

b2=newJButton("退出");

//设置登录方法

BHandlerb=newBHandler();

EXITd=newEXIT();

b1.addActionListener(b);

b2.addActionListener(d);

//添加控件

c.add(use);

c.add(k1);

c.add(password);

c.add(k2);

c.add(b1);

c.add(b2);

setBounds(600,300,250,150);

setVisible(true);

setResizable(false);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}

//主函数

publicstaticvoidmain(String[]args){

Userf1=newUser(newJFrame());}

效果图:

用户界面:

Menu.java

用户界面能菜单栏有4个一级菜单,学生管理、课程管理、选课管理都能添加、修改、删除数据,分别操作数据库里的S表(学生),C表(课程),SC表(选课)。

查询管理则可进行三个表的查询。

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassMenuextendsJFrameimplementsActionListener{

Addstu增加学生界面;

Updatastu修改学生界面;

Delstu删除学生界面;

AddC增加课程界面;

DelC删除课程界面;

UpdateC修改课程界面;

AddSC增加选课界面;

DelSC删除选课界面;

UpdateSC修改选课界面;

Selstu学生查询界面;

JPanelpCenter;

CardLayoutcard=null;

JLabellabel=null;

JMenuBarmb=newJMenuBar();//菜单栏

JMenum1=newJMenu("学生管理");

JMenuItemadd1=newJMenuItem("add1");

JMenuItemupdata1=newJMenuItem("updata1");

JMenuItemdelete1=newJMenuItem("delete1");

JMenum2=newJMenu("课程管理");

JMenuItemadd2=newJMenuItem("add2");

JMenuItemupdata2=newJMenuItem("updata2");

JMenuItemdelete2=newJMenuItem("delete2");

JMenum3=newJMenu("选课管理");

JMenuItemadd3=newJMenuItem("add3");

JMenuItemupdata3=newJMenuItem("updata3");

JMenuItemdelete3=newJMenuItem("delete3");

JMenum4=newJMenu("查询管理");

JMenuItem学生查询=newJMenuItem("查询信息");

JMenuItemm5=newJMenuItem("系统退出");

Fontt=newFont("sanerif",Font.PLAIN,12);

publicMenu(){

this.setTitle("学生选课管理系统");

try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}

catch(Exceptione){System.err.println("不能设置外观:

"+e);}

//组合菜单

addMenu1();

addMenu2();

addMenu3();

addMenu4();

addJMenuBar();

setJMenuBar(mb);

label=newJLabel("选课管理系统",JLabel.CENTER);

label.setFont(newFont("宋体",Font.BOLD,36));

label.setHorizontalTextPosition(SwingConstants.CENTER);

label.setForeground(Color.red);

//点击事件

add1.addActionListener(this);

updata1.addActionListener(this);

delete1.addActionListener(this);

m5.addActionListener(this);

add2.addActionListener(this);

delete2.addActionListener(this);

updata2.addActionListener(this);

add3.addActionListener(this);

delete3.addActionListener(this);

updata3.addActionListener(this);

学生查询.addActionListener(this);

card=newCardLayout();

pCenter=newJPanel();

pCenter.setLayout(card);

增加学生界面=newAddstu();

修改学生界面=newUpdatastu();

删除学生界面=newDelstu();

增加课程界面=newAddC();

删除课程界面=newDelC();

修改课程界面=newUpdateC();

增加选课界面=newAddSC();

删除选课界面=newDelSC();

修改选课界面=newUpdateSC();

学生查询界面=newSelstu();

pCenter.add("欢迎界面",label);

pCenter.add("增加学生界面",增加学生界面);

pCenter.add("修改学生界面",修改学生界面);

pCenter.add("删除学生界面",删除学生界面);

pCenter.add("增加课程界面",增加课程界面);

pCenter.add("删除课程界面",删除课程界面);

pCenter.add("修改课程界面",修改课程界面);

pCenter.add("增加选课界面",增加选课界面);

pCenter.add("删除选课界面",删除选课界面);

pCenter.add("修改选课界面",修改选课界面);

pCenter.add("学生查询界面",学生查询界面);

add(pCenter,BorderLayout.CENTER);

validate();

setVisible(true);

setBounds(400,150,400,280);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

addWindowListener(newWindowAdapter(){//关闭程序时的操作

publicvoidwindowClosing(WindowEvente){System.exit(0);}});

validate();}

privatevoidaddJMenuBar(){

mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);mb.add(m5);}

privatevoidaddMenu4(){

m4.add(学生查询);m4.setFont(t);}

privatevoidaddMenu3(){

m3.add(add3);m3.add(updata3);m3.add(delete3);m3.setFont(t);}

privatevoidaddMenu2(){//将菜单加入到菜单栏中

m2.add(add2);m2.add(updata2);m2.add(delete2);m2.setFont(t);}

privatevoidaddMenu1(){

m1.add(add1);m1.add(updata1);m1.add(delete1);m1.setFont(t);}

publicvoidactionPerformed(ActionEvente){

Objectobj=e.getSource();

if(obj==m5){System.exit(0);}

else{if(obj==add1){card.show(pCenter,"增加学生界面");}

else{if(obj==updata1){card.show(pCenter,"修改学生界面");}

else{if(obj==delete1){card.show(pCenter,"删除学生界面");}

else{if(obj==add2){card.show(pCenter,"增加课程界面");}

else{if(obj==delete2){card.show(pCenter,"删除课程界面");}

else{if(obj==updata2){card.show(pCenter,"修改课程界面");}

else{if(obj==add3){card.show(pCenter,"增加选课界面");}

else{if(obj==delete3){card.show(pCenter,"删除选课界面");}

else{if(obj==updata3){card.show(pCenter,"修改选课界面");}

else{if(obj==学生查询){card.show(pCenter,"学生查询界面");

}}}}}}}}}}}}

publicstaticvoidmain(String[]args){newMenu();}}

效果图:

添加界面:

AddC.java/AddSC.java/Addstu.java

添加数据时,若遇到必须信息未填写、不能重复的信息在数据库中已存在,都会提示无法添加及其错误原因。

importjava.awt.*;

importjavax.swing.*;

importjava.sql.*;

importjava.awt.event.*;

publicclassAddCextendsJPanelimplementsActionListener{

JTextField课号,课名;

JButton录入;

publicAddC(){

try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exceptione){System.err.println("不能设置外观:

"+e);}

课号=newJTextField(12);

课名=newJTextField(12);

录入=newJButton("录入");

录入.addActionListener(this);

Boxbox1=Box.createHorizontalBox();//横放box

Boxbox2=Box.createHorizontalBox();

Boxbox3=Box.createHorizontalBox();

Boxbox4=Box.createHorizontalBox();

box1.add(newJLabel("课号:

"));

box1.add(课号);

box2.add(newJLabel("课名:

"));

box2.add(课名);

box4.add(录入);

BoxboxH=Box.createVerticalBox();//竖放box

boxH.add(box1);

boxH.add(box2);

boxH.add(box3);

boxH.add(box4);

boxH.add(Box.createVerticalGlue());

JPanelmessPanel=newJPanel();

messPanel.add(boxH);

setLayout(newBorderLayout());

add(messPanel,BorderLayout.CENTER);

validate();}

效果图:

添加界面:

UpdateC.java/UpdateSC.java/Updatestu.java

先查找你想要修改的项目,若修改的信息包括号码(学号、课号),则会进行查询,如果修改后的号码已存在,以及修改后必须的信息变成空都会提示无法修改和其错误原因。

此外,若修改C表或则S表,会连同SC表中对应的信息一起修改。

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.*;

importjavax.swing.*;

publicclassUpdateCextendsJPanelimplementsActionListener{

Stringsave=null;

JTextField课号1,课号,课名;

JButton修改,查找;

publicUpdateC(){

try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exceptione){System.err.println("不能设置外观:

"+e);}

课号1=newJTextField(12);

课号=newJTextField(12);

课名=newJTextField(12);

修改=newJButton("修改");

查找=newJButton("查找");

Boxbox1=Box.createHorizontalBox();//横放box

Boxbox2=Box.createHorizontalBox();

Boxbox3=Box.createHorizontalBox();

Boxbox4=Box.createHorizontalBox();

Boxbox5=Box.createHorizontalBox();

box1.add(newJLabel("课号:

",JLabel.CENTER));

box1.add(课号);

box2.add(newJLabel("课名:

",JLabel.CENTER));

box2.add(课名);

box3.add(修改);

box5.add(newJLabel("课号:

",JLabel.CENTER));

box5.add(课号1);

box5.add(查找);

修改.addActionListener(this);

查找.addActionListener(this);

BoxboxH=Box.createVerticalBox();//竖放box

boxH.add(box1);

boxH.add(box2);

boxH.add(box3);

boxH.add(box4);

boxH.add(Box.createVerticalGlue());

JPanelpicPanel=newJPanel();

JPanelmessPanel=newJPanel();

messPanel.add(box5);

picPanel.add(boxH);

setLayout(newBorderLayout());

JSplitPanesplitV=newJSplitPane(JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);//分割

add(splitV,BorderLayout.CENTER);

validate();}

删除界面:

DelC.java/DelSC.java/Deltu.java

先查找你想要删除的项目,然后删除,此外,若删除C表或则S表的内容,会连同SC表中对应的信息一起修改。

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.*;

importjavax.swing.*;

publicclassDelCextendsJPanelimplementsActionListener{

Stringsave=null;

JTextField课号1,课号,课名;

JButton删除,查找;

publicDelC(){

try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exceptione){System.er

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1