c++课程设计.doc_第1页
c++课程设计.doc_第2页
c++课程设计.doc_第3页
c++课程设计.doc_第4页
c++课程设计.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

摘摘 要要 随着计算机的普及 社会信息量的与日俱增 周围信息储存的主要媒介 之一图书 其数量规模比以前任何时候都大 无能个人还是图书管理部门都 需要使用有效而又方面的方式来管理图书管的书籍 现代人的时间观越来越 强 生活也越来越忙 由于相互之间信息交流的量也越来越大 在学校对于 学生借阅图书的基本信息的管理 如何使其更加方便快捷也成了人们追求的 目标 并且急需这样的软件来完成更多的功能 关键词关键词 图书借阅系统 C 课程设计 AbstractAbstract Along with computer s popularization social information content s growing day by day of books surroundings information storage s main media its quantity scale compared to big the incompetent individual books Control section needed to use effective and the aspect way at any time in the past manages the books tube s books Modern people s time view is getting stronger and stronger the life is also getting more and more busy because communication s quantity is also getting bigger and bigger Borrows the books in the school regarding the student the basic information management how to cause it more convenient also to become the goal which quickly the people pursued and was urgently needed such software to complete more functions KeyKey wordswords Books borrowing system C curriculum project 面向对象程序设计 图书借阅系统 目目 录录 1 1 前前 言言 1 1 1问题的提出 1 1 2任务与分析 1 2 2 系统分析系统分析 2 2 1功能需求 3 2 2总体需求 3 2 3设计模块分析 4 3 3 设计思路设计思路 5 4 4 总体设计总体设计 7 5 5 详细设计与实现详细设计与实现 7 5 1主函数的阐述 7 5 2图书信息管理模块的具体阐述 8 5 2 1图书信息管理中的新建模块 10 5 2 2图书信息管理中的修改模块 10 5 2 3图片信息管理中的删除模块 12 5 3借阅者信息管理模块的具体阐述 14 5 3 1用户信息管理中的新建模块 15 5 3 2用户信息管理中的修改模块 16 5 3 3 用户信息管理中的删除模块 18 5 4 图书借阅归还模块的具体阐述 21 5 4 1图书借阅归还中的借阅模块 22 5 4 2 图书借阅归还中的归还模块 25 5 5信息查询模块具体阐述 28 5 5 1 信息查询模块中的图书信息查询 29 6 6 系统测试系统测试 30 6 1总体测试分析 30 总结与体会总结与体会 31 致谢致谢 32 参考文献参考文献 0 0 33 1 面向对象程序设计 图书借阅系统 1 1 前前 言言 1 11 1 问题的提出问题的提出 在 C 中 类是面向对象程序设计方法的核心 利用它可以实现对数据 的封装 隐蔽 通过类的继承和派生 能够实现对问题的深入抽象描述 为 解复杂的实际问题提供了更为简洁明了的思维方式与开发工具 在面向过程 的结构化程序设计中 程序的模块是由函数构成的 函数是逻辑上相关的语 句与数据的封装 用于完成特定的功能 类是逻辑上相关的函数与数据的封 装 它是对所要处理的问题的抽象描述 因此 后者的集成程度更高 也就 更适合用于大型复杂程序的开发 理论知识的学习 是循序渐进的 在将书本知识运用到实践的过程中 则需要把每一步的基础知识都综合起来解决问题 课程设计是一个理论与实 践相融合的平台 在学校中对于图书馆学生借阅图书管理是一类常见的需求 问题 好的管理系统 可以让信息组织得清晰明了 可以节约学生和工作人 员大量的时间来查询书籍和相关的质料 可以避免遗忘 混乱等麻烦 图书 馆借阅系统通常具有查询 修改 删除 等基本功能 在这次的课程设计中 我的课题是图书借阅系统 与一般的借阅管理系统类似 我需要解决的问题 主要有 首先 设计总体思路 其次 如何实现这些功能 最后 如何对这 些功能的实现进行优化 给用户提供较好的操作环境与界面 1 21 2 任务与分析任务与分析 1 2 11 2 1 课题任务 建立一个图书借阅系统 对图书 读者和借书情况进行处理 各对象有以下信息需要处理 1 每本书有书号 书名和作者姓名 2 读者有借书证号 读者姓名 最大借阅量 3 能提供若干本书由读者进行选择 打印出读者的借书情况 4 图书和读者信息应保存在相应的文件中便于查询和借阅 2 面向对象程序设计 图书借阅系统 1 2 21 2 2 任务分析 1 定义一个 book 类对图书的相关信息进行封装 由 manage 函数为 用户提供友好的界面方便用户的选择 creat 函数实现对图书的新建 rework 函数对图书的修改 delet 函数对图书的删除等功能 2 定义一个 user 类对借阅者的相关信息进行封装 由 manage 函数 为用户提供友好的界面方便用户的选择 creat 函数实现对借阅者信息的新 建 rework 函数对图书的修改 delet 函数对图书的删除等功能 3 再定义一个 record 类对借阅者的相关借阅信息的记录和一个派生 类 mulclass 由函数 manage 实现友好界面 borrow 函数实现借阅者借阅 图书的有关信息是否能借阅 back 函数实现借阅者归还书的相关信息 book query 函数实现相关图书资料的查询 user query 函数实现借阅者 历史的查询 4 定义主函数 使用 switch 语句根据用户的输入信息与所要实现的 相关功能的函数匹配来实现用户的目的 2 2系统分析系统分析 人类对问题的认识由一个逐步深入的过程 面向对象的程序设计方法就 比较适合人来认识问题的客观规律 对具体问题进行分析 抽象 将其中的 一些属性和行为抽象成相应的数据和函数 封装到类中 用这个类在计算机 中描述显示世界中的问题 这里将完成一个图书借阅系统程序的设计 把借 阅者和图书的信息分别封装在类中 系统中是运用 C 的主要特点对各个不同功能要求设计一个函数来实现 而这些函数由设计为相应不同类的共有成员 而数据则设计为是由成员 用 户通过清晰的界面进入完成想要实现的功能 先理清思路然后画出大概的流 程图 设计一个比较清楚的程序 改程序主要是分别完成对图书和借阅者的 新建 修改 删除相关信息的查询 而图书和读者信息应保存在相应的文件 中 3 面向对象程序设计 图书借阅系统 2 12 1功能需求功能需求 设计一个图书类book 包括图书的新建 修改 删除和借阅者类user包 括借阅者的新建 修改 删除 mulclass类则实现图书的借阅和归还 查询 图书和借阅这借阅的历史 其中设计一个record 类对实现对借阅者的相关借 阅信息的记录 其中在mulclass类内嵌子对象abook arecord和asuer 用 I O流对象引用作参数的成员函数实现文件存取 便于查询 修改和删除 完 成借阅者对图书借阅的查询 浏览所有图书信息 查询自己借阅图书的信息 管理者修改借阅者和图书的信息 删除信息等并关闭系统功能 各子函数要 求实现如下功能 1 新建图书的信息在文件中 2 对图书信息的修改 3 对图书馆现不存在的图书删除 4 新建借阅者的有关信息在文件中 5 对借阅者信息的修改 6 对不存在的借阅者删除 7 对要借图书的信息查询 8 对归还图书的操作 9 对图书管里图书信息的查询 10 对借阅者历史信息的查询 2 1 12 1 1 总体要求总体要求 1 该系统要求利用面向对象的程序设计过程即使用 C 的编程思想来完 成基本的设计 2 要求突出函数的特征 以多个函数实现每一个子功能 3 画出功能模版图 采用简单的界面设计 4 面向对象程序设计 图书借阅系统 4 有清晰的程序流程图和数据结构的详细定义 2 1 22 1 2 本人所做的模块 1 book 类各成员有 如图 2 1 图 2 1 2 user 类各成员有 如图 2 2 图 2 2 book 类 String name String no book book void manage void creat void rework void delete user 类 String name String no user user void manage void creat void rework void delete 5 面向对象程序设计 图书借阅系统 3 派生 mulclass 类的成员有 如图 2 3 3 3 设计思路设计思路 构建一主函数通过 mulclass object 对象把其他类的公有成员联系起来 用 switch 函数建立菜单然后进入不同菜单中根据用户通过数字键的选择完成 对所需不同功能对应函数的调用 根据题目要求详细设计了如下 4 个类 且各个类中各函数实现的作用如下 1 book 类主要是实现对管理 新建 修改 删除成员函数和图书名和其 编号的封装 其中公有成员函数 manage 实现用户进入的友好界面功能 creat 实现管理者对图书的新建功能 mulclass 类 book abook record arecord user auser mulclass mulclass void manage void borrow void back void query inter void book query void user query book get abook user get auser 6 面向对象程序设计 图书借阅系统 rework 实现对图书信息的修改功能 delet 实现对图书信息的删除功能 其中私有数据成员为图书的名字和编号 2 user 类主要是实现对管理 新建 修改 删除成员函数和借阅者姓名 和其编号的封装 其中公有成员函数 manage 实现用户进入的友好界面功能 creat 实现管理者对借阅者新成员的新建功能 rework 实现对借阅者信息的修改功能 delet 实现对借阅者信息的删除功能 其中私有数据成员为借阅者的姓名和编号 3 record 类主要是实现对一些借阅者信息的封装保护 内嵌借阅者对象 图书对象 将借阅的时间 应还时间 是否超时定 义为私有数据成员 4 mulclass 类是将接图书 还图书 图书信息的查询 借阅者借阅历史 的查询和以上设计的各个类的对象封装在一起 其中各公有函数成员的作用 manage 实现为用户提供界面的功能 borrow 实现借图书信息查询的功能 back 实现还图书的功能 query inter 实现用户查阅信息提供的界面的功能 book query 实现图书信息的查阅 user query 实现借阅者借阅历史的查询 7 面向对象程序设计 图书借阅系统 4 4 总体设计总体设计 0 20 40 60 80 100 第一季度第三季度 东部 西部 北部 5 5 详细设计详细设计与实现与实现 5 15 1 主函数的阐述主函数的阐述 函数原型 int main 设计思路 通过 switch 建立菜单 每个数字对应一个大的功能函数 声明一 个 mulclass 的对象 object 通过对象名访问类中所需的函数 用户就可以进 入系统根据自己想要实现的要求选择不同的数字键对不同功能函数的调用 核心代码 主函数 图 书 信 息 管 理 用 户 信 息 管 理 图 书 借 阅 归 还 信 息 查 询 推 出 系 统 新 建 修 改 删 除 新 建 修 改 删 除 借 书 还 书 返 回 图 书 查 询 返 回 8 面向对象程序设计 图书借阅系统 int main mulclass object while 1 switch inter face case 1 object get abook manage break case 2 object get asuer manage break case 3 object manage break case 4 object query inter break case 5 cout endl t t 谢谢使用 endl endl t t exit 0 break default break return 0 5 25 2 图书信息管理模块的具体阐述图书信息管理模块的具体阐述 函数原型 void book manage 设计思路 通过 switch 建立菜单 管理员可以根据上面的提示选择想要实现的 功能 每个数字对应一个实现功能不同的函数 可以根据选择不同的数字键 9 面向对象程序设计 图书借阅系统 来实现图书的新建 修改 删除功能 核心代码 void book manage while 1 cout endl cout t endl t 图书信息管理 endl t 1 新建 endl t 2 修改 endl t 3 删除 endl t 4 返回 endl t endl endl cout t t t switch getchar case 1 creat break case 2 rework break case 3 delet break case 4 return break default break 10 面向对象程序设计 图书借阅系统 5 2 15 2 1 图书信息管理中的新建模块的阐述图书信息管理中的新建模块的阐述 函数原型 void book creat 设计思路 先打开一个名为 bookfile 文件一写的方式将图书新的信息写入文件中并 保存 核心代码 void book creat cout endl 根据提示输入新的图书信息 endl endl cout name cout endl no ofstream bookfile bookfile open total txt ios out 打开文件并输写 bookfile setiosflags ios left setw 20 name no endl bookfile close cout endl endl 新图书信息已经保存 endl endl 5 2 25 2 2 图书信息管理中的修改模块图书信息管理中的修改模块 函数原型 void book rewok 设计思路 先输入想要修改的图书编号 打开 bookfile 所指向名为 total 的 文件 将里面的信息读出来 然后再打开一个名为 temp 的文件将修改的信息 存在里面 在设计思路过程中主要是根据输入的信息与已经存在文件里的信 息相比较 核心代码 void book rework 11 面向对象程序设计 图书借阅系统 string findno cout endl 修改图书信息 endl endl cout findno ifstream bookfile bookfile open total txt ios in if bookfile cout endl 对不起信息库为空 endl name no if no findno flag true cout endl 你想修的图书信息如下 endl endl cout 图书名字 name endl endl 编号 no endl endl endl cout 请在下面输入新的信息 endl endl cout name cout endl no temp setiosflags ios left setw 20 name no endl 12 面向对象程序设计 图书借阅系统 else temp setiosflags ios left setw 20 name no endl bookfile close temp close if flag ofstream bookfile1 total txt ifstream temp1 temp txt bookfile1 temp1 rdbuf endl cout endl 新信息已经保存 endl endl else cout endl 库中没有你想找的图书 endl endl 5 2 35 2 3 图书信息管理中的删除模块图书信息管理中的删除模块 函数原型 void book delete 设计思路 输入用户想要删除的图书信息 用读出的方式打开 total 文 件 用写的方式打开 temp 文件记录删除的信息 完成后关闭文件 核心代码 void book delet string delno cout endl 删除信息 endl endl cout delno ifstream bookfile 13 面向对象程序设计 图书借阅系统 bookfile open total txt ios in if bookfile cout endl 对不起信息库为空 endl name no if no delno flag true cout endl 你想删除的图书信息如下 endl endl cout 图书名字 name endl endl cout 编号 no endl endl cout 你确定要删除它吗 y n getchar if getchar n cout endl endl 图书信息没有删除 endl endl return else temp setiosflags ios left setw 20 name no endl cout endl endl 图书信息已经成功删除 endl endl temp close bookfile close if flag ofstream bookfile1 bookfile1 open total txt ifstream temp1 temp txt bookfile1 temp1 rdbuf endl bookfile1 close 14 面向对象程序设计 图书借阅系统 temp1 close else cout endl 库中没有这个图书的信息 endl endl 5 35 3 借阅者信息管理模块的具体阐述借阅者信息管理模块的具体阐述 函数原型 void user manage 设计思路 通过 switch 建立菜单 方便用户的使用 用户根据上面的提示输入 不同的数字键实现不同的功能 该过程主要包括了读者信息的新建 修改 删除这三个子函数 核心代码 void user manage while 1 cout endl cout t endl t 用户信息管理 endl t 1 新建 endl t 2 修改 endl t 3 删除 endl t 4 返回 endl t endl endl cout t t t switch getchar case 1 creat break case 2 15 面向对象程序设计 图书借阅系统 rework break case 3 delet break case 4 return break default break 5 3 1用户信息管理中的新建模块用户信息管理中的新建模块 函数原型 void user creat 设计思路 先输入借阅者的相关信息用写的方式打开名为 userfile 的文件将借阅者 的相关信息记录保存下来 文成后关闭文件 核心代码 void user creat cout endl 新建用户 endl endl cout 请根据提示输入新的用户信息 endl endl cout name cout endl no ofstream userfile userfile open total txt ios out userfile setiosflags ios left setw 20 name 16 面向对象程序设计 图书借阅系统 no endl userfile close cout endl 新用户信息已经保存 endl endl 运行结果 如图 5 7 图 5 7 用户管理中的新建模块 5 3 25 3 2 用户信息管理中的修改模块用户信息管理中的修改模块 函数原型 void user rework 设计思路 输入想要修改的借阅者的编号 以读的方式打开 userfile 文件所指的 名为 total 的文件将记录的借阅者的信息读出来 在以写的方式打开 userfile 文件所指的 temp 文件将修改的借阅者的信息记录在里面 核心代码 void user rework string findno cout endl 修改用户信息 endl endl cout findno ifstream userfile userfile open total txt ios in if userfile cout endl 对不起 没有这个用户的信息 endl name no if no findno flag true cout endl 你想修改的用户信息如下 endl endl cout 姓名 name endl endl cout 编号 no endl endl cout 请在下面输入新的信息 endl endl cout name cout endl no temp setiosflags ios left setw 20 name no endl else temp setiosflags ios left setw 20 name no endl temp close userfile close if flag ofstream userfile1 total txt ifstream temp1 temp txt userfile1 temp1 rdbuf endl userfile1 close temp1 close cout endl 新信息已经成功保存 endl endl else 18 面向对象程序设计 图书借阅系统 cout endl 对不起 没有这个用户的信息 endl endl 运行结果 如图 5 8 图 5 8 用户信息管理中的修改模块 5 3 35 3 3 用户信息管理中的删除模块用户信息管理中的删除模块 函数原型 void user delet 设计思路 输入想删除的读者信息 用读的方式打开 total 文件将保存的信 息读出来 用写的方式打开 temp 文件来记录修改的借阅者的信息 然后关闭 文件 核心代码 void user delet cout endl 删除用户信息 endl endl string findno 19 面向对象程序设计 图书借阅系统 cout findno ifstream userfile userfile open total txt ios in if userfile cout endl 对不起 用户信息库为空 endl name no if no findno flag true cout endl 你想删除的用户信息如下 endl endl cout 姓名 name endl endl cout 编号 no endl endl cout 你确定在删除吗 y n getchar if getchar n temp close userfile close cout endl 信息没有更改 endl endl return 20 面向对象程序设计 图书借阅系统 else temp setiosflags ios left setw 20 name no endl cout endl endl 该用户信息已经成功删除 endl endl temp close userfile close if flag ofstream userfile1 userfile1 open total txt ifstream temp1 temp txt userfile1 temp1 rdbuf endl userfile1 close temp1 close else cout endl endl 对不起 没有该用户的信息 endl endl 运行结果 如图 5 9 21 面向对象程序设计 图书借阅系统 图 5 9 用户信息管理中的删除 5 45 4 图书借阅归还模块的具体阐述图书借阅归还模块的具体阐述 函数原型 void mulclass manage 设计思路 通过 switch 建立菜单 用户根据菜单上的提示选择不同的数字键来 实现自己所想要实现的功能函数 此菜单主要提供了用户借书和还书的功能 方便人们的选择 核心代码 void mulclass manage while 1 cout endl endl cout t 图书借阅 归还 endl endl cout t 1 借图书 endl endl t 2 还图书 endl endl 22 面向对象程序设计 图书借阅系统 t 3 返回 endl endl cout t t switch getchar case 1 borrow break case 2 back break case 3 return break default break 5 4 15 4 1 图书借阅归还中的借阅模块图书借阅归还中的借阅模块 函数原型 void mulclass borrow 设计思路 根据输入的图书的编号 然后打开文件根据所输的信息来判断 要是所 输的信息存在于原来的文件中 则可以借阅 如不满足借阅者能借阅的条件 的则输出无权借阅等相关信息 核心代码 void mulclass borrow string name string no bool flag false 23 面向对象程序设计 图书借阅系统 bool flag1 false string findbook cout endl 借阅图书 endl endl cout findbook ifstream bookfile bookfile open total txt ios in if bookfile cout endl 对不起信息库为空 endl name no if no findbook name findbook flag1 true cout endl 你想借阅的图书信息如下 endl endl cout 图书名 name endl endl cout 编号 no endl endl string userno string username string findno cout endl endl findno ifstream userfile userfile open total txt ios in while userfile username userno if userno findno flag true break 24 面向对象程序设计 图书借阅系统 if flag time t timer time string userinfo info user findno txt ofstream userinfofile userinfo c str ios app userinfofile setiosflags ios left setw 20 name setw 15 no asctime localtime userinfofile close cout endl 这本图书 你已经成功借阅 endl endl else cout endl 用户信息中没有你的信息 你不能借走图书 endl endl break else temp setiosflags ios left setw 20 name no endl temp close bookfile close if flag ofstream bookfile1 total txt ifstream temp1 temp txt bookfile1 temp1 rdbuf endl bookfile1 close 25 面向对象程序设计 图书借阅系统 temp1 close if flag1 cout endl 对不起 库中没有这本图书 endl endl 运行结果 如图 5 11 图 5 11 5 4 25 4 2 图书借阅归还中的归还模块图书借阅归还中的归还模块 函数原型 void mulclass back 设计思路 输入所还的读者的编号 通过 switch 建立菜单 用户根据菜单上的 提示选择不同的数字键来实现自己所想要实现的功能函数 此菜单主要提供 了用户借书和还书的功能 方便人们的选择 核心代码 void mulclass back cout endl 还图书 endl endl cout userno ifstream user total txt if user 26 面向对象程序设计 图书借阅系统 cout endl 对不起 该用户不存在 endl username userno1 if userno1 userno cout endl backno flag1 true string bookname string bookno string time bool flag false string userfile info user userno txt ifstream userinfofile userfile c str ofstream temp info user temp txt while userinfofile bookname bookno getline userinfofile time if bookno backno flag true ofstream bookfile info dics total txt ios app bookfile setiosflags ios left setw 20 bookname bookno endl bookfile close 27 面向对象程序设计 图书借阅系统 else temp setiosflags ios left setw 20 bookname setw 20 bookno time endl temp close userinfofile close if flag ofstream user1 userfile c str ifstream temp1 info user temp txt user1 temp1 rdbuf endl user1 close temp1 close cout endl 还图书操作完成 endl endl break else cout endl 对不起 你没有借这本图书或者你输入的编号错误 endl endl break user close if flag1 cout endl 对不起 该用户不存在 endl endl 28 面向对象程序设计 图书借阅系统 运行结果 如图 5 12 所示 图 5 12 5 55 5 信息查询模块的具体阐述信息查询模块的具体阐述 函数原型 void mulclass query inter 设计思路 通过 switch 建立菜单 用户根据菜单上的提示选择不同的数字键来 实现自己所想要实现的功能函数 此菜单主要提供了图书查询和读者借阅历 史查询这两个功能的函数 方便人们的选择 核心代码 void mulclass query inter while 1 cout endl endl t 信息查询 endl endl t 1 图书信息查询 endl endl t 2 用户的借阅历史 endl endl t 3 返回 endl endl cout t t switch getchar case 1 book query break case 2 user query break case 3 29 面向对象程序设计 图书借阅系统 return break default

温馨提示

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

评论

0/150

提交评论