设计题目: 图书管理系统
指导教师: 葛洪芳
姓 名
班 级:
| 成 绩 | |
| 教 师 |
设计时间: 2012.6.18_—2012.6.21
一、课程设计的目的(需求分析)
设计目的:
(1)掌握面向对象程序设计的基本思路和方法;
(2)了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程;
(3)进一步熟悉C++中的概念。
(4)学会分析简单的实际问题,并能利用所学的知识建立系统的逻辑结构。
需求分析: 随着社会的发展,人们对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生 活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就成不可少了,面对大量的书籍信息以及两者相互作用 产生的信息。因此需要对读者资源、书籍资源、借书信息、信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。科学技术领域为了适应读者对图书的需求,同时又大大减轻图书馆工作人 员的工作量,全面提高图书馆的管理效率及服务质量。 使用计算机软件对图书进行管理,是计算机应用的一部分。以实现图书检索 迅速、可靠性高、存储量大、寿命长、成本低等特点,能极大程度地提高图书管 理的效率,也是图书管理信息化、正规化管理的必然趋势
二、课程设计的任务(概要设计)
本系统设计了一个简单的图书管理系统:图书信息包括:书号、书名、作者、价格、出版社。实现了图书管理系统一部分的功能。各功能如下:
系统以菜单方式工作:
(1):添加图书信息:添加书号,书名,作者,价格,出版社相关信息。
(2):查询图书信息:输入书号,显示相关信息。
(3):显示图书信息:按书号顺序显示相关信息。
(4):删除图书信息:输入书号,删除相关信息。
(5):退出:程序结束
三、流程图(详细设计)
四、源文件,要有必要的注释语句。
#include #include #include using namespace std; class Library{ private: class Book{ public: Book():next(0){} string id; //书号 string title;//书名 string author;//作者 float price;//价格 string publisher;//出版社 Book *next; }; Book *books; public: Library():books(0){ }; ~Library(); void add(); void search(); void display(); void del(); }; Library::~Library(){ Book *b; b=books; while(b!=0){ b=books->next; delete books; books=b; } } //添加函数 void Library::add(){ Book *b=new Book; cout<<"输入书号:"; cin>>(b->id); cout<<"输入书名:"; cin>>(b->title); cout<<"输入作者:"; cin>>(b->author); cout<<"输入价格:"; cin>>(b->price); cout<<"输入出版社:"; cin>>(b->publisher); //判断id是否相等 if(books==0) books=b; else{ if((b->id)<(books->id)){ b->next=books; books=b; return; } Book *p,*q; p=books; while(p!=0){ if((p->id)==(b->id)){ cout<<"此书号已存在"< return; } else if((p->id)>(b->id))break; else{ q=p; p=p->next; } } b->next=p; q->next=b; } } //查询函数 void Library::search(){ string id; cout<<"输入书号:"; cin>>id; Book *b; b=books; while(b!=0){ if((b->id)==id) break; else b=b->next; } if(b==0)cout<<"查无此书"< cout<<"书号 书名 作者 价格 出版社"< } //显示函数 void Library::display(){ Book *b; b=books; cout<<"书号 书名 作者 价格 出版社"< cout<<(b->id)<<" "<<(b->title)<<" "<<(b->author)<<" "< } } //删除函数 void Library::del(){ string id; cout<<"输入书号:"; cin>>id; Book *p,*q; if((books->id)==id){ p=books; books=books->next; delete p; } else{ p=books; while(p!=0){ if((p->id)==id) break; else { q=p; p=p->next; } } if(p==0) cout<<"查无此书"< q->next=p->next; delete p; } } } int main(){ int c; Library l; do{ cout<<"1.添加图书信息 2.查询图书信息 3.显示图书信息 4.删除图书信息 5.退出"< cin>>c; if(c==1) l.add(); else if(c==2) l.search(); else if(c==3) l.display(); else if(c==4) l.del(); else if(c==5) break; else cout<<""< return 0; } 运行结果如下图所示: 全部功能运行如下图: 五、课程设计的总结 设计中遇到的问题:添加时价格可以输入任意类型,把价格的类型为float型,添加价格必须为数字。其他都可任意输入。 设计中出现错误自己很难解决,通过同学的帮助和网上查资料把问题解决了,做程序要考虑全面,不能考虑的太过简单,一定要思考周全,遇到问题要第一时间解决。下载本文