一、课程设计目的
通过这次的设计,主要是做出一个小型的管理系统,来加强对 JAVA 所学知识的巩固
和融会贯通,可以说是对一个学期所学知识的一个小结,加深对 JAVA 数据库的理解。
二、需求分析
功能需求分析:
该系统具备管理学生信息、课程信息、选课信息的功能:用户通过输入账号和密码进下该
系统后,可以进行一些基础维护(学生信息维护、课程信息维护、选课信息维护)。全部都
可以进行增加、修改、删除、模糊查询。
三、数据项:
1 表 admin(用户表)
Field
Type
Username
char(10
password
Name
2 表 S(学生信息表)
Field
Sno
)
)
)
char(10
Char(10
Type
nvarcha
r(50)
Sname
nvarcha
Sx
r(50)
nvarcha
r(50)
Comment
用户名
密码
用户昵称
Comment
学号
姓名
系别
K
P
—
—
K
P
—
—
ull
—
—
—
ull
—
—
—
ey
RI
—
—
ey
RI
—
—
N
—
—
—
N
—
—
—
1
3 表 C(课程信息表)
Field
Cno
Type
nvarcha
r(50)
Cname
nvarcha
r(50)
N
—
—
ey
RI
—
ull
—
—
K
P
Comment
课号
—
课名
2
4 表 SC(学生信息表)
Field
Cno
Sno
C
Type
nvarcha
r(50)
nvarcha
r(50)
nvarcha
r(50)
N
—
—
—
ey
RI
RI
—
ull
—
—
—
K
P
P
Comment
课号
学号
—
成绩
四、系统功能描述
该小型系统主要是用于管理学生及课程的基本信息,主要功能包括四方面的:
1.管理学生信息,其中包括添加,删除,修改等操作。
2.管理课程信息,其中包括添加,删除,修改等操作。
3.管理选课信息,其中包括添加,删除,修改等操作。
4.查询信息,其中包括查询学生信息,查询课程信息,查询选课信息等操作。
学 生 信 息 管 理
学
生
管
课
选
查
程
管
课
管
询
管
添
修
删
添
修
删
添
修
删
学
课
选
加
信
改
信
除
信
加
信
改
信
除
信
3
加
信
改
信
除
信
生
信
程
信
课
信
4
五、代码分析
连接数据库方法:
这是 java 连接数据库的驱动,有关数据库的操作都要用到他。
public static Connection CONN(){
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//加载JDBC
驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=student"; //连接服务
器和数据库test,此处student是数据库名
String userName = "sa";
//默认用户名
String userPwd = "mima";
//密码
Connection dbConn=null;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
//如果连接成功 控制台输出Connection Successful!
} catch (Exception e) {
e.printStackTrace();}
return dbConn;}
用户登录界面 user.java:
登录时,凡是账号密码未填写、输入错误账号密码都会提出错误提示框。在填写好
账号密码后,会读取数据库里 admin 表,并查询其输入是否存在,若无误,则登录到用
户界面。
public class User extends JFrame{
private JLabel use,password;
private JTextField k1;//用户名输入框
private JPasswordField k2;//密码输入框
private JButton b1,b2;
//登录窗口
public User(JFrame f){
5
super("系统登录");
Container c=getContentPane();
c.setLayout(new FlowLayout());
use=new JLabel("username:");
use.setFont(new Font("Serif",Font.PLAIN,20));
password=new JLabel("password:");
password.setFont(new Font("Serif",Font.PLAIN,20));
k1=new JTextField(12);
k2=new JPasswordField(12);
b1=new JButton("登录");
b2=new JButton("退出");
// 设置登录方法
BHandler b=new BHandler();
EXIT d=new EXIT();
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);}
//主函数
public static void main(String[] args) {
User f1=new User(new JFrame());}
效果图:
6
用户界面:Menu.java
用户界面能菜单栏有4个一级菜单,学生管理、课程管理、选课管理都能添加、修改、
删除数据,分别操作数据库里的S表(学生),C表(课程),SC表(选课)。查询管理则可进行
三个表的查询。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Menu extends JFrame implements ActionListener{
Addstu 增加学生界面;
Updatastu 修改学生界面;
Delstu 删除学生界面;
AddC 增加课程界面;
DelC 删除课程界面;
UpdateC 修改课程界面;
AddSC 增加选课界面;
DelSC 删除选课界面;
UpdateSC 修改选课界面;
Selstu 学生查询界面;
JPanel pCenter;
CardLayout card=null;
JLabel label=null;
JMenuBar mb=new JMenuBar();//菜单栏
JMenu m1=new JMenu("学生管理");
JMenuItem add1=new JMenuItem("add1
");
JMenuItem updata1=new JMenuItem("updata1
");
JMenuItem delete1=new JMenuItem("delete1
");
7
JMenu m2=new JMenu("课程管理");
JMenuItem add2=new JMenuItem("add2
");
JMenuItem updata2=new JMenuItem("updata2
");
JMenuItem delete2=new JMenuItem("delete2
");
JMenu m3=new JMenu("选课管理");
JMenuItem add3=new JMenuItem("add3
");
JMenuItem updata3=new JMenuItem("updata3
");
JMenuItem delete3=new JMenuItem("delete3
");
JMenu m4=new JMenu("查询管理");
JMenuItem 学生查询=new JMenuItem("查询信息 ");
JMenuItem m5=new JMenuItem("系统退出");
Font t=new Font ("sanerif",Font.PLAIN,12);
public Menu (){
this.setTitle("学生选课管理系统");
try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
catch(Exception e){System.err.println("不能设置外观:
"+e);}
//组合菜单
addMenu1();
addMenu2();
addMenu3();
addMenu4();
addJMenuBar();
setJMenuBar(mb);
label=new JLabel("选课管理系统",JLabel.CENTER);
label.setFont(new Font("宋体",Font.BOLD,36));
label.setHorizontalTextPosition(SwingConstants.CENTER);
label.setForeground(Color.red);
//点击事件
add1.addActionListener(this);
updata1.addActionListener(this);
delete1.addActionListener(this);
8