浙江科技学院程序设计综合课程设计报告班级:学号:姓名:指导教师:二○一一年六月七日设计日期自2011年4月8日至2011年6月7日目录1 前言 (1)2设计内容 (2)2.1系统设计 (2)2.1.1需求分析 (2)2.1.2系统功能模块 (2)2.1.3功能设计 (3)2.2数据库设计与实现 (4)2.2.1数据库需求分析 (4)2.2.2数据库逻辑结构设计 (4)2.3系统的设计与实现 (5)2.2.1登录界面(Login) (5)2.2.2主界面(MainWindow) (6)2.2.3 密码修改界面(Mima) (10)2.2.4密码修改数据库链接(MimaConnect) (11)2.2.5读者种类界面(ZhongleiReader) (12)2.2.6读者种类数据库链接(ZhongleiReader) (16)2.2.7读者基本信息(ReaderInformation) (17)2.2.8查询报表界面(ShowRecord) (17)2.2.9图片欣赏界面(Haha) (18)2.2.10图书登记管理界面(Booktable) (19)2.2.11关于界面(Massage) (19)2.4数据库配置 (19)3设计总结与体会 (20)4 参考文献 (21)1 前言2010年为期3星期的时间,我在浙江科技学院第一次做课程设计,由于之前没有实际项目开发的经验,先是阅读了很多JAVA方面的书籍,其中以SWING 编程为主,然后结合理论知识,在指导老师的指导下完成了基于JAVA的图书管理系统的开发。
通过上次的课程设计,我学到了很多专业知识,也获得了不少的编程经验,使我在编程能力上有了很大的提高,通过理论联系实际使我对项目开发也有了比较清晰的了解。
在此次工程实习中我主要完成的工作是:在JDK6.0环境下用JAVA 语言以及Access 2003完成图书管理系统。
从需求分析开始,按照软件工程的整个流程一步步的做下来,最终完成整个软件的设计。
2设计内容2.1系统设计2.1.1需求分析本图书管理系统具有如下功能模块:密码修改模块:对当前登陆用户进行登陆密码的修改。
报表模块:基本书籍浏览表。
以表格的形式展现给用户所有书本的基本信息。
时钟模块:在主界面提供了本地当时的时间(日期,时间,星期*)。
图片欣赏模块:提供图片浏览功能。
音乐模块:提供音乐欣赏功能,可以随时关闭和开启。
基本信息管理模块:对读者基本信息进行管理,可以添加、查询、修改和删除基本信息。
2.1.2系统功能模块本系统分为以下四大模块:系统管理模块、基本信息管理模块、成绩管理模块、报表模块。
图2-1 功能模块划分图2.1.3功能设计各模块功能设计如下:1. 系统管理模块:可以方便地了解系统,欣赏音乐和图片。
2. 基本信息管理模块:基本信息录入功能,输入读者信息,可以实现添加此信息到相应的数据库db (读者基本信息表)表里。
基本信息查询功能,输入编号,可以查询此读者信息的详细。
基本信息修改功能:输入编号,可以显示此读者信息的详细,然后作修改操作,并保存修改后的信息到相应的数据库表里。
基本信息删除功能:输入编号,可以显示该读者信息的详细,然后作删除操作,可以把数据库表中对应的该学生的记录全部删除。
3. 读者种类管理模块:读者种类基本信息录入功能,输入读者种类信息,可以实现添加此信息到相应的数据库db(读者种类信息表)表里。
基本信息查询功能,输入编号,可以查询此读者信息的详细。
基本信息修改功能:输入编号,可以显示此读者信息的详细,然后作修改操作,并保存修改后的信息到相应的数据库表里。
基本信息删除功能:输入编号,可以显示该读者信息的详细,然后作删除操作,可以把数据库表中对应的该学生的记录全部删除。
4. 报表模块:基本信息浏览表功能:通过以表格的形式,给用户显示数据库里所有书籍读者种类对应的书名编号,书名,作者,借书期限的信息一目了然,可以浏览所有书籍的基本信息。
2.2数据库设计与实现2.2.1数据库需求分析根据本系统的需求分析,需要4张表。
读者种类表:存放读者的借阅信息。
读者基本信息表:存放读者详细的注册信息。
书籍表:存放书籍的详细信息。
用户表:存放用户的账号密码的信息。
2.2.2数据库逻辑结构设计下面是本系统设计的表及其作用。
表2-1数据表说明下面是各个表的详细结构。
1. bookInformation(读者种类表),见表2-2表2-2bookInformation(读者种类表)2. readerInformation (读者基本信息表),见表2-3表2-3readerInformation (读者基本信息表)2. book(书籍表),见表2-4表2-4book(书籍表)4. user(用户表),见表2-5表2-5user(用户表)2.3系统的设计与实现对于本系统各个功能块的实现,是通过JA V A语言在JDK6.0环境下完成的,界面是用JA V A SWING编写的,用Access 2003实现JA V A语言与数据库的连接,最后完成整个系统的开发。
2.2.1登录界面(Login)登录窗口是很多应用系统中不可缺少的组成部分。
通过验证用户输入的用户名和密码,决定是否允许用户进入系统,在一定程度上保证系统的安全。
本系统建立一个登录窗口,运行界面如图2-4所示。
图2-4 登陆界面本登录窗口在对话框上使用JTextField接收用户名,使用JPasswordField接收密码。
在按钮动作事件中对用户名和密码进行校验。
按确定键进入主界面,按取消键退出系统。
2.2.2主界面(MainWindow)主界面是负责应用程序的,由它调用其他模块。
因此应该具有操作性好、界面清晰的特点,使用户能够很方便地找到所需功能。
根据功能需求和总体设计的结果,主界面包括菜单栏,图书登记管理,图片欣赏,音乐开关,时间系统。
可以通过点击菜单项进入相应的功能模块,此窗口的类名为“MainWindow”,窗体布局设置为默认面板BorderLayout。
在此窗体上添加菜单栏menuBar,和一个工具栏toolBar。
主界面如图2-5所示。
图2-5主界面菜单栏bar的内容如表2-7所示。
表2-7菜单栏组成列表因为跟数据库连接的缘故,所以所调用的类的构造函数必须设置成带rs(结果返回集)参数的。
主界面添加子窗体的方法,实现如下:public static void addIFame(JInternalFrame iframe) {DESKTOP_PANE.add(iframe);}主界面还调用了菜单栏和按钮的连接方法,实现如下:public class MenuActions {public static MenuAndButtonAction MENUANDBUTTONACTION = new MenuAndButtonAction();private static class MenuAndButtonAction extends AbstractAction{ MenuAndButtonAction(){putValue(,"图书登记管理");}public void actionPerformed(ActionEvent e){MainWindow.addIFame(new Booktable());}}}主界面上的音乐控制按钮实现如下:final JButton button1 = new JButton("停止音乐");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.newAudioClip(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 GregorianCalendar();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(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,169,169));}2.2.3密码修改界面(Mima)此界面是给予用户自己修改自己的密码的界面,不能修改别人的登录密码。