




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业浙江科技学院程序设计综合课程设计报告班 级: 学 号: 姓 名: 指导教师: 二一一 年 六 月 七 日设计日期自 2011年4月8日至2011年6月7日目 录 TOC o 1-3 h z u 1 前言2010年为期3星期的时间,我在浙江科技学院第一次做课程设计,由于之前没有实际项目开发的经验,先是阅读了很多JAVA方面的书籍,其中以SWING编程为主,然后结合理论知识,在指导老师的指导下完成了基于JAVA的图书管理系统的开发。通过上次的课程设计,我学到了很多专业知识,
2、也获得了不少的编程经验,使我在编程能力上有了很大的提高,通过理论联系实际使我对项目开发也有了比较清晰的了解。在此次工程实习中我主要完成的工作是:在JDK6.0环境下用JAVA语言以及Access 2003完成图书管理系统。从需求分析开始,按照软件工程的整个流程一步步的做下来,最终完成整个软件的设计。2 设计内容2.1 系统设计2.1.1 需求分析本图书管理系统具有如下功能模块:密码修改模块:对当前登陆用户进行登陆密码的修改。报表模块:基本书籍浏览表。以表格的形式展现给用户所有书本的基本信息。时钟模块:在主界面提供了本地当时的时间(日期,时间,星期*)。图片欣赏模块:提供图片浏览功能。音乐模块:
3、提供音乐欣赏功能,可以随时关闭和开启。基本信息管理模块:对读者基本信息进行管理,可以添加、查询、修改和删除基本信息。2.1.2 系统功能模块本系统分为以下四大模块:系统管理模块、基本信息管理模块、成绩管理模块、报表模块。图书管理系统系统报表系统设置读者信息管理理读者种类管理系统功能 书籍报表 信息录入 信息查询 信息修改 信息删除 成绩录入 成绩查询 成绩修改 成绩删除音乐控制图片欣赏版本信息图2-1 功能模块划分图 2.1.3 功能设计各模块功能设计如下:1. 系统管理模块: 可以方便地了解系统,欣赏音乐和图片。2. 基本信息管理模块:基本信息录入功能,输入读者信息,可以实现添加此信息到相应
4、的数据库db(读者基本信息表)表里。基本信息查询功能,输入编号,可以查询此读者信息的详细。基本信息修改功能:输入编号,可以显示此读者信息的详细,然后作修改操作,并保存修改后的信息到相应的数据库表里。基本信息删除功能:输入编号,可以显示该读者信息的详细,然后作删除操作,可以把数据库表中对应的该学生的记录全部删除。3. 读者种类管理模块:读者种类基本信息录入功能,输入读者种类信息,可以实现添加此信息到相应的数据库db(读者种类信息表)表里。基本信息查询功能,输入编号,可以查询此读者信息的详细。基本信息修改功能:输入编号,可以显示此读者信息的详细,然后作修改操作,并保存修改后的信息到相应的数据库表里
5、。基本信息删除功能:输入编号,可以显示该读者信息的详细,然后作删除操作,可以把数据库表中对应的该学生的记录全部删除。4. 报表模块:基本信息浏览表功能:通过以表格的形式,给用户显示数据库里所有书籍读者种类对应的书名编号,书名,作者,借书期限的信息一目了然,可以浏览所有书籍的基本信息。2.2 数据库设计与实现2.2.1 数据库需求分析 根据本系统的需求分析,需要4张表。 读者种类表:存放读者的借阅信息。 读者基本信息表:存放读者详细的注册信息。 书籍表:存放书籍的详细信息。 用户表:存放用户的账号密码的信息。2.2.2 数据库逻辑结构设计下面是本系统设计的表及其作用。表2-1 数据表说明表名表的
6、作用bookInformation(读者种类表)存放读者的借阅信息readerInformation (读者基本信息表)存放读者详细的注册信息book(书籍表)存放书籍的详细信息user(用户表)存放用户的账号密码的信息下面是各个表的详细结构。1. bookInformation(读者种类表),见表2-2表2-2 bookInformation(读者种类表)字段名称数据类型是否为空是否主键是否外键种类编号Int(4)否是否种类名称char(50)是否否借书数量Int(4)是否否借书期限char(10)是否否2. readerInformation (读者基本信息表),见表2-3表2-3 rea
7、derInformation (读者基本信息表)字段名称数据类型是否为空是否主键是否外键读者编号Int(4)否是否读者姓名char(10)是否否读者种类char(50)是否否读者性别char(10)是否否读者单位char(10)是否否读者住址char(50)是否否读者号码char(10)是否否读者日期char(10)是否否2. book(书籍表),见表2-4表2-4 book(书籍表)字段名称数据类型是否为空是否主键是否外键书名char(50)否是否作者char(10)是否否现存char(10)是否否时间日期/时间是否否4. user(用户表),见表2-5表2-5 user(用户表)字段名称字
8、段说明数据类型是否为空是否主键是否外键id编号Int(4)否是否name用户名char(30)否否否psword登录密码char(30)否否否admin是否管理员Int(4)否否否2.3 系统的设计与实现对于本系统各个功能块的实现,是通过JAVA语言在JDK6.0环境下完成的,界面是用JAVA SWING编写的,用Access 2003实现JAVA语言与数据库的连接,最后完成整个系统的开发。2.2.1 登录界面(Login)登录窗口是很多应用系统中不可缺少的组成部分。通过验证用户输入的用户名和密码,决定是否允许用户进入系统,在一定程度上保证系统的安全。本系统建立一个登录窗口,运行界面如图2-4
9、所示。 图2-4 登陆界面本登录窗口在对话框上使用JTextField接收用户名,使用JPasswordField接收密码。在按钮动作事件中对用户名和密码进行校验。按确定键进入主界面,按取消键退出系统。2.2.2主界面(MainWindow)主界面是负责应用程序的,由它调用其他模块。因此应该具有操作性好、界面清晰的特点,使用户能够很方便地找到所需功能。根据功能需求和总体设计的结果,主界面包括菜单栏,图书登记管理,图片欣赏,音乐开关,时间系统。可以通过点击菜单项进入相应的功能模块,此窗口的类名为“MainWindow”,窗体布局设置为默认面板BorderLayout。在此窗体上添加菜单栏menu
10、Bar,和一个工具栏toolBar。主界面如图2-5所示。图2-5 主界面菜单栏bar的内容如表2-7所示。表2-7 菜单栏组成列表名 称类 型文 本menul_01JMenu图书管理menul_02JMenu学生管理menul_03JMenu借阅管理menul_04JMenu查询报表menul_05JMenu关于menul_06JMenu帮助item1JMenuItem图书现存item2JMenuItem图书翻新图书登记管理JMenuItem图书登记管理item3JMenuItem密码服务item4JMenuItem自助服务读者种类信息JMenuItem读者种类信息读者基本信息JMenuIt
11、em读者基本信息item5JMenuItem借阅信息查询报表JMenuItem查询报表关于JMenuItem关于通过主界面来进入其他界面的方法为:调用其他类里的构造方法或者方法。因为跟数据库连接的缘故,所以所调用的类的构造函数必须设置成带rs(结果返回集)参数的。主界面添加子窗体的方法,实现如下:public static void addIFame(JInternalFrame iframe) DESKTOP_PANE.add(iframe); 主界面还调用了菜单栏和按钮的连接方法,实现如下:public class MenuActions public static MenuAndButt
12、onAction MENUANDBUTTONACTION = new MenuAndButtonAction(); private static class MenuAndButtonAction extends AbstractAction MenuAndButtonAction() putValue(Action.NAME,图书登记管理); public void actionPerformed(ActionEvent e) MainWindow.addIFame(new Booktable(); 主界面上的音乐控制按钮实现如下:final JButton button1 = new JB
13、utton(停止音乐); button1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) chosenClip.stop(); button1.setLabel(开启音乐); i+; if(i%2=0) chosenClip.loop(); button1.setLabel(停止音乐); if(i%2!=0) chosenClip.stop(); button1.setLabel(开启音乐); );音乐播放功能实现如下:try chosenClip = Applet.newAud
14、ioClip(file1.toURL();chosenClip.loop(); catch (Exception e) e.printStackTrace();主界面上的时间模块实现如下:int delay = 1000;ActionListener draw = new ActionListener() public void actionPerformed(ActionEvent evt) repaint(); ;new Timer(delay,draw).start(); public void paint(Graphics g) Calendar now = new Gregorian
15、Calendar();int hour = now.get(Calendar.HOUR_OF_DAY); int minute = now.get(Calendar.MINUTE); int second = now.get(Calendar.SECOND); String st;if (hour 10)st = 0 + hour;elsest = + hour;if (minute 10)st += :0 + minute;elsest += : + minute;if (second 10)st += :0 + second;elsest += : + second;g.setColor(
16、new Color(245,245,245);g.fillRect(940, 23, 50, 20);g.setColor(Color.blue);g.drawString(st, 940, 40);Date n=new Date();String ssss=String.format(%ty/%tm/%td, n,n,n);g.setColor(Color.BLACK);g.drawString(ssss, 940, 52);String sss=String.format(%tA,n);g.drawString(sss, 945, 64);g.setColor(new Color(169,
17、169,169); 2.2.3 密码修改界面(Mima) 此界面是给予用户自己修改自己的密码的界面,不能修改别人的登录密码。在原始密码处输入刚刚使用的登录密码,否则弹出如图如图2-6所示 图2-6在新建密码输入新的登录密码,并在确认密码处输入相同的密码,否则弹出如图如图2-7所示 图2-7在数据全部正确时弹出如图如图2-8 图2-8密码修改界面运行界面入下图2-9 图2-9此界面导入了图片,实现的代码如下:ImageIcon ii=new ImageIcon(getClass().getResource(/Picture/c.jpg); JLabel uppicture=new JLabel(
18、ii);this.add(uppicture,BorderLayout.NORTH);本界面运用BorderLayout和FlowLayout布局,用面板加以实现。在按钮上增加监听器,点击出发事件。2.2.4 密码修改数据库链接(MimaConnect) 此类写了2.2.3密码修改界面(Mima)的数据库链接方法。检验密码的主要代码实现如下:String s=Mima.passwordField1.getText();con = DriverManager.getConnection(jdbc:odbc:Driver= Microsoft Access Driver (*.mdb);DBQ=d
19、b/db.mdb);sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);if(!(Mima.passwordField1.getText().equals(Login.loginmima)JOptionPane.showMessageDialog(null, 原密码错误!,警告,2);return;else if(Mima.passwordField2.getText().equals(Mima.passwordField3.getText();elseJOptionPane
20、.showMessageDialog(null, 两次输入的密码不一致!,警告,2);return;con.close();密码修改的SQL语句如下sql.executeUpdate(update user set psword=+ Mima.passwordField2.getText()+where psword=+Mima.passwordField1.getText()+and name=+Login.loginuser+);2.2.5读者种类界面(ZhongleiReader)此类记录了读者的编号,种类,借书的数量和期限。本类运用BorderLayout和BoxLayout布局。增加
21、了图片和按钮,输入框,标签等。运行界面如下图2-10 图2-10如图所示,该窗体实现了增加,去除,修改,查询4个功能。查询:如果输入空,则结果如下图2-11 图2-11其余都有警告框,不再图片显示。当修改时,输入的编号不在数据库中,会弹出“不存在此编号”警告框当增加时,先弹出确认对话框,若输入的编号已在数据库中,会弹出“已存在此编号”警告框。当去除时,先弹出确认对话框,若输入的编号不在数据库中,会弹出“不存在此编号”警告框如下图2-12 图2-12往种类编号里输入数字1,点击查询按钮图2-13-1以下给出用BoxLayout布局的实现代码Box baseBox,boxV1,boxV2,boxV
22、3,boxV4; boxV1=Box.createVerticalBox();boxV1.add(new JLabel(种类编号); boxV1.add(Box.createVerticalStrut(13); boxV1.add(new JLabel(种类名称); boxV1.add(Box.createVerticalStrut(13); boxV1.add(new JLabel(借书数量); boxV1.add(Box.createVerticalStrut(13); boxV1.add(new JLabel(借书期限); boxV1.add(Box.createVerticalStru
23、t(13); boxV3=Box.createHorizontalBox(); boxV3.add(add); boxV3.add(Box.createHorizontalStrut(20); boxV3.add(del); boxV3.add(Box.createHorizontalStrut(20); boxV3.add(revise); boxV3.add(Box.createHorizontalStrut(20); boxV3.add(query); boxV2=Box.createVerticalBox(); boxV2.add(种类编号); boxV2.add(Box.create
24、VerticalStrut(8); boxV2.add(种类名称); boxV2.add(Box.createVerticalStrut(8); boxV2.add(借书数量); boxV2.add(Box.createVerticalStrut(8); boxV2.add(借书期限); boxV2.add(Box.createVerticalStrut(8); baseBox=Box.createHorizontalBox(); boxV4=Box.createVerticalBox(); baseBox.add(boxV1); baseBox.add(Box.createHorizonta
25、lStrut(10); baseBox.add(boxV2); boxV4.add(Box.createVerticalStrut(33); boxV4.add(baseBox); boxV4.add(Box.createVerticalStrut(15); boxV4.add(boxV3); setLayout(new FlowLayout(); add(boxV4);2.2.6读者种类数据库链接(ZhongleiReader)此类写了链接读者种类信息界面的数据库链接,里面封装了4个方法:查询,增加,修改,去除。具体关键部分实现如下:查询SQL语句rs=sql.executeQuery(SE
26、LECT * FROM bookInformation where 种类编号 =+no);while(rs.next()ZhongleiReader.种类名称.setText( rs.getString(2);ZhongleiReader.借书数量.setText(rs.getString(3);ZhongleiReader.借书期限.setText(rs.getString(4);JOptionPane.showMessageDialog(null, 查询成功!);增加SQL语句rs=sql.executeQuery(select * from bookInformation); rs.mo
27、veToInsertRow(); rs.updateInt(1, Integer.parseInt(ZhongleiReader.种类编号.getText(); rs.updateString(2, ZhongleiReader.种类名称.getText(); rs.updateInt(3, Integer.parseInt(ZhongleiReader.借书数量.getText(); rs.updateString(4, ZhongleiReader.借书期限.getText(); rs.insertRow();删除SQL语句sql.executeUpdate(delete from boo
28、kInformation where 种类编号 =+no);更新SQL语句sql = con.createStatement();sql.executeUpdate(update bookInformation set 种类名称=+ ZhongleiReader.种类名称.getText()+ where 种类编号=+no);sql.executeUpdate(update bookInformation set 借书数量=+ ZhongleiReader.借书数量.getText()+ where 种类编号=+no);sql.executeUpdate(update bookInformat
29、ion set 借书期限=+ ZhongleiReader.借书期限.getText()+ where 种类编号=+no);2.2.7读者基本信息(ReaderInformation)此类是一个对读者的信息进行管理的界面,界面用BorderLayout和BoxLayout布局,里面实现了对读者信息的查询,增加,修改,去除的功能。运行界面如图2-14 图2-142.2.8查询报表界面(ShowRecord)此界面提供了显示数据库里的图书信息。按下显示信息按钮就会把信息都显示出来。运行界面如图2-15图2-15显示数据的SQL如下:rs=sql.executeQuery(SELECT * FROM
30、 book);rs.last();int lastNumber=rs.getRow();a=new ObjectlastNumber4;int k=0;rs.beforeFirst();while(rs.next()ak0=rs.getString(1);ak1=rs.getString(2);ak2=rs.getString(3);ak3=rs.getDate(4);k+;2.2.9图片欣赏界面(Haha)本界面提供了图片欣赏功能,可以看不同的图片。运行界面如下图2-16图2-162.2.10图书登记管理界面(Booktable)此界面用了Table组件,面板等,运用BorderLayout进行布局设计,运行结果如下图2-17图2-172.2.11关于界面(Massage)此界面简单地运用了标签进行了信息的输出,界面运行如下图2-18图2-182.4 数据库配置本系统的数据库用Access 2003,建立了一个名为db的数据库,通过jdbcodbc桥实现数据库与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《医院合作医疗》课件
- 《中华茶艺与文化》课件
- 课件:人格尊严的法律保护与实践教学指导
- 快乐的有效沟通技巧
- 薪资福利政策
- 2025年昌吉货运从业资格考题
- 营口理工学院《生物材料表界面工程》2023-2024学年第二学期期末试卷
- 辽宁地质工程职业学院《邮政快递软件设计》2023-2024学年第一学期期末试卷
- 玉溪农业职业技术学院《生化与分子生物学实验》2023-2024学年第二学期期末试卷
- 山西电力职业技术学院《实验诊断F》2023-2024学年第二学期期末试卷
- 中职世界历史试题及答案
- 《政府采购管理研究的国内外文献综述》5500字
- 糖尿病护理查房提出问题
- T-ZMDS 10019-2024 经颅电刺激仪基本技术规范
- 2024年国网浙江省电力有限公司招聘考试真题
- 微专题2 质量守恒定律的应用(解析版)
- 人教版六年级下册科学全册教案
- 2024福建中闽能源股份有限公司招聘12人笔试参考题库附带答案详解
- 2025年江西省旅游集团股份有限公司招聘笔试参考题库含答案解析
- 分析化学考试题(附参考答案)
- 《外科补液原则》课件
评论
0/150
提交评论