1、学校教材管理系统任务书一 设计目的通过课程设计,使学生能进一步巩固课堂上所学的知识,深刻把握Java技术的重要概念及其面向对象的特性,掌握软件开发的基本流程,锻炼学生应用面向对象的思想和设计方法解决实际问题的能力,培养学生合作精神和技术文档撰写能力。 二 设计内容(1)题目分析,查找资料和总体设计。(2)详细设计、代码编制、程序调试。系统功能要求如下: 具有用户管理和登录功能 具有教材信息的录入功能 具有数据查询、删除、修改功能 具有输出功能 具有统计功能(3)结果分析、完成课程设计说明书。三 设计要求(1)只能使用Java语言,采用面向对象方法进行设计,要求使用结构体数组或链表编写程序,源程
2、序要有适当的注释,是程序容易阅读。(2)程序的界面、逻辑功能和数据的存储尽可能的分开,至少采用文本菜单界面(如果能采用图形菜单界面更好)。(3)学生可根据自身情况酌情增加新功能(视情况可另外加分)。(4)独立完成课程设计,并完成课程设计报告,报告应记录设计的过程,尤其是分析/设计/实现过程中的决策。四 设计过程 1 任务解析结构设计:确定系统由哪些模块组成,以及这些模块之间的相互关系。过程设计:确定每个模块的处理过程。其中,结构设计是总体设计阶段的任务,而过程设计则是详细设计阶段的任务。2 程序结构分析新教材录入功能介绍 此模块的功能是注册新教材的基本信息,以供之后的教材出入库等其他功能所用。
3、用数据库的book表记录信息。其中的基本信息为教材编号、教材名称、教材作者、出版社、教材单价、出版时间和库存量。 系统功能总框图 3 数据结构分析Book_list表中保存的是教材出入库情况,包括:编号、教材编号、教材名称、出库/入库、出库/入库时间和数量。如表3.3。表3.3 教材信息表字段名称数据类型长 度备 注id文 本10编号Book_id文 本20教材编号Book_name文 本20教材名称In_out文 本20出库/入库Inout_date文 本15出库/入库时间amount文 本50数量4 功能实现教材出/入库登记功能实现此模块的具体功能是登记教材的出/入库情况,登记的内容有教材
4、的名称、教材的编号和数量,并可选择出库还是入库操作教材信息管理功能实现此模块的功能是管理教材的基本信息,根据数据库book表中教材的名称,查询出此教材的基本信息,包括:教材作者、出版社、教材单价、出版时间和库存量。可选择修改这几项的信息,或者直接删除此教材的所有信息。运行界面如图4.10所示。5 系统测试 主界面功能实现系统主界面五 设计总结在大家的努力下,终于完成了这次的课程设计。通过这次的课程设计,让我充分体会到团队合作的重要性,也让我对教务管理系统的制作有了更扎实的掌握。在这次的设计过程中,虽然遇到了一些问题,但经过一次一次的思考,一遍一遍的检查终于找出了原因所在,也暴露出了以前在这方面
5、的不足之处。实践出真理,通过亲手制作,使我掌握的知识不再是纸上谈兵。参考文献1 黄明,梁旭编著.Delphi信息系统设计实例.北京:机械工业出版社.2005年3月第二版2 耿祥义.JAVA2 实用教程.北京:清华大学出版社,20063 朱仲杰.JAVA2 全方位学习.北京:机械工业出版社,2006 4 张思民.JAVA程序设计实践教程.北京:清华大学出版社,20065 汤一平.Java 语言程序设计.北京:科学出版社,20066 刘艺.Java 程序设计大学教程. 北京:机械工业出版社,20067 耿祥义.Java课程设计.北京:清华大学出版社,20038 Sharon Zakhour. Ja
6、va教程. 北京:人民邮电出版社,2007附录package com.Jiaocai.condb;import java.sql.*;/* * * author Administrator */public class GetStatement /数据库连接功能 public GetStatement() private Connection conn; private Statement st; public Statement return_statement() throws ClassNotFoundException, SQLException Class.forName(com.m
7、ysql.jdbc.Driver);/加载驱动 conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/jiaocai, root, 123);/获取连接 st = conn.createStatement();/创建语句对象 return st; public void close_all() throws SQLException st.close(); conn.close(); public class Apply extends javax.swing.JFrame /系统登录功能 public Apply() in
8、itComponents(); /* This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ SuppressWarnings(unchecked) / private void initComponents() jPanel1 = new javax.swing.JPanel();
9、 jTextField1 = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jPasswordField1 = new javax.swing.JPasswordField(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT
10、_ON_CLOSE); setTitle(教材管理系统); setLocationByPlatform(true); setResizable(false); jLabel1.setFont(new java.awt.Font(宋体, 0, 36); jLabel1.setText(教材管理系统登录); jLabel2.setFont(new java.awt.Font(宋体, 0, 14); jLabel2.setText(用户名:); jLabel3.setFont(new java.awt.Font(宋体, 0, 14); jLabel3.setText(密 码:); jButton1.
11、setText(登 陆); jButton1.addMouseListener(new java.awt.event.MouseAdapter() public void mouseClicked(java.awt.event.MouseEvent evt) ad_denglu(evt); ); public class MainJieMian extends javax.swing.JFrame /主界面功能 Integer DJ; String YName; /* Creates new form MainJieMian */ public MainJieMian(Integer dj,S
12、tring yname) initComponents(); DJ=dj; YName=yname; if(dj!=2) jMenuItem1.setEnabled(false); jMenuItem9.setEnabled(false); jMenuItem2.setEnabled(false); /* This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * al
13、ways regenerated by the Form Editor. */ SuppressWarnings(unchecked) / private void initComponents() setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle(教材管理系统); setLocationByPlatform(true); setResizable(false); jLabel1.setFont(new java.awt.Font(宋体, 0, 36); jLabel1.setText(欢
14、迎使用教材管理系统); jMenu1.setText(系统管理); jMenuItem1.setText(添加用户); jMenuItem1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) addAmin(evt); ); jMenu1.add(jMenuItem1); jMenuItem9.setText(查询用户); jMenuItem9.addActionListener(new java.awt.event.
15、ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) selectAdmin(evt); ); jMenu1.add(jMenuItem9); jMenuItem2.setText(修改/删除用户); jMenuItem2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) updateAdmin(evt); ); jMe
16、nu1.add(jMenuItem2); jMenuItem11.setText(修改密码); jMenuItem11.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) xiugaimima(evt); ); jMenu1.add(jMenuItem11); jMenuItem3.setText(退出系统); jMenuItem3.addActionListener(new java.awt.event.ActionL
17、istener() public void actionPerformed(java.awt.event.ActionEvent evt) tuichu(evt); ); jMenu1.add(jMenuItem3); jMenuBar1.add(jMenu1); jMenu2.setText(教材管理); jMenuItem8.setText(添加新教材信息); jMenuItem8.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEv
18、ent evt) addJcInfo(evt); ); jMenu2.add(jMenuItem8); jMenuItem10.setText(查询教材信息); jMenuItem10.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) selectJcInf(evt); ); jMenu2.add(jMenuItem10); jMenuItem7.setText(修改/删除教材信息); jMenuItem7.addAc
19、tionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) updateJcInf(evt); ); jMenu2.add(jMenuItem7); jMenuBar1.add(jMenu2); jMenu5.setText(库存管理); jMenuItem6.setText(教材出/入库登记); jMenuItem6.addActionListener(new java.awt.event.ActionListener() public
20、 void actionPerformed(java.awt.event.ActionEvent evt) kucunInsert(evt); ); jMenu5.add(jMenuItem6); jMenuItem4.setText(教材出/入库查询); jMenuItem4.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) kucunJlselect(evt); ); jMenu5.add(jMenuItem4);
21、 jMenuItem5.setText(教材库存查询); jMenuItem5.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) kucunliang(evt); public class AddAdim extends javax.swing.JPanel /用户管理功能 /* Creates new form AddAdim */ public AddAdim() initComponents(); /* This
22、 method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ SuppressWarnings(unchecked) / private void initComponents() private void add_Admin(java.awt.event.ActionEvent evt) / 添
23、加管理员 if(jTextField1.getText().length()=0|jPasswordField1.getPassword().length=0|jPasswordField2.getPassword().length=0|jTextField2.getText().length()=0)javax.swing.JOptionPane.showMessageDialog(this, 资料不全,请完善资料, 错误, javax.swing.JOptionPane.ERROR_MESSAGE); else String name=; String pw=; String pwa=;
24、Integer yonghu; name=jTextField1.getText(); pw=String.valueOf(jPasswordField1.getPassword(); pwa=String.valueOf(jPasswordField2.getPassword(); yonghu=Integer.valueOf(jTextField2.getText();private void initComponents() /教材库存查询功能 jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(查询教材信息);
25、jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object , new String ); jScrollPane1.setViewportView(jTable1); jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(查询条件); jButton1.setText(查 询); jButton1.addMouseListener(new java.awt.event.MouseAdapter() public void mouseClicke
26、d(java.awt.event.MouseEvent evt) select_jcinf(evt); ); jLabel1.setText(教材编号:); jLabel2.setText(教材名称:); jLabel3.setText(出版社:); jLabel4.setText(作 者:); private void select_jcinf(java.awt.event.MouseEvent evt) / TODO add your handling code here: String shuhao=jTextField1.getText(); String name=jTextFiel
27、d2.getText(); String au=jTextField4.getText(); String pub=jTextField3.getText(); Select_JcInf sa=new Select_JcInf(); ResultSet rs; try rs=sa.returnResult(shuhao,name,au,pub); DefaultTableModel dtm; Object ob=; String st=书号,书名,作者,出版社,单价,出版时间,库存量; dtm=new DefaultTableModel(ob,st); for(;rs.next();) Obj
28、ect data=rs.getString(book_id),rs.getString(book_name),rs.getString(author),rs.getString(publisher),rs.getString(price),rs.getString(publish_date),rs.getString(quantity); dtm.addRow(data) rs.close(); jTable1.setModel(dtm); jTextField1.setText(); jTextField2.setText(); jTextField3.setText(); jTextFie
29、ld4.setText(); catch(Exception e) e.printStackTrace(); public class KucunJlselect extends javax.swing.JPanel /教材出/入库查询功能 /* Creates new form KucunJlselect */ public KucunJlselect() initComponents(); private void initComponents() jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(教材出入库记录查询); jTable1.setModel(new javax.swing.table.Defa