收藏 分享(赏)

图书信息管理系统 面向对象程序设计课程设计.doc

上传人:hskm5268 文档编号:7135364 上传时间:2019-05-06 格式:DOC 页数:14 大小:111KB
下载 相关 举报
图书信息管理系统 面向对象程序设计课程设计.doc_第1页
第1页 / 共14页
图书信息管理系统 面向对象程序设计课程设计.doc_第2页
第2页 / 共14页
图书信息管理系统 面向对象程序设计课程设计.doc_第3页
第3页 / 共14页
图书信息管理系统 面向对象程序设计课程设计.doc_第4页
第4页 / 共14页
图书信息管理系统 面向对象程序设计课程设计.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、1湖南科技学院课程设计报告课程名称: 面向对象程序设计课程设计课程设计题目: 图书信息管理系统系: 数学与计算科学系专 业: 信息与计算科学年级、班: 2008 级 4 班姓 名: 赵涵玉学 号: 200805002218指导教师: 牛志毅职 称: 讲师2011 年 5 月2一、 课题说明1、设计一个图书信息管理系统 Library Management System2、图书信息包括图书编号 bookID、书名 titles、作者 author、出版社 bookconcern、出版日期 publicationdate、图书简介bookintroduction 及图书类别 bookcategor

2、y 等。3、本系统功能描述:图书信息录入功能; 图书信息浏览功能;查询功能 search(至少一种查询方式) ;图书信息修改 alter 功能;及其它你认为必要的功能。二、 程序设计思路该课题要求是输入图书信息,对图书信息进行一系列的处理。既要输入图书编号又要能查找到与之对应的书名,还要对实现建立,显示,查找,删除,信息的保存。因为考虑到信息管理信息的实用性,额外添加了一个“读文件”功能,使利用 void read()方法来实现的。这个“读文件模块“!是我用来扩充信息管理系统功能的!可以使系统在用户不用输入信息就能读取先前已存在的图书信息文件。根据课题要求,首先对要实现的功能类型分为三大类Pu

3、blic 类、方法类、信息类;然后细分为七个方法void caidan()、 void creat()、void output()、void search()、 void delete()、void alter() 、void read ()。这些类和方法构成了能够实现不同功能的模块,很好地体现了面向对象的 Java 语言的编程模块块的思想。通过调用各功能模块的几个方法,随后在各个 method 中具体实现相关的功能。当然要利用 throws IOException 进行一些异常处理,包括输入异常和数据的3异常。在数据的录入与输出的过程中涉及到文件的相关操作(包括打开与关闭等)最后是系统的安全

4、退出。大部分功能都是在具体的模块中加以实现的。如 search 方法实现查询图书信息功能; caidan 方法实现系统选择菜单界面的输出等相关功能;delete 方法用于图书信息删除;output 方法用于图书信息的输出及浏览等系列功能。Alter 方法用于图书信息的修改等。三、 程序源代码package librarymanagesystem;import java.io.*;public class booksystem public static void main(final String args) throws IOException/ throws IOException用来抛出

5、io的错误,文件读写错误,主要涉及到java的安全机制booksInfo booksOne = new booksInfo100; / 定义100个类数组for (int j = 0; j 100; j+)booksOnej = new booksInfo();/ 建立这100个类的对象final ways booksTwo = new ways(); / 建立这个方法类的对象booksTwo.caidan(booksOne);class booksInfo / 图书信息类,存放图书的信息public String bookID;/图书编号public String titles;/书名pub

6、lic String author;/图书作者public String bookconcern;/出版社public String publicationdate;/出版日期public String bookintroduction;/图书简介public String bookcategory;/图书类别/ 把bookID,titles,author,bookconcern,publicationdate,bookintroduction,bookcategory等声明为全局变量,/ 因为它们贯穿于整个程序中,方便其它方法、类调用它们4/ 方法类,主要实现图书信息的建立,显示,查找,删除

