JAVA-面向对象程序设计-学生个人信息管理系统_第1页
JAVA-面向对象程序设计-学生个人信息管理系统_第2页
JAVA-面向对象程序设计-学生个人信息管理系统_第3页
JAVA-面向对象程序设计-学生个人信息管理系统_第4页
JAVA-面向对象程序设计-学生个人信息管理系统_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA-面向对象程序设计-学生个人信息管理系统

软件学院课程设计报告书课程名称面向对象程序设计课程名称面向对象程序设计学生个人信息管理系统嵌入式软件09-2嵌入式软件09-2王翀专业班级学号姓名指导教师2011年6月

目录TOC\o"1-5"\h\z1设计时间52设计目的53设计任务54设计内容54.1需求分析54.1.1问题描述54.1.2基本要求54.2总体设计64.2.1包的描述94.2.2类的描述104.2.3类之间的关系10类MainTest继承JFrame。10类jenter实现接口ActionListener。104.3详细设计104.3.1类图144.3.2页面设计144.4测试与分析154.5程序代码175总结与展望32参考文献32课程设计成绩评定341设计时间2012年6月13日——6月19日2设计目的《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力3设计任务设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。要求如下:(1)具有简单的录入,查询和修改功能。⑵修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;使用文件存储数据。(也可用数据库)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。4设计内容4.1需求分析学生管理系统需要对学生的基本信息进行简单的录入,查询,修改三项基本功能。具体实现使用Access2003数据库实现基本操作,前台窗口使用GUI编程创建图形界面,对图形界面的窗口和按钮进行事件监听,执行相应的SQL语句。4.1.1问题描述设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。4.1.2基本要求具有简单的录入,查询和修改功能。修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;⑶使用文件存储数据。⑷学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。⑸具有对姓名,出生日期和身份证号进行简单效验的功能。4.2总体设计1、自定义类说明:类名:MainTest作用:主类,构建主界面继承的父类:Jframe主要实现接口:ActionListener主要成员变量:privateJPanelContentPane;privateJButtonInsert=newJButton();privateJButtonSelect=newJButton();privateJButtonUpdate=newJButton();内部类:MainTest_actionPerformed,主页面的事件监听。jenter_actionPerformed,按钮的事件监听。主要成员方法:publicMainTest()publicstaticvoidmain(String[]args)类名:Insert作用:实现添加个人信息继承的父类:Jframe主要实现接口:ActionListener主要成员变量:privateJPanelContentPane;privateJLabeljlab1=newJLabel();privateJLabeljlab2=newJLabel();privateJLabeljlab3=newJLabel();privateJLabeljlab4=newJLabel();privateJLabeljlab5=newJLabel();privateJLabeljlab6=newJLabel();privateJLabeljlab7=newJLabel();privateJLabeljlab8=newJLabel();privateJTextFieldjtextfieldl=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、主程序流程:学生个人信息查询更新录入查询更新录入显示学显示学II更新学图图4-2-14.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・jdbGodbcJdbcOdbcDriver");Stringurl="jdbc:odbc:学生管理";Connectioncon=DriverManager.getConnection(url);Statementstmt=con.createStatementO;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(学号,姓名,性别,生日,身份证号,专业,班级,简介)valuesC"+jtextfield1.getText()+"','"+jtextfield2.getText()+"*,'"+jcombobox1.getSelectedItemO+"','"+jtextfield3.getTextO+"','"+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学号='"+jtextfeld1・getText()+"'";ResultSetrs=stmt.executeQuery(SQL);rs.close();stmt・close();con.close();}Select类中对查询个人信息的实现:publicvoidactionPerformed(ActionEvente){StringSQL="SELECT*FROMstudentWHERE学号='"+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表:^段名^型是否可为空^号文本否姓名文本否文本否生日日期耐间否身份证号文本否^业文本否文本否文本否

