1、5分设计报告的规性符合规 根本符合规 规性较差优秀:90分100分 良好:80分89分 中等:7079分 及格:6069分 不及格0分59分 计算机科学与技术学院 课 程 设 计 报 告数据库系统原理专 业: 计算机 班 级: * 学 号: *姓 名: * 指导教师: * java学生成绩管理系统课程设计报告以及代码共享一、课程题目 设计一个简易的电子书店管理系统。用于记录书店书本的信息以供管理员管理。(1) 记录书本的根本信息,如编号、名称、类型、作者等(2) 记录各个读者的信息。(3) 实现一些管理的根本功能,如:书本信息的查询、插入新的书本信息、更改 以及删除书本信息等功能。(4) 能够
2、连接数据库,从中获取信息。二、题目分析与设计 1. 使用的开发环境。我使用的开发环境是Eclipse,数据库是mysql。 2. 根据课题画出数据流程图。电子书店管理,实现添加书本记录、修改书本记录,删除及更改记录的功能。3. 根据课题画出E-R图。 4. 数据库中各个表的构造。此次课题使用了三表: 图书表图书编号主码,图书名,类型,作者,数目,价格; 读者表读者编号主码,读者名,年龄,性别,地址; 订单表订单编号主码,图书编号,读者编号,数目,需付金额。 5. 界面设计过程和组件的布局策略。 由多个界面组成,通过点击界面的按钮来响应下一个事务,并对操作的 失误有友好的提醒界面功能。 6. 论
3、述程序逻辑的实现 用户输入数据后,整理数据,通过JDBC连接数据库进展各种操作。 三、测试分析 1. 登陆界面进入登陆界面输入用户名:何耀武 密码:1234 点击确定就可以进入主界 面然后根据自己的需要点击界面上的操作按钮,从而进入下一个界面来实 现要完成的操作主要代码如下:utton1.addActionListener(new ActionListener() /确定按钮所产生的事务publicvoid actionPerformed(ActionEvent e) try if(e.getSource()=utton1) String S1=*,S2=1234; if(jTextField
4、1.getText().equals(S1)&jPasswordField1.getText().equals(S2)/用户名密码比 dispose(); NewJFrame1 main_ui=new NewJFrame1(); main_ui.setVisible(true); else jLabel4.setText(你输入的密码或用户名有误,请再输入 );jLabel4.setVisible(true);jPasswordField1.setText(null);/输入错误提示 catch (Exception f) f.printStackTrace(); );utton1.addAc
5、tionListener(new ActionListener() /进入下个界面 dispose(); NewJFrame2 N2=new NewJFrame2(); N2.setVisible(true);/出现主界面 );utton3.addActionListener(new ActionListener() Override/ TODO Auto-generated method stubif(e.getSource()=utton3) dispose(); NewJFrame6 N6=new NewJFrame6(); N6.setVisible(true);2. 测试结果1查询书
6、本信息 进入查询界面后点击要查询的对象,然后在方框输入编号点击确 定按钮从而得到所要查询的信息。 主要查询代码:utton1.addActionListener(new ActionListener() String S=null;if(jRadioButton1.isSelected() jTextField2.setText(null);if(e.getSource()=utton1) S=jTextField1.getText(); String driver=.mysql.jdbc.Driver/驱动程序 String url = jdbc:mysql:/localhost:3306/
7、sellbook String user=root/登录名 String password=118157439/密码 Connection Conn = null;/l连接数据库try Class.forName(driver); Conn=DriverManager.getConnection(url,user,password); String query = select * from books where Bno=+S+ PreparedStatement ps=Conn.prepareStatement(query); ResultSet result = ps.executeQu
8、ery(); NewJFrame3 n3=new NewJFrame3();while (result.next() n3.jTextField1.setText(result.getString(Bno); n3.jTextField2.setText(result.getString(Bname n3.jTextField3.setText(result.getString(Btype n3.jTextField4.setText(result.getString(Bauthor n3.jTextField5.setText(result.getString(Bpricen3.jTextF
9、ield6.setText(result.getString(Bnumber /查询所得数据if(n3.jTextField1.getText().length()=0) IOS_ron N1=new IOS_ron(null); N1.setVisible(true); /查询编号不在,计算机报错/dispose(); n3.setVisible(true); Conn.close();catch(SQLException f) /JOptionPane.showMessageDialog(null, 输入有误); f.printStackTrace();catch(Exception g)
10、 g.printStackTrace();if(jRadioButton2.isSelected()/点击第二个按钮的操作实现jTextField1.setText(null); S=jTextField2.getText();528157439 Class.forName(driver);/驱动加载 Conn=DriverManager.getConnection(url,user,password); String query = select * from orders where Ono= PreparedStatement ps=Conn.prepareStatement(query
11、); ResultSet result = ps.executeQuery(); NewJFrame4 n4=new NewJFrame4();/选择数据 n4.jTextField1.setText(result.getString(Ono n4.jTextField2.setText(result.getString( n4.jTextField3.setText(result.getString(Rno n4.jTextField4.setText(result.getString(Onumber n4.jTextField5.setText(result.getString(Opay
12、/查询所得数据if(n4.jTextField1.getText().length()=0) /报错处理 n4.setVisible(true); JOptionPane.showMessageDialog(null, catch (Exception f) f.printStackTrace(); ); 2插入书本信息 点击插入按钮进入插入界面,向对话框中输入信息,如: 009 大学音乐 音乐 30 红 10 将这一组数据插入表中,然后点击确定按钮,会弹出对话框插入成功, 说明数据插入成功。 主要插入代码:utton2.addActionListener(new ActionListener
13、() if(jTextField1.getText().length()=0)jLabel8.setText(编号不能为空/判断插入编号不能为空jLabel8.setVisible(true);if(jTextField1.getText().length()!=0)/连接数据库 Class.forName(driver);/加载驱动Conn=DriverManager.getConnection(url,user,password);insert into books values(,) /连接数据库,向其中插入数据 PreparedStatement ps=Conn.prepareStat
14、ement(query); ps.setString(1, jTextField1.getText(); ps.setString(2, jTextField2.getText(); ps.setString(3, jTextField3.getText(); ps.setString(4, jTextField4.getText(); ps.setString(5, jTextField5.getText(); ps.setString(6, jTextField6.getText(); ps.executeUpdate();/插入成功 Conn.close();/关闭连接 catch(Cl
15、assNotFoundException f) System.out.println(f.getMessage();catch(SQLException g) System.out.println(g.getMessage(); add_suc a=new add_suc(null); a.setVisible(true); (3)修改书本信息 在主界面点击要修改图书信息,输入要修改的图书信息,进入图书修改界面, 在对话框中修改所要修改的信息,如: 价格:由30修改为46,数目:由10修改为4. 之后点击确定按钮,弹出对话框更改成功,即完成更改。 修改代码为:/用户名 Conn=DriverM
16、anager.getConnection(url,user,password); String query = delete from books where Bno=+jTextField1.getText()+ ps.executeUpdate(); String query1 = /插入 PreparedStatement ps2=Conn.prepareStatement(query1); ps2.setString(1, jTextField1.getText(); ps2.setString(2, jTextField2.getText(); ps2.setString(3, jT
17、extField3.getText(); ps2.setString(4, jTextField5.getText(); ps2.setString(5, jTextField4.getText(); ps2.setString(6, jTextField6.getText(); ps2.executeUpdate();/更改成功 alter_suc a=new alter_suc(null);/弹出更改成功窗口 (4)删除图书信息 进入删除图书界面,输入图书编号,点击确定按钮,当弹出删除成功 对话窗口,即成功删除,这样实现删除要删除的图书信息。 删除代码为: String S=jTextFi
18、eld1.getText(); String driver= String url = String user= String password= Connection Conn = null; Conn=DriverManager.getConnection(url,user,password); /删除图书信息 ps.executeUpdate();/删除成功 delete_suc d=new delete_suc(null); d.setVisible(true);/弹出删除成功的对话框 catch(ClassNotFoundException f) System.out.println(Message=+f.getMessage(); );四、总结缺乏之处: 1对于这个课题的实践,界面做的过多,应该设计为一个界面上完成各个操 作,弹出窗口过多,不易观察,过于复杂。 2所做的操作由于技术有限,能够实现的功能太少,要加强软件的实用性, 操作不能太单一。 3程序写的不是很完善,存在许多漏洞,需要通过以后的学习不断的加一 稳固和改善。可取之处: 1根本上完成了题目的要求,实现了查询,插入,更新,删除数据的操作, 可以满足要求。 2完成了对数据完整性约束的要求,但用户输入错误时会有一个比拟好的的 弹出框提醒用户,比拟人性化。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1