1目录一、系统设计:...............................................................................................错误!未定义书签。二、数据库设计:............................................................................................3三、系统实现:................................................................................................错误!未定义书签。四、心得体会:...................................................................................................202高校教材管理系统一.系统设计:1.1设计目标:高校教材管理系统设计目标是实现教材信息的动态管,包括教材的征订,入库和出库信息的添加,修改和删除;对于管理员,实现不同的管理员,有不同的权限。一般管理仅有查看信息和修改自己密码的权利。特殊管理员具有添加、删除用户和其它一切权力。1.2总体设计:根据系统设计目标,高校教材管理系统由以下4大模块组成,分别是:1.用户管理:实现对用户的增加,删除和用户修改密码;2.教材信息管理:包括对教材信息的添加,删除,修改和查看功能。3.库存管理:分为教材出库,入库和查看库存信息。1.3详细设计:(由于本人只实现教材信息管理,教材库存管理,登陆模块,别的模块不再包括在内)1.教材信息管理包括,添加教材信息,包括{教材编号、条形码、教材名称、ISBN、出版社、出版时间、定价、作者},可以修改以上信息。在查看教材信息时提供了多种查询方式:可按教材编号,教材名称,条形码,作者查询。还可以查看全部信息。2.教材库存信息管理高校教材管理系统教材信息管理教材库存管理登录添加教材信息修改教材信息查看教材信息教材入库管教材出库管查看库存信息系统功能模块图3包括,将新到的教材的信息录入到数据库中,包括入库单号、入库日期、教材编号、教材名称、单击、适合系别、入库数量、经手人},可以入库在教材信息管理进一步更新教材的详细信息。出库后更新库存信息。查看库存信息中也提供了多种查询方式:有教材编号,教材名称,条形码,作者,全部。3.登录主要是对系统管理员和身份进行验证,同时用管理的权限记录。二、数据库设计:3.1数据结构(本人实现,Booksinfo,Instockinfo,Instock,Outstock,User)Booksinfo(教材信息)={组成:{教材编号、条形码、教材名称、ISBN、出版社、出版时间、定价、作者、现有库存}}Instockinfo(入库信息)={组成:{教材编号、条形码、教材名称、ISBN、出版社、出版时间、定价、作者、适合系别、现有库存}}Instock(入库)={组成:{入库单号、入库日期、教材编号、教材名称、单击、适合系别、入库数量、经手人}}Outstock(出库)={组成:{出库单号、出库日期、教材编号、教材名称、适合系别、出库数量、单价、经手人}}Order(征订单)={组成:{征订单号、征订教材编号、征订教材名称、征订数量、单价、征订部门、征订日期、适合专业}}User(用户)={组成:{用户ID、密码、用户权限}}booksinfoinstockOutstock4InstockinfoUser3.2用户登录模块设计与实现设计思路:为了检验登录用户是否是一个合法用户,当用户输入用户名和密码后,需要查询数据库以便验证该用户是否为非法用户。实现功能:用户可以从登陆界面进入到教材信息管理系统界面,然后进行一些操作。三、系统实现(附效果图和主要代码)3.3.0databasepackageUI;importjava.sql.*;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.swing.JOptionPane;publicclassdatabase{staticConnectionconn=null;publicstaticvoidgetCommection(){try{Class.forName(org.gjt.mm.mysql.Driver);5conn=DriverManager.getConnection(jdbc:mysql://localhost/books,root,935216);}catch(Exceptione){}}publicstaticResultSetsqlExecut(Stringsql)throwsException{ResultSetresultSet=null;Statementst=conn.createStatement();resultSet=st.executeQuery(sql);returnresultSet;}publicstaticintupdateExecut(Stringsql){intnI=0;try{Statementst=conn.createStatement();nI=st.executeUpdate(sql);}catch(Exceptione){}returnnI;}publicstaticvoidclosConnection(){try{conn.close();}catch(Exceptione){}}}3.3.1LoginDimensionds=newDimension(249,320);6privateStringuserPower;publicvoiddenglu(){Stringpsw=null;booleanflag=false;if(jTextField1.getText()==null||jTextField1.getText().equals()){JOptionPane.showMessageDialog(this,请输入用户ID,提示,JOptionPane.OK_OPTION);}else{if(jField2.getText()==null||jField2.getText().equals()){JOptionPane.showMessageDialog(this,请输入密码,提示,JOptionPane.OK_OPTION);}else{database.getCommection();Stringsql=select密码,用户权限fromuserwhere用户ID='+jTextField1.getText().trim()+';try{ResultSetrs=database.sqlExecut(sql);while(rs.next()){flag=true;psw=rs.getString(密码);userPower=rs.getString(用户权限);System.out.println(userPower);}if(flag){if(jField2.getText().trim().equals(psw.trim())){MainFrame.loadFrame(userPower);this.dispose();}else{JOptionPane.showMessageDialog(this,密码错误,提示,JOptionPane.OK_OPTION);}}else{JOptionPane.showMessageDialog(this,无此用户,提示,JOptionPane.OK_OPTION);}}catch(Exceptionex){ex.printStackTrace();}}}}@OverridepublicvoidactionPerformed(ActionEvente){7if(e.getSource()==jButton1){denglu();}elseif(e.getSource()==jButton1){database.closConnection();System.exit(0);}}publicvoidkeyTyped(KeyEvente){}publicvoidkeyPressed(KeyEventke){intkey=ke.getKeyCode();if(key==KeyEvent.VK_ENTER){if(ke.getSource()==jTextField1){jField2.requestFocus(true);}if(jField2.getPassword().length0){denglu();}}elseif(key==KeyEvent.VK_ESCAPE){database.closConnection();System.exit(0);}}3.3.2MainFramepublicclassMainFrameextendsjavax.swing.JFrameimplementsActionListener{publicMainFrame(Strings){initComponents();8this.setVisible(true);this.setLocationRelativeTo(null);jMenuItem1.addActionListener(this);jMenuItem2.addActionListener(this);jMenuItem3.addActionListener(this);jMenuItem4.addActionListener(this);jMenuItem5.addActionListener(this);jMenuItem6.addActionListener(this);jMenuItem7.addActionListener(this);jMenuItem8.addActionListener(this);jMenuItem9.addActionListener(this);jMenuItem10.addActionListener(this);jMenuItem11.addActionListener(this);jMenuItem12.addActionListener(this);jMenuItem13.addActionListener(this);jMenu8.addActionListener(this);this.setBackground(Color.magenta);if(s.trim().equals(1)){jMenuItem1.setEnabled(false);jMenuItem2.setEnabled(false);jMenuItem3.setEnabled(false);jMenuItem4.setEnabled(false);jMenuItem5.setEnabled(false);jMenuItem6.setEnabled(false);jMenuItem8.setEnabled(false);jMenuItem9.setEnabled(false);}}publicstaticvoidloadFrame(Stringstr){newMainFrame(str);}//Variablesdeclaration-donotmodifyprivatejavax.swing.JLabeljLabel1;privatejavax.swing.JMenujMenu1;privatejavax.swing.JMenujMenu2;privatejavax.swing.JMenujMenu3;privatejavax.swing.JMenujMenu6;privatejavax.swing.JMenujMe