图书信息管理系统 面向对象程序设计课程设计.docx
- 文档编号:3738318
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:15
- 大小:21.27KB
图书信息管理系统 面向对象程序设计课程设计.docx
《图书信息管理系统 面向对象程序设计课程设计.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统 面向对象程序设计课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
图书信息管理系统面向对象程序设计课程设计
湖南科技学院
课程设计报告
课程名称:
面向对象程序设计课程设计
课程设计题目:
图书信息管理系统
系:
数学与计算科学系
专业:
信息与计算科学
年级、班:
2008级4班
姓名:
赵涵玉
学号:
200805002218
指导教师:
牛志毅
职称:
讲师
2011年5月
一、课题说明
1、设计一个图书信息管理系统LibraryManagementSystem
2、图书信息包括图书编号bookID、书名titles、作者author、出版社bookconcern、出版日期publicationdate、图书简介bookintroduction及图书类别bookcategory等。
3、本系统功能描述:
图书信息录入功能;
图书信息浏览功能;
查询功能search(至少一种查询方式);
图书信息修改alter功能;
及其它你认为必要的功能。
二、程序设计思路
该课题要求是输入图书信息,对图书信息进行一系列的处理。
既要输入图书编号又要能查找到与之对应的书名,还要对实现建立,显示,查找,删除,信息的保存。
因为考虑到信息管理信息的实用性,额外添加了一个“读文件”功能,使利用voidread()方法来实现的。
这个“读文件模块"!
是我用来扩充信息管理系统功能的!
可以使系统在用户不用输入信息就能读取先前已存在的图书信息文件。
根据课题要求,首先对要实现的功能类型分为三大类——Public类、方法类、信息类;然后细分为七个方法——voidcaidan()、voidcreat()、voidoutput()、voidsearch()、voiddelete()、voidalter()、voidread()。
这些类和方法构成了能够实现不同功能的模块,很好地体现了面向对象的Java语言的编程模块块的思想。
通过调用各功能模块的几个方法,随后在各个method中具体实现相关的功能。
当然要利用throwsIOException进行一些异常处理,包括输入异常和数据的异常。
在数据的录入与输出的过程中涉及到文件的相关操作(包括打开与关闭等)最后是系统的安全退出。
大部分功能都是在具体的模块中加以实现的。
如search方法实现查询图书信息功能;caidan方法实现系统选择菜单界面的输出等相关功能;delete方法用于图书信息删除;output方法用于图书信息的输出及浏览等系列功能。
Alter方法用于图书信息的修改等。
三、程序源代码
packagelibrarymanagesystem;
importjava.io.*;
publicclassbooksystem{
publicstaticvoidmain(finalString[]args)throwsIOException
//throwsIOException用来抛出io的错误,文件读写错误,主要涉及到java的安全机制
{
booksInfobooksOne[]=newbooksInfo[100];//定义100个类数组
for(intj=0;j<100;j++)
booksOne[j]=newbooksInfo();//建立这100个类的对象
finalwaysbooksTwo=newways();//建立这个方法类的对象
booksTwo.caidan(booksOne);
}
}
classbooksInfo{//图书信息类,存放图书的信息
publicStringbookID;//图书编号
publicStringtitles;//书名
publicStringauthor;//图书作者
publicStringbookconcern;//出版社
publicStringpublicationdate;//出版日期
publicStringbookintroduction;//图书简介
publicStringbookcategory;//图书类别
//把bookID,titles,author,bookconcern,publicationdate,bookintroduction,bookcategory等声明为全局变量,
//因为它们贯穿于整个程序中,方便其它方法、类调用它们
}
//方法类,主要实现图书信息的建立,显示,查找,删除,信息的保存与读取;这个类是整个程序的操作类。
classways{
publicStringrecordkey;
publicinti=0;//i用来存放图书的数目
publicStringfilename="Infomation.txt";
BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));
voidcaidan(booksInfobooksOne[])throwsIOException{
finalBufferedReaderbuf=newBufferedReader(newInputStreamReader(
System.in));
//产生Buf对象;buf是BufferedReader类的变量,此处将读入字符串至buf
intchoice;
do{
System.out.println("☆★☆★☆★☆数学与计算科学系信计0802班★赵涵玉★设计★☆★☆★☆\n\n");
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){
case1:
creat(booksOne);
break;
case2:
output(booksOne);
break;
case3:
search(booksOne);
break;
case4:
delete(booksOne);
break;
case5:
save(booksOne);
break;
case6:
alter(booksOne);
break;
case7:
read(booksOne);
break;
}
}while(true);
}
//实现“增加(建立)图书信息”
voidcreat(booksInfobooksOne[])throwsIOException{
finalBufferedReaderbuf=newBufferedReader(newInputStreamReader(
System.in));
System.out.print("\n请输入图书信息(以0结束)\n");
System.out.print("图书编号:
\n\n");
booksOne[i].bookID=buf.readLine();
//用数组booksOne[i]来暂存图书的序号,并用compareTo方法确定判定是否应该写入新信息
while(booksOne[i].bookID.compareTo("0")!
=0){
System.out.print("书名:
\n\n");
booksOne[i].titles=buf.readLine();
System.out.print("作者:
\n\n");
booksOne[i].author=buf.readLine();
System.out.print("出版社:
\n\n");
booksOne[i].bookconcern=buf.readLine();
System.out.print("出版日期:
\n\n");
booksOne[i].publicationdate=buf.readLine();
System.out.print("图书简介:
\n\n");
booksOne[i].bookintroduction=buf.readLine();
System.out.print("图书类别:
\n\n");
booksOne[i].bookcategory=buf.readLine();
i++;
System.out.println("请输入下一本图书的信息:
\n\n");
booksOne[i].bookID=buf.readLine();
}
}
//这里是实现“输出(预览)职工信息”output的模块
voidoutput(booksInfobooksOne[])throwsIOException{
System.out
.println("-------------------------------------------------------------------------------");
System.out
.println("*图书信息表*");
System.out
.println("-------------------------------------------------------------------------------");
System.out
.println("图书编号书名作者出版社出版日期图书简介图书类别");
System.out
.println("-------------------------------------------------------------------------------");
if(i!
=0){
for(intj=0;j
System.out.print(booksOne[j].bookID+""+booksOne[j].titles
+""+booksOne[j].author+"");
System.out.print(booksOne[j].bookconcern+""+booksOne[j].publicationdate
+""+booksOne[j].bookintroduction+"");
System.out.print(booksOne[j].bookcategory+"\n");
}
System.out
.println("-------------------------------------------------------------------------------");
}else
System.out.println("没有图书信息!
");
}
//实现图书信息的查询功能的模块
voidsearch(booksInfobooksOne[])throwsIOException{
finalBufferedReaderbuf=newBufferedReader(newInputStreamReader(
System.in));
System.out.println("\n请输入您要查找的图书编号:
");
recordkey=buf.readLine();
booleanflg=true;
System.out
.println("-------------------------------------------------------------------------------");
System.out
.println("*图书信息表*");
System.out
.println("-------------------------------------------------------------------------------");
System.out
.println("图书编号书名作者出版社出版日期图书简介图书类别");
System.out
.println("-------------------------------------------------------------------------------");
for(intj=0;j
if(recordkey.equals(booksOne[j].bookID)){//equals是字符串比较函数相等返回true
System.out.print(booksOne[j].bookID+""+booksOne[j].titles
+""+booksOne[j].author+"");
System.out.print(booksOne[j].bookconcern+""+booksOne[j].publicationdate
+""+booksOne[j].bookintroduction+"");
System.out.print(booksOne[j].bookcategory+""+"\n");
flg=false;
}
}
if(flg)
System.out.println("对不起,查无此书!
");
}
voiddelete(booksInfobooksOne[])throwsIOException{
finalBufferedReaderbuf=newBufferedReader(newInputStreamReader(
System.in));
System.out.println("\n请输入您要删除的图书编号:
");
recordkey=buf.readLine();
booleanflg=true;
for(intj=0;j
if(recordkey.equals(booksOne[j].bookID)){
//利用顺序表的删除算法,删除值之后,再把后面的值往前移位,从而实现删除
for(intk=j;k<=i-1;k++){
booksOne[k].bookID=booksOne[k+1].bookID;
booksOne[k].titles=booksOne[k+1].titles;
booksOne[k].author=booksOne[k+1].author;
booksOne[k].bookconcern=booksOne[k+1].bookconcern;
booksOne[k].publicationdate=booksOne[k+1].publicationdate;
booksOne[k].bookintroduction=booksOne[k+1].bookintroduction;
booksOne[k].bookcategory=booksOne[k+1].bookcategory;
}
i--;//职工人数要减一
flg=false;
}
}
if(flg)
System.out.println("对不起,查无此书!
。
");
else
System.out.println("已经删除!
。
");
}
//数据的保存模块,把输入的图书信息保存到相应的文件里。
voidsave(booksInfobooksOne[])throwsIOException{
intk;
finalFileWriterfw=newFileWriter(filename);//调用构造函数FileWriter()创建FileWriter类的对象。
//文件的读取
fw.write(i+"\n");//把职工的人数保存到文件中以便下次读取是使用
for(k=0;k
fw.write(booksOne[k].bookID+"\n");
fw.write(booksOne[k].titles+"\n");
fw.write(booksOne[k].author+"\n");
fw.write(booksOne[k].bookconcern+"\n");
fw.write(booksOne[k].publicationdate+"\n");
fw.write(booksOne[k].bookintroduction+"\n");
fw.write(booksOne[k].bookcategory+"\n");
}
fw.close();
System.out.println("\n系统已经安全退出!
感谢您的使用!
");
System.exit(0);
}
voidalter(booksInfobooksOne[])throwsIOException{
finalBufferedReaderbuf=newBufferedReader(newInputStreamReader(
System.in));
intchoice;
System.out.println("\n请输入您要修改的图书编号:
\n");
recordkey=buf.readLine();
for(intj=0;j
if(recordkey.equals(booksOne[j].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){
case1:
System.out.print("新的图书编号:
\n\n");
booksOne[j].bookID=buf.readLine();
break;
case2:
System.out.print("新的图书名:
\n\n");
booksOne[j].titles=buf.readLine();
break;
case3:
System.out.print("新的图书作者:
\n\n");
booksOne[j].author=buf.readLine();
break;
case4:
System.out.print("新的出版社:
\n\n");
booksOne[j].bookconcern=buf.readLine();
break;
case5:
System.out.print("新的图书出版日期:
\n\n");
booksOne[j].publicationdate=buf.readLine();
break;
case6:
System.out.print("新的图书简介:
\n\n");
booksOne[j].bookintroduction=buf.readLine();
break;
case7:
System.out.print("新的图书类别:
\n\n");
booksOne[j].bookcategory=buf.readLine();
break;
}
}else
System.out.println("不存在!
");}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书信息管理系统 面向对象程序设计课程设计 图书 信息管理 系统 面向 对象 程序设计 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)