java程序设计之学生选课管理系统.docx
- 文档编号:11639973
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:25
- 大小:306.47KB
java程序设计之学生选课管理系统.docx
《java程序设计之学生选课管理系统.docx》由会员分享,可在线阅读,更多相关《java程序设计之学生选课管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
java程序设计之学生选课管理系统
《Java程序设计》
结课报告
课程名称JAVA程序设计
设计题目学生选课管理系统
专业班级
学号
学生姓名
教师
信息工程系
学生选课管理系统
第1章系统简介
1.1系统功能
本系统主要功能:
1)管理学生信息,其中包括添加,删除,修改等操作。
2)管理课程信息,其中包括添加,删除,修改等操作。
3)管理选课信息,其中包括添加,删除,修改等操作。
4)查询信息,其中包括查询学生信息,查询课程信息,查询选课信息.。
5)维护系统,备份所有表格为Excel格式。
1.2系统引用例子
课本P237页13.10
课本P364页20.5
课本P389页20.10
课本P387页21.6
第2章表的设计
2.1系统数据库表结构:
在此小节将系统数据库表结构用表的形式画出,如:
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Sno
nvarchar
50
P
Notnull
学号
Sname
nvarchar
50
Notnull
学生名字
表2.1学生信息表(S)
Sx
nvarchar
50
Notnull
学生系别
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Cno
nvarchar
50
P
Notnull
课程号
Cname
nvarchar
50
Notnull
课程名字
表2.2课程信息表(C)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
Sno
nvarchar
50
P
Notnull
学号
Cno
nvarchar
50
P
Notnull
课程号
表2.3选课信息表(SC)
C
nvarchar
50
Notnull
分数
第3章连接数据库的实现
此节可简写,可适当贴一些SQLServer数据库连接的关键代码,如:
ConnectiondbConn=null;
try{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
dbConn=DriverManager.getConnection(
"jdbc:
jtds:
sqlserver:
//localhost:
1433/"
+"student","sa","123");
}catch(Exceptione){
e.printStackTrace();
}
returndbConn;//返回Connection对象
1、运行效果图
图4.1.1登陆界面
图4.1.2登陆成功
图4.1.2登陆失败
2、主要代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.sql.*;
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());
}
//登录按钮方法
privateclassBHandlerimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
if(k1.getText().equals("")||k2.getText().equals("")){
JOptionPane.showMessageDialog(User.this,"用户名密码不能为空!
");
}
else{
Statementstmt=null;
ResultSetrs=null;
Stringsql;
sql="select*fromadminwhereusername='"+k1.getText()+"'";
try{
ConnectiondbConn1=Conn.CONN();
stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
if(rs.next()){
Stringxm=rs.getString("password");if(k2.getText().equals(xm.trim())){JOptionPane.showMessageDialog(User.this,"登录成功");
dispose();
newMenu();//管理窗口
}
else{JOptionPane.showMessageDialog(User.this,"密码错误");}
}
else{JOptionPane.showMessageDialog(User.this,"用户名错误");}
rs.close();
stmt.close();
}
catch(SQLExceptione){
JOptionPane.showMessageDialog(User.this,"SQL错误信息:
"+e.getMessage());
}
}
}
}
//退出方法结束
privateclassEXITimplementsActionListener{
publicvoidactionPerformed(ActionEventeven){
System.exit(0);
}
}
}//父类结束
1、运行效果图
图4.2.1登陆成功后界面
图4.2.2学生管理菜单
图4.2.2课程管理菜单
图4.2.2选课管理菜单
图4.2.2查询管理菜单
2、实现代码:
添加数据时,若遇到必须信息未填写、不能重复的信息在数据库中已存在,都会提示无法添加及其错误原因。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassMenuextendsJFrameimplementsActionListener{
Addstu增加学生界面;
Updatastu修改学生界面;
Delstu删除学生界面;
AddC增加课程界面;
DelC删除课程界面;
UpdateC修改课程界面;
AddSC增加选课界面;
DelSC删除选课界面;
UpdateSC修改选课界面;
Selstu学生查询界面;
Backup备份界面;
JPanelpCenter;
CardLayoutcard=null;
JLabellabel=null;
JMenuBarmb=newJMenuBar();//菜单栏
JMenum1=newJMenu("学生管理");
JMenuItemadd1=newJMenuItem("①添加学生学籍");
JMenuItemupdata1=newJMenuItem("②更新学生学籍");
JMenuItemdelete1=newJMenuItem("③删除学生学籍");
JMenum2=newJMenu("课程管理");
JMenuItemadd2=newJMenuItem("①增加课程");
JMenuItemupdata2=newJMenuItem("②更新课程");
JMenuItemdelete2=newJMenuItem("③删除课程");
JMenum3=newJMenu("选课管理");
JMenuItemadd3=newJMenuItem("①成绩录入");
JMenuItemupdata3=newJMenuItem("②成绩修改");
JMenuItemdelete3=newJMenuItem("③成绩删除");
JMenum4=newJMenu("查询管理");
JMenuItem学生查询=newJMenuItem("①查询信息");
JMenuItembackup=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,25));
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);
backup.addActionListener(this);
card=newCardLayout();
pCenter=newJPanel();
pCenter.setLayout(card);
增加学生界面=newAddstu();
修改学生界面=newUpdatastu();
删除学生界面=newDelstu();
增加课程界面=newAddC();
删除课程界面=newDelC();
修改课程界面=newUpdateC();
增加选课界面=newAddSC();
删除选课界面=newDelSC();
修改选课界面=newUpdateSC();
学生查询界面=newSelstu();
备份界面=newBackup();
pCenter.add("欢迎界面",label);
pCenter.add("增加学生界面",增加学生界面);
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,600,380);
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.add(backup);
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,"学生查询界面");
}
else{if(obj==backup){
card.show(pCenter,"备份界面");
}
}}
}}}}}}}}}}
publicstaticvoidmain(String[]args){
newMenu();
}
}
1、运行效果图
图4.3.1添加学生学籍
图4.3.1修改学生学籍
图4.3.1删除学生学籍
2、实现代码:
Addstu.java/Updatastu.java/Delstu.java
importjava.awt.*;
importjavax.swing.*;
importjava.sql.*;
importjava.awt.event.*;
publicclassAddstuextendsJPanelimplementsActionListener{
JTextField学号,姓名,系别;
JButton录入;
publicAddstu(){
try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
catch(Exceptione){System.err.println("不能设置外观:
"+e);}
学号=newJTextField(12);
姓名=newJTextField(12);
系别=newJTextField(12);
录入=newJButton("录入");
录入.addActionListener(this);
Boxbox1=Box.createHorizontalBox();//横放box
Boxbox2=Box.createHorizontalBox();
Boxbox3=Box.createHorizontalBox();
Boxbox4=Box.createHorizontalBox();
box1.add(newJLabel("学号:
"/*,JLabel.CENTER*/));
box1.add(学号);
box2.add(newJLabel("姓名:
"/*,JLabel.CENTER*/));
box2.add(姓名);
box3.add(newJLabel("系别:
"/*,JLabel.CENTER*/));
box3.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();
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 程序设计 学生 选课 管理 系统