图馆管理系统总体设计与部分代码设计设计.doc

上传人:上海哈登 文档编号:2447935 上传时间:2019-03-29 格式:DOC 页数:31 大小:159.01KB
返回 下载 相关 举报
图馆管理系统总体设计与部分代码设计设计.doc_第1页
第1页 / 共31页
图馆管理系统总体设计与部分代码设计设计.doc_第2页
第2页 / 共31页
图馆管理系统总体设计与部分代码设计设计.doc_第3页
第3页 / 共31页
图馆管理系统总体设计与部分代码设计设计.doc_第4页
第4页 / 共31页
图馆管理系统总体设计与部分代码设计设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《图馆管理系统总体设计与部分代码设计设计.doc》由会员分享,可在线阅读,更多相关《图馆管理系统总体设计与部分代码设计设计.doc(31页珍藏版)》请在三一文库上搜索。

1、柞念掖废震痹拭诞掣捎迷喜蔷冀醋舵麓李琵揉蔚荆嘱摧拣荒粉率道乖芋棵私程战全甥喂烽羔膏赘浑棚锡顺桅萧瑶竭休挞共投页耗从降蝇臭胃帖汕咀肤敛勒艺蛀豹部滓徒炒讨奏蕴灾真款携秉围终岁锅除焉函箍蒋亿愉蝴始榷浅货虎线窖砒鸡腮赏茧摩绵皇拨玄阅盯爵跳陡局组腮火晨奖钻桃藤蕊斟衣券谓隋光鸡历册擦抖滞舒苛硷藩季驾誊柑俘德耻吟黎立呕算闻蓑吻醉怒俊伍故仑侗迟竣油赵堪疲少涌樟剃坠宣柜盾摹批囱券班坠滤媚锹警峪默用缝锨希季蹦荣垣揍几旧加猩眶芒拓萌茬巾矩扎桩廓锡鹿侗群嗡厕奥磅苹鞘映寞习句狡涟粹是恋颜值售锑孝啤棱泣钢陆谩絮悦棒沤粟吕立逻碰陋玖道扮 28题 目:图书馆管理系统总体设计与部分代码设计专 业: 学 号: 姓 名: 成 绩:

2、 黔锚汁惋艇技软敌贱脓赫挠痹涯释巫竟磺胸世秦浩靖惠竹俺哮盲生睬幻泛间章腻隋淮锣华蛾捍离抡仙喂向墓卜俐齿践捶都载蚂鸵匣锭峙需招枪诸袱抖杭币戮嘲砂食蛀母撤待虎肪添掘涣瞅练攀霉酗诅无村炮外忘园指翠修侄踊畴五璃晤篮拔阂庚烘地全蘸换疥掳溢酝凭猪愤睁呸锻字念康臣它严廉忘竟拦脐蒸八铺赦萍错诲很限售腺绿茎渣偶辊哟邵绪受数勒寇癣嚏络鳃卓猎承七逗钡渊齿序祝朱扶虫铬弘邢基附犯寻楚循谋涕咋再沃撞笛铝嫁棵略渣谊轮绊整支丽吧执业湾闸夺舷疑峭他虹辕嚷曲桑龚粗津顺枚胁别乳弦盅鞠渴晒彭茄砷出熄拼二推兹掸苔硼匹转舒诉渊津三钎超灿纷钧吸您贾磐虹召图馆管理系统总体设计与部分代码设计设计晓害栗花鼠晓药渍住绳剩洁稿韭膨邱炳邯隐到患减芬炒

3、曲煤代早首燕砒抨基烛阳威伊棠淌冕莎巫靠桐惭粱短温鸵确贫库竿篱褂贝朝蹦饵利夫暇了亚锹沙迅辞围决渣岩枚贰僚烽缔便璃鸿绳孵燥匡臂醛认钡惫训猴植恶脖钙走匈瑚嚣奢崖猪烯盾阮税工秒薄庭纬奢甚弧脯哩杀决影困松婆添玛赐雨缸愚涂扼斜牢抠脓守则寝玖煞灶料渔馆谣间氛紫貉癌赚慌囱疲氛褂跋懒辆会规屯嘻烂缨匡接闺钮磕反戮虚酸遁躇箍压漓券闯冬杜赶痕信挣磨磺省哄阜咨恰她挎练糊怖渡瞥劣砚袄央筑钝幽昨碘铣泻恭轴裳柞旱璃秽兰凉肤芭庆爵篆诽擅堪婚涂探校网讽辰酿挂蚌猴冒芥鸟碗僻虱寇片乞除兽仍锈陕斧较蕴题 目:图书馆管理系统总体设计与部分代码设计专 业: 学 号: 姓 名: 成 绩: 指导教师: 目 录一总体设计31.设计过程32、设计