ContentPane.setBackground(Color.WHITE);/*********3个按钮的设置********/InserLsetTextC添加学生信息");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);SelecLsetText("査询学生信息");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_actionPerformedimplementsActionListenerpublicvoidactionPerformed(ActionEvente)//设置3个按钮的可见性InsertsetVisible(true);Update・setVisible(true);Select.setVisible(true);}/***********主窗口的监听事件**************************/classMainTest_actionPerformedimplementsActionListenerMainTestadapte;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();}}}publicstaticvoidmain(String[]args){MainTestmaintest=newMainTest();〃TODO自动生成方法存根}}〃:object/Insertjavaimportjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;/***@authorLiuMingyan*/publicclassInsertextendsJFrame{/**************声明^^^^********4privateJPanelContentPane;privateJLabeljlabl=newJLabel();privateJLabeljlab2=newJLabel();privateJLabeljlab3=newJLabel();privateJLabeljlab4=newJLabel();privateJLabeljlab5=newJLabel();privateJLabeljlab6=newJLabel();privateJLabeljlab7=newJLabel();privateJLabeljlab8=newJLabel();privateJTextFieldjtextfieldl=newJTextField();privateJTextFieldjtextfield2=newJTextField();privateJTextFieldjtextfield3=newJTextField。;privateJTextFieldjtextfield4=newJTextField。;privateJTextFieldjtextfield5=newJTextField。;privateJComboBoxjcomboboxl=newJComboBox();privateJComboBoxjcombobox2=newJComboBox();privateJTextAreajtextarea=newJTextArea();privateJButtonsure=newJButton();publicInsert(){this.setBounds(320,160,450,450);this.setTitle("添加学生信息");//窗体标题ContentPane=(JPanel)this・getContentPane();//将容器转化为JPanelContentPane・setLayout(null);//设置可更改性ContentPane.setBackground(Color.black);jlab1.setText("学号");jlab1.setBounds(newRectangle(30,11,51,33));jlab1.setForeground(Color.white);jlab2.setText("姓名");jlab2.setBounds(newRectangle(162,11,28,33));jlab2.setForeground(Color.white);jlab3・setText("性别");jlab3.setBounds(newRectangle(241,11,28,33));jlab3.setForeground(Color.white);jlab4・setText("出生日期");jlab4・setBounds(newRectangle(31,53,55,33));jlab4.setForeground(Color.white);jlab5・setText("身份证号");jlab5.setBounds(newRectangle(163,94,55,33));jlab5.setForeground(Color.white);jlab6・setText("班级");jlab6.setBounds(newRectangle(163,53,26,33));jlab6.setForeground(Color.white);jlab7・setTextC专业");jlab7.setBounds(newRectangle(30,94,50,33));jlab7・setForeground(Color・white);jlab8.setText("自我介绍");jlab8・setBounds(newRectangle(30,120,66,33));jlab&setForeground(Color・white);jtextfield1,setText("");//学号jtextfield1・setBounds(newRectangle(86,16,74,22));jtextfield2,setText("");//姓名jtextfield2,setBounds(newRectangle(192,16,44,22));jtextfield3・setText("");//出生日期jtextfield3・setBounds(newRectangle(86,58,74,22));jtextfield4・setText("");/班级jtextfield4・setBounds(newRectangle(191,58,44,22));jtextfield5・setText("");//身份证号jtextfield5・setBounds(newRectangle(230,98,158,22));jcombobox1・setBounds(newRectangle(275,15,50,25));jcombobox1・addItem("男");jcombobox1・addItem("女");jcombobox1・setForeground(Color・black);jcombobox1.setBackground(Color.white);jcombobox2.setBounds(newRectangle(86,98,75,25));jcombobox2.addItem("软件");jcombobox2・addItem("工商");jcombobox2.addItem("电信");jcombobox2.addItem("电控");jcombobox2.addItem("营销");jcombobox2.addItem("安全");jcombobox2・setForeground(Color・black);jcombobox2.setBackground(Color.white);jtextarea.setText("");jtextarea.setBounds(newRectangle(84,139,285,92));sure・setTextC添加");//设置命令按钮sure.setBounds(newRectangle(156,244,89,22));sure.addActionListener(newsure_actionperformed());//设置动作监听ContentPane.add(jlab1);ContentPane.add(jlab2);ContentPane.add(jlab3);ContentPane.add(jlab4);ContentPane.add(jlab5);ContentPane.add(jlab6);ContentPane.add(jlab7);ContentPane.add(jlab8);ContentPane.add(jtextfield1);ContentPane.add(jtextfield2);ContentPane.add(jtextfield3);ContentPane.add(jtextfield4);ContentPane.add(jtextfield5);ContentPane.add(jcombobox1);ContentPane.add(jcombobox2);ContentPane.add(jtextarea);ContentPane・add(sure);this・setVisible(true);//设置可见性}classsure_actionperformedimplementsActionListener//设置动作按钮的监听{publicvoidactionPerformed(ActionEvente)〃创建方法{try{Class・forName("sun・jdbc・odbcJdbcOdbcDriver");Stringurl="jdbc:odbc:学生管理";Connectioncon=DriverManager・getConnection(url);Statementstmt=con>createStatement();StringSQL="insertintostudent(学号,姓名,性别,生日,身份证号,专业,班级,简介)values('"+jtextfield1・getText()+"',,"+jtextfield2・getText()+"','"+jcombobox1egetSelectedItem()+"','"+jtextfield3・getText()+"',,"+jtextfield5・getText()+"','"+jcombobox2・getSelectedItem()+"','"+jtextfield4・getText()+"',,"+jtextarea・getText()+"')";ResultSetrs=stmt・executeQuery(SQL);}catch(Exceptionee){jtextfield1.setText("");jtextfield2.setText("");jtextfield3.setText("");jtextfield4・setText("");jtextfield5.setText("");jtextarea.setText("");JOptionPane.showMessageDialog(null,"添加信息成功!");ee.printStackTrace();}}}}〃:object/Select・javaimportjava・awt・*;importjava・awt・event・*;importjavax.swing.*;importjava・sql・*;/***@authorLiuMingyan*/publicclassSelectextendsJFrameimplementsActionListener{privateJTextAreataInfo=newJTextArea();privateJPanelpanel=newJPanel();privateJTextFieldjtextfield1=newJTextField();privateJButtonjbutton=newJButton("查询");privateJLabeljlabel=newJLabel("学号");publicSelect(){super("查询学生信息");setBounds(20093009500,3O0);panel.setLayout(newBorderLayout());panel.add(jlabel,BorderLayout.WEST);panel.add(jtextfield19BorderLayout.CENTER);panel.add(jbutton,BorderLayout.EAST);jbutton.addActionListener(this);getContentPane().setLayout(newBorderLayout());getContentPane()・add(panel9BorderLayout.NORTH);getContentPane()・add(taInfo9BorderLayout<CENTER);this.setVisible(true);}publicvoidactionPerformed(ActionEvente)〃创建方法{try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Stringurl="jdbc:odbc:学生管理";Connectioncon=DriverManager.getConnection(url);Statementstmt=con.createStatement();StringSQL="SELECT*FROMstudentWHERE学号='"+jtextfield1.getText()+"'";ResultSetrs=stmt.executeQuery(SQL);while(rs.next()){**、【*.Ibs・EA.atod月<01)ufMS・XBAErtoduqfLmAa-IME・EAErtodulfr-p4E・EAErtodnqEAEraIBPdfl/pdsowO£E.IE-I3ps5sll-Ed・dd(dou09daQx3}qd!B3{oasopuoQoasovnmlsoasopsj宀Kf(鸟F.)w>53%・SJ)puaddE・OJUIB;KM+r聯鄴)MupgM・SJ)plwddE・OJUIB;x=fi^=x=ra^=^flxiM.2¥«aa«.©35KM+r^®=^flriM4sl©35^=^=x=^=^flrs&.2¥«Hl©35*/publicclassUpdateextendsJFrameimplementsActionListener{privateJPanelContentPane;privateJLabeljlab1=newJLabel();privateJLabeljlab2=newJLabel();privateJLabeljlab3=newJLabel();privateJLabeljlab4=newJLabel();privateJLabeljlab5=newJLabel();privateJTextFieldjtextfield1=newJTextField();privateJTextFieldjtextfield2=newJTextField();privateJTextFieldjtextfield3=newJTextField。;privateJTextFieldjtextfield4=newJTextField。;privateJButtonsure=newJButton();privateJButtonupda=newJButton();publicUpdate。this・setBounds(320,160,450,45O);this.setTitle("修改学生信息");ContentPane=(JPanel)this・getContentPane();//将容器转化为JPanelContentPane・setLayout(null);//设置可更改性ContentPane.setBackground(Color.black);jlab1・setTextC请先输入学号!");jlab1.setBounds(newRectangle(30,11,160,33));jlab1.setForeground(Color.white);jlab2.setText("学号");jlab2.setBounds(newRectangle(31953,100933));jlab2.setForeground(Color.white);jlab3.setText("姓名");jlab3.setBounds(newRectangle(30,94,100,33));jlab3.setForeground(Color・white);jlab4・setText("性别");jlab4.setBounds(newRectang!e(309120,1O0,33));jlab4.setForeground(Color.white);jlab5・setTextC专业");jlab5.setBounds(newRectangle(30,150,100,33));jlab5.setForeground(Color.white);jtextfield1.setText("");jtextfield1.setBounds(newRectangle(150,53,150,22));jtextfield2.setText("");jtextfield2.setBounds(newRectangle(150,94,150,22));jtextfield3.setText("");jtextfield3.setBounds(newRectangle(150,120,150,22));jtextfield4.setText("");jtextfield4.setBounds(newRectangle(150,150,150,22));sure・setTextC确定");//设置命令按钮sure.setBounds(newRectangle(320,53,89,22));sure.addActionListener(this);upda・setText("修改");upda.setBounds(200,200,89,22);upda*addActionListener(this);ContentPane・add(jlab1);ContentPane・add(jlab2);ContentPane・add(jlab3);ContentPane・add(jlab4);ContentPane・add(jlab5);ContentPane.add(jtextfield1);ContentPane.add(jtextfield2);ContentPane.add(jtextfield3);ContentPane.add(jtextfield4);ContentPane.add(sure);ContentPa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论