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

下载本文档

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

文档简介

课 程 设 计 课程名称 C+课程设计 题目名称 C+图书管理系统设计 学生学院 专业班级 学 号 学生姓名 指导老师 2015 年 7 月 2 日目录一、课程设计题目2二、课程设计目的2三、设计内容及设计思路23.1 设计内容 23.2 设计思路 3四、实验主要代码44.1 Books类主要代码 54.2 图书管理函数代码 5五、课程设计实验结果20六、课程设计心得21七、参考文献22一、课程设计题目C+图书管理系统设计二、课程设计目的C+面向对象程序设计是电子信息专业中一门重要的专业课。这次课程设计的目的是以程序设计语言为基础,通过完成一些程序设计,运用所学理论知识掌握面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合。从而提高自我分析问题、解决问题的能力。通过课程设计,我们应该得到了一些有利锻炼:1.进一步加深我们对所学知识的理解、分析以及运用的灵活性。全面提高我们的综合能力,解决问题的能力。2.理论与实际相互交涉,既检验了对理论的掌握又检验了理论与实际相结合使用的能力。这不仅可以使我们充分理解理论,还可以提高我们的思考能力。3.掌握类与对象的知识,熟练使用指针。4.掌握面向对象程序的设计方法。5.进一步掌握编写、调试、运行各种能力的综合运用。三、设计内容及设计思路3.1 设计内容定义图书类,属性有:书名、出版社、ISBN号、作者、库存量、价格等信息和相关的行为基本要求:销售功能:输入相应的ISBN号,并在书库中查找该书的相关信息。如果有库存量,输入购买的册数,进行相应计算。如果库存量不够,给出提示信息,结束购买添加功能:主要完成图书信息的添加,要求ISBN号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加。 查询功能:可按书名、ISBN号、作者、出版社进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”修改功能:可根据查询结果对相应的记录进行修改,修改时注意ISBN号的唯一性。 删除功能:主要完成图书信息的删除。输入要删除的ISBN号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”统计功能:输出当前书库中所有图书的总数及详细信息;可按书的价格、库存量、作者、出版社进行统计,输出统计信息时,要按从大到小进行排序图书存盘:将当前程序中的图书信息存入文件中 读出信息:从文件中将图书信息读入程序3.2 设计思路3.2.1程序设计步骤:(1)在book.h文件中创建一个图书管理类Books,然后在books.cpp文件中实现图书管理函数的定义,使用链表连接每一本书,便于查找和操作。(2)在c+课程设计.cpp文件中编写主函数,用于测试。3.2.2 程序流程图:(1)类的设计:Class Books销售功能统计图书查询图书修改记录图书存盘添加图书删除操作(2)程序总体设计流程图:开始显示初始界面是否有选项输入否执行相应的操作:1表示查询图书,2表示添加图书,3表示删除图书,4表示销售图书,5表示统计图书,6表示修改图书,7表示图书存盘,8表示读取磁盘的图书,9表示退出系统是结束读取上次文件,保留上次操作四、实验主要代码4.1 Books类主要代码public:/销售功能void sale(int ISBN); /添加操作void add(Books &b); /统计操作void sum(); /查询操作用了函数重载(使用函数模本一直说链接错误,没办法了,只能写多些代码)void seek(int ISBN);void seek(string t);/修改操作用了函数重载(使用函数模本一直说链接错误,没办法了,只能写多些代码)void modified(int ISBN); void modified(string t); /删除操作void remove(int ISBN); /图书存盘void save(); / 读出信息:从文件中将图书信息读入程序void read(string t = D:bookSaveFile.txt);/字符串转换函数,把字符串转换为float型数据float temp(string s); /链表使用的指针,使每一本书链接起来Books * next; private:string _book; /书名string _publish; /出版社string _author; /作者int _ISBN; /ISBN号int _num; /库存量float _price; /图书价格 4.2 图书管理函数代码/添加功能:主要完成图书信息的添加,要求ISBN号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加。void Books:add(Books &b)bool flag = true;cout 请分别输入添加书的ISBN号、书名、作者、出版社、储存数量、价格 b._ISBN;while (1)if (b._ISBN 99999)cout 输入错误,请输入ISBN号在199999之间的图书! b._ISBN;elsebreak;cin b._book;cin b._author;cin b._publish;cin b._num;cin b._price;Books *p;p = this;while (p)if (b._ISBN = p-_ISBN)/ 判断ISBN号唯一性cout 添加的书已经存在,添加失败! p-_ISBN & b._ISBN next-_ISBN)/插入b.next = p-next;p-next = &b;cout 添加成功! next;/删除功能:主要完成图书信息的删除。输入要删除的ISBN号,根据编号删除该物品的记录,/如果该编号不在物品库中,则提示“该编号不存在”void Books:remove(int ISBN)Books *p;p = this;while (p)if (p-next-_ISBN = ISBN) /查找删除的ISBN号p-next = p-next-next;cout 删除成功 next;if (!(p-next)cout 该编号不存在,删除失败! _ISBN = ISBN)/查找销售的ISBN号if (p-_num 0)cout 请输入购买册数! num;elsecout 没有库存量,结束购买! _num num)cout 库存量不够,结束购买! endl;break;elsecout 您购买的图书: _book endl;cout 单价: _price endl;cout 您应该支付: _price*num endl;cout 谢谢惠顾,欢迎下次光临! next;if (!p)cout 不存在该ISBN号的图书,结束购买! _ISBN = ISBN)cout ISBN号: _ISBN endl;cout 作者: _author endl;cout 书名: _book endl;cout 出版社 _publish endl;cout 储存量: _num endl;cout 价格: _price next;if (!p)cout 该标题不存在! _author = t)flag = true;cout ISBN号: _ISBN endl;cout 作者: _author endl;cout 书名: _book endl;cout 出版社 _publish endl;cout 储存量: _num endl;cout 价格: _price _book = t)flag = true;cout ISBN号: _ISBN endl;cout 作者: _author endl;cout 书名: _book endl;cout 出版社 _publish endl;cout 储存量: _num endl;cout 价格: _price _publish = t)flag = true;cout ISBN号: _ISBN endl;cout 作者: _author endl;cout 书名: _book endl;cout 出版社 _publish endl;cout 储存量: _num endl;cout 价格: _price next;if (!p&!flag) /确保查询所有存在的图书cout 该标题不存在! _ISBN = ISBN)flag = true;cout ISBN号: _ISBN endl;cout 作者: _author endl;cout 书名: _book endl;cout 出版社 _publish endl;cout 储存量: _num endl;cout 价格: _price endl;string book;string publish;string author;int ISB;int num;float price;int choice;cout 请输入修改内容:1 表示修改作者,2表示修改书名,3表示修改出版社,4表示修改库存量,5表示修改图书价格,6表示修改ISBN号 choice;switch (choice)case 1:cout 请输入新的作者名字: author;p-_author = author;cout 修改成功! endl;break;case 2:cout 请输入新的书名: book;p-_book = book;cout 修改成功! endl;break;case 3:cout 请输入新的出版社: publish;p-_publish = publish;cout 修改成功! endl;break;case 4:cout 请输入新的存库量: num;p-_num = num;cout 修改成功! endl;break;case 5:cout 请输入新的图书价格: price;p-_price = price;cout 修改成功! endl;break;case 6:cout 请输入新的ISBN号: ISB;while (q)/判断ISBN号是否唯一if (q-_ISBN = ISB)cout 该ISBN号已经存在,修改失败! next;if (!q)p-_ISBN = ISB;cout 修改成功! next;if (!p&!flag)cout 该标题不存在! _author= t)flag = true;cout ISBN号: _ISBN endl;cout 作者: _author endl;cout 书名: _book endl;cout 出版社 _publish endl;cout 储存量: _num endl;cout 价格: _price endl;string book;string publish;string author;int ISB;int num;float price;int choice;cout 请输入修改内容:1 表示修改作者,2表示修改书名,3表示修改出版社,4表示修改库存量,5表示修改图书价格,6表示修改ISBN号 choice;switch (choice)case 1:cout 请输入新的作者名字: author;p-_author = author;cout 修改成功! endl;break;case 2:cout 请输入新的书名: book;p-_book = book;cout 修改成功! endl;break;case 3:cout 请输入新的出版社: publish;p-_publish = publish;cout 修改成功! endl;break;case 4:cout 请输入新的存库量: num;p-_num = num;cout 修改成功! endl;break;case 5:cout 请输入新的图书价格: price;p-_price = price;cout 修改成功! endl;break;case 6:cout 请输入新的ISBN号: ISB;while (q)/判断ISBN号是否唯一if (q-_ISBN = ISB)cout 该ISBN号已经存在,修改失败! next;if (!q)p-_ISBN = ISB;cout 修改成功! _book = t)flag = true;cout ISBN号: _ISBN endl;cout 作者: _author endl;cout 书名: _book endl;cout 出版社 _publish endl;cout 储存量: _num endl;cout 价格: _price endl;string book;string publish;string author;int ISB;int num;float price;int choice;cout 请输入修改内容:1 表示修改作者,2表示修改书名,3表示修改出版社,4表示修改库存量,5表示修改图书价格,6表示修改ISBN号 choice;switch (choice)case 1:cout 请输入新的作者名字: author;p-_author = author;cout 修改成功! endl;break;case 2:cout 请输入新的书名: book;p-_book = book;cout 修改成功! endl;break;case 3:cout 请输入新的出版社: publish;p-_publish = publish;cout 修改成功! endl;break;case 4:cout 请输入新的存库量: num;p-_num = num;cout 修改成功! endl;break;case 5:cout 请输入新的图书价格: price;p-_price = price;cout 修改成功! endl;break;case 6:cout 请输入新的ISBN号: ISB;while (q)/判断ISBN号是否唯一if (q-_ISBN = ISB)cout 该ISBN号已经存在,修改失败! next;if (!q)p-_ISBN = ISB;cout 修改成功! _publish = t)flag = true;cout ISBN号: _ISBN endl;cout 作者: _author endl;cout 书名: _book endl;cout 出版社 _publish endl;cout 储存量: _num endl;cout 价格: _price endl;string book;string publish;string author;int ISB;int num;float price;int choice;cout 请输入修改内容:1 表示修改作者,2表示修改书名,3表示修改出版社,4表示修改库存量,5表示修改图书价格,6表示修改ISBN号 choice;switch (choice)case 1:cout 请输入新的作者名字: author;p-_author = author;cout 修改成功! endl;break;case 2:cout 请输入新的书名: book;p-_book = book;cout 修改成功! endl;break;case 3:cout 请输入新的出版社: publish;p-_publish = publish;cout 修改成功! endl;break;case 4:cout 请输入新的存库量: num;p-_num = num;cout 修改成功! endl;break;case 5:cout 请输入新的图书价格: price;p-_price = price;cout 修改成功! endl;break;case 6:cout 请输入新的ISBN号: ISB;while (q)/判断ISBN号是否唯一if (q-_ISBN = ISB)cout 该ISBN号已经存在,修改失败! next;if (!q)p-_ISBN = ISB;cout 修改成功! next;if (!p&!flag)cout 不存在与该标题匹配的图书! endl;break;/统计功能:输出当前书库中所有图书的总数及详细信息;/可按书的价格、库存量、作者、出版社进行统计,输出统计信息时,要按从大到小进行排序void Books:sum()int sum = 0; /统计所有图书总库存量int n = 0; /统计现存图书的所有种类Books *p = this;cout setiosflags(ios:left) setw(10) ISBN号: setw(16) 书名: setw(16) 作者: setw(20) 出版社: setw(10) 价格: setw(8) 库存量: _num;n+;cout setw(10) _ISBN;cout setw(16) _book;cout setw(16) _author;cout setw(20) _publish;cout setw(10) _price;cout setw(8) _num;cout next;cout 图书种类共有: n 总的库存量: sum endl;cout resetiosflags(ios:left) endl;/图书存盘:将当前程序中的图书信息存入文件中void Books:save()Books *p = this;ofstream outFile(D:/bookSaveFile.txt);if (!outFile)cerr open error! endl;return;outFile setiosflags(ios:left)setw(15) ISBN号: setw(20) 书名: setw(20) 作者: setw(20) 出版社: setw(15) 价格: setw(15) 库存量: endl;while (p)outFile setw(15) _ISBN;outFile setw(20) _book;outFile setw(20) _author;outFile setw(20) _publish;outFile setw(15) _price;outFile setw(15) _num;outFile next;outFile resetiosflags(ios:left) endl;outFile.close();cout 存盘成功! endl;/ 读出信息:从文件中将图书信息读入程序,参数t为文件名void Books:read(string t)Books *p = this;int ISBN;int num;int price;int m = 0;bool flag = false;string read;ifstream inFile(t);if (!inFile)cerr read) / 逐词读取方法一 if (m 5)Books *book = new Books;ISBN = temp(read);book-_ISBN = ISBN;cin read;book-_book = read;cin read;book-_author = read;cin read;book-_publish = read;cin read;price = temp(read);book-_price = price;cin read;num = temp(read);book-_num = num;

温馨提示

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

最新文档

评论

0/150

提交评论