C++课程设计图书管理系统-(完整版)_第1页
C++课程设计图书管理系统-(完整版)_第2页
C++课程设计图书管理系统-(完整版)_第3页
C++课程设计图书管理系统-(完整版)_第4页
C++课程设计图书管理系统-(完整版)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

中南大学 资源与安全工程学院 课 程 设 计 报 告 课程名称课程名称 C 课程设计课程设计 课题名称课题名称 图书管理系统设计图书管理系统设计 专专 业业 城市地下空间工程城市地下空间工程 班班 级级 城地城地 1001 班班 学学 号号 姓姓 名名 彭彭 xx 指导教师指导教师 毕林毕林 2011 年年 06 月月 26 日日 任务书下达日期任务书下达日期 20112011 年年 0606 月月 2020 日日 任务完成日期任务完成日期 20112011 年年 0606 月月 2626 日日 题目三 图书管理系统设计 一 课程设计题目 图书管理系统设计 二 要求 使用二进制文件方式存储数据 系统以菜单方式工作 三 设计方法和基本原理 1 功能描述 1 新进图书基本信息的输入 2 图书基本信息的查询 3 对撤消图书信息的删除 4 为借书人办理注册 5 办理借书手续 6 办理还书手续 2 问题的解决方案 根据系统功能要求 可以将问题解决分为以下步骤 1 应用系统分析 建立该系统的功能模块框图以及界面的组织和设计 2 分析系统中的各个实体及它们之间的关系包括属性和行为 3 根据问题描述 设计系统的类层次 4 完成类层次中各个类的描述 包括属性和方法 5 完成类中各个成员函数的定义 6 完成系统的应用模块 7 功能调试 8 完成系统总结报告以及系统使用说明书 一一 设设计计内内容容与与设设计计要要求求 1 1 课程设计目的 课程设计目的 从课程设计的实践活动中获得知识提高 要求学生达到熟练掌握 C 语言的基本知 识和技能 基本掌握面向对象程序设计的思想和方法 能够利用所学的基本知识和技 能 解决简单的面向对象程序设计问题 从而提高动手编程解决实际问题的能力 2 2 总体设计总体设计 2 12 1 系统功能分析 系统功能分析 系统通过调用函数来实现删除图书 读者信息 添加图书 读者信息等功能 delbook 函数用于删除图书信息 addbook 函数用于增加图书信息 borrowbook 函 数用于实现借书操作 returnbook 函数用于实现还书操作等等 主函数用于掉用这些 函数 2 22 2 系统功能模块划分与设计系统功能模块划分与设计 本系统定义了 Book 类 BDatebase 类 Reader 类 RDatebase 类这四个类 定义 了 addbook addreader borrowbook setname 等函数来实现系统所需功能 2 32 3 系统功能模块图 系统功能模块图 3 3 3 3 详细设计详细设计 3 13 1 读者类的设计读者类的设计 该类定义了借书操作 还书操作 设置读者姓名等功能 Reader name 20 char no int tag int 图书管理系统 四个类程序实现功能 输出显示 图书类 图书库类 实验员 读者类 行政人员 读者库类 文件录入 查询信息 删除信息 退出程序 borbook int getname char gettag int getno int setname char na void delbook void addreader int n char na void borrowbook int bookid void retbook int bookid int disp void 图 3 1 3 23 2 读者库类类的设计读者库类类的设计 该类实现了建立读者的个人资料 删除读者信息 输出读者信息等功能 RDatebase top int rname 20 char readerid int readerdata void choice char addreader int n char na int clear void disp void 图 3 2 3 33 3 图书类的设计图书类的设计 图书类 可以实现对图书的描述 图书的编号 书名 借出 还入等操作 Book no int name 20 char onshelf int getname char getno int gettag int setname char na void delbook void addbook void borrowbook int retbook void disp void 图 3 3 3 43 4 图书库类的设计图书库类的设计 Xingzhengrenyuan top int clear void addbook int n char na int bookdata void bookdata void disp void 图图 3 43 4 4 4 调试与测试 调试与测试 4 1 系统调试 在调试过程中 出现了一些错误 1 输入数据时 输错了数据的类型会造成死循环 因此输入时需要注意 2 一开始主界面输入非正确数字时 没有提示错误 容易造成用户误解 图 4 1 在主函数的 switch 语句结束处加上 default cout 输入错误 请从新输入 就可 以了 修改后 图 4 2 具体调试过程 具体调试过程 主界面 图 4 3 图书维护 图 4 4 读者维护 图 4 1 5 结果分析结果分析 本程序总共设计了四个类 满足了课题对类的要求 在设计的过程中 建立了较 为清晰的类层次 也利用了面向对象的方法以及 C 的编程思想来完成系统的设计 做到了每个借阅者建立一个账户 账户中存储借阅者的个人信息 借阅信息等要求 而且界面美观 容易操作 但是程序太长 不够简练 导致出现错误很难发现和修改 6 总结 感想和体会 感想和体会 通过这次的课程设计 让我们充分的感觉到了要自己设计一个程序是多么的难 以及学习好 c 是多么的重要 在这个程序的设计过程中 我们清楚的意识到自己的水平有多么的薄弱 课程的 知识学得有多么的不扎实 看网上的例子好像觉得也没那么难 自己一上机实际操作 就出现了很多问题 调试的时候系统总是在报错 还有很多警告 每增加一个函数就 要调试好久 有时候应为少了一个大括号或是分号 导致要找很久很久 虽然系统可 以运行 也具有了一些基本的功能 但我们意识到了自己有太多的不足 以后还会有很多的课程设计 一定要吸取这次的教训 把知识学懂学透学精 真 正的为我所用 这样走上社会我们才能真正的发挥所长 我们三个人分工合作 组长彭爱贤负责对程序的编译 通过不断的尝试和学习 最终制成程序的最初模式 谢经纬负责对程序的修改 沈维健负责后期制作 总结组 内的制作经验 通过努力 得以在规定的时间内完成任务 这一次的 C 课程设计让我们学到了很多知识 懂得如何发现问题 并解决 非常感谢老师及同学们的帮助 让我们有这一个机会好好学习 C 的更广泛的知 识 7 7 17 1 源程序清单 源程序清单 include include 定义控制符 include 包含 string 的头文件 include 用来支持对磁盘文件的输入输出 using namespace std const int Maxr 100 const int Maxb 100 const int Maxbor 5 以上三行声明 Maxr Maxb Maxbor 为常数据成员 class Reader 声明类类型为读者 private 声明以下部分为私有的 int tag int no 定义编号为整型 char name 10 定义长度为 10 的名字数组字符串 int borbook Maxbor 定义整型借书数组 public 声明以下部分为公用的 Reader Reader 类构造函数 char getname return name 虚函数 返回 name int gettag return tag 虚函数 返回 tag int getno return no 虚函数 返回 No void setname char na 设置读者姓名函数 strcpy name na 复制字符串 void delbook tag 1 删去图书信息 void addreader int n char na 增加读者信息 tag 0 no n strcpy name na for int i 0 i Maxbor i borbook i 0 void borrowbook int bookid 定义借书函数 且借图书编号为整型 for int i 0 i Maxbor i if borbook i 0 borbook i bookid return int retbook int bookid for int i 0 i Maxbor i if borbook i bookid borbook i 0 return 1 return 0 void disp 成员函数 输出基类数据成员 cout setw 5 no setw 10 name 借书编号 设置编号字段宽度为 5 位 设置名字字段宽度为 10 位 for int i 0 i Maxbor i if borbook i 0 cout borbook i cout endl class RDatabase 定义 RDatabase 类 private int top Reader read Maxr public RDatabase 构造函数 Reader s top 1 fstream file reader txt ios in 在 reader txt 以输入方式打开文件 while 1 file read char if file break 如果非 file 结束循环 top read top s file close void clear top 1 int addreader int n char na Reader p query n if p NULL top read top addreader n na return 1 return 0 Reader query int readerid 定义 query 指针 且读者编号为整型 for int i 0 i top i if read i getno readerid 指向 read i return NULL void disp for int i 0 i top i read i disp void readerdata RDatabase fstream file reader txt ios out 使用文件与 reader txt 文件建立关联 for int i 0 i top i if read i gettag 0 file write char file close void RDatabase readerdata char choice char rname 20 int readerid Reader r while choice 0 cout n n t t t 读 者 维 护 n n n t t 1 新 增 n n t t 2 更 改 n n t t 3 删 除 n n t t 4 查 找 n n t t 5 显 示 n n t t 6 全 删 n n t t 0 退 出 choice switch choice case 1 cout readerid 输入读者编号 cout rname 输入读者姓名 addreader readerid rname break case 2 cout readerid 输入读者编号 r query readerid if r NULL cout 该读者不存在 endl break cout rname r setname rname break case 3 cout readerid r query readerid if r NULL cout 该读者不存在 delbook break case 4 cout readerid r query readerid if r NULL cout 该读者不存在 disp break case 5 disp break case 6 clear break default cout 输入错误 请重新输入 break class Book 定义 Book 类 private int price char author 10 int tag int no char name 20 int onshelf public Book char getname return name int getno return no int gettag return tag char getauthor return author char getprice return price void setname char na strcpy name na void setauthor char au strcpy author au void delbook tag 1 void addbook int n char na char au int pr tag 0 no n price pr strcpy author au strcpy name na onshelf 1 int borrowbook if onshelf 1 onshelf 0 return 1 return 0 void retbook onshelf 1 void disp cout setw 6 图书编号 no setw 18 图书名 name setw 10 作者名 author setw 18 图书单价 price setw 10 onshelf 1 在架 已借 endl class BDatabase 定义 BDatabase 类 private int top Book book Maxb public BDatabase Book b top 1 fstream file book txt ios in while 1 file read char if file break top book top b file close void clear top 1 int addbook int n char na char au int pr Book p query n if NULL p top book top addbook n na au pr return 1 return 0 Book query int bookid for int i 0 i top i if book i getno bookid return NULL void bookdata void disp for int i 0 i top i if book i gettag 0 book i disp BDatabase fstream file book txt ios out 使文件流与 book txt 文件建立关联 for int i 0 i top i if book i gettag 0 file write char file close void BDatabase bookdata char choice char bauthor 10 int bprice char bname 40 int bookid Book b while choice 0 cout n n n t t t 图 书 维 护 endl endl cout t t1 新 增 n t t2 更 改 n t t3 删 除 n t t4 查 找 n t t5 显 示 n t t6 全 删 n t t0 退 出 choice switch choice case 1 cout 输入图书编号 bookid cout 输入图书书名 bname cout bauthor cout bprice addbook bookid bname bauthor bprice break 结束循环 case 2 cout 输入图书编号 bookid b query bookid if b NULL cout 该图书不存在 endl break cout 输入新的书名 bname b setname bname break case 3 cout 读入图书编号 bookid b query bookid if b NULL cout 该图书不存在 delbook break case 4 cout 读入图书编号 bookid b query bookid if b NULL cout 该图书不存在 disp break case 5 disp b

温馨提示

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

评论

0/150

提交评论