版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
需求分析本软件是教材管理系统,主要完成管理员对教材的管理,如信息录入,查询等,功能如下所示;软件设计的目的是方便管理员对教材信息的管理,便于学校等机构使用。完成教材管理系统的设计与实现,主要包括以下基本内容:1)教材信息的录入;2)教材信息的查询;3)教材的入库和出库;4)教材库存查询;5)各项统计工作及打印;6)完成程序的最终调试,必须能正常运行。总体设计教材管理系统教材管理系统教材入库教材出库教材查询教材概览教材入库部分通过输入教材详细信息将教材入库,教材出库部分通过教材号删除其信息,教材查询通过其教材号查询,教材该来输出全部教材详细信息。数据库设计本软件设计一个表,名为Book.表book字段名称数据类型教材名文本教材号文本(主键)价格文本作者文本出版社文本入库时间文本3.详细设计1)登陆界面设计mportjava.awt.event.*;importjavax.swing.*;importjava.awt.*;importjava.awt.Container;importjava.util.*;importjava.sql.*;classLoginextendsJFrameimplementsActionListener {Containercp=null;JFramef=null;JButtonj1,j2;JTextFieldt1;JPasswordFieldt2;JLabeljlable1,jlable2;Colorc;JPaneljp1,jp2;Login(){ f=newJFrame("教材管理系统"); j1=newJButton("确定"); j2=newJButton("取消"); cp=f.getContentPane(); jlable1=newJLabel("输入用户名"); jlable2=newJLabel("用户密码"); jp1=newJPanel(); jp2=newJPanel(); t1=newJTextField(18); JButtongaiMima=newJButton("打印"); JMenuBarmb=newJMenuBar();//菜单栏 JPaneljp=newJPanel();//用来填放子模块 Containercp=getContentPane();String username; Book(){}Book(Stringusername) {this.username=username; mb.add(QueryScore); mb.add(QueryXuefen); mb.add(jiangfa); mb.add(xuanke); mb.add(gaiMima);cp.add(mb,"North"); //设置边框 jp.setBorder(BorderFactory.createTitledBorder(BorderFactory .createLineBorder(Color.blue,2),null, TitledBorder.CENTER,TitledBorder.TOP)); jp.setLayout(newBorderLayout());JLabellabel1=newJLabel(newImageIcon("4.jpg")); jp.add(label1);/*JLabelJL=newJLabel("<html><fontcolor=#CC00FFsize='7'><i>欢迎登陆</i></font>",SwingConstants.CENTER); jp.add(JL,"North");*/ JLabellabel2=newJLabel(newImageIcon("2.jpg")); //jp.add(label2,"South"); JScrollPanescrollpane=newJScrollPane(jp); cp.add(scrollpane); setTitle("欢迎登陆");Toolkitkit=Toolkit.getDefaultToolkit(); Dimensionscreen=kit.getScreenSize(); intx=screen.width; /*取得显示器窗口的宽度*/ inty=screen.height; /*取得显示器窗口的高度*/ //setSize(x,y);/*让系统窗口平铺整个显示器窗口*/setSize(600,600); intxcenter=(x-600)/2; intycenter=(y-600)/2; setLocation(xcenter,ycenter);/*显示在窗口中央*/ setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //注册临听器 QueryScore.addActionListener(this); QueryXuefen.addActionListener(this); jiangfa.addActionListener(this); xuanke.addActionListener(this);} publicvoidactionPerformed(ActionEvente) {Stringcmd=e.getActionCommand(); if(cmd.equals("教材查询")) {newQueryBook(); } if(cmd.equals("教材入库")) {newBookIn(); } if(cmd.equals("教材删除")) {newRemoveBook(); } if(cmd.equals("教材概览")) {newBookBrower().showRecord(); }}publicstaticvoidmain(String[]args) {newBook(""); }}教材概览模块,提供库中教材总体情况查询。BookBrower.javaimportjava.awt.event.*;importjavax.swing.*;importjava.awt.*;importjava.awt.Container;importjava.util.*;importjava.sql.*;classBookBrowerimplementsActionListener{JFramef; Containercp; JPaneljpS,jpanelWest; JButtonjbt1,jbt2;//按钮,查询、取消、修改 JLabellabel,L; //标签 //定义文本框 JTabletable;//用来接收数据库中返回的信息ObjectcolumnName[]={"教材名","教材号","单价","作者","出版社","入库时间"};Objectar[][]=newObject[80][6]; Stringsno; Stringcount="xx";BookBrower(){f=newJFrame(); cp=f.getContentPane();//初始化面板、按钮、标签、文本框 jpS=newJPanel();jpanelWest=newJPanel(); //------------------------------------------------ jbt1=newJButton("确定"); jbt2=newJButton("返回");//------------------------------------------------ label=newJLabel("<html><fontcolor=#CC00FFsize='4'>教材概览</font>",SwingConstants.CENTER); label.setForeground(Color.blue); L=newJLabel("书库现在共有教材"+count+"本"); //------------------------------------------------table=newJTable(ar,columnName);//ar存放表中的数据,columnname表示列名 JScrollPanescrollpane=newJScrollPane(table);//------------------------------------------------ //布局,添加控件 jpS.add(jbt1); jpS.add(jbt2); JPaneljpanel=newJPanel(); jpanel.add(label); JPanelpp4=newJPanel();JPaneljpE=newJPanel(); cp.add(jpanel,"North"); JPaneljp=newJPanel(); //jp.add(scrollpane); JPanelp=newJPanel();//用来放两个表 p.setLayout(newBorderLayout()); p.add(L,"North"); p.add(scrollpane);cp.add(pp4,"West"); cp.add(p,"Center");cp.add(jpS,"South"); cp.add(jpE,"East"); //------------------------------------------------Toolkitkit=Toolkit.getDefaultToolkit(); Dimensionscreen=kit.getScreenSize(); intx=screen.width; /*取得显示器窗口的宽度*/ inty=screen.height; /*取得显示器窗口的高度*/ f.setSize(400,330); intxcenter=(x-350)/2; intycenter=(y-330)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/*f.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } } );*/ } //------------------------------------------------ inti=0;publicvoidshowRecord() {try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!");} try{Stringurl="jdbc:odbc:jf";//直接使用当前类目录下的数据库文件 Connectioncon=DriverManager.getConnection(url); Strings="select*frombook";Statementsql=con.createStatement(); ResultSetrs=sql.executeQuery(s); while(rs.next()) {Stringbname=rs.getString(1); Stringbno=rs.getString(2); Stringprice=rs.getString(3); Stringwriter=rs.getString(4); Stringpublish=rs.getString(5); Stringindate=rs.getString(6); ar[i][0]=bname; ar[i][1]=bno; ar[i][2]=price; ar[i][3]=writer; ar[i][4]=publish; ar[i][5]=indate; i++; } count=""+i+""; L.setText("书库现在共有教材"+count+"本"); f.repaint(); con.close();}catch(SQLExceptiong) {System.out.println("ECode"+g.getErrorCode()); System.out.println("EM"+g.getMessage()); } }publicvoidactionPerformed(ActionEvente) {Stringcmd=e.getActionCommand(); if(cmd.equals("确定")) {f.hide(); } if(cmd.equals("返回")) f.hide(); }}教材入库模块,将教材及其相关信息入库。BookIn.javaimportjava.awt.event.*;importjavax.swing.*;importjava.awt.*;importjava.awt.Container;importjava.util.*;importjava.sql.*;importjavax.swing.text.JTextComponent;//extendsJFrameclassBookInimplementsActionListener{JFramef3; Containercp; JPaneljp1,jp2,jp3,jp4,jp,jpanelWest; JButtonjbt1,jbt2;//按钮:确定、取消、 JLabellabel; //标签 JTextFieldtf1,tf2,tf3,tf4,tf5,tf6;//定义文本框 JLabellabel1,label2,label3,label4; Stringsno;BookIn(){f3=newJFrame(); cp=f3.getContentPane();//初始化面板、按钮、标签、文本框 jp1=newJPanel(); jp2=newJPanel(); jp3=newJPanel(); jp4=newJPanel(); jpanelWest=newJPanel(); jp=newJPanel(); //------------------------------------------------ jbt1=newJButton("确定"); jbt2=newJButton("取消"); //------------------------------------------------ label=newJLabel("教材入库"); label.setForeground(Color.blue); //------------------------------------------------ tf1=newJTextField(20); tf2=newJTextField(20); tf3=newJTextField(20); tf4=newJTextField(20); tf5=newJTextField(20);tf6=newJTextField(20); //------------------------------------------------ //布局,添加控件 jp1.add(jbt1); jp1.add(jbt2); sno=tf4.getText(); jp1.add(newJLabel("您好"+sno+"欢迎登陆教材信息系统")); JPaneljpanel=newJPanel(); jpanel.add(label); JPanelpp4=newJPanel();JPaneljpane4=newJPanel(); cp.add(jpanel,"North"); JPanelpp2=newJPanel(newGridLayout(6,1)); JPanelpp3=newJPanel(); pp4.setLayout(newGridLayout(6,1)); pp4.add(newJLabel("教材名",SwingConstants.CENTER)); pp2.add(tf1); pp4.add(newJLabel("教材号",SwingConstants.CENTER)); pp2.add(tf2); pp4.add(newJLabel("单价",SwingConstants.CENTER)); pp2.add(tf3); pp4.add(newJLabel("作者",SwingConstants.CENTER)); pp2.add(tf4); pp4.add(newJLabel("出版社",SwingConstants.CENTER)); pp2.add(tf5); pp4.add(newJLabel("入库时间",SwingConstants.CENTER)); pp2.add(tf6); pp3.add(jbt1);pp3.add(jbt2);cp.add(pp4,"West"); cp.add(pp2,"Center");cp.add(pp3,"South"); cp.add(jpane4,"East"); //------------------------------------------------Toolkitkit=Toolkit.getDefaultToolkit(); Dimensionscreen=kit.getScreenSize(); intx=screen.width; /*取得显示器窗口的宽度*/ inty=screen.height; /*取得显示器窗口的高度*/ f3.setSize(350,330); intxcenter=(x-350)/2; intycenter=(y-330)/2; f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f3.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/*f3.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } } );*/ } //------------------------------------------------publicvoidinsertRecord() {if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")|| tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals("")) { JOptionPane.showMessageDialog(f3,"请填写教材资料"); return; }try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!");} try{Stringurl="jdbc:odbc:jf";//直接使用当前类目录下的数据库文件 Connectioncon=DriverManager.getConnection(url); Statementsql=con.createStatement(); Strings="insertintobookvalues('"+tf1.getText()+"','"+tf2.getText()+"','"+ tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"');"; sql.executeUpdate(s); label.setText("插入成功");}catch(SQLExceptiong) { label.setText("有重复的教材号"); System.out.println("ECode"+g.getErrorCode()); System.out.println("EM"+g.getMessage()); }} publicvoidactionPerformed(ActionEvente) {Stringcmd=e.getActionCommand(); if(cmd.equals("确定")) {insertRecord(); } elseif(cmd.equals("取消")) f3.hide(); }}教材查询模块,提供教材按一定的需求查询。QueryBook.javaimportjava.awt.event.*;importjavax.swing.*;importjava.awt.*;importjava.awt.Container;importjava.util.*;importjava.sql.*;classQueryBookimplementsActionListener{JFramef3; Containercp; JPaneljp1,jp2,jp3,jp4,jp,jpanelWest; JButtonjbt1,jbt2;//按钮,确定、取消 JLabellabel; //标签:请输入图书号 JTextFieldtf,tf1,tf2,tf3,tf4,tf5,tf6;//定义文本框 JLabellabel1,label2,label3,label4; QueryBook(){f3=newJFrame(); cp=f3.getContentPane();//初始化面板、按钮、标签、文本框 jp1=newJPanel(); jp2=newJPanel(); jp3=newJPanel(); jp4=newJPanel(); jpanelWest=newJPanel(); jp=newJPanel(); //------------------------------------------------ jbt1=newJButton("确定"); jbt2=newJButton("取消"); //------------------------------------------------ label=newJLabel("<html><fontcolor=#CC00FFsize='4'>请输入教材号:</font>",SwingConstants.CENTER); label.setForeground(Color.blue); tf=newJTextField(20);//------------------------------------------------ tf1=newJTextField(20); tf2=newJTextField(20); tf3=newJTextField(20); tf4=newJTextField(20); tf5=newJTextField(20);tf6=newJTextField(20); //------------------------------------------------ //布局,添加控件 JPaneljpanel=newJPanel(); jpanel.add(label); jpanel.add(tf); JPanelpp4=newJPanel();JPaneljpane4=newJPanel(); cp.add(jpanel,"North"); JPanelpp2=newJPanel(newGridLayout(6,1)); JPanelpp3=newJPanel(); pp4.setLayout(newGridLayout(6,1)); pp4.add(newJLabel("教材名",SwingConstants.CENTER)); pp2.add(tf1); pp4.add(newJLabel("教材号",SwingConstants.CENTER)); pp2.add(tf2); pp4.add(newJLabel("单价",SwingConstants.CENTER)); pp2.add(tf3); pp4.add(newJLabel("作者",SwingConstants.CENTER)); pp2.add(tf4); pp4.add(newJLabel("出版社",SwingConstants.CENTER)); pp2.add(tf5); pp4.add(newJLabel("入库时间",SwingConstants.CENTER)); pp2.add(tf6); pp3.add(jbt1);pp3.add(jbt2);cp.add(pp4,"West"); cp.add(pp2,"Center");cp.add(pp3,"South"); cp.add(jpane4,"East"); //------------------------------------------------Toolkitkit=Toolkit.getDefaultToolkit(); Dimensionscreen=kit.getScreenSize(); intx=screen.width; /*取得显示器窗口的宽度*/ inty=screen.height; /*取得显示器窗口的高度*/ f3.setSize(350,330); intxcenter=(x-350)/2; intycenter=(y-330)/2; f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f3.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/*f3.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } } );*/ } //------------------------------------------------publicvoidshowRecord() {try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!");} try{Stringurl="jdbc:odbc:jf";//直接使用当前类目录下的数据库文件 Connectioncon=DriverManager.getConnection(url); Statementsql; Stringql=tf.getText().trim(); Strings="select*frombookwhere教材号='"+ql+"'";sql=con.createStatement(); ResultSetrs=sql.executeQuery(s); if(rs.next()) {Stringbname=rs.getString(1); Stringbno=rs.getString(2); Stringprice=rs.getString(3); Stringwriter=rs.getString(4); Stringpublish=rs.getString(5); Stringindate=rs.getString(6); tf1.setText(bname); tf2.setText(bno); tf3.setText(price); tf4.setText(writer); tf5.setText(publish); tf6.setText(indate); }else {JOptionPane.showMessageDialog(null,"您输入的教材号不存在,请重新输入", "输入错误",JOptionPane.YES_NO_OPTION); } con.close();}catch(SQLExceptiong) {System.out.println("ECode"+g.getErrorCode()); System.out.println("EM"+g.getMessage()); }tf1.setEditable(false); tf2.setEditable(false); tf3.setEditable(false); tf4.setEditable(false); tf5.setEditable(false); tf6.setEditable(false);} publicvoidactionPerformed(ActionEvente) {Stringcmd=e.getActionCommand(); if(cmd.equals("确定")) {showRecord(); tf.setText(""); } elseif(cmd.equals("取消")) f3.hide(); }}教材删除模块,先经过查询选定教材查询的范围,再选中要删除的教材进行删除。RemoveBook.javaimportjava.awt.event.*;importjavax.swing.*;importjava.awt.*;importjava.awt.Container;importjava.util.*;importjava.sql.*;classRemoveBookimplementsActionListener{JFramef; Containercp; JPaneljpS,jpanelWest; JButtonjbt1,jbt2,jbt3;//按钮,查询、取消、修改 JLabellabel,L; //标签:请输入学号 JTextFieldtf;//定义文本框 JTabletable;//用来接收数据库中返回的信息ObjectcolumnName[]={"教材名","教材号","单价","作者","出版社","入库时间"};Objectar[][]=newObject[80][6]; Stringsno; Stringcount="xx"; RemoveBook(){f=newJFrame(); cp=f.getContentPane();//初始化面板、按钮、标签、文本框 jpS=newJPanel();jpanelWest=newJPanel(); //------------------------------------------------ jbt1=newJButton("查询"); jbt2=newJButton("取消");jbt3=newJButton("删除");//------------------------------------------------ label=newJLabel("<html><fontcolor=#CC00FFsize='4'>请输入要删除的教材名:</font>",SwingConstants.CENTER); label.setForeground(Color.blue); L=newJLabel("该种教材共有"+count+"本"); //------------------------------------------------table=newJTable(ar,columnName);//ar存放表中的数据,columnname表示列名 JScrollPanescrollpane=newJScrollPane(table);//------------------------------------------------ tf=newJTextField(18);//------------------------------------------------ //------------------------------------------------ //布局,添加控件 jpS.add(jbt1); jpS.add(jbt2); jpS.add(jbt3); JPaneljpanel=newJPanel(); jpanel.add(label); jpanel.add(tf); JPanelpp4=newJPanel();JPaneljpE=newJPanel(); cp.add(jpanel,"North"); JPaneljp=newJPanel(); //jp.add(scrollpane); JPanelp=newJPanel();//用来放两个表 p.setLayout(newBorderLayout()); p.add(L,"North"); p.add(scrollpane);cp.add(pp4,"West"); cp.add(p,"Center");cp.add(jpS,"South"); cp.add(jpE,"East"); //------------------------------------------------Toolkitkit=Toolkit.getDefaultToolkit(); Dimensionscreen=kit.getScreenSize(); intx=screen.width; /*取得显示器窗口的宽度*/ inty=screen.height; /*取得显示器窗口的高度*/ f.setSize(400,330); intxcenter=(x-350)/2; intycenter=(y-330)/2; f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);jbt3.addActionListener(this);/*f.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } } );*/ } //------------------------------------------------ inti=0;publicvoidshowRecord(Stringql) {while(i>=0) { ar[i][0]=""; ar[i][1]=""; ar[i][2]=""; ar[i][3]=""; ar[i][4]=""; ar[i][5]=""; i--; } i=0;try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!");} try{Stringurl="jdbc:odbc:jf";//直接使用当前类目录下的数据库文件 Connectioncon=DriverManager.getConnection(url); Statementsql; Strings="select*frombookwhere教材名='"+ql+"'";sql=con.createStatement(); ResultSetrs=sql.executeQuery(s); while(rs.next()) {Stringbname=rs.getString(1); Stringbno=rs.getString(2); Stringprice=rs.getString(3); Stringwriter=rs.getString(4); Stringpublish=rs.getString(5); Stringindate=rs.getString(6); ar[i][0]=bname; ar[i][1]=bno; ar[i][2]=price; ar[i][3]=writer; ar[i][4]=publish; ar[i][5]=indate; i++; } count=""+i+""; L.setText("该种教材共有"+count+"本"); f.repaint(); con.close();System.out.println(ar[0][1]);}catch(SQLExceptiong) {System.out.println("ECode"+g.getErrorCode()); System.out.println("EM"+g.getMessage()); }} publicvoiddeleteRecord(intindex) {try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!");} try{Stringurl="jdbc:odbc:jf";//直接使用当前类目录下的数据库文件 Connectioncon=DriverManager.getConnection(url); Statementsql; Stringql=(String)(ar[index][1]); Strings="deletefrombookwhere教材号='"+ql+"'";sql=con.createStatement(); intdel=sql.executeUpdate(s); if(del==1) {JOptionPane.showMessageDialog(null,"删除成功!", "信息",JOptionPane.YES_NO_OPTION); } con.close()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南文理学院《跨平台软件开发技术》2021-2022学年第一学期期末试卷
- 我的家课件教学课件
- 度法治建设工作总结和度工作计划
- 2024至2030年中国熔接机配套电池行业投资前景及策略咨询研究报告
- 叶天士《温热论》课件
- 2024至2030年镗制动鼓/蹄片机项目投资价值分析报告
- 2024至2030年中国橡胶隔振垫行业投资前景及策略咨询研究报告
- 2024至2030年红外线陶瓷片项目投资价值分析报告
- 2024至2030年税控加油机液晶显示器项目投资价值分析报告
- 2024至2030年海钓抄网项目投资价值分析报告
- 施工项目劳务管理及劳动用工检查记录表
- 国培教师个人成长案例3000字
- 职业健康知识培训考试题及答案
- 硬质合金物理性能检测
- 孔隙率自动计算表格
- ESD静电防护检测及管控标准
- 合格证、出厂检验报告、出厂质量证明资料粘贴表
- 高压电机检修工艺课件
- 非遗文化介绍推广课件
- 德汉翻译入门-中国海洋大学中国大学mooc课后章节答案期末考试题库2023年
- 唐代服饰专题研究-以胡汉服饰文化交融为中心的开题报告
评论
0/150
提交评论