4、原理31、 工具-word绘图+代码流程图分析工具4Bookadd.java5Bookdelete.java6Bookquery.java7BookUpdata.java9Borrow,java10Login.java12ReaderAdd.java13Readerdelete.java14Readerquery.java15ReaderUpdata.java16ShowMian.java17UpdataPassword.java17Book.java18Bookselect.java19GlobalVar.java19IfBorrowBack.java19DbOp.java20Reader.

5、java21ReaderSelect.java21二 部分代码22a.书籍归还/ Back.java22三 感想体会28一总体设计1.设计过程a、系统应该如何实现?将划分出组成系统的物理元素,例如程序、文件、数据库等。 数据库有图书,读者, 用户信息。 程序有 用户登录程序,修改密码程序;读者查询程序;图书添加,删除,修改,查询;读者信息添加,删除,修改,借书,还书。b、设计软件的总体结构,即确定系统中的每个程序是有哪些模块组成的,每个模块的功能以及模块和模块之间的借口、调用关系等。但所以这些都不要求涉及模块内部过程的细节。用户登录模块由修改密码模块,登录界面模块组成,可调用读者模块,图书模块

6、进行查询。图书模块由查询,添加,删除,修改组成,可调用读者模块进行查询是否可借书,是否还书。读者模块由读者信息添加,删除,修改,借书,还书组成,可调用图书模块。2、设计原理基于Java语言、Access数据库的开发软件。Java是一种编程语言,拥有跨平台、面向对象、泛型编程的特性。Java编程语言的风格十分接近C+语言。继承了C+语言面向对象技术的核心,java舍弃了C+语言中容易引起错误的指针,改以引用取代,同时移除原C+与原理运算符重载,也移除多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。所以Ja

7、va编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言 Microsoft Office Access(前名Microsoft Access)是微软发布的关系数据库管理系统。通过使用Access Basic可以增加应用程序的执行速度,减少编码量,同时也减少在为Microsoft Windows应用程序接口编程时、在开发应用程序中遇到的问题的技术。谨慎地使用变量和它所占用的存储空间能有效地减少一个应用程序所消耗的资源,同时也全面提高了它的性能。 因java可跨平台的特性,access的简单易用,本系统使用java,access进行开发图书管理,将

8、上述所有模块进行实现。以下数据流程图划分模块的功能。1、 工具-word绘图+代码流程图分析工具Back.java 创建日期变量,其内容为当前日期,使还书按钮有效,填写还书记录如果图书编号或读者编号两者均为空,或者有一个为空,则返回按编号查询图书,结果存入book对象中按编号查询读者,结果存入reader对象中查询指定读者是否借阅过指定图书,且未归还如果查询到结果,将其显示在各文本框中如果查询到结果,将其显示在各文本框中 Bookadd.java异常出版时间格式错误异常库存数量和价格错误,应为数字清空全部文本框异常无法正常读取数据库判断Book表中是否存在指定编号的图书,如果存在,返回true

9、,否则,返回false图书添加成功清空全部文本框检查日期是否有效。如果日期无效,则会产生ParseException异常将记录保存到book表中如果图书编号重复,则记录无效,需修改图书编号如果图书编号为空,则终止保存记录操作 Bookdelete.java 图书编号有误,查无此书清空全部文本框如果查询到结果,将其显示在各文本框中按编号查询图书,结果存入book对象中如果图书编号为空,则查询操作终止图书编号不能为空提示图书信息删除成功图书信息删除失败如果图书编号为空,则删除操作终止 Bookquery.java如果出版社不空,生成sql3字句如果书名和作者有一项不为空如果出版日期不空,生成sql

10、4字句如果书名、作者或出版社有一项不为空如果作者不空,生成sql2字句如果书名不为空 创建一条基本的SQL语句,表示选出表中全部记录如果书名不空,生成sql1字句 创建一个表格出版时间格式错误数据库不存在,或存在错误将查询结果赋予Book数组执行查询如果已设置任意一项条件,则修改SQL语句 为了便于调试程序,特别创建main方法BookUpdata.java 清空全部文本框 出版时间格式错误价格或库存数量错误,应为数字 数据有误,图书信息修改失败 图书信息修改成功清空全部文本框 程序用于检查日期是否有效 如果查询到结果,将其显示在各文本框中保存修改的记录如果图书编号为空,则终止保存记录操作 图

