《java程序设计》报告.docx
《《java程序设计》报告.docx》由会员分享,可在线阅读,更多相关《《java程序设计》报告.docx(26页珍藏版)》请在冰豆网上搜索。
《java程序设计》报告
《Java程序设计》
结课报告
课程名称JAVA程序设计
设计题目学生信息管理系统
专业班级信科101班
学号09
学生姓名林群
教师彭洁
信息工程系
目录
目录II
第1章系统简介3
1.1系统功能3
1.2系统引用例子3
第2章表的设计4
2.1系统数据库表结构4
第3章连接数据库的实现5
3.1SQLServer数据库连接的关键代码5
第4章系统详细设计6
4.1系统登录模块设计6
4.2系统主界面详细设计9
4.3学生信息增删改模块设计10
4.4学生信息查询模块设计12
4.5注册子管理员模块设计15
答辩记录20
成绩考核表20
学生信息管理系统
第1章系统简介
1.1系统功能
本系统主要功能:
1)通过数据校验如果数据校验成功,显示主界面;
2)登入后查询所有学生信息;
3)窗体实现对学生信息的增加、删除、修改;
4)模糊查询,根据姓名或者一个字查询;
5)实现子管理员的注册,并且写入注册信息到记事本,并实现可以用新注册的管理账号登入系统主界面
1.2系统引用例子
课本P275页15.5和课本P386页21.6
第2章表的设计
2.1系统数据库表结构
将系统数据库表结构用表的形式画出,如:
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
SNO
Int
10
P
Notnull
学生编号
SNAME
Varchar
20
Notnull
学生名字
SSEX
Varchar
1
Notnull
学生性别
表2.1用户表(JBXX)
SAGE
Int
2
Notnull
学生年龄
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
SNO
Int
10
P
Notnull
学生编号
JNAME
Varchar
20
Notnull
家长名字
JTEL
Int
10
Notnull
家庭电话
表2.2家庭信息表(JTXX)
注册子管理员的记事本1111.TXT内信息如下:
yyyy#yyyy
linlin#linlin
admin1#1111
admin2#2222
admin3#3333
admin4#4444
opop#opop
uuuu#uuuu
bbbb#bbbb
tttt#tttt
第3章连接数据库的实现
3.1SQLServer数据库连接的关键代码
publicclassDButil{
Connectioncon=null;
Stringname="linqun";
Stringpassname="linqun";
Stringul1="jdbc:
oracle:
thin:
@127.0.0.1:
1521:
orcl";
publicConnectiongetconn(){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("数据库驱动加载成功");
con=DriverManager.getConnection(ul1,name,passname);
System.out.println("数据库连接成功");
}catch(Exceptione){
System.out.println(e);
}
returncon;
}
publicvoiddbclose(Connectionconn,Statementsta,ResultSetrs){
try{
if(rs!
=null)
rs.close();
if(conn!
=null)
conn.close();
if(sta!
=null)
sta.close();
}catch(Exceptione){
e.printStackTrace();
}finally{
System.out.println("数据库释放!
");}
}
}
第4章系统详细设计
4.1系统登录模块设计
4.1.1、运行效果图
图4.1登录主界面效果图
4.1.2、主要代码
publicclassloginextendsJDialog{
staticPreparedStatementSQL;
privatestaticfinallongserialVersionUID=1L;
privateJLabell_Id=newJLabel("登陆账户",JLabel.CENTER);
privateJLabell_pw=newJLabel("登陆密码",JLabel.CENTER);
privateJTextFieldt_Id=newJTextField(10);
privateJPasswordFieldt_pw=newJPasswordField(10);
privateJButtonbtnLogin;
privateJButtonbtnAdd;
privateJButtonbtnClose;
intnum=3;
publiclogin(){
super();
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((screenSize.width-300)/2,(screenSize.height-200)/2);
this.setResizable(false);
getContentPane().setBackground(newColor(225,225,225));
getContentPane().setLayout(null);
initialize();
}
protectedvoidinitialize(){
setTitle("系统登录");
l_Id.setBounds(48,43,53,25);
t_Id.setBounds(110,43,150,25);
l_pw.setBounds(48,93,53,25);
t_pw.setBounds(110,93,150,25);
getContentPane().add(l_Id);
getContentPane().add(l_pw);
getContentPane().add(t_Id);
getContentPane().add(t_pw);
btnLogin=newJButton();
btnLogin.setText("登录");
btnLogin.setBounds(20,142,85,28);
btnLogin.setBackground(newColor(244,243,239));btnLogin.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){addBtnLoginActionListener();
}
});
getContentPane().add(btnLogin);
btnAdd=newJButton();
btnAdd.setText("注册");
btnAdd.setBounds(105,142,85,28);
btnAdd.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
addNewzc=newaddNew();
setVisible(false);
zc.setVisible(true);
}
});
getContentPane().add(btnAdd);
btnClose=newJButton();
btnClose.setText("关闭");
btnClose.setBounds(190,142,85,28);
btnClose.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
dispose();
System.exit(-1);
}
});
getContentPane().add(btnClose);
}
privatevoidaddBtnLoginActionListener(){
Stringid=t_Id.getText();
Stringpassword=newString(t_pw.getPassword());
if(id.equals("")){
JOptionPane.showMessageDialog(this,"帐号不可为空","提示",
JOptionPane.WARNING_MESSAGE);
return;
}elseif(password.equals("")){
JOptionPane.showMessageDialog(this,"密码不可为空","提示",
JOptionPane.WARNING_MESSAGE);
return;
}else{
toolst=newtools();
booleansuccess=false;//TODO:
数据校验
success=t.eqes(id,password);
if(success){//如果数据校验成功显示主界面
JOptionPane.showMessageDialog(this,"成功登录","提示",
JOptionPane.INFORMATION_MESSAGE);
newmainView();
this.dispose();
}else{
--num;
if(num==0){
JOptionPane.showMessageDialog(this,"用户名或者密码错误!
您没有机会了");
System.exit(0);
}else{
JOptionPane.showMessageDialog(this,"用户名或者密码错误!
您还有"+num+"次机会");
}
}
}
}
publicDimensiongetPreferredSize(){
returnnewDimension(320,170);
}
publicvoidshow(){
Toolkittk=Toolkit.getDefaultToolkit();
Dimensionscreen=tk.getScreenSize();
Dimensiond=getSize();
this.setLocation((screen.width-d.width)/2,(screen.height-d.height)/2);
//输入密码后回车相当于点击了登录按钮
getRootPane().setDefaultButton(btnLogin);
t_pw.requestFocus();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(300,220);
super.show();
}
publicstaticvoidmain(String[]args){
DButilutil=newDButil();
util.getconn();
loginloginFrame=newlogin();
loginFrame.setVisible(true);
}
}
4.2系统主界面详细设计
4.2.1、运行效果图
图4.2登录后系统界面效果图
4.2.2、主要代码
publicmainView(){
super();
setTitle("所有学生信息");
setBounds(350,150,700,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
finalJScrollPanescrollPane=newJScrollPane();
con=db.getconn();
VectortableValueV,columnNameV;//存放列名
columnNameV=newVector();
columnNameV.add("学号");
columnNameV.add("名字");
columnNameV.add("性别");
columnNameV.add("年龄");
tableValueV=newVector();
scrollPane.setViewportView(table);
finalJPanelpanel=newJPanel();
getContentPane().add(panel,BorderLayout.SOUTH);
panel.add(newJLabel("编号:
"));
aTextField=newJTextField("",5);
panel.add(aTextField);
panel.add(newJLabel("姓名:
"));
bTextField=newJTextField("",5);
panel.add(bTextField);
panel.add(newJLabel("性别:
"));
cTextField=newJTextField("",5);
panel.add(cTextField);
panel.add(newJLabel("年龄:
"));
dTextField=newJTextField("",5);
panel.add(dTextField);
}
4.3学生信息增删改模块设计
4.3.1、增加信息(121,白娘子,M,22)后运行效果图如下:
图4.3增加一个记录效果图
4.3.2、主要代码
finalJButtonaddButton=newJButton("添加");
addButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
userDaoadd=newuserDaoImpl();
useru=newuser();
u.setSno(Integer.parseInt(aTextField.getText()));
u.setsName(bTextField.getText());
u.setSsex(cTextField.getText());
u.setSage(Integer.parseInt(dTextField.getText()));
add.addUser(u);
setVisible(false);
newmainView();
}
});
panel.add(addButton);
4.3.3、删除信息编号为120的学生信息后结果如下:
图4.4删除一个记录效果图
4.3.4、主要代码:
finalJButtondelButton=newJButton("删除");delButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
userDaodel=newuserDaoImpl();
userud=newuser();
intselectedRow=table.getSelectedRow();//获得被选中行的索引
if(selectedRow!
=-1)//判断是否存在被选中行
del.deleUser(Integer.parseInt(aTextField.getText()));
setVisible(false);
tableModel.removeRow(selectedRow);
}
});
panel.add(delButton);
4.3.5、修改信息(105,关美眉,F,41)为(105,关大侠,M,30)后运行效果图如下:
图4.5修改一个记录效果图
4.3.6、主要代码:
panel.add(searchButton);finalJButtonupdButton=newJButton("修改");
updButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
userDaoupdate=newuserDaoImpl();
userupe=newuser();
aTextField.setEditable(false);
intselectedRow=table.getSelectedRow();//获得被选中行的索引
if(selectedRow!
=-1){//判断是否存在被选中行
upe.setSno(Integer.parseInt(aTextField.getText()));
upe.setsName(bTextField.getText());
upe.setSsex(cTextField.getText());
upe.setSage(Integer.parseInt(dTextField.getText()));
update.updateUser(upe);
setVisible(false);
newmainView();
}
}
});
panel.add(updButton);
4.4学生信息查询模块设计
4.4.1、运行效果图
图4.6查询记录集效果图
查询姓赵的人信息:
图4.7查询结果图
查询名字带“山”的人信息:
图4.8查询结果图
4.4.2、主要代码:
publicsearch(){
setTitle("根据姓名查询学生信息");
setLayout(newBorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
validate();
setBounds(350,150,650,400);
finalJPanelpane=newJPanel();
jl=newJLabel("输入姓或者名查询");
TextField=newJTextField("",5);
jb1=newJButton("查询");
jb2=newJButton("返回");
pane.add(jl);
pane.add(TextField);
pane.add(jb1);
pane.add(jb2);
getContentPane().add(pane,BorderLayout.NORTH);
jb1.addActionListener(this);
jb2.addActionListener(this);
setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
if(e.getActionCommand().equals("查询")){
JScrollPanejsp=newJScrollPane();
VectortableValueV,columnNameV;
columnNameV=newVector();
columnNameV.add("学号");
columnNameV.add("名字");
columnNameV.add("性别");
columnNameV.add("年龄");
tableValueV=newVector();
userDaouser=newuserDaoImpl();
useru=user.searchByName(TextField.getText());
VectorrowV=newVector();
rowV.add(u.getSno());
rowV.add(u.getsName());
rowV.add(u.getSsex());
rowV.add(u.getSage());
tableValueV.add(rowV);
tableModel=newDefaultTableModel(tableValueV,columnNameV);
table=newJTable(tableModel);
jsp=newJScrollPane(table);
jsp.setViewportView(table);
getContentPane().add(jsp,BorderLayout.CENTER);
setVisible(true);
}
if(e.getActionCommand().equals("返回")){
newmainView();
}
}
4.5注册子管理员模块设计
4.5.1、运行效果图
图4.9注册子管理员效果图
4.5.2、主要代码:
publicaddNew(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
load();
this.se