用java实现信息管理系统.docx
《用java实现信息管理系统.docx》由会员分享,可在线阅读,更多相关《用java实现信息管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
![用java实现信息管理系统.docx](https://file1.bdocx.com/fileroot1/2023-3/29/7d6ac1ce-61ac-4933-9ee2-899a68afcfd9/7d6ac1ce-61ac-4933-9ee2-899a68afcfd91.gif)
用java实现信息管理系统
首先系统从登陆界面经输入正确的用户名和密码后即可登录到主界面。
主界面可实现的功能如下:
1•资料信息录入:
点击主界面的学生信息录入菜单项下的资料录入可实现此项功能。
录入学生资料信息时必须输入所有要求填写的信息才可以将信息录入到数据库,否则会出现错误提醒。
2.成绩信息录入:
点击主界面的学生信息录入菜单项下的成绩录入可实现此项功能。
录入学生信息时必须输入所有要求填写的成绩信息才可以将信息录入到数据库,否则会出现错误提醒。
3.学生个人资料信息查询:
点击主界面的学生信息查询,然后点资料查询,再点个人资料查询可实现此项功能。
在出现的界面输入需要查询的学生的学号即可出现需要查询的学生资料信息。
4.所有资料信息查询:
点击主界面的学生信息查询,然后点资料查询,再点所有资料查询可实现此项功能。
在出现的界面点击确
定按钮即可出现所有存在数据库的学生资料信息。
5.学生个人成绩查询:
点击主界面的学生信息查询,然后点成绩查询,再点个人成绩查询可实现此项功能。
在出现的界面输入需要查询的学生的学号即可出现需要查询的学生的成绩信息。
6.所有成绩查询:
点击主界面的学生信息查询,然后顶尖级成绩查询,再点所有成绩查询即可实现此项功能。
在出现的界面点击
确定按钮即可出现所有存在数据库的学生成绩信息
。
7.资料删除:
点击主界面的学生信息删除菜单项下的资料删除即可实现此项功能。
在出现的界面输入需要删除的学生的学号即可在数据库中实现该学生资料信息的删除。
8.成绩删除:
点击主界面的学生信息删除菜单项下的成绩删除即
可实现此项功能。
在出现的界面输入要删除成绩的学生的学号即可在数据库中实现该学生成绩信息的删除。
9.资料更改:
点击主界面的学生信息更改菜单项下的资料更改即可实现此项功能。
在出现的界面输入要更改的学生的学号及更改后的资料信息(各项信息都必须输入否则会出现错误提醒)即可实现在数据库中更改该学生的资料信息。
前提是该生的资料必须原先就存在于数据库中。
10.成绩更改:
点击主界面的学生信息更改菜单项下的成绩更改即可实现此项功能。
在出现的界面输入要更改的学生的学号及更改后的成绩信息(各项成绩都必须输入否则会出现错误提醒)即可实现在数据库中更改该学生的成绩信息。
前提是该生的各科成绩必须原先就存在于数据库中。
11.退出系统:
点击主界面的系统管理菜单项下的退出系统即可实现此项功能,点击之后会退出学生信息管理系统。
3.数据库设计
学生信息管理系统的数据库Stud.mdb包含了三个数据表,分别是学生信息表student、学生成绩表score和用户表users其中学生信息表student包含的字段有:
id(学号)、name(姓名)、sex(性别)、age(年龄)、phone(联系方式)和adress(籍贯);学生成绩表score包含的字段有:
id(学号)、Java程序设计、Web开发技术、数据结构、C语言、操作系统、计算机组成原理,这两个表的主键都是id(学号),用户表users包含的字段有:
user(用户),password密码),主键是user。
4.详细设计
Log1.java
登录界面
InputInfo.java
资料录入
InputScore.java
成绩录入
QueryInfo.java
个人资料查询
QueryInfoAll.java
所有资料查询
QueryScore.java
个人成绩查询
QueryScoreAll.java
所有资料查询
DeleteInfo.java
资料删除
DeleteScore.java
成绩删除
UpdateInfo.java
资料更改
UpdateScore.java
成绩更改
Student.java
学生类,实现和数据库学生资料表的连接
Score.java
成绩类,实现和数据库学生成绩表的连接
StudentMenu.java
主界面,实现对个子功能的调用
如上表所示,是程序中所包含的类和这些类所实现的功能,接下来是具体实现。
1.Logl.java登陆界面的主要代码和界面:
import*;
publicclassLoqlextendsJFrameimplementsActionListener{
publicstaticvoidmain(String[]args){
Log1frame1=newLog1();frame1.iniView();}
publicvoidiniView()
{JFrameframe=newJFrame("学生信息管理系统登录”);
JLabeltitle=newJLabel("欢迎使用学生信息管理系统!
");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
publicvoidactionPerformed(ActionEvente)
{intflag=0;
if(e.getActionCommand()==
{Stringnametext=
if(nametext==
{JOptionPane.
"登录")
TextField1.getText();
null||nametext.equals(""))
showMessageDialog(this,"用户名不能为空!
WARNING_MESSAGE);flag=1;}pwdText1.getText();
null||passwordtext.equals('
{JOptionPane.showMessageDialog(this,"请输入密码!
误提示"JOptionPane.WARNING_MESSAGE);flag=1;}
if(flag==0){
try{
Stringstrurl="jdbc:
odbc:
driver={Microsoft
AccessDriver(*.mdb)};DBQ=Stud.mdb"
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"
Connectionconn=DriverManager.getConnection
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery(
","错误提示",JOptionPane.
Stringpasswordtext=
if(passwordtext==
III!
))
","错
);
(strurl);
"select*from
userswhereusers.user='"
+nametext+
inn
);
if(!
rs.next())
{JOptionPane.showMessageDialog(this
在!
",“错误提示",JOptionPane.WARNING_MESSAGE);}
else{Strings=rs.getString(3);
,“该用户不存
if(s.equals(passwordtext))
{StudentMenusm=
sm.go();frame.dispose();}
elseJOptionPane.
不正确!
","错误提示",JOptionPane.
}conn.close();}catch(Exceptionex){System.out.println(ex.toString());}}}
"取消")
newStudentMenu();
showMessageDialog
WARNING_MESSAGE);
(this,"密码
if(e.getActionCommand()==
System.exit(0);}}
必须同时输入正确的用户名和其所对应的密码才能登录到主界面,否则会弹出相应的提示信息。
2.1nputInfo.java资料录入的主要代码和界面
Import*;
public
ActionLk
class
stener{
InputInfoextendsJFrame
implements
rb1=
newJRadioButton("男");rb2
=newJRadioButton(
"女");
btOk
=newJButton("确定”);
btOk
.addActionListener(this);
btClear=newJButton("清除");
btClear.addActionListener(this);
ButtonGroupgroup1=newButtonGroup();
group1.add(rb1);group1.add(rb2);
publicvoidactionPerformed(ActionEvente){
try{(连接数据库的代码)
intrs=stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(this,"资料录入成功!
","提示
",JOptionPane.INFORMATION_MESSAGE);}catch(Exceptiona)
{System.out.println(a);}setVisible(false);}}
elseif(e.getActionCommand()=="清除"){
txtId.setText("");txtName.setText("");txtAge.setText("");txtPhone.setText("");}}}
必须输入所有信息才能录入,界面如下:
3.InputScore.java成绩录入的主要代码和界面:
import*;
publicclassInputScoreextendsJFrameimplements
ActionListener{
publicvoidgo(){
//创建控件,布局并将所有的组件放到一个面板pa中
Ibid=newJLabel("学号:
");
IbJava=newJLabeI("Java程序设计:
");
btOk=newJButton("确定”);
btOk.addActionListener(btCIear=newJButton(btClear.addActionListener(
JPanelpj1=newJPanel();
Borderetched=BorderFactory.
Borderborder=
BorderFactory.createTitledBorderpj1.setBorder(border);
pj1.add(btOk);
this);
清除");
this);
createEtchedBorder();
(etched,"");
}
publicvoidactionPerformed(ActionEvente){
//从控件中获取用户输入
intflag=0;
if(e.getActionCommand()=="确定"){
Stringid=txtId.getText();
if(id==null||id.equals("")){
JOptionPane.showMessageDialog(this,"学号不能为空!
",”错误
提示",JOptionPane.WARNING_MESSAGE);flag=1;}
try{
(连接数据库的代码)intrs=stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(this,"成绩录入成功!
","提示
",JOptionPane.INFORMATION_MESSAGE);
}catch(Exceptiona){System.out.println(a);}}}
elseif(e.getActionCommand()=="清除"){
txtId.setText("");
txtJava.setText("");
}}}
必须输入所有信息后才能实现成绩信息的录入,否则会出现错误提示。
4.Querylnfo.java个人资料查询的主要代码:
Import*;
publicclassQueryinfoextendsJFrameimplements
ActionListener{
//此处定义查询窗口需要的控件,包括查询条件和查询结果显示
}
publicvoidgo(){
//创建控件,布局并将所有的组件放到一个面板pa中
Ibid=newJLabel("请输入学生的学号:
");
txtid=newJTextFieId(20);
this.setContentPane(pa);//替换查询窗口的内容
this.setBounds(250,200,400,300);
setVisibIe(true);}
publicvoidactionPerformed(ActionEvente){
//获取查询条件
intflag=O;
if(e.getActionCommand()=="确定"){
StringId=txtId.getText();
if(Id==null||ld.equals(""))
{JOptionPane.showMessageDialog(this,"学号不能为空!
",”错误提示
",JOptionPane.WARNING_MESSAGE);flag=1;}
ta.setText("学号\t姓名\t性别\t年龄\t联系方式\t籍贯“);
//根据条件显示查询结果
if(flag==O){try
ResultSetrs=stmt.executeQuery(whereid='"+Id+""');
while(rs.next()){ta.append(
连接数据库的代码)
"select*fromstudent
"\n"+rs.getString("id")+"\t"+
rs.getString("name")+"\t"+rs.getString("sex")+"\t"+rs.ge
tString("age")+"\t"+rs.getString("phone")+"\t"+rs.getStr
ing("adress"));//输岀到文本区}
if(ta.getText().equals("学号\t姓名\t性别\t年龄\t联系方式\t籍
贯")){JOptionPane.showMessageDialog(this,"该学生不存在!
","
错误提示",JOptionPane.WARNING_MESSAGE);};
}catch(Exceptiona){System.out.println(a);}}}
elseif(e.getActionCommand()=="重新查询"){
txtld.setText("");
ta.setText("学号\t姓名\t性别\t年龄\t联系方式\t籍贯")}}}
5.QuerylnfoAll.java所有资料查询,QueryScore.java个人成绩查询,QueryScoreAll.java所有成绩查询的实现和Querylnfo个人资料查询的代码类似,在这里不再一一叙述。
6.Deletelnfo.java资料删除的主要代码:
Import*;
publicclassDeleteinfoextendsJFrameimplementsActionListener{
publicvoidgo(){
//创建控件,布局并将所有的组件放到一个面板pa中
lbld=newJLabel("请输入学生的学号:
");
txtld=newJTextField(20);
btOk=newJButton("确定");
btOk.addActionListener(this);
btClear=newJButton("清除");
btClear.addActionListener(this);
this.setContentPane(pa);//替换查询窗口的内容
this.setBounds(250,200,500,400);setVisible(true);}
publicvoidactionPerformed(ActionEvente){
//获取查询条件
intflag=0;
if(e.getActionCommand()=="确定"){
StringId=txtId.getText();
if(Id==null||ld.equals("")){JOptionPane.showMessageDialo
g(this,“学号不能为空!
",“错误提示
",JOptionPane.WARNING_MESSAGE);flag=1;}
ta.setText("您删除的记录是:
\n学号\t姓名\t性别\t年龄\t联系方式\t籍贯“);
//根据条件显示要删除的记录,并删除
if(flag==0){try{(连接数据库的代码)
ResultSetrs=stmt.executeQuery("select*fromstudent
whereid='"+ld+""');
while(rs.next()){ta.append("\n"+rs.getString("id")+"\t"+
rs.getString("name")+"\t"+rs.getString("sex")+"\t"+rs.ge
tString("age")+"\t"+rs.getString("phone")+"\t"+rs.getStr
ing("adress"));//输岀到文本区}
intrs1=stmt.executeUpdate("DELETEFROMstudentwhereid='"+ld+""');
if(ta.getText().equals("您删除的记录是:
\n学号\t姓名\t性别\t
年龄\t联系方式\t籍贯
")){JOptionPane.showMessageDialog(this,"该学生不存在!
","
错误提示",JOptionPane.WARNING_MESSAGE);}
elseJOptionPane.showMessageDialog(this,"资料删除成功!
","
提示",JOptionPane.INFORMATION_MESSAGE);
}catch(Exceptiona){System.out.println(a);}}}
elseif(e.getActionCommand()=="清除"){
txtId.setText("");
ta.setText("您删除的记录是:
\n学号\t姓名\t性别\t年龄\t联系方式\t籍贯");}}}
7.DeleteScore.java成绩删除和资料删除类似,在这里不再叙述。
8.UpdateInfo.java资料更改主要代码:
Import*;
publicclassUpdateinfoextendsJFrameimplementsActionListener{
publicvoidgo(){
//创建控件,布局并将所有的组件放到一个面板pa中
lbId=newJLabel("请输入学生的学号:
");lbName=newJLabel("姓名更改为:
");
}
publicvoidactionPerformed(ActionEvente){
//从控件中获取用户输入
if(e.getActionCommand()=="确定"){}
elseif(e.getActionCommand()=="清除"){}}}
9.UpdateScore.java成绩更改的实现和资料更改类似在这里不再叙述
10.还定义了两个类:
Student和Score.用于辅助实现其他类的功能。
11.StudentMenu.java主界面的实现:
Import*;
publicclassStudentMenuimplementsActionListener{
JFrameframe=newJFrame("学生信息管理系统");
InputInfoinputInfo;//录入学生资料窗口
InputScore
inputScore
;//录入学生成绩窗口
JTextField
JLabel
StudentMenu()
{
inputInfo
inputScore
status=newJTextField();//状态栏
lb=newJLabel("欢迎使用学生信息管理系统");
=newInputlnfo(
=newInputScore(
}
"学生资料录入“);//创建录入窗口
"学生成绩录入“);
publicstaticvoidmain(Stringargs[]){
StudentMenustudMenu=newStudentMenu();
studMenu.go();}
publicvoidgo(){
JMenuBarmenubar=newJMenuBar();//菜单栏
frame.setJMenuBar(menubar);
JMenumenu,submenu;//菜单和子菜单
JMenultemmenuItem;//菜单项
//建立信息录入菜单
menu=newJMenu("学生信息录入");
menubar.add(menu);
status.setEditable(false);//设置为不