




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实 习 报 告课程名称 JAVA课程设计 专业班级 姓 名 学 号 电气与信息学院和谐 勤奋 求是 创新一、 课程设计目的1、综合运用Java程序设计课程和其他先修课程的理论和知识,掌握面向对象程序设计的一般方法、常用技术及技巧,树立良好的软件设计思想,培养分析问题和解决实际问题的能力;2、学会从OOP程序设计的方法及要求出发,认真分析题目,做好总体设计,根据要求科学地设计相关类及方法等,正确设计算法,合理安排界面,规范开发过程,仔细调试程序,做好设计总结。3、充分利用互联网资源,提高学生获取知识,研究知识,实践知识的能力二、课程设计内容 基于数据库的管理信息系统设计及实现如:学籍管理系统;成绩管理系统;图书管理系统;学生就业信息管理系统等。 主要设计内容:根据题目需求设计数据库,软件应具备如下功能点:主界面管理;信息的录入/增加;删除;修改;查找;统计等。三、课程设计要求 按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。四、需求分析图书管理系统需要满足两方面的需求,这两方面分别是图书借阅者、图书管理员。图书借阅者的需求是查询图书馆所存的图书、个人借阅情况。图书管理员的功能最复杂,包括对图书借阅者、图书进行管理和维护,及系统状态的查看、维护。图书管理员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和信息查看及维护。图书管理员可以浏览、查询、添加、删除、修改图书的基本信息。主要功能:本系统主要用于图书信息管理,采用面向对象的设计思想,以菜单的形式进行各表单的调用,其功能分析是在系统开发的总体任务的基础上完成的。五、详细设计在需求分析的基础上,经过逐步抽象、概括、分析、研讨,本系统的实体有:用户资料实体、图书资料实体、借书统计实体、还书统计实体。用户资料实体包含如下属性,分别是用户名,密码,性别,系别。图书资料实体包含如下属性,分别是图书编号,图书名称,作者,出版社,数量。六、逻辑设计将上面的数据库概念结构转化为SQL Sever 2005数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。根据数据库的需求分析和概念结构设计,设计了名为library数据库。数据库由多个表格组成,各个表格的设计结果如下面表格所示:表1 图书信息表列名数据类型长度可否为空书号char10NOLL书名char20NOLL作者char20NOLL出版社char30NOLL数量char10NOLL表2 用户信息表列名数据类型长度可否为空用户名char20NOLL密码Char10NOLL性别Char10NOLL系别char10NOLL七、程序实现1、程序流程图如下: 系统主界面密码是否正确?调用系统菜单 退出系统 验证登录口令2、详细设计程序源代码:主函数:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.TitledBorder;import java.awt.Font;public class MainWindow extends JFrame implements ActionListenerprivate static final long serialVersionUID = 1L;static String loginName;static String loginNo;JLabel mlabel;JPanel jp=new JPanel(); /用来填放子模块JMenuBar menu=new JMenuBar();JMenu m1=new JMenu(系统管理);JMenu m2=new JMenu(查询管理);JMenu m3=new JMenu(书籍管理);JMenu m4=new JMenu(借阅管理);JMenuItem item11=new JMenuItem(登录);JMenuItem item12=new JMenuItem(退出登录);JMenuItem item13=new JMenuItem(退出系统);JMenuItem item21=new JMenuItem(查询图书信息);JMenuItem item22=new JMenuItem(查询读者信息);JMenuItem item31=new JMenuItem(添加书籍);JMenuItem item32=new JMenuItem(删除书籍);JMenuItem item41=new JMenuItem(借书);JMenuItem item42=new JMenuItem(还书);public MainWindow()super(图书管理系统);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0);Container c=getContentPane();setSize(400,300);c.add(menu);menu.add(m1);menu.add(m2);menu.add(m3);menu.add(m4); /系统管理菜单项m1.add(item11);m1.add(item12);m1.add(item13) ; item11.addActionListener(this);item12.addActionListener(this); item13.addActionListener(this); /查询管理菜单项 m2.add(item21); m2.add(item22); item21.addActionListener(this); item22.addActionListener(this); /书籍管理菜单项 m3.add(item31); m3.add(item32); item31.addActionListener(this); item32.addActionListener(this); /借阅管理菜单项 m4.add(item41); m4.add(item42); item41.addActionListener(this); item42.addActionListener(this); m2.setEnabled(false); m3.setEnabled(false); m4.setEnabled(false);/菜单的放置以及窗口的显示 setJMenuBar(menu); Font myFont=new Font(楷体_GB2312,Font.BOLD,40); mlabel=new JLabel( 图书管理系统); mlabel.setFont(myFont); add(mlabel); public void actionPerformed(ActionEvent e)if(e.getSource()=item11)UserLogin login=new UserLogin(this);login.setVisible(true);if(e.getSource()=item12)setVisible(false);MainWindow mainFrame=new MainWindow();mainFrame.setLocation(400,150);mainFrame.setVisible(true);if(e.getSource()=item13)System.exit(1);if(e.getSource()=item21)FindBook findbook=new FindBook();findbook.setVisible(true);if(e.getSource()=item22)FindReader findreader=new FindReader();findreader.setVisible(true);if(e.getSource()=item31)AddBook addBook=new AddBook();addBook.setVisible(true);if(e.getSource()=item32)DeleteBook delBook=new DeleteBook();delBook.setVisible(true);if(e.getSource()=item41)BorrowBook borrowbook=new BorrowBook();borrowbook.setVisible(true);if(e.getSource()=item42)ReturnBook returnbook=new ReturnBook();returnbook.setVisible(true);public void setenabled(int right)if(right=1)m2.setEnabled(true);m3.setEnabled(true); m4.setEnabled(false); if(right=2) m2.setEnabled(true); m3.setEnabled(false); m4.setEnabled(true); /item22.setEnabled(false);public static void main (String args) MainWindow mainFrame=new MainWindow();mainFrame.setLocation(400,150);mainFrame.setVisible(true);/mainFrame.addWindowListener(new WindowListener();import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class AddBook extends JFrame implements ActionListener MainWindow mw=new MainWindow();DataBaseManger db=new DataBaseManger();ResultSet rs;JPanel pan1,pan2,pan3,pan4,pan5,pan6,pan7,pan8;JLabel bmsg=new JLabel( 添加图书 );JLabel bfen=new JLabel( - );JLabel bname=new JLabel( 请输入书名 :);JLabel bno=new JLabel( 请输入索书号 :);JLabel bnum=new JLabel(请输入书的数量:);JLabel author=new JLabel(请输入书的作者:);JLabel publisher=new JLabel( 请输入出版社 :);JTextField tname=new JTextField(10);JTextField tno=new JTextField(10);JTextField tnum=new JTextField(10);JTextField tauthor=new JTextField(10);JTextField tpublisher=new JTextField(10); /JTextArea jta=new JTextArea(20,30); JButton addbt=new JButton(添加);/JButton dbt=new JButton();JButton yesbt=new JButton(确定);JPanel p3=new JPanel();public AddBook()super(添加图书); /Container c=getContentPane();pan1=new JPanel();pan2=new JPanel();pan3=new JPanel();pan4=new JPanel();pan5=new JPanel();pan6 =new JPanel();pan7=new JPanel();pan8 =new JPanel();pan1.add(bname);pan1.add(tname);pan2.add(bno);pan2.add(tno);pan3.add(bnum);pan3.add(tnum);pan4.add(author);pan4.add(tauthor);pan5.add(publisher);pan5.add(tpublisher);pan6.add(addbt);pan6.add(yesbt);pan7.add(bmsg);pan8.add(bfen);add(pan7);add(pan8);add(pan1);add(pan2);add(pan3);add(pan4);add(pan5);add(pan6);setLayout(new GridLayout(8,1);addbt.addActionListener(this);yesbt.addActionListener(this);setSize(500,300);setLocation(400,150);public void actionPerformed(ActionEvent e)String bname,bno,author,publisher;int bnum;if(e.getActionCommand()=确定)this.dispose();if(e.getActionCommand()=添加)bname=tname.getText();bno=tno.getText();author=tauthor.getText();publisher=tpublisher.getText();bnum=Integer.parseInt(tnum.getText();String sqlstr1=select bno from book;rs=db.getResult(sqlstr1);trywhile(rs.next()if(rs.getString(1).trim().equals(bno)JOptionPane.showMessageDialog(null,此书号已存在,请重新输入索书号!);elsebreak;catch(Exception pe) pe.printStackTrace(); String sqlstr=insert into book (bno,bname,bnum,author,publisher) values (+bno+,+bname+,+bnum+,+author+,+publisher+);boolean result=db.updateSql(sqlstr);db.closeConnection();if(result)JOptionPane.showMessageDialog(null,添加书籍成功!);elseJOptionPane.showMessageDialog(null,添加书籍失败!);import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class BorrowBook extends JFrame implements ActionListenerMainWindow mw=new MainWindow();DataBaseManger db=new DataBaseManger();ResultSet rs;JLabel lb1=new JLabel(请输入证件号);JLabel lb2=new JLabel(请输入索书号);JTextField jtf1=new JTextField(10);JTextField jtf2=new JTextField(10);JTextArea jta=new JTextArea(5,10);JButton bt=new JButton(确定);JButton bt1=new JButton(借阅);JPanel p1=new JPanel();JPanel p2=new JPanel();public BorrowBook()super(借阅图书);Container c=getContentPane();p1.add(lb1);p1.add(jtf1);p1.add(lb2);p1.add(jtf2);p1.add(bt1);c.add(p1,BorderLayout.NORTH);p2.add(jta);p2.add(bt);c.add(p2,BorderLayout.SOUTH);bt.addActionListener(this);bt1.addActionListener(this);setSize(500,200);setLocation(400,150);public void actionPerformed(ActionEvent e)int bnum;String bname;if(e.getActionCommand()=确定)this.dispose();if(e.getActionCommand()=借阅)String bno=jtf2.getText();String sno=jtf1.getText();String sqlstr=select * from book where bno=+bno+;rs=db.getResult(sqlstr);tryrs.next();bname=rs.getString(2);bnum=rs.getInt(3);if(bnum!=0)&(mw.loginNo.trim().equals(sno)|(mw.loginName.trim().equals(admin) jta.setText();jta.append(借阅成功!n);bnum=bnum-1;String sqlstr1=update book set bnum=+bnum+where bno=+bno+;boolean result1=db.updateSql(sqlstr1);if(result1)jta.append(修改书籍信息表成功!n);String sqlstr2=insert into lendbook (sno,bno,bname,lenddate,returndate) values(+sno+,+bno+,+bname+,+20090601+,+20090701+);boolean result2=db.updateSql(sqlstr2);if(result2)jta.append(修改借书信息表成功!n);db.closeConnection();elsejta.setText();if(bnum=0) jta.append(此书已被借完!n);if(!(mw.loginNo.trim().equals(sno)|!(mw.loginName.trim().equals(admin) jta.append(请输入正确的证件号!n);catch(Exception pe) pe.printStackTrace(); import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class BorrowInfo extends JFrame implements ActionListener MainWindow mw=new MainWindow();DataBaseManger db=new DataBaseManger();ResultSet rs;JLabel lb1=new JLabel(请输入证件号);JTextField jtf1=new JTextField(10);JTextArea jta=new JTextArea(5,10);JButton bt=new JButton(确定);JButton bt1=new JButton(查询);JPanel p1=new JPanel();JPanel p2=new JPanel();public BorrowInfo()super(查询借阅信息);Container c=getContentPane();p1.add(lb1);p1.add(jtf1);p1.add(bt1);c.add(p1,BorderLayout.NORTH);p2.add(jta);p2.add(bt);c.add(p2,BorderLayout.SOUTH);bt.addActionListener(this);bt1.addActionListener(this);setSize(500,200);setLocation(400,150);public void actionPerformed(ActionEvent e)if(e.getActionCommand()=确定)this.dispose();if(e.getActionCommand()=查询)String sno=jtf1.getText();String sqlstr=select * from lendbook where sno=+sno+;rs=db.getResult(sqlstr);trywhile(rs.next()jta.append(rs.getString(4)+,+rs.getString(5)+,+rs.getString(6)+n);catch(Exception pe) pe.printStackTrace(); import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class DeleteBook extends JFrame implements ActionListener MainWindow mw=new MainWindow();DataBaseManger db=new DataBaseManger();ResultSet rs;JLabel bno=new JLabel(请输入要删除的图书索引号:,SwingConstants.CENTER);JLabel L;JTextField tno=new JTextField(10);JTable table;/用来接收数据库中返回的信息JButton chakan=new JButton(查看);JTextArea jta=new JTextArea(10,20);JButton delbt=new JButton(确定);JButton yesbt=new JButton(取消);JPanel p1=new JPanel();JPanel p2=new JPanel();public DeleteBook()super(删除图书);Container c=getContentPane();p1.add(bno);p1.add(tno);c.add(p1,BorderLayout.NORTH);p2.add(delbt);p2.add(yesbt);p1.add(chakan);p1.add(jta);c.add(p2,BorderLayout.SOUTH);delbt.addActionListener(this);yesbt.addActionListener(this);chakan.addActionListener(this);setSize(400,300);setLocation(400,150);JPanel p=new JPanel();/用来放两个表p.setLayout(new BorderLayout();public void actionPerformed(ActionEvent e)String bno;if(e.getActionCommand()=查看)String txt_bno=tno.getText();String sqlstr;sqlstr=select * from book where bno=+txt_bno+;rs=db.getResult(sqlstr);tryjta.setText();if(rs.next()jta.append(索书号为:+rs.getString(1)+,+书名为:+rs.getString(2)+,+现有数量为:+rs.getString(3)+n);jta.append(作者为:+rs.getString(4)+,+出版社为:+rs.getString(5);elsejta.append(对不起,没有您要找的书籍!); catch(Exception pe) pe.printStackTrace(); if(e.getActionCommand()=取消)this.dispose();if(e.getActionCommand()=确定)bno=tno.getText();String sqlstr=delete bno from book where bno=+bno+; boolean result=db.updateSql(sqlstr); db.closeConnection(); if(result)JOptionPane.showMessageDialog(null,删除书籍成功!); elseJOptionPane.showMessageDialog(null,删除书籍失败!); import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class FindBook extends JFrame implements ActionListenerDataBaseManger db=new DataBaseManger();ResultSet rs;JLabel select=new JLabel(请输入书名或者索书号);JTextField jtf=new JTextField(20);JPanel p1=new JPanel();JPanel p2=new JPanel();JLabel lb=new JLabel(书籍信息);JButton findbt=new JButton(查询);JButton yesbt=new JButton(确定);JTextArea jta=new JTextArea(10,20);public FindBook()super(查询书籍信息);Container c=getContentPane();p1.add(select);p1.add(jtf);p1.add(findbt);c.add(p1,BorderLayout.NORTH);p2.add(lb);p2.add(jta);p2.add(yesbt);c.add(p2,BorderLayout.SOUTH);yesbt.addActionListener(this);findbt.addActionListener(this);setSize(500,300);setVisible(true);setLocation(400,150);public void actionPerformed(ActionEvent e)if(e.getActionCommand()=确定)this.dispose();if(e.getActionCommand()=查询)String bname=jtf.getText();String bno=jtf.getText();String sqlstr;sqlstr=select * from book where bname=+bname+ or bno=+bno+;rs=db.getResult(sqlstr);tryjta.setText();if(rs.next()jta.append(索书号为:+rs.getString(1)+,+书名为:+rs.getString(2)+,+现有数量为:+rs.getString(3)+n);jta.append(作者为:+rs.getString(4)+,+出版社为:+rs.getString(5);elsejta.append(对不起,没有您要找的书籍!); catch(Exception pe) pe.printStackTrace(); import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;import java.lang.String;public class FindReader extends JFrame implements ActionListenerDataBaseManger db=new DataBaseManger();MainWindow mw=new MainWindow();ResultSet rs;JLabel select=new JLabel(请输入证件号);JTextField jtf=new JTextField(10);JPanel p1=new JPanel();JPanel p2=new JPanel();JLabel lb=new JLabel(读者信息);JButton findbt=new JButton(查询);JButton yesbt=new JButton(确定);JTextArea jta=new JTextArea(10,20);public FindReader()super(查询读者信息);Container c=getContentPane();p1.add(select);p1.add(jtf);p1.add(findbt);c.add(p1,BorderLayout.NORTH);p2.add(lb);p2.add(jta);p2.add(yesbt);c.add(p2,BorderLayout.SOUTH);yesbt.addActionListener(this);findbt.addActionListener(this);setSize(500,300);setVisible(true);setLocation(400,150);public void actionPerformed(ActionEvent e)if(e.getActionCommand()=确定)this.dispose();if(e.getActionCommand()=查询)String sno=jtf.getText();String sqlstrR;if(mw.loginNo.trim().equals(sno)|(mw.loginName.trim().equals(admin)sqlstrR=select * from reader where sno=+sno+;rs=db.getResult(sqlstrR);tryrs.next();jta.setText();jta.append(学号为:+rs.getString(1)+, +姓名为:+rs.getString(2)+,+性别为:+rs.getString(3)+n);jta.append(年龄为:+rs.getString(4)+, +密码为:+rs.getString(5)+,+ 学院为:+rs.getString(6)+n);String sqlstr=select * from lendbook where sno=+sno+; rs=db.getResult(sqlstr); try while(rs.next() jta.append(rs.getString(3)+,+借书时间:+rs.getString(4)+,+应还书时间:+rs.getString(5)+n); catch(Exception pe) pe.printStackTrace(); catch(Exception pe) pe.printStackTrace(); elseJOptionPane.showMessageDialog(null,请输入正确的证件号!); import java.awt.*;import j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国铁路工程集团有限公司所属单位岗位合集笔试题库历年考点版附带答案详解
- 2025中国电信工业产业研究院公开招聘笔试题库历年考点版附带答案详解
- 2025年智慧农业行业智慧农业技术应用研究报告
- 2025年急诊医学专业急救处理流程模拟试卷答案及解析
- 2025年航天航空行业商业航天发展前景研究报告
- 2025年生物科技行业生物医药研发进展研究报告
- 2025年数字化金融行业金融科技与智能投顾研究报告
- 2025年环保产业行业环保科技创新案例研究报告
- 2025年数字化生活行业数字化生活方式与智能生活研究报告
- 2025辽宁大连市引导基金管理有限责任公司招聘4人笔试备考题库及答案解析
- 中职历史说课课件
- 广西2025年初中学业水平考试英语真题(含答案及听力音频听力原文)
- 锻造工理论知识考试题(附答案)
- 妇科手术麻醉出科
- 公司人员来访管理制度
- 2025至2030MCU行业市场发展分析及竞争形势与投资机会报告
- 2025年植物保护专业考试试题及答案
- 防水工程质量保证书
- 大额资金使用管理办法
- 业务激励方案61170
- 家电行业售后维修服务管理流程
评论
0/150
提交评论