课程设计:图书信息管理系统.doc_第1页
课程设计:图书信息管理系统.doc_第2页
课程设计:图书信息管理系统.doc_第3页
课程设计:图书信息管理系统.doc_第4页
课程设计:图书信息管理系统.doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

湖南科技学院课程设计报告课程名称:面向对象程序设计课程设计课程设计题目:图书信息管理系统系:数学与计算科学系专 业:信息与计算科学年级、班:XXX姓 名:XXX学 号:XXX指导教师:XXX职 称:XXX2011年5月20日14自我评价我给自己的评分为:72分,主要原因有以下几点:1、 我仔细看了老师给的程序,并且认为很完善,所以并没有多加改动,而是整理了它的格式与其对象。虽然加入图形界面可能更有实用性,但由于知识的浅薄我并没有实现此功能,这也是减分点。2、 在原有程序基础上我添加了修改函数和程序信息函数,其中我让修改函数不断完善。通过输入图书编号能修改图书的任何信息,包括它的图书编号。但它不能同时修改多本书的多个信息,这是它的缺陷。通过多次进入修改函数更能使操作清晰化,所以我并没有再改动。至于另一个程序信息函数仅仅是为了实现它的可用性,这样使用者可以知道它的出处便于一起修改,当然也有点多此一举。3、 这个课程设计报告是我自己一个一个字打出来的,我主要也是为了自己的组织编写能力,毕竟以后这样的文章可能要接触很多,必须得学会。其中字的排版、大小、编号、页码等,每个细节都是应该注意的。4、 我觉得作业的作用就是使我们掌握多少,通过自己慢慢调试,慢慢完善,获得的动手能力是平时上课得不到的。由于从来没写过自我评分,也不知道自己的格式是否正确。同时我相信我给自己的这个分数是完全可以的,因为付出了多少我自己清楚。分数应该不能完全凭借程序的多好,因为每个人的知识储备是不一样的。目录一、 课题分析-11.1课题重述-11.2课题要素-11.3课题假设-1二、 程序设计思路-2三、 程序源代码及注释-3四、 程序测试-10五、 设计总结-14六、 参考文献-15一、课题分析1.1 课题要求此课程设计要求设计一个图书信息管理系统,图书信息包括图书编号、书名、作者、出版社、出版日期、图书简介及图书类别等。本系统的功能包括: 图书信息录入功能; 图书信息浏览功能;查询功能(至少一种查询方式);图书信息修改功能;及其它必要的功能。1.2 课题要素此课题的要素主要是要实现程序的实用性,它应该能保存每次录用进去的图书信息,而不是每次都要重新输一次。这就要求应该怎样保存信息呢?用文档保存,实现文件的输入和输出。同时查找功能如果能用图书简介进行查找,它的实用性应该就更强,但需要进行字符匹配概率,比较复杂故没有在此次课程设计中体现。同时系统功能的编写,也要实现精简、实用、时间复杂度最小等。1.3 课题假设此次课题我做这样的假设流程:创建二个图书信息保存并退出重新运行读取信息预览图书信息根据图书编码查找图书信息根据图书编码改变图书信息根据图书编码删除图书信息预览图书信息显示程序信息保存并退出。创建的两个图书信息我假设依次输入为:1、1234 数值计算方法 吕同富 清华大学 200811 数学 ¥33 学习数值计算方法;2、1235 Java程序设计与案例 刘宝林 高等教育 200411 计算机 ¥30 Java程序的编写与学习。 改变图书信息我假设为图书编号1234的图书的出版日期改为:200810,价格改为:¥32。 删除图书信息我假设为图书编号1235的图书。则可知最后文档中保存的信息应该为:1234 数值计算方法 吕同富 清华大学 200810 数学 ¥32 学习数值计算方法;根据以确定的假设要验证答案是否正确。二、程序设计思路(一)建立图书信息类(bookInfo)根据课题要求它的对象应该有:序号对象名数据类型含义1numberString图书编号2writerString作者3nameString书名4publish_houseString出版社5publish_dateString出版日期6categoryString图书类别7priceString图书价格8introductionString图书简介同时都声明为全局变量,方便调用。(二)建方法类(way)同样根据课题要求方法类中实现的操作有:caidan():输出图书信息管理系统的主菜单,通过这个函数进入系统的其他功能的操作;creat():实现增加图书信息的功能;output():预览图书信息;search():根据图书编号查找图书信息;delete():根据图书编号删除图书信息;chang():根据图书编号修改图书信息;displayInfo():显示程序信息;save():保存图书信息,并推出系统;read():读取保存了的图书信息;三、程序源代码及注释/ BookInfomation.javapackage book;/包import java.io.*;public class BookInfomation public static void main(final String args) throws IOException/ throws IOException用来抛出io的错误,文件读写错误,主要涉及到java的安全机制bookInfo bookOne = new bookInfo100; / 定义100个类数组for (int j = 0; j 100; j+)bookOnej = new bookInfo();/ 建立这100个类的对象final ways bookTwo = new ways(); / 建立这个方法类的对象bookTwo.caidan(bookOne);/调用方法类中的caidan函数class bookInfo / 图书信息类,存放图书的信息public String number;/图书编号public String writer;/作者public String name;/书名public String publish_house;/出版社public String publish_date;/出版日期public String category;/图书类别public String price;/图书价格public String introduction;/图书简介/ 把number、writer、name、publish_house等声明为全局变量,/ 因为它们贯穿于整个程序中,方便其它方法、类调用它们/ 方法类,主要实现图书信息的建立,显示,查找,删除,修改,信息的保存/与读取;这个类是整个程序的操作类。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(bookInfo bookOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);/ 产生buf对象;buf是BufferedReader类的变量,此处将读入/字符串至bufint choice;do 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(8.读取数据);System.out.print( 请输入您的选择(1-8):);choice = Integer.parseInt(buf.readLine();switch (choice) case 1:creat(bookOne);/创建图书信息break;case 2:output(bookOne);/预览图书信息break;case 3:search(bookOne);/查找图书信息break;case 4:delete(bookOne);/删除图书信息break;case 5:chang(bookOne);/修改图书信息break;case 6:displayInfo();/显示程序信息break;case 7:save(bookOne);/保存并退出break;case 8:read(bookOne);/读取已保存的信息break; default: System.out.println(没有该选项!); / 选项输入错误 while (true);/增加(建立)图书信息void creat(bookInfo bookOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.print(n请输入图书信息(以0结束)n);System.out.print(图书编号:);bookOnei.number = buf.readLine();/ 用数组bookOnei来暂存图书的序号,并用compareTo方法确定判定/是否应该写入新信息while (bookOpareTo(0) != 0) System.out.print(书名:);bookO= buf.readLine();System.out.print(作者:);bookOnei.writer= buf.readLine();System.out.print(出版社:);bookOnei.publish_house= buf.readLine();System.out.print(出版日期:);bookOnei.publish_date= buf.readLine();System.out.print(图书类别:);bookOnei.category = buf.readLine();System.out.print(图书价格:);bookOnei.price = buf.readLine();System.out.print(图书简介:);bookOroduction= buf.readLine();i+;System.out.println(请输入下一个图书信息:n);System.out.print(图书编号:);bookOnei.number= buf.readLine();/输出(预览)图书信息void output(bookInfo bookOne) throws IOException System.out.println( n*图书信息表* );if (i != 0) for (int j = 0; j i; j+) System.out.print(图书编号:+bookOnej.number + n + 书名:+bookO+ n + 作者:+ bookOnej.writer + n+出版社:+bookOnej.publish_house +n+出版日期:+bookOnej.publish_date+n+图书分类:+bookOnej.category+n+图书价格:+bookOnej.price+n+图书简介:+bookOroduction+n); elseSystem.out.println(没有图书信息!);/ 实现图书信息的查询功能的模块void search(bookInfo bookOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.println(n请输入您要查找的图书编号:);recordkey = buf.readLine();boolean flag = true;for (int j = 0; j i; j+) if (recordkey.equals(bookOnej.number) / equals是字符串比较函数相等返回trueSystem.out.println( *图书信息表* );System.out.print(图书编号:+bookOnej.number + n + 书名:+bookO+ n + 作者:+ bookOnej.writer + n+出版社:+bookOnej.publish_house +n+出版日期:+bookOnej.publish_date+n+图书分类:+bookOnej.category+n+图书价格:+bookOnej.price+n+图书简介:+bookOroduction+n);flag = false;if (flag)System.out.println(对不起,图书馆没有此书!);/ 实现图书信息的删除功能的模块void delete(bookInfo bookOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.println(n请输入您要删除的图书编号:);recordkey = buf.readLine();boolean flag = true;for (int j = 0; j i; j+) if (recordkey.equals(bookOnej.number) / 利用顺序表的删除算法,删除值之后,再把后面的值往前移位,从而实现删除for (int k = j; k = i - 1; k+) bookOnek.number = bookOnek + 1.number;bookO = bookOnek + 1.name;bookOnek.writer = bookOnek + 1.writer;bookOnek.publish_house=bookOnek + 1.publish_house;bookOnek.publish_date=bookOnek + 1.publish_date;bookOnek.category= bookOnek + 1.category;bookOnek.price= bookOnek + 1.price;bookOroduction=bookOnek + 1.introduction;i-;/ 图书要减一flag = false;if (flag)System.out.println(对不起,图书馆没有此书!);elseSystem.out.println(已经删除!); / 实现图书信息的修改功能的模块void chang(bookInfo bookOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.println(n请输入您要修改的图书编号(以0结束):);recordkey = buf.readLine();boolean flag = true;for (int j = 0; j i; j+) System.out.println(n请输入您要修改的图书方面(编号、书名、作者、出版社、出版日期、类别、价格、简介):); recordkey = buf.readLine();while(pareTo(0) != 0) /实现可修改多个方面if (recordkey.equals(编号) System.out.print(新的图书编号:);bookOnej.number= buf.readLine();if (recordkey.equals(书名) System.out.print(新的书名:);bookO= buf.readLine(); if (recordkey.equals(作者) System.out.print(新的作者:);bookOnej.writer= buf.readLine();if (recordkey.equals(出版社) System.out.print(新的出版社:);bookOnej.publish_house= buf.readLine();if (recordkey.equals(出版日期) System.out.print(新的出版日期:);bookOnej.publish_date= buf.readLine();if (recordkey.equals(类别) System.out.print(新的图书类别:);bookOnej.category = buf.readLine();if (recordkey.equals(价格) System.out.print(新的图书价格:);bookOnej.price= buf.readLine();if (recordkey.equals(简介) System.out.print(新的图书简介:);bookOroduction= buf.readLine();System.out.println(请输入下一个修改方面:n);recordkey = buf.readLine(); flag = false; if (flag)System.out.println(对不起,图书馆没有此书!);elseSystem.out.println(已经修改完成!);/显示程序信息功能的模块 void displayInfo() System.out.println(n【 程序信息 】); System.out.println(环境: ); System.out.println( eclipse); System.out.println(人员: ); System.out.println( 申燕萍 ); System.out.println(学号:); System.out.println( 200805002117); System.out.println(系部班级:); System.out.println( 数学系0803班); System.out.println(指导老师:); System.out.println( 牛志毅); System.out.println(参考程序:); System.out.println( 职工信息管理系统); System.out.println(完成时间:); System.out.println( 2008年5月15日+n); / 数据的保存模块,把输入的图书信息保存到相应的文件里void save(bookInfo bookOne) throws IOException int k;final FileWriter fw = new FileWriter(filename);/ 调用构造函数FileWriter()创建FileWriter类的对象fw.write(i + n);/ 把图书的人数保存到文件中以便下次读取是使用for (k = 0; k i; k+) / 图书的8个信息段fw.write(bookOnek.number + n);fw.write(bookO + n);fw.write(bookOnek.writer+ n);fw.write(bookOnek.publish_house+ n);fw.write(bookOnek.publish_date+ n);fw.write(bookOnek.category+ n);fw.write(bookOnek.price+ n);fw.write(bookOroduction+ n);fw.close();System.out.println(n 系统已经安全退出!感谢您的使用!);System.exit(0);/ 读文件模块,读取先前已存在的图书信息文件void read(bookInfo bookOne) 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 运行控制台: *图书信息管理系统主菜单界面 * 1.输入图书信息 2.预览图书信息3.查询图书信息4.删除图书信息5.修改图书信息6.程序相关信息7.安全退出系统8.读取数据 请输入您的选择(1-8):1请输入图书信息(以0结束)图书编号:1234书名:数值计算方法作者:吕同富出版社:清华大学出版日期:200811图书类别:数学图书价格:¥33图书简介:学习数值计算方法请输入下一个图书信息:图书编号:1235书名:Java程序设计与案例作者:刘宝林出版社:高等教育出版日期:200411图书类别:计算机图书价格:¥30图书简介:Java程序的编写与学习请输入下一个图书信息:图书编号:0 *图书信息管理系统主菜单界面 * 1.输入图书信息 2.预览图书信息3.查询图书信息4.删除图书信息5.修改图书信息6.程序相关信息7.安全退出系统8.读取数据 请输入您的选择(1-8):7 系统已经安全退出!感谢您的使用!运行:控制台 *图书信息管理系统主菜单界面 * 1.输入图书信息 2.预览图书信息3.查询图书信息4.删除图书信息5.修改图书信息6.程序相关信息7.安全退出系统8.读取数据 请输入您的选择(1-8):8 数据已经成功读取! *图书信息管理系统主菜单界面 * 1.输入图书信息 2.预览图书信息3.查询图书信息4.删除图书信息5.修改图书信息6.程序相关信息7.安全退出系统8.读取数据 请输入您的选择(1-8):2 *图书信息表* (图书编号):1234书名:数值计算方法作者:吕同富 出版社:清华大学出版日期:200811图书分类:数学图书价格:¥33图书简介:学习数值计算方法(图书编号):1235书名:Java程序设计与案例作者:刘宝林 出版社:高等教育出版日期:200411图书分类:计算机图书价格:¥30图书简介:Java程序的编写与学习 *图书信息管理系统主菜单界面 * 1.输入图书信息 2.预览图书信息3.查询图书信息4.删除图书信息5.修改图书信息6.程序相关信息7.安全退出系统8.读取数据 请输入您的选择(1-8):3请输入您要查找的图书编号:1234 *图书信息表* 图书编号:1234书名:数值计算方法作者:吕同富 出版社:清华大学出版日期:200811图书分类:数学图书价格:¥33图书简介:学习数值计算方法 *图书信息管理系统主菜单界面 * 1.输入图书信息 2.预览图书信息3.查询图书信息4.删除图书信息5.修改图书信息6.程序相关信息7.安全退出系统8.读取数据 请输入您的选择(1-8):5请输入您要修改的图书编号(以0结束):1234请输入您要修改的图书方面(编号、书名、作者、出版社、出版日期、类别、价格、简介):出版日期新的出版日期:200810请输入下一个修改方面:价格新的图书价格:¥32请输入下一个修改方面:0已经修改完成! *图书信息管理系统主菜单界面 * 1.输入图书信息 2.预览图书信息3.查询图书信息4.删除图书信息5.修改图书信息6.程序相关信息7.安全退出系统8.读取数据 请输入您的选择(1-8):4请输入您要删除的图书编号:1235已经删除! *图书信息管理系统主菜单界面 * 1.输入图书信息 2.预览图书信息3.查询图书信息4.删除图书信息5.修改图书信息6.程序相关信息7.安全退出系统8.读取数据 请输入您的选择(1-8):2 *图书信息表* 图书编号:1234书名:数值计算方法作者:吕同富 出版社:清华大学出版日期:200810图书分类:数学图书价格:¥32图书简介:学习数值计算方法 *图书信

温馨提示

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

评论

0/150

提交评论