java课程设计-学生选课管理系统的设计与实现(完整源代码).doc
- 文档编号:12991270
- 上传时间:2023-06-10
- 格式:DOC
- 页数:60
- 大小:358.54KB
java课程设计-学生选课管理系统的设计与实现(完整源代码).doc
《java课程设计-学生选课管理系统的设计与实现(完整源代码).doc》由会员分享,可在线阅读,更多相关《java课程设计-学生选课管理系统的设计与实现(完整源代码).doc(60页珍藏版)》请在冰点文库上搜索。
课程设计说明文档
学生选课管理系统的设计与实现
学校:
华南理工大学广州汽车学院
系别:
计算机工程系
专业班级:
信息与计算科学
姓名:
学号:
一、课程设计目的
通过这次的设计,主要是做出一个小型的管理系统,来加强对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.*;
publicclassDelC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 学生 选课 管理 系统 设计 实现 完整 源代码