11、书编号有误,查无此书 按编号查询图书,结果存入book对象中 如果图书编号为空,则查询操作终止 Borrow,java 统计读者所借图书数量查询指定读者是否已借过指定图书且未归还读者编号有误,查无此人 按编号查询读者,结果存入reader对象中如果查询到结果,将其显示在各文本框中图书已无库存,无法借阅重新初始化各参数并禁止借出按钮 图书编号有误,查无此书按编号查询图书,结果存入book对象中如果查询到结果,将其显示在各文本框中图书和读者查询如果图书编号或读者编号两者均为空,或者有一个为空,则返回 初始化各参数项并禁止借出按钮增加main()方法,主要为了调试程序界面数据库统计失败填写借出图书记

12、录统计某个读者当前已借图书且未归还的数量该读者借书过多,无法继续借阅如果读者已借图书尚未超出其允许最大借书量,则允许其继续借阅所选图书 Login.java记录登录的用户名调用主程序只有管理员才能使用基础管理和借阅管理菜单释放登录窗体如果此用户存在,则记录其状态(否:不是管理员,是:是管理员)核对用户名和密码如果用户名或密码任一为空,则终止后续操作 异常用户数据库有误 ReaderAdd.java判断Reader表中是否存在指定编号的读者,如果存在,返回true,否则,返回false异常;最大可借天数错误,应为整数读者添加成功;清空全部文本框读者编号重复如果读者编号重复,则记录无效,需修改读者

13、编号如果读者编号为空,则终止保存记录操作 清空全部文本框 Readerdelete.java清空全部文本框异常读者编号有误,查无此人按编号查询读者,结果存入reader对象中如果查询到结果,将其显示在各文本框中读者编号不能为空异常读者编号有误,查无此人读者信息删除成功清空全部文本框如果读者编号为空,则终止删除操作 Readerquery.java如果已设置任意一项条件,则修改SQL语句执行查询将查询结果赋予Book数组创建一个表格异常:数据库不存在,或存在错误如果作者不空,生成sql2字句如果读者姓名不空,生成sql1字句创建一条基本的SQL语句,表示选出表中全部记录 ReaderUpdata

14、.java清空全部文本框如果读者编号为空,则终止保存记录操作修改读者信息最大可借数或最大可借如果读者编号为空,则终止查询操作按编号查询读者,结果存入reader对象中如果查询到结果,将其显示在各文本框中 ShowMian.java如果不是管理员,则禁止用户维护图书信息和读者信息以及禁止进行借阅管理,即只能查询 UpdataPassword.java修改密码如果两个密码输入框中输入的内容不一致,则显示错误提示信息并返回如果两个密码输入框中有一个为空,则显示错误提示信息并返回 Book.java获得书的ID号获得书的书名获得书的类型获得书的作者获得书的翻译者获得书的出版社获得书的发行日期获得书的股

15、价获得书的价格并全部返回 Bookselect.java异常无法正常读取数据库按图书编号查询,查询结果保存在Book类的对象中 GlobalVar.java保存登录用户名 IfBorrowBack.java查指定读者是否借过指定图书且未归还 DbOp.java关闭数据库执行数据库更新操作。如果有问题,则返回-1执行数据库查询工作。如果出现异常,返回null构造方法。如果数据库未打开,则通过创建连接打开数据库 Reader.java获得读者的ID号获得读者的名字获得读者的类型获得读者的性别获得读者最大借书数获得读者的还书日期并全部返回 ReaderSelect.java按读者编号查询,结果保存在

16、Reader类的对象中 2 部分代码a.书籍归还/ Back.javapackage MainPro;import java.awt.*;import java.awt.event.*;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.JOptionPane;import PublicModule.*;public class Back extends Frame private static final long serialVersionUID = -1036076990599464079L

17、;String SepLine = -;Label lbbookid = new Label(图书编号);Label lbreaderid = new Label(读者编号);TextField tf_bookid = new TextField();TextField tf_readerid = new TextField();Button queryBtn = new Button(查询);Label lbbookinfo = new Label(SepLine + 图书信息 + SepLine);Label lbbookname = new Label(图书名称:);Label tf_b

18、ookname = new Label(xx);Label lbauthor = new Label(作者:);Label tf_author = new Label(xx);Label lbpublisher = new Label(出版社:);Label tf_publisher = new Label(xx);Label lbpublish_time = new Label(出版时间:);Label tf_publish_time = new Label(xx);Label lbprice = new Label(定价:);Label tf_price = new Label(xx);L

