




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构与算法课程设计说明书 算法与数据结构课程设计说明书 题 目: _图书管理系统_ 学 院: 计算机与信息安全学院 专 业: _计算机科学与技术_ 姓 名: _符有作_ 学 号: _1200310311_ 指导教师: _李云辉_ 2015年 10 月 1 日 数据结构与算法课程设计说明书目 录1 需求分析 11.1 问题描述.11.2 基本要求.12 概要设计.12.1 主菜单.12.2 借书.22.3 还书.2 3 详细设计.33.1 读者类.33.2 读者类库.33.3 图书类.43.4 图书类库.53.5 程序的主界面.74 测试与分析.74.1 主菜单.74.2 图书维护界面.84
2、.3 读者维护界面.84.4 图书的增删查改.94.5 读者的增删查改.105 总结.13参考文献.14第 13 页 共 14 页数据结构与算法课程设计说明书1 需求分析1.1 问题描述该系统要求建立一个简单的图书管理系统,并具有排序、计算、查找、插入和显示等功能。通过此课设,熟练掌握文件、数组和指针的各种操作,以及一些算法思想的应用。1.2 基本要求(1) 数据结构:读者编号,读者姓名,图书编号,图书名称,图书现存量。(2) 程序所要达到的功能:1) 图书和读者信息用文件保存,程序运行时从文件读入数据,程序结束前将信息保存在文件中;2) 图书采编入库:新增一种图书,输入编号和图书名称后,存放
3、于图书信息中;3) 完成读者信息:新增读者,依次输入其编号和姓名,存放于读者信息中;4) 图书借阅:若一种图书“在架”,则借出,登记读者的编号和姓名;5) 图书归还:注销对读者的借阅登记,改变该图书的状态“已借”为“在架”。2 概要设计系统界面2.1 主菜单输入 分别访问系统各部分退 出输入 5 继续访问各模块的相应信息借阅成功借阅失败该图书是否有库存借阅失败借阅失败判断读者号是否正确判断书号正确与否输入读者编号输入图书编号开 始2.2 借书 是 否 否 是 否 是结 束2.3 还书(与“借书”对应,同理)3 详细设计(主界面及各模块核心操作的实现)3.1 读者类,实现对读者的信息的描述 cl
4、ass Reader public: Reader() char *getname() return name; /获取姓名 int gettag() return tag; /获取删除标记 int getno() return no; /获取读者编号 void setname(char na) /设置姓名 strcpy(name,na); void delbook() tag=1; /设置删除标记 1:已删 0:未删 void addreader(int n,char *na);/增加读者 void borrowbook(int bookid);/借书操作 int retbook(int b
5、ookid);/还书操作 void disp();/读出读者信息 ; 3.2 读者类库,实现建立读者的个人资料,关键点:“读者维护”模块部分的实现 while (choice!='0') cout <<"nnttt读 者 维 护nnntt 1 新 增nntt 2 更 改nntt 3 删 除nntt 4 查 找nntt 5 显 示nntt 6 全 删nntt 0 退 出"<<endl; cin >> choice; switch (choice) case '1': cout << "输
6、入读者编号:" cin >> readerid; cout << "输入读者姓名:" cin >> rname; addreader (readerid,rname);cout<<"新增读者信息成功!"<<endl; break; case '2': cout << "输入读者编号:" cin >> readerid; r=query(readerid); if (r=NULL) cout << " 该读
7、者不存在 "<<endl; break; cout << "输入新的姓名:" cin >> rname; r->setname(rname);cout<<"更改读者信息成功!"<<endl; break; case '3': cout << " 输入读者编号:" cin >> readerid; r=query(readerid); if (r=NULL) cout <<" 该读者不存在"
8、 << endl; break; r->delbook(); cout<<"删除读者信息成功!"<<endl;break; case '4': cout << "读入读者编号:" cin >> readerid; r=query(readerid); if (r=NULL) cout <<"该读者不存在"<< endl; break; cout<<"所查找读者信息如下:"<<endl;r
9、->disp(); break; case '5':cout<<"所有读者信息如下:"<<endl;disp(); break; case '6': clear();cout<<"已经全部删除所有读者信息!" <<endl;break; /default:cout<<"输入错误,请从新输入:"break; 3.3 图书类,实现对图书的描述,图书的编号,书名,借出,还入等 class Book public: Book() char *ge
10、tname() return name; /获取姓名 int getno() return no; /获取图书编号 int gettag() return tag; /获取删除标记 void setname(char na)/设置书名 strcpy(name,na); void delbook() tag=1;/删除图书 void addbook(int n,char *na);/增加图书 int borrowbook();/借书操作 void retbook();/还书操作 void disp();/输出图书 ; 3.4 图书库类,实现对图书的维护,查找,删除等 class BDatabas
11、e public: BDatabase()/构造函数,将book.txt读到book中 .(一些实现访问功能的基本函数省略)BDatabase()/;析构函数,将book写到book.txt文件中 核心点:void BDatabase:bookdata() ./省略了一些参数设置while (choice!='0') cout <<"nnnttt图 书 维 护 "<<endl<<endl; cout<<"tt1 新 增n tt2 更 改ntt3 删 除ntt4 查 找ntt5 显 示ntt6 全 删n
12、tt0 退 出"<<endl; cin >> choice; switch (choice) case '1': cout << "输入图书编号:"<<endl; cin >> bookid; cout << "输入图书书名:"<<endl; cin >> bname; addbook(bookid,bname); cout<<"新增图书信息成功!"<<endl;break; case
13、39;2': cout << "输入图书编号:"<<endl; cin >> bookid; b=query(bookid); if (b=NULL) cout << " 该图书不存在 "<<endl; break; cout << "输入新的书名:"<<endl; cin >> bname; b->setname(bname); cout<<"更改图书信息成功!"<<endl;br
14、eak; case '3': cout <<" 读入图书编号:"<<endl; cin >> bookid; b=query(bookid); if (b=NULL) cout <<" 该图书不存在" << endl; break; b->delbook(); cout<<"删除图书信息成功!"<<endl;break; case '4': cout << " 读入图书编号:"<
15、;<endl; cin >> bookid; b=query(bookid); if (b=NULL) cout <<" 该图书不存在"<< endl; break; cout<<"所查找的图书信息如下:"<<endl; b->disp(); break; case '5':cout<<"所有图书信息如下:"<<endl;disp(); break; case '6': clear(); cout<&l
16、t;"已经成功删除所有图书信息!"<<endl;break; /default:cout<<"输入错误,请从新输入:" 3.5 main() 函数的实现,程序的主界面的引导 void main() char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while(choice!='0') cout <<endl<<endl<<"ttt 图 书
17、 管 理 系 统nnn" cout <<"ttt1 借 书nnttt2 还 书 nnttt3 图 书 维 护nnttt4 读 者 维 护nnttt0 离 开"<<endl; cin >> choice; system("cls");switch (choice) case '1': case '2': case '3': case '4': system("cls"); /系统主界面的功能的选择4 测试与分析4.1 主菜单4.
18、2 图书维护界面部分4.3 读者维护界面部分4.4图书的新增、更改、查找与删除新增:更改:查找:删除:删除后查看图书信息:4.5读者的新增、更改、查找与删除新增:更改:查找:删除:删除后查看读者信息:5 总结大一学年在学习C+的时候所接触的都是一些简单的小程序。这次课程设计是第二次接触这么复杂的大程序,但开始的时候我觉得很难,要实现这么多功能,实在是不知道该从哪里下手。后来我试着把这个系统的功能进行了分解,分解成很多小的模块,每个模块只要执行一个功能,并且也和多位同学进行了深入交流,也通过网络渠道查询了一些资料,最后就设计成了这个样子!在调试的时候还是遇到了一些小的问题,比如说界面不和谐,开始未采用清屏措施什么之类的,但是我认为这次课程设计还是有很大的收获的。一方面复习、巩固了C+语言的一些基础知识,包括指针、数组、文件等等;另一方面也让我意识到了规范写代码的重要性,特别是在一个很大的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州经贸职业技术学院《材料传热基础》2023-2024学年第二学期期末试卷
- 太原幼儿师范高等专科学校《多模态数据标注技术》2023-2024学年第二学期期末试卷
- 泸州医疗器械职业学院《材料传热基础》2023-2024学年第二学期期末试卷
- 上海交通大学《创新思维与方法》2023-2024学年第二学期期末试卷
- 北京理工大学珠海学院《建筑材料》2023-2024学年第二学期期末试卷
- 沈阳大学《统一建模语言UM》2023-2024学年第二学期期末试卷
- 泉州华光职业学院《检测技术与自动化》2023-2024学年第二学期期末试卷
- 西北师范大学《电子设计自动化EDA》2023-2024学年第二学期期末试卷
- 安徽农业大学《基础医学概论Ⅱ3(病理学)》2023-2024学年第二学期期末试卷
- 上海闵行职业技术学院《跨文化语言交际》2023-2024学年第二学期期末试卷
- 实验:验证动量守恒定律 说课课件
- 连杆加工工艺规程及夹具设计工序卡-工艺规程卡
- 2023年简明新疆地方史
- GB/T 41995-2022并网型微电网运行特性评价技术规范
- GB/T 26754-2011工业叠氮化钠
- 钢筋加工场验收记录表
- 新生儿早期基本保健(EENC)指南要点解读课件
- 超星尔雅学习通《工程伦理》章节测试答案
- 酒精中毒性韦尼克脑病与酒精戒断模板课件整理
- 劳动仲裁个人委托书(通用7篇)
- 幼儿园大班科学:《树叶为什么会变黄》课件
评论
0/150
提交评论