JAVA面向对象程序设计学生个人信息管理系统.docx
- 文档编号:13564368
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:30
- 大小:142.38KB
JAVA面向对象程序设计学生个人信息管理系统.docx
《JAVA面向对象程序设计学生个人信息管理系统.docx》由会员分享,可在线阅读,更多相关《JAVA面向对象程序设计学生个人信息管理系统.docx(30页珍藏版)》请在冰点文库上搜索。
JAVA面向对象程序设计学生个人信息管理系统
JAVA-面向对象程序设计-学生个人信息管理系统
————————————————————————————————作者:
————————————————————————————————日期:
软件学院
课程设计报告书
课程名称面向对象程序设计
设计题目学生个人信息管理系统
专业班级嵌入式软件09-2
学号0920010214
姓名王翀
指导教师
2011年6月
1设计时间
2012年6月13日——6月19日
2设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。
其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力
3设计任务
设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。
要求如下:
(1)具有简单的录入,查询和修改功能。
(2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;
(3)使用文件存储数据。
(也可用数据库)
(4)学生个人信息必须包括:
学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。
4设计内容
4.1需求分析
学生管理系统需要对学生的基本信息进行简单的录入,查询,修改三项基本功能。
具体实现使用Access2003数据库实现基本操作,前台窗口使用GUI编程创建图形界面,对图形界面的窗口和按钮进行事件监听,执行相应的SQL语句。
4.1.1问题描述
设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。
4.1.2基本要求
(1)具有简单的录入,查询和修改功能。
(2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;
(3)使用文件存储数据。
(4)学生个人信息必须包括:
学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。
(5)具有对姓名,出生日期和身份证号进行简单效验的功能。
4.2总体设计
1、自定义类说明:
(1)类名:
MainTest
作用:
主类,构建主界面
继承的父类:
Jframe
主要实现接口:
ActionListener
主要成员变量:
privateJPanelContentPane;
privateJButtonInsert=newJButton();
privateJButtonSelect=newJButton();
privateJButtonUpdate=newJButton();
内部类:
MainTest_actionPerformed,主页面的事件监听。
jenter_actionPerformed,按钮的事件监听。
主要成员方法:
publicMainTest()
publicstaticvoidmain(String[]args)
(2)类名:
Insert
作用:
实现添加个人信息
继承的父类:
Jframe
主要实现接口:
ActionListener
主要成员变量:
privateJPanelContentPane;
privateJLabeljlab1=newJLabel();
privateJLabeljlab2=newJLabel();
privateJLabeljlab3=newJLabel();
privateJLabeljlab4=newJLabel();
privateJLabeljlab5=newJLabel();
privateJLabeljlab6=newJLabel();
privateJLabeljlab7=newJLabel();
privateJLabeljlab8=newJLabel();
privateJTextFieldjtextfield1=newJTextField();
privateJTextFieldjtextfield2=newJTextField();
privateJTextFieldjtextfield3=newJTextField();
privateJTextFieldjtextfield4=newJTextField();
privateJTextFieldjtextfield5=newJTextField();
privateJComboBoxjcombobox1=newJComboBox();
privateJComboBoxjcombobox2=newJComboBox();
privateJTextAreajtextarea=newJTextArea();
privateJButtonsure=newJButton();
内部类:
sure_actionperformed,按钮的事件监听,实现对数据的插入。
主要成员方法:
publicInsert();
(3)类名:
Update
作用:
对个人信息进行修改。
继承的父类:
Jframe
主要实现接口:
ActionListener
主要成员变量:
privateJPanelContentPane;
privateJLabeljlab1=newJLabel();
privateJLabeljlab2=newJLabel();
privateJLabeljlab3=newJLabel();
privateJLabeljlab4=newJLabel();
privateJLabeljlab5=newJLabel();
privateJTextFieldjtextfield1=newJTextField();
privateJTextFieldjtextfield2=newJTextField();
privateJTextFieldjtextfield3=newJTextField();
privateJTextFieldjtextfield4=newJTextField();
privateJButtonsure=newJButton();
privateJButtonupda=newJButton();
主要成员方法:
publicUpdate()
publicvoidactionPerformed(ActionEvente)
(4)类名:
Select
作用:
查询学生个人信息
继承的父类:
Jframe
主要实现接口:
ActionListener
主要成员变量:
privateJTextAreataInfo=newJTextArea();
privateJPanelpanel=newJPanel();
privateJTextFieldjtextfield1=newJTextField();
privateJButtonjbutton=newJButton("查询");
privateJLabeljlabel=newJLabel("学号");
主要成员方法:
publicSelect()
publicvoidactionPerformed(ActionEvente)
2、主程序流程:
图4-2-1主流程图
4.2.1包的描述
importjava.awt.BorderLayout;边界布局勾画出一个容器,其组成部分的安排和调整以适应在五个区域:
北,南,东,西,和中心。
importjava.awt.Color;颜色类是用于封装在默认成色彩空间的颜色或颜色任意颜色空间所确定的色彩。
importjava.awt.Rectangle;一个矩形指定地区在坐标空间是封闭的矩形对象的左上点(十,年)在空间中的坐标,其宽度和高度。
importjava.awt.event.ActionEvent;事件一个接口,知道如何调度自己。
importjava.awt.event.ActionListener;监听器接口接收动作事件。
类的感兴趣的事件处理行动实现此接口的对象,并创建的类是一个注册的组件,使用组件的addactionlistener方法。
行动时,事件发生时,该对象的actionperformed调用方法。
importjavax.swing.JButton;实施“推”按钮。
请参阅TheJavaTutorial中的信息和使用按钮的例子如何使用按钮,复选框和单选按钮。
importjavax.swing.JComboBox;实施-一个复选框可以选择或取消的项目,并显示其状态的用户。
按照惯例,任何一组号码复选框可以选择。
请参阅如何使用Java教程使用复选框的例子和信息按钮,复选框和单选按钮。
importjavax.swing.JFrame;java.awt.Frame的扩展版本,增加了JFC/Swing组件架构的支持。
你可以找到有关节如何使框架,使用Java教程JFrame的面向任务的文档。
importjavax.swing.JLabel;一个很短的文本字符串或图像的显示区域,或两者兼而有之。
一个标签不输入事件作出反应。
因此,它不能获得键盘焦点。
然而,标签可以显示附近的一个组成部分,有一个键盘的替代品,但不能显示它的方便的键盘替代。
importjavax.swing.JPanel;JPanel的是一个通用的轻量级容器。
对于JPanel的任务为导向的文档和例子,请参阅如何使用面板,Java教程的一个部分。
importjavax.swing.JTextArea;一个JTextArea是一个多行的区域,显示纯文本。
它的目的是成为一个轻量级组件,提供与java.awt.TextArea类源代码的兼容性,它可以合理地这样做。
你可以找到在TheJavaTutorial中使用的文本组件,部分使用所有文本组件的信息和例子。
importjavax.swing.JTextField;JTextField是一个轻量级的组件,它允许在一个单行文本编辑。
对于使用文本字段的信息和例子,请参阅如何使用Java教程的文本字段。
4.2.2类的描述
JButton:
实施“推”按钮。
请参阅TheJavaTutorial中的信息和使用按钮的例子如何使用按钮,复选框和单选按钮。
JLabel:
一个很短的文本字符串或图像的显示区域,或两者兼而有之。
一个标签不输入事件作出反应。
因此,它不能获得键盘焦点。
然而,标签可以显示附近的一个组成部分,有一个键盘的替代品,但不能显示它的方便的键盘替代。
JTextField:
是一个轻量级的组件,它允许在一个单行文本编辑。
对于使用文本字段的信息和例子,请参阅如何使用Java教程的文本字段。
JComboBox:
相结合的一个按钮或可编辑字段和一个下拉列表组件。
用户可以选择从下拉列表中,出现在用户的请求值。
如果您编辑的组合框,组合框包括一个可编辑的字段到,用户可以键入一个值。
Connection:
与特定的数据库连接(会话)。
执行SQL语句和内连接的情况下返回的结果。
Statement:
一个Statement对象代表一种原始的语句在一个单一的方法应用到一个目标,一组参数-“a.setFoo
(二)”。
ResultSet:
一个代表,它通常通过执行查询数据库的语句生成一个数据库结果集的数据表。
包。
4.2.3类之间的关系
类MainTest继承JFrame。
类jenter实现接口ActionListener。
类MainText实现接口ActionListener。
类Insert继承JFrame。
类Select继承JFrame实现接口ActionListener。
类Update继承JFrame实现接口ActionListener。
4.3详细设计
1、各方法的实现:
与数据库的连接:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Stringurl="jdbc:
odbc:
学生管理";
Connectioncon=DriverManager.getConnection(url);
Statementstmt=con.createStatement();
MainTest类中对按钮事件监听的实现:
classMainTest_actionPerformedimplementsActionListener
{
MainTestadapte;
MainTest_actionPerformed(MainTestadapte)
{
this.adapte=adapte;
}
publicvoidactionPerformed(ActionEvente)
{
/*调用窗口程序*/
if(e.getSource()==adapte.Insert)
{
Insertinsert=newInsert();
}
elseif(e.getSource()==adapte.Update)
{
Updateupdate=newUpdate();
}
elseif(e.getSource()==adapte.Select)
{
Selectselect=newSelect();
}
}
}
Insert类中添加个人信息的具体实现:
publicvoidactionPerformed(ActionEvente)
{
StringSQL="insertintostudent(学号,姓名,性别,生日,身份证号,专业,班级,简介)values('"+jtextfield1.getText()+"','"+jtextfield2.getText()+"','"+jcombobox1.getSelectedItem()+"','"+jtextfield3.getText()+"','"+jtextfield5.getText()+"','"+jcombobox2.getSelectedItem()+"',
'"+jtextfield4.getText()+"','"+jtextarea.getText()+"')";
ResultSetrs=stmt.executeQuery(SQL);
}
}
Update类中关于更新学生信息方法的实现:
if(e.getSource()==upda)
{
StringSQL="UPDATEstudentSET姓名='"+jtextfield2.getText()+"',
性别='"+jtextfield3.getText()+"',
专业='"+jtextfield4.getText()+"'
WHERE学号='"+jtextfield1.getText()+"'";
ResultSetrs=stmt.executeQuery(SQL);
rs.close();
stmt.close();
con.close();
}
Select类中对查询个人信息的实现:
publicvoidactionPerformed(ActionEvente)
{
StringSQL="SELECT*FROMstudent
WHERE学号='"+jtextfield1.getText()+"'";
ResultSetrs=stmt.executeQuery(SQL);
while(rs.next())
{
taInfo.setText(rs.getString("学号")+"\n");
taInfo.append(rs.getString("姓名")+"\n");
taInfo.append(rs.getString("性别")+"\n");
taInfo.append(rs.getString("生日")+"\n");
taInfo.append(rs.getString("身份证号")+"\n");
taInfo.append(rs.getString("专业")+"\n");
taInfo.append(rs.getString("班级")+"\n");
taInfo.append(rs.getString("简介")+"\n");
}
}
2、数据库表设计:
使用Access2003数据库
Student表:
字段名
类型
是否可为空
学号
文本
否
姓名
文本
否
性别
文本
否
生日
日期/时间
否
身份证号
文本
否
专业
文本
否
班级
文本
否
简介
文本
否
4.3.1类图
4.3.2页面设计
图4-3-2主页面设计图
4.4测试与分析
4.5程序代码
//:
object/MainTest.java
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
/**
*@authorLiuMingyan
*/
publicclassMainTestextendsJFrame{
/**************声明变量************/
privateJPanelContentPane;
privateJButtonInsert=newJButton();
privateJButtonSelect=newJButton();
privateJButtonUpdate=newJButton();
publicMainTest()
{
ContentPane=(JPanel)this.getContentPane();
ContentPane.setLayout(null);
this.setTitle("学生管理系统");
this.setBounds(100,200,500,300);
ContentPane.setBackground(Color.WHITE);
/*********3个按钮的设置********/
Insert.setText("添加学生信息");
Insert.setVisible(false);
Insert.setBounds(newRectangle(70,50,120,33));
Insert.addActionListener(newMainTest_actionPerformed(this));//加事件监听
Insert.setForeground(Color.white);
Insert.setBackground(Color.black);
Update.setText("修改学生信息");
Update.setVisible(false);
Update.setBounds(newRectangle(210,50,120,33));
Update.addActionListener(newMainTest_actionPerformed(this));//加事件监听
Update.setForeground(Color.white);
Update.setBackground(Color.black);
Select.setText("查询学生信息");
Select.setVisible(false);
Select.setBounds(newRectangle(340,50,120,33));
Select.addActionListener(newMainTest_actionPerformed(this));//加事件监听
Select.setForeground(Color.white);
Select.setBackground(Color.black);
/*******把控件添加到面板中去*******/
ContentPane.add(Insert);
ContentPane.add(Update);
ContentPane.add(Select);
this.setVisible(true);
Insert.setVisible(true);
Update.setVisible(true);
Select.setVisible(true);
}
/**********设置动作按钮的监听事件***********/
classjenter_actionPerformedimplementsActionListener
{
publicvoidactionPerformed(ActionEvente)
{
//设置3个按钮的可见性
Insert.setVisible(true);
Update.setVisible(true);
Select.setVisible(true);
}
}
/***********主窗口的监听事件**************************/
classMainTest_actionPerformedimplementsActionListener
{
MainTestadapte;
MainTest_actionPerformed(MainTestadapte)
{
this.adapte=adapte;
}
publicvoidactionPerformed(ActionEvente)
{
/*调用窗口程序*/
if(e.getSource()==adapte.Insert)
{
Insertinsert=newInsert();
}
elseif(e.getSource()==adapte.Update)
{
Updateupdate=newUpdate();
}
elseif(e.getSource()==adapte.Select)
{
Selectselect=newSelect();
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 面向 对象 程序设计 学生 个人 信息管理 系统