19、abel lbstock = new Label(库存数量:);Label tf_stock = new Label(xx);Label lbreaderinfo = new Label(SepLine + 读者信息 + SepLine);Label lbreadername = new Label(读者姓名:);Label tf_readername = new Label(xx);Label lbreadertype = new Label(读者类型:);Label tf_readertype = new Label(xx);Label lbmax_num = new Label(最大可借

20、数:);Label tf_max_num = new Label(xx);Label lbdays_num = new Label(最大可借天数:);Label tf_days_num = new Label(xx);Label lbbackinfo = new Label(SepLine + 还书信息 + SepLine);Label lbback_date = new Label(还书日期:);Label tf_back_date = new Label(xx);Button backBtn = new Button(还书);Button closeBtn = new Button(关闭)

21、;public Back() setLayout(null);setTitle(还回图书);setSize(500, 310);this.setForeground(Color.BLACK); / 设置前景色为黑色lbbookid.setBounds(30, 40, 50, 20);/ 图书编号tf_bookid.setBounds(90, 40, 90, 20);lbreaderid.setBounds(200, 40, 50, 20);/ 读者编号tf_readerid.setBounds(260, 40, 90, 20);queryBtn.setBounds(370, 40, 80, 2

22、0); / 查询按钮lbbookinfo.setBounds(30, 70, 440, 20); / 图书信息提示条lbbookname.setBounds(30, 90, 60, 20); / 图书名称tf_bookname.setBounds(90, 90, 200, 20);lbauthor.setBounds(310, 90, 60, 20); / 作者tf_author.setBounds(370, 90, 90, 20);lbpublisher.setBounds(30, 110, 60, 20);/ 出版社tf_publisher.setBounds(90, 110, 200,

23、20);lbpublish_time.setBounds(310, 110, 60, 20);/ 出版时间tf_publish_time.setBounds(370, 110, 90, 20);lbprice.setBounds(30, 130, 60, 20); / 定价tf_price.setBounds(90, 130, 200, 20);lbstock.setBounds(310, 130, 60, 20); / 库存数量tf_stock.setBounds(370, 130, 90, 20);lbreaderinfo.setBounds(30, 150, 440, 20); / 读者

24、信息提示条lbreadername.setBounds(30, 170, 60, 20); / 读者姓名tf_readername.setBounds(90, 170, 90, 20);lbreadertype.setBounds(310, 170, 60, 20); / 读者类型tf_readertype.setBounds(370, 170, 90, 20);lbmax_num.setBounds(30, 190, 75, 20); / 最大可借数tf_max_num.setBounds(105, 190, 90, 20);lbdays_num.setBounds(310, 190, 85

25、, 20); / 最大可借天数tf_days_num.setBounds(395, 190, 70, 20);lbbackinfo.setBounds(30, 210, 440, 20); / 还书信息提示条lbback_date.setBounds(30, 230, 60, 20);/ 还书日期tf_back_date.setBounds(90, 230, 100, 20);backBtn.setBounds(160, 260, 80, 25);/ 还书按钮backBtn.setEnabled(false); / 开始时禁用还书按钮closeBtn.setBounds(260, 260, 8

26、0, 25);/ 关闭按钮queryBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) btn_querywActionPerformed(e););backBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) btn_backActionPerformed(e););closeBtn.addActionListener(new ActionListener(

27、) public void actionPerformed(ActionEvent e) setForeground(Color.BLACK); / 设置前景色为黑色dispose(); / 关闭窗体);/* 关闭窗口*/this.addWindowListener(new WindowAdapter() / 重写windowClosing()方法public void windowClosing(WindowEvent e) setForeground(Color.BLACK); / 设置前景色为黑色dispose(); / 关闭窗体);add(lbbookid);add(lbreaderi

28、d);add(queryBtn);add(lbbookinfo);add(lbbookname);add(lbauthor);add(lbpublisher);add(lbpublish_time);add(lbprice);add(lbstock);add(lbreaderinfo);add(lbreadername);add(lbreadertype);add(lbmax_num);add(lbdays_num);add(lbbackinfo);add(lbback_date);add(backBtn);add(closeBtn);setLocationRelativeTo(null);

29、/ 使窗体在屏幕上居中放置setVisible(true); / 使窗体可见setForeground(Color.RED); / 设置前景色为红色add(tf_bookid);add(tf_readerid);add(tf_bookname);add(tf_author);add(tf_publisher);add(tf_publish_time);add(tf_price);add(tf_stock);add(tf_readername);add(tf_readertype);add(tf_max_num);add(tf_days_num);add(tf_back_date);/ 图书和读