7、,信息的保存与读取;这个类是整个程序的操作类。class ways public String recordkey;public int i = 0;/ i用来存放图书的数目public String filename = “Infomation.txt“;BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);void caidan(booksInfo booksOne) throws IOException final BufferedReader buf = new BufferedReader(n

8、ew InputStreamReader(System.in);/ 产生Buf对象;buf是BufferedReader类的变量,此处将读入字符串至bufint choice;do System.out.println(“数学与计算科学系信计 0802班赵涵玉设计nn“);System.out.println(“);System.out.println(“ 图书管理系统主菜单界面 “ );System.out.println(“);System.out.println(“ 1.输入图书信息 “);System.out.println(“ 2.浏览图书信息 “);System.out.print

9、ln(“ 3.查找图书信息 “);System.out.println(“ 4.删除图书信息 “);System.out.println(“ 5.安全退出系统 “);System.out.println(“ 6.修改图书信息 “);System.out.println(“ 7.读取数据 “);5System.out.println(“);System.out.print(“ 请输入您的选择(1-7):“);choice = Integer.parseInt(buf.readLine();switch (choice) case 1:creat(booksOne);break;case 2:ou

10、tput(booksOne);break;case 3:search(booksOne);break;case 4:delete(booksOne);break;case 5:save(booksOne);break;case 6:alter(booksOne);break;case 7:read(booksOne);break; while (true);/ 实现“增加(建立)图书信息 ”void creat(booksInfo booksOne) throws IOException final BufferedReader buf = new BufferedReader(new Inp

11、utStreamReader(System.in);System.out.print(“n请输入图书信息(以0结束)n“);System.out.print(“图书编号:nn“ );booksOnei.bookID = buf.readLine();/ 用数组booksOnei来暂存图书的序号,并用compareTo方法确定判定是否应该写入新信息while (booksOnei.bookID.compareTo(“0“) != 0) System.out.print(“书名:nn“);booksOnei.titles = buf.readLine();6System.out.print(“作者

12、:nn“);booksOnei.author = buf.readLine();System.out.print(“出版社:nn“);booksOnei.bookconcern = buf.readLine();System.out.print(“出版日期:nn“);booksOnei.publicationdate = buf.readLine();System.out.print(“图书简介:nn“);booksOnei.bookintroduction = buf.readLine();System.out.print(“图书类别:nn“);booksOnei.bookcategory

13、= buf.readLine();i+;System.out.println(“请输入下一本图书的信息 :nn“);booksOnei.bookID = buf.readLine();/ 这里是实现“输出(预览)职工信息 ”output的模块void output(booksInfo booksOne) throws IOException System.out.println(“-“);System.out.println(“ *图书信息表* “);System.out.println(“-“);System.out.println(“图书编号 书名 作者 出版社 出版日期 图书简介 图书类

14、别 “);System.out.println(“-“);if (i != 0) for (int j = 0; j i; j+) System.out.print(booksOnej.bookID + “ “ + booksOnej.titles+ “ “ + booksOnej.author + “ “);System.out.print(booksOnej.bookconcern + “ “ + booksOnej.publicationdate+ “ “ + booksOnej.bookintroduction + “ “);System.out.print(booksOnej.boo

15、kcategory + “n“);7System.out.println(“-“); elseSystem.out.println(“没有图书信息!“);/ 实现图书信息的查询功能的模块void search(booksInfo booksOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.println(“n请输入您要查找的图书编号:“ );recordkey = buf.readLine();boolean flg

16、= true;System.out.println(“-“);System.out.println(“ *图书信息表* “);System.out.println(“-“);System.out.println(“图书编号 书名 作者 出版社 出版日期 图书简介 图书类别 “);System.out.println(“-“);for (int j = 0; j i; j+) if (recordkey.equals(booksOnej.bookID) / equals是字符串比较函数相等返回trueSystem.out.print(booksOnej.bookID + “ “ + booksO

17、nej.titles+ “ “ + booksOnej.author + “ “);System.out.print(booksOnej.bookconcern + “ “ + booksOnej.publicationdate+ “ “ + booksOnej.bookintroduction + “ “);System.out.print(booksOnej.bookcategory + “ “ + “n“);flg = false;8if (flg)System.out.println(“对不起,查无此书! “);void delete(booksInfo booksOne) throw

18、s IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.println(“n请输入您要删除的图书编号:“ );recordkey = buf.readLine();boolean flg = true;for (int j = 0; j i; j+) if (recordkey.equals(booksOnej.bookID) / 利用顺序表的删除算法,删除值之后,再把后面的值往前移位,从而实现删除for (int k = j; k = i -

19、 1; k+) booksOnek.bookID = booksOnek + 1.bookID;booksOnek.titles = booksOnek + 1.titles;booksOnek.author = booksOnek + 1.author;booksOnek.bookconcern = booksOnek + 1.bookconcern;booksOnek.publicationdate = booksOnek + 1.publicationdate;booksOnek.bookintroduction = booksOnek + 1.bookintroduction;book

20、sOnek.bookcategory = booksOnek + 1.bookcategory;i-;/ 职工人数要减一flg = false;if (flg)System.out.println(“对不起,查无此书!。 “);elseSystem.out.println(“已经删除!。“ );/ 数据的保存模块,把输入的图书信息保存到相应的文件里。void save(booksInfo booksOne) throws IOException int k;final FileWriter fw = new FileWriter(filename);/ 调用构造函数FileWriter()创建

21、 FileWriter类的对象。9/ 文件的读取fw.write(i + “n“);/ 把职工的人数保存到文件中以便下次读取是使用for (k = 0; k i; k+) / 每个职工有 9个信息字段,下面就是这9 个信息段。fw.write(booksOnek.bookID + “n“);fw.write(booksOnek.titles + “n“);fw.write(booksOnek.author + “n“);fw.write(booksOnek.bookconcern + “n“);fw.write(booksOnek.publicationdate + “n“);fw.write

22、(booksOnek.bookintroduction + “n“);fw.write(booksOnek.bookcategory + “n“);fw.close();System.out.println(“n 系统已经安全退出!感谢您的使用!“);System.exit(0);void alter (booksInfo booksOne) throws IOExceptionfinal BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);int choice;System.out.println(

23、“n请输入您要修改的图书编号:n“);recordkey = buf.readLine();for (int j = 0; j i; j+)if (recordkey.equals(booksOnej.bookID)System.out.println(“ 1.修改图书编号 “);System.out.println(“ 2.修改书名 “);System.out.println(“ 3.修改图书作者 “);System.out.println(“ 4.修改图书出版社 “);System.out.println(“ 5.修改出版日期 “);System.out.println(“ 6.修改图书简

24、介 “);System.out.println(“ 7.修改图书类别 “);System.out.print(“ 请输入您的选择(1-7):“);choice = Integer.parseInt(buf.readLine();switch (choice) case 1:System.out.print(“新的图书编号:nn“ );booksOnej.bookID = buf.readLine();break;10case 2:System.out.print(“新的图书名:nn“ );booksOnej.titles = buf.readLine();break;case 3:System

25、.out.print(“新的图书作者:nn“ );booksOnej.author = buf.readLine();break;case 4:System.out.print(“新的出版社:nn“ );booksOnej.bookconcern = buf.readLine();break;case 5:System.out.print(“新的图书出版日期:nn“ );booksOnej.publicationdate = buf.readLine();break;case 6:System.out.print(“新的图书简介:nn“ );booksOnej.bookintroduction

26、 = buf.readLine();break;case 7:System.out.print(“新的图书类别:nn“ );booksOnej.bookcategory = buf.readLine();break;elseSystem.out.println(“不存在!“ );/ 读文件模块,读取先前已存在的职工信息文件void read(booksInfo booksOne) throws IOException final FileReader fr = new FileReader(filename);final BufferedReader bfr = new BufferedRea

27、der(fr);if (recordkey = bfr.readLine() != null)i = Integer.parseInt(recordkey);for (int j = 0; j i; j+) booksOnej.bookID = bfr.readLine();booksOnej.titles = bfr.readLine();booksOnej.author = bfr.readLine();booksOnej.bookconcern = bfr.readLine();booksOnej.publicationdate = bfr.readLine();booksOnej.bo

28、okintroduction = bfr.readLine();booksOnej.bookcategory = bfr.readLine();11fr.close();System.out.println(“n 数据已经成功读取!“);四、 程序测试数学与计算科学系信计0802班赵涵玉设计 图书管理系统主菜单界面 1.输入图书信息 2.浏览图书信息 3.查找图书信息 4.删除图书信息 5.安全退出系统 6.修改图书信息 7.读取数据 请输入您的选择(1-7):1请输入图书信息(以0结束)图书编号:1书名:212作者:3出版社:4出版日期:5图书简介:6图书类别:7请输入下一本图书的信息:请输

29、入您的选择(1-7):2-*图书信息表* -图书编号 书名 作者 出版社 出版日期 图书简介 图书类别 -1 2 3 4 5 6 7-请输入您的选择(1-7):3请输入您要查找的图书编号:1-*图书信息表* -图书编号 书名 作者 出版社 出版日期 图书简介 图书类别 -131 2 3 4 5 6 7 请输入您的选择(1-7):4请输入您要删除的图书编号:1已经删除!。请输入您的选择(1-7):5系统已经安全退出!感谢您的使用!请输入您的选择(1-7):6请输入您要修改的图书编号:11.修改图书编号 2.修改书名 3.修改图书作者 4.修改图书出版社 5.修改出版日期 6.修改图书简介 7.修

30、改图书类别 请输入您的选择(1-7):1新的图书编号:2请输入您的选择(1-7):714数据已经成功读取!五、 设计总结一、多动手、多参考。本次课程设计综合考察了我们对 Java 程序设计知识的掌握熟练程度和实际运用能力。其间,涉及到了 Java 中的大多数的知识点,如 Java的类与对象、Java 的异常处理机制、 Java 中的集合框架、 Java 输入输出流等。程序实现的关键在于功能的合理划分以及各个包或者类之间的通讯问题,只要分析清楚这两点,剩下的就是按部就班的写代码了。所以设计是关键。功能实现了,再就是如何对程序进行性能优化的问题。这不但需要扎实掌握基础知识,而且还需要多实践,在编程

31、实践中学习、理解性能优化的问题。作为一门程序设计语言,Java 的学习务必要做到多看多写多想多请教。二、多看,看高手、大师的程序。借鉴其解题思路和程序架构;多写,学习程序设计很重要的就是要自己亲自动手写代码,切忌犯眼高手低的弊病,而且这样记忆非常深刻;多想,程序调试中出现一些“莫明其妙”的问题,为什么会这样而不是那样;多请教:程序设计说到底是要彻底搞清设计该语言的人的思想,遇到问题想不通应该请教同学、老师等。这样可达到事半功倍的目的。六、 参考文献【1】 刘宝林. Java 程序设计与案例M. 北京: 高等教育出版社, 2004.11。【2】吴亚峰, 纪超. Java SE 6.0 编程指南M. 北京: 人民邮电出版社, 2007.11。【3】lava 程序设计与案例。自我评分:70

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报