图书信息管理系统面向对象程序设计课程设计.doc_第1页
图书信息管理系统面向对象程序设计课程设计.doc_第2页
图书信息管理系统面向对象程序设计课程设计.doc_第3页
图书信息管理系统面向对象程序设计课程设计.doc_第4页
图书信息管理系统面向对象程序设计课程设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

14湖南科技学院课程设计报告课程名称:面向对象程序设计课程设计课程设计题目:图书信息管理系统系:数学与计算科学系专 业:信息与计算科学年级、班:2008级4班姓 名:赵涵玉学 号:200805002218指导教师:牛志毅职 称:讲师2011年5月一、 课题说明1、设计一个图书信息管理系统Library Management System2、图书信息包括图书编号bookID、书名titles、作者author、出版社bookconcern、出版日期publicationdate、图书简介bookintroduction及图书类别bookcategory等。3、本系统功能描述:图书信息录入功能; 图书信息浏览功能;查询功能search(至少一种查询方式);图书信息修改alter功能;及其它你认为必要的功能。二、 程序设计思路该课题要求是输入图书信息,对图书信息进行一系列的处理。既要输入图书编号又要能查找到与之对应的书名,还要对实现建立,显示,查找,删除,信息的保存。因为考虑到信息管理信息的实用性,额外添加了一个“读文件”功能,使利用void read()方法来实现的。这个“读文件模块!是我用来扩充信息管理系统功能的!可以使系统在用户不用输入信息就能读取先前已存在的图书信息文件。根据课题要求,首先对要实现的功能类型分为三大类Public类、方法类、信息类;然后细分为七个方法void caidan()、void creat()、void output()、void search()、void delete()、void alter() 、void read ()。这些类和方法构成了能够实现不同功能的模块,很好地体现了面向对象的Java语言的编程模块块的思想。通过调用各功能模块的几个方法,随后在各个method中具体实现相关的功能。当然要利用throws IOException进行一些异常处理,包括输入异常和数据的异常。在数据的录入与输出的过程中涉及到文件的相关操作(包括打开与关闭等)最后是系统的安全退出。大部分功能都是在具体的模块中加以实现的。如search方法实现查询图书信息功能;caidan方法实现系统选择菜单界面的输出等相关功能;delete方法用于图书信息删除;output方法用于图书信息的输出及浏览等系列功能。Alter方法用于图书信息的修改等。三、 程序源代码package librarymanagesystem;import java.io.*;public class booksystem public static void main(final String args) throws IOException/ throws IOException用来抛出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;/书名public String author;/图书作者public String bookconcern;/出版社public String publicationdate;/出版日期public String bookintroduction;/图书简介public String bookcategory;/图书类别/ 把bookID,titles,author,bookconcern,publicationdate,bookintroduction,bookcategory等声明为全局变量,/ 因为它们贯穿于整个程序中,方便其它方法、类调用它们/ 方法类,主要实现图书信息的建立,显示,查找,删除,信息的保存与读取;这个类是整个程序的操作类。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(new 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.println( 3.查找图书信息 );System.out.println( 4.删除图书信息 );System.out.println( 5.安全退出系统 );System.out.println( 6.修改图书信息 );System.out.println( 7.读取数据 );System.out.println();System.out.print( 请输入您的选择(1-7):);choice = Integer.parseInt(buf.readLine();switch (choice) case 1:creat(booksOne);break;case 2:output(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 InputStreamReader(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();System.out.print(作者: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 = 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(图书编号 书名 作者 出版社 出版日期 图书简介 图书类别 );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.bookcategory + n);System.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 = 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 + + booksOnej.titles+ + booksOnej.author + );System.out.print(booksOnej.bookconcern + + booksOnej.publicationdate+ + booksOnej.bookintroduction + );System.out.print(booksOnej.bookcategory + + n);flg = false;if (flg)System.out.println(对不起,查无此书!);void delete(booksInfo booksOne) throws 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 - 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;booksOnek.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()创建FileWriter类的对象。/ 文件的读取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(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(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.修改图书简介 );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;case 2:System.out.print(新的图书名:nn);booksOnej.titles = buf.readLine();break;case 3:System.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 = 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 BufferedReader(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.bookintroduction = bfr.readLine();booksOnej.bookcategory = bfr.readLine();fr.close();System.out.println(n 数据已经成功读取!);四、 程序测试数学与计算科学系信计0802班赵涵玉设计 图书管理系统主菜单界面 1.输入图书信息 2.浏览图书信息 3.查找图书信息 4.删除图书信息 5.安全退出系统 6.修改图书信息 7.读取数据 请输入您的选择(1-7):1请输入图书信息(以0结束)图书编号:1书名:2作者:3出版社:4出版日期:5图书简介:6图书类别:7请输入下一本图书的信息:请输入您的选择(1-7):2- *图书信息表* -图书编号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论