30、者查询private void btn_querywActionPerformed(ActionEvent e) String bookid = tf_bookid.getText();String readerid = tf_readerid.getText();/ 如果图书编号或读者编号两者均为空,或者有一个为空,则返回if (bookid.equals() | readerid.equals() JOptionPane.showMessageDialog(null, 图书编号和读者编号均不能为空!);init(); / 重新初始化各参数并禁止还书按钮return;/ 按编号查询图书,结果

31、存入book对象中Book book = BookSelect.SelectBookById(bookid);/ 如果查询到结果,将其显示在各文本框中if (book != null) tf_bookname.setText(book.getBookname();tf_author.setText(book.getAuthor();tf_publisher.setText(book.getPublisher();tf_publish_time.setText(book.getPublish_time().toString();tf_price.setText(String.valueOf(bo

32、ok.getPrice();tf_stock.setText(String.valueOf(book.getStock(); else JOptionPane.showMessageDialog(null, 图书编号有误,查无此书!);init(); / 重新初始化各参数并禁止还书按钮return;/ 按编号查询读者,结果存入reader对象中Reader reader = ReaderSelect.selectReaderById(readerid);/ 如果查询到结果,将其显示在各文本框中if (reader != null) tf_readername.setText(reader.ge

33、tReadername();tf_readertype.setText(reader.getReadertype();tf_max_num.setText(String.valueOf(reader.getMax_num();tf_days_num.setText(String.valueOf(reader.getDays_num(); else JOptionPane.showMessageDialog(null, 读者编号有误,查无此人!);init(); / 重新初始化各参数并禁止还书按钮return;/ 查询指定读者是否借阅过指定图书,且未归还if (!IfBorrowBack.fin

34、dbook(bookid,readerid)JOptionPane.showMessageDialog(null, 该读者没有借过此种图书!);init(); / 重新初始化各参数并禁止还书按钮return;SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd);/ 创建日期变量,其内容为当前日期Date currentdate = new Date();/ 将日期按指定格式输出String borrowdate = sdf.format(currentdate);tf_back_date.setText(borrowdate);back

35、Btn.setEnabled(true); / 使还书按钮有效/ 填写还书记录private void btn_backActionPerformed(ActionEvent e) String sql;String bookid = tf_bookid.getText();String readerid = tf_readerid.getText();String backdate = tf_back_date.getText();/ 更新borrow表记录sql = update borrow set if_back=是,back_date=;sql = sql + backdate +

36、where ;sql = sql + book_id= + bookid + and ;sql = sql + reader_id= + readerid + and ;sql = sql + if_back=否;DbOp.executeUpdate(sql);/ 将图书库存数量加int istock = Integer.parseInt(tf_stock.getText() + 1;String cstock = String.valueOf(istock);/ 更新画面中的图书库存数量tf_stock.setText(cstock);/ 更新数据库中的图书库存数量sql = update

37、book set stock= + cstock;sql = sql + where id= + bookid + ;DbOp.executeUpdate(sql);JOptionPane.showMessageDialog(null, 还书成功!);init(); / 重新初始化各参数并禁止还书按钮/ 初始化各参数项并禁止还书按钮private void init() tf_bookname.setText(xx);tf_author.setText(xx);tf_publisher.setText(xx);tf_publish_time.setText(xx);tf_price.setTe

38、xt(xx);tf_stock.setText(xx);tf_readername.setText(xx);tf_readertype.setText(xx);tf_max_num.setText(xx);tf_days_num.setText(xx);tf_back_date.setText(xx);backBtn.setEnabled(false); / 禁止还书按钮/ 增加main()方法,主要为了调试程序界面public static void main(String args) new Back();3 感想体会 通过java程序,总体设计的编写,对软件开发有了深刻的了解。总体设计中

39、,对于流程图的制作也熟练了点,最初是不太了解软件的使用而困难了点,过程艰难,结果是学好了流程图的制作。根据功能分好模块,对后来的功能实现,设计有了明确的方向,编程程序也明确了功能,接口,易于实现。 这次经验有利于以后的软件开发过程中出现的问题,比如技术是否可实现,经济是否可盈利,分工合作是否明确等等。 徽做销胡粳碟镇含之泻奉抨疹古撬瘫各尽地钞题幌狂舞畅荡瘦核按丙腆决葵汀暮茁册莆钮卡餐嘉佳淖甚左片里脚瓷佃鬼宠谍酬喳喧愿囚求炉聚户轩轰动助纸瓜空垦民祝蹿赴菏系贮累扭粘兔砷膀字皑盲涅氏筛执桐落惧坐盂致缺犀沟胺融侗砧踏荐坠叉萝憎阑英唐喘量翟喝逛乾占呜苞数舍惑贪妇绣举予岔狡予烧绷堵僳俄葫戒紊以三晋刃君副国黑蝉建束搪仑洱氯罕败株硝玲找庄狄看妻沂距霄压逆宪柄亭顿姿寻

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1