版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XX学院计算机科学与技术系实 验 报 告课程名称程序设计基础实验(2)实验项目应用系统的面向对象设计与分析实验类型综合性实验完成人所在班级指导教师完成日期2009年11月 30日实验报告正文一实验报告简表实验课题名称学籍管理系统综合性实验项目应用系统的面向对象设计与分析服务课程程序设计基础实验(2)实验小组组长指导教师参与实验人员及其在实验课题中承担的主要任务(包括组长)学 号小组成员姓名班 级在实验课题中的主要作用二设计内容与要求设计内容:设计基于文件结构的学籍管理系统设计要求: (1)录入学生基本信息的功能界面 (2)修改学生基本信息的功能界面 (3)查询学生基本信息的功能界面 (4)删除
2、学生基本信息的功能界面三总体设计,包括需求分析、功能描述、设计工具与运行环境、类及类间关系描述等a、 Student.java:程序的入口。初始化主界面,使主界面位于屏幕中间,且用户不能改变其大小。b、 MainFrame.java:程序的主界面。由菜单、登陆界面和操作选项所构成。其中菜单的“文件”中各操作项必须在登陆后方可选择,输入用户名和密码点击“进入”,提示登陆成功之后(用户名和密码在数据库的Admin表中,如果用户填的密码或用户名错误或没填都会产生相应的警告框),登陆界面消失,出现“添加信息”、“修改信息”、“信息查询”和“删除信息”四个按钮,且菜单中的操作项也被激活。点击要操作的按钮
3、或菜单项,进入要操作的界面(窗口出现在屏幕左上角)。c、 AddInf.java:添加信息界面。按照要求添入基本信息,如果用户填错或没填,提示错误信息(如不能添加已经注册的学号)。填写完整后,点击“增加”按钮,将信息加入数据库的BaseInf表中。d、 ChangeInf.java:修改信息界面。按照提示输入要修改信息的学生学号,点击“下一步”(如果数据库无此学号,则提示“无此对应信息”),从数据库中将该学生的完整信息读出,用户修改之后点击“修改”即可。注意:为了防止意外,修改学生信息时,程序禁止了对学号的修改。(为了程序设计方便和代码重用,修改信息的代码是先删此该生所有信息,再将修改后的信息
4、全部添加到数据库,这也是数据库修改的原理)e、 SeachInf.java:查询信息界面。输入要查询的学生的学号或姓名(也可两项都填写),点击“查询”,将提示“查无对应信息”或将查询到的学生完整信息显示出来,如果有多条对应信息,“下一条”按钮可选,单击之后可查看下一满足条件的信息,查找准确的学生信息。f、 DelInf.java:删除信息界面。输入要删除信息的学生的学号,单击“下一步”,程序给出该生的完整信息,点击“删除”,提示是否确定删除对话框,仔细查看信息确认无误后,单击“确定”完成删除,否则单击“取消”。四详细设计,包括类图及代码等Student.java: import javax.s
5、wing.UIManager;import java.awt.*;public class Student boolean packFrame = false; public Student() MainFrame frame = new MainFrame(); if (packFrame) frame.pack(); else frame.validate(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (fram
6、eSize.height screenSize.height) frameSize.height = screenSize.height; if (frameSize.width screenSize.width) frameSize.width = screenSize.width; frame.setLocation( (screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); frame.setVisible(true); public static void main(St
7、ring args) try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch (Exception e) e.printStackTrace(); new Student(); MainFrame.java:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class MainFrame extends JFrame boolean login = false; JPan
8、el contentPane; JMenuBar jMenuBar1 = new JMenuBar();/*菜单条*/ JMenu jMenuFile = new JMenu();/*菜单项*/ JMenu jMenuHelp = new JMenu();/*菜单项*/ JMenuItem jMenuFileExit = new JMenuItem();/*菜单子项*/ JMenuItem jMenuHelpAbout = new JMenuItem();/*菜单子项*/ JMenuItem jMenuItem1 = new JMenuItem();/*菜单子项*/ JMenuItem jMe
9、nuItem2 = new JMenuItem();/*菜单子项*/ JMenuItem jMenuItem3 = new JMenuItem();/*菜单子项*/ JMenuItem jMenuItem4 = new JMenuItem();/*菜单子项*/ JMenuItem jMenuItem5 = new JMenuItem();/*菜单子项*/ Label label1 = new Label();/*标签*/ Label label2 = new Label();/*标签*/ Label label3 = new Label();/*标签*/ Label label4 = new
10、Label();/*标签*/ Button button1 = new Button();/*按钮*/ Button button2 = new Button();/*按钮*/ Button button3 = new Button();/*按钮*/ Button button4 = new Button();/*按钮*/ Button button5 = new Button();/*按钮*/ TextField textField1 = new TextField();/*文本框*/ TextField textField2 = new TextField();/*文本框*/ public
11、 MainFrame() /*构造函数*/ enableEvents(AWTEvent.WINDOW_EVENT_MASK); try jbInit(); catch (Exception e) e.printStackTrace(); private void jbInit() throws Exception /*初始化*/ contentPane = (JPanel)this.getContentPane();/*初始化一个容器*/ contentPane.setLayout(null); contentPane.setEnabled(false);/*设置是否启用该组件 FALSE表示
12、不启用*/ contentPane.setOpaque(true);/*该组件绘制其边界内的所有像素*/ contentPane.setPreferredSize(new Dimension(1, 1);/*设置组建的首选大小*/ contentPane.setRequestFocusEnabled(true);/*提供一个关于此 JComponent 是否应该获得焦点的提示*/ this.setForeground(Color.black); this.setResizable(false);/*设置此窗体为不可由用户调整大小*/ this.setSize(new Dimension(400
13、, 300);/*调整窗口大小 宽为400高为300*/ this.setTitle(学籍管理系统); jMenuBar1.setEnabled(true); jMenuBar1.setBorderPainted(true);/*如果该属性为 true 并且按钮有边框,则绘制该边框*/ jMenuFile.setVerifyInputWhenFocusTarget(true);/*设置该值指示是否在此组件请求焦点前,为当前的焦点所有者调用输入校验器*/ jMenuFile.setActionCommand(文件); jMenuFile.setText(文件); jMenuHelp.setTex
14、t(帮助); jMenuFileExit.setText(退出); jMenuFileExit.addActionListener(new MainFrame_ActionAdapter(this); jMenuHelpAbout.setText(关于); jMenuHelpAbout.addActionListener(new MainFrame_ActionAdapter(this); label1.setFont(new Font(Dialog, 1, 15); label1.setText(用 户:); label1.setBounds(new Rectangle(123, 25, 4
15、9, 16); label2.setFont(new Font(Dialog, 1, 15); label2.setText(密 码:); label2.setBounds(new Rectangle(123, 62, 49, 16); textField1.setText(); textField1.setBounds(new Rectangle(192, 24, 62, 18); textField2.setEchoChar(*); textField2.setText(); textField2.setBounds(new Rectangle(192, 61, 62, 18); butt
16、on1.setLabel(进入系统); button1.setFont(new Font(Dialog, 1, 15); button1.setBounds(new Rectangle(150, 104, 101, 22); button1.addActionListener(new MainFrame_ActionAdapter(this); label3.setFont(new Font(Dialog, 1, 15); label3.setForeground(Color.red); label3.setText(请选择操作项); label3.setVisible(false); lab
17、el3.setBounds(new Rectangle(158, 92, 84, 16); button2.setFont(new Font(Dialog, 1, 15); button2.setLabel(添加信息); button2.setVisible(false); button2.setBounds(new Rectangle(74, 136, 97, 33); button3.setFont(new Font(Dialog, 1, 15); button3.setLabel(修改信息); button3.setVisible(false); button3.setBounds(ne
18、w Rectangle(226, 136, 97, 33); button4.setFont(new Font(Dialog, 1, 15); button4.setLabel(信息查询); button4.setVisible(false); button4.setBounds(new Rectangle(74, 185, 97, 33); button5.setFont(new Font(Dialog, 1, 15); button5.setLabel(删除信息); button5.setVisible(false); button5.setBounds(new Rectangle(226
19、, 185, 97, 33); jMenuItem1.setText(添加信息); jMenuItem2.setText(信息查询); jMenuItem3.setText(修改信息); jMenuItem4.setText(删除信息); jMenuItem5.setText(帮助); label4.setFont(new Font(Dialog, 1, 30); label4.setText(学籍管理系统); label4.setVisible(false); label4.setBounds(new Rectangle(70, 37, 261, 33); jMenuFile.add(jMe
20、nuItem1); jMenuItem1.setEnabled(false); jMenuItem1.addActionListener(new MainFrame_ActionAdapter(this); jMenuItem2.setEnabled(false); jMenuFile.add(jMenuItem2); jMenuItem2.addActionListener(new MainFrame_ActionAdapter(this); jMenuItem3.setEnabled(false); jMenuFile.add(jMenuItem3); jMenuItem3.addActi
21、onListener(new MainFrame_ActionAdapter(this); jMenuItem4.setEnabled(false); jMenuFile.add(jMenuItem4); jMenuItem4.addActionListener(new MainFrame_ActionAdapter(this); jMenuFile.add(jMenuFileExit); jMenuHelp.add(jMenuItem5); jMenuHelp.add(jMenuHelpAbout); jMenuBar1.add(jMenuFile); jMenuBar1.add(jMenu
22、Help); contentPane.add(label1, null); contentPane.add(label2, null); contentPane.add(textField1, null); contentPane.add(textField2, null); contentPane.add(label3, null); contentPane.add(button2, null); button2.addActionListener(new MainFrame_ActionAdapter(this); contentPane.add(button4, null); butto
23、n4.addActionListener(new MainFrame_ActionAdapter(this); contentPane.add(button3, null); button3.addActionListener(new MainFrame_ActionAdapter(this); contentPane.add(button5, null); button5.addActionListener(new MainFrame_ActionAdapter(this); contentPane.add(button1, null); contentPane.add(label4, nu
24、ll); this.setJMenuBar(jMenuBar1); public void jMenuFileExit_actionPerformed(ActionEvent e) System.exit(0); public void jMenuHelpAbout_actionPerformed(ActionEvent e) protected void processWindowEvent(WindowEvent e) cessWindowEvent(e); if (e.getID() = WindowEvent.WINDOW_CLOSING) jMenuFileExit
25、_actionPerformed(null); void button1_actionPerformed(ActionEvent e) String user = textField1.getText().trim(); String pass = textField2.getText().trim(); try String strurl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=DataBase/student.mdb; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connec
26、tion conn = DriverManager.getConnection(strurl); Statement stmt = conn.createStatement(); if (user.equals()| pass.equals() JOptionPane.showMessageDialog(null, 用户名或密码不能为空, 警告, JOptionPane.WARNING_MESSAGE); else ResultSet rs = stmt.executeQuery(select * from admin where username= + user + AND password
27、= + pass + ); if (rs.next() JOptionPane.showMessageDialog(null, 登陆成功); login = true; label1.setVisible(false); textField1.setVisible(false); label2.setVisible(false); textField2.setVisible(false); button1.setVisible(false); label3.setVisible(true); label4.setVisible(true); button2.setVisible(true);
28、button3.setVisible(true); button4.setVisible(true); button5.setVisible(true); jMenuItem1.setEnabled(true); jMenuItem2.setEnabled(true); jMenuItem3.setEnabled(true); jMenuItem4.setEnabled(true); else JOptionPane.showMessageDialog(null, 登陆失败, 警告, JOptionPane.WARNING_MESSAGE); catch (Exception eg) eg.p
29、rintStackTrace(); class MainFrame_ActionAdapter implements ActionListener MainFrame adaptee; MainFrame_ActionAdapter(MainFrame adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) if (e.getSource() = adaptee.jMenuFileExit) adaptee.jMenuFileExit_actionPerformed(e); else if (e.g
30、etSource() = adaptee.jMenuItem1 | e.getSource() = adaptee.button2) AddInf addInf = new AddInf(); addInf.setSize(400, 300); addInf.setVisible(true); else if (e.getSource() = adaptee.jMenuItem3 | e.getSource() = adaptee.button3) ChangeInf changeInf = new ChangeInf(); changeInf.setSize(400, 300); chang
31、eInf.setVisible(true); else if (e.getSource() = adaptee.jMenuItem2 | e.getSource() = adaptee.button4) SearchInf searchInf = new SearchInf(); searchInf.setSize(400, 300); searchInf.setVisible(true); else if (e.getSource() = adaptee.jMenuItem4 | e.getSource() = adaptee.button5) DelInf delInf = new Del
32、Inf(); delInf.setSize(400, 300); delInf.setVisible(true); else if (e.getSource() = adaptee.jMenuHelpAbout) adaptee.jMenuHelpAbout_actionPerformed(e); else if (e.getSource() = adaptee.button1) adaptee.button1_actionPerformed(e); AddInf.javaimport javax.swing.*;import java.awt.*;import java.awt.event.
33、*;import java.sql.*;public class AddInf extends JFrame implements ActionListener Label label1 = new Label(); TextField textField1 = new TextField(); Label label2 = new Label(); TextField textField2 = new TextField(); Label label3 = new Label(); Choice choice1 = new Choice(); Label label4 = new Label
34、(); TextField textField3 = new TextField(); Label label5 = new Label(); Choice choice2 = new Choice(); Label label6 = new Label(); TextField textField4 = new TextField(); Label label7 = new Label(); Choice choice3 = new Choice(); Label label8 = new Label(); TextField textField5 = new TextField(); La
35、bel label9 = new Label(); TextArea textArea1 = new TextArea(); Button button1 = new Button(); public AddInf() try jbInit(); catch (Exception e) e.printStackTrace(); private void jbInit() throws Exception this.setEnabled(true); this.setResizable(false); this.setTitle(增加学生信息); this.setDefaultCloseOper
36、ation(HIDE_ON_CLOSE); label1.setText(学 号:); label1.setBounds(new Rectangle(30, 11, 51, 33); this.getContentPane().setLayout(null); textField1.setText(); textField1.setBounds(new Rectangle(86, 16, 74, 22); label2.setText(姓名:); label2.setBounds(new Rectangle(162, 11, 28, 33); textField2.setText(); tex
37、tField2.setBounds(new Rectangle(192, 16, 44, 22); label3.setText(性别:); label3.setBounds(new Rectangle(241, 11, 28, 33); choice1.setEnabled(true); choice1.setFont(new Font(Dialog, 0, 12); choice1.setForeground(Color.black); choice1.setLocale(java.util.Locale.getDefault(); choice1.setVisible(true); ch
38、oice1.setBounds(new Rectangle(275, 15, 50, 25); choice1.addItem(男); choice1.addItem(女); label4.setText(出生日期:); label4.setBounds(new Rectangle(31, 53, 49, 33); textField3.setText(YYYY-MM-DD); textField3.setBounds(new Rectangle(86, 58, 74, 22); label5.setText(政治面貌:); label5.setBounds(new Rectangle(241
39、, 53, 47, 33); choice2.setBounds(new Rectangle(296, 57, 72, 25); choice2.setVisible(true); choice2.setLocale(java.util.Locale.getDefault(); choice2.setForeground(Color.black); choice2.setFont(new Font(Dialog, 0, 12); choice2.setEnabled(true); label6.setText(籍贯:); label6.setBounds(new Rectangle(163,
40、53, 26, 33); textField4.setText(); textField4.setBounds(new Rectangle(191, 58, 44, 22); label7.setText(系 别:); label7.setBounds(new Rectangle(30, 94, 50, 33); choice3.setEnabled(true); choice3.setFont(new Font(Dialog, 0, 12); choice3.setForeground(Color.black); choice3.setLocale(java.util.Locale.getD
41、efault(); choice3.setVisible(true); choice3.setBounds(new Rectangle(86, 98, 75, 25); label8.setText(专业:); label8.setBounds(new Rectangle(163, 94, 26, 33); textField5.setText(); textField5.setBounds(new Rectangle(190, 99, 178, 22); label9.setText(备 注:); label9.setBounds(new Rectangle(27, 132, 50, 33)
42、; textArea1.setBounds(new Rectangle(84, 139, 285, 92); button1.setLabel(增加); button1.setVisible(true); button1.setBounds(new Rectangle(156, 244, 89, 22); button1.addActionListener(this); this.getContentPane().add(label3, null); this.getContentPane().add(label1, null); this.getContentPane().add(textF
43、ield1, null); this.getContentPane().add(label2, null); this.getContentPane().add(textField2, null); this.getContentPane().add(choice1, null); this.getContentPane().add(label4, null); this.getContentPane().add(textField3, null); this.getContentPane().add(label6, null); this.getContentPane().add(textF
44、ield4, null); this.getContentPane().add(label5, null); this.getContentPane().add(choice2, null); this.getContentPane().add(label7, null); this.getContentPane().add(choice3, null); this.getContentPane().add(label8, null); this.getContentPane().add(textField5, null); this.getContentPane().add(label9,
45、null); this.getContentPane().add(textArea1, null); this.getContentPane().add(button1, null); choice2.addItem(团员); choice2.addItem(党员); choice2.addItem(其他); choice3.addItem(计算机); choice3.addItem(电子); choice3.addItem(生化); choice3.addItem(艺术); public void actionPerformed(ActionEvent e) try String strur
46、l = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=DataBase/student.mdb; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn = DriverManager.getConnection(strurl); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(select 学号 from BaseInf where 学号= + textField1.g
47、etText() + ); if (rs.next() JOptionPane.showMessageDialog(null, 此学号已经被注册., 警告, JOptionPane.WARNING_MESSAGE); return; stmt.execute( insert into BaseInf (学号,系别,专业,姓名,性别,出年日期,籍贯,政治面貌,备注) values ( + textField1.getText() + , + choice3.getSelectedItem() + , + textField5.getText() + , + textField2.getText(
48、) + , + choice1.getSelectedItem() + , + textField3.getText() + , + textField4.getText() + , + choice2.getSelectedItem() + , + textArea1.getText() + ); textField1.setText(); textField2.setText(); textField3.setText(); textField4.setText(); textField5.setText(); textArea1.setText(); JOptionPane.showMe
49、ssageDialog(null, 增加信息成功!); catch (Exception eg) JOptionPane.showMessageDialog(null, 请认真检查各项(不能为空),n日期要合法!然后重试., 异常警告, JOptionPane.WARNING_MESSAGE); eg.printStackTrace(); ChangeInf.java:import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class ChangeInf extends JFrame implements ActionListener String strurl; Connection conn; Statement stmt; ResultSet rs; Label label1 = new Label(); TextField textField1 = n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国运动护膝类产品价格战对行业盈利能力影响诊断报告
- 2026欧洲船舶制造行业市场现状供需分析及投资评估规划分析研究报告
- 2026中国印刷产业行业市场现状供需分析及投资评估规划分析研究报告
- 镍锌电池:高安全、高功率备用电源的商业化新机会
- 2026日本人工智能市场现状供需格局评估及投资布局规划分析文档
- 2026功能性运动贴扎产品临床效果验证与市场教育策略
- 2026中国工业视觉检测算法优化方向研究
- 2026债券销交面试题及答案
- 2026招聘英语面试题目及答案
- 2026中通客车面试题目及答案
- 扣件清理活动方案
- 科技特派团内部管理制度
- JG/T 14-2010通风空调风口
- 2025年江苏省c类行测真题及答案解析
- 招商岗位测试题及答案
- 医院后勤管理与设备职责
- 家居与室内设计培训资料
- 周三多-管理学:原理与方法(第七版),第三章
- 高考英语复习读后续写练习 善举篇 改变家乡为无法使用操场的孩子们带来福音 课件
- 煤矿岗位作业流程标准化手册2021
- 液化石油气重大危险源事故专项应急救援预案
评论
0/150
提交评论