2022年C++数据库管理系统 .pdf

上传人:C****o 文档编号:32489837 上传时间:2022-08-09 格式:PDF 页数:20 大小:290.48KB
返回 下载 相关 举报
2022年C++数据库管理系统 .pdf_第1页
第1页 / 共20页
2022年C++数据库管理系统 .pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《2022年C++数据库管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C++数据库管理系统 .pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件课程设计指导书设计名称 :数据库课程软件设计班级: 07 级(2)班姓名: 甄平指导教师:许四平组织单位:数理学院时间: 2010-6-16 黄石理工学院数理学院名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 许四平第 2 页2013-3-2411 一课程设计目的软件应用课程设计是计算机及相关专业的实践环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。其目的在于巩固和加深对C+语言课程的基本知识的理解和掌握

2、;掌握C+ 语言编程和程序调试的基本技能;利用C+语言进行软件设计的基本思路和方法;提高运用C+ 语言解决实际问题的能力。二课程设计任务与要求:1设计任务基本要求 : 1: 工作人员登陆后,可以进行的操作(1)添加学生的信息(学号,姓名,院系,最大借阅的图书数量等); (2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量) ; (3)删除学生的信息(学号,姓名,院系,最大借阅的图书数量) ,如果某个学生退学,就要清除他的信息;(4)查看学生的信息;(5)添加图书的信息(图书号,书名,作者,出版社,数量等); (6)修改图书的信息(图书号,书名,作者,出版社,数量等); (7)删除图书的信

3、息(图书号,书名,作者,出版社,数量等); (8)查看图书的信息;2: 学生登陆后,可以进行的操作(1)查看学生自己借阅的数目信息;(2)借阅图书;(3)归还图书;备注 :要求将学生和图书信息存放到外存上,每次从外存读取数据。2设计要求(1) 对指导教师下达的题目进行系统分析。(2) 根据分析结果完成系统设计。(3) 编程:在计算机上实现题目的代码实现。(4) 完成对该系统的测试和调试。(5) 提交课程设计报告,课程设计报告内容包括:需求分析、概要设计、详细设计,调试与结果和设计心得体会五个部分。三. 原始依据已完成 C+ 语言课程学习,有语言编程基础,能够熟练运用C+ 语言进行程序设计。通过

4、C+ 语言编写实际应用程序,提高用C+ 语言解决实际问题的能力。参考文献:1 谭浩强等 . 面向对象程序设计. 清华大学出版社,2006 2 谭浩强等 . 面向对象程序设计上机与习题指导.清华大学出版社,2006 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 许四平第 3 页2013-3-2411 四课程设计说明书1. 需求分析(1)问题描述设计一个 C+数据库管理程序,能够维护图书信息和读者信息及相应的借书还书处理。(2)

5、基本要求:1、管理员登录后能够管理所有的信息,学生登录后只能查阅自己的借阅信息,并且能够借书和还书。2、将学生和图书信息存放到外存上,每次从外存读取数据。(3)测试数据1、图书信息图书编号图书名称是否已借出1 C+程序设计是2 Java 否 2 、读者信息图书编号学生姓名借书编号1 reader1 1 2 reader2 2. 概要设计1. 数据结构通过面向对象程序设计,分别设计图书类Book 和图书数据库类BDatabase, 读者类 Reader和读者数据库类 RDatabase, 模块清晰,结构简单,很容易达到设计要求。2. 程序模块及之间的调用关系管理员登录adminlogin() 读

6、 者 登 录readerlogin() 图书管理BDatabase 读者管理RDatabase 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - 许四平第 4 页2013-3-2411 3. 详细分析#include #include #include #include / 输入 /输出文件流类using namespace std; const int Maxr=100;/ 最多的读者const int Maxb=100;/

7、最多的图书const int Maxbor=5;/ 每位读者最多借五本书/读者类 ,实现对读者的信息的描述class Reader private: int tag; / 删除标记1:已删0:未删int no; / 读者编号char name10; / 读者姓名int borbookMaxbor;/ 所借图书public: Reader() char *getname() return name; / 获取姓名int gettag() return tag; /获取删除标记int getno() return no; /获取读者编号int getborbook(int i) return bo

8、rbooki; void setname(char na) / 设置姓名 strcpy(name,na); void delreader() tag=1; / 设置删除标记1:已删0:未删void addreader(int n,char *na)/ 增加读者 tag=0; no=n; strcpy(name,na); for(int i=0;iMaxbor;i+) borbooki=0; void borrowbook(int bookid)/借书操作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -

9、 - - - 第 4 页,共 20 页 - - - - - - - - - 许四平第 5 页2013-3-2411 for(int i=0;iMaxbor;i+) if (borbooki=0) borbooki=bookid; return; int retbook(int bookid)/ 还书操作 for(int i=0;iMaxbor;i+) if(borbooki=bookid) borbooki=0; return 1; return 0; void disp()/ 读出读者信息 cout setw(5) no setw(10) name借书编号: ; for(int i=0;iM

10、axbor;i+) if(borbooki!=0) cout borbooki |; cout endl; ; /读者类库,实现建立读者的个人资料class RDatabase private: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 许四平第 6 页2013-3-2411 int top; / 读者记录指针Reader readMaxr;/ 读者记录public: RDatabase() /构造函数,将 reader

11、.txt读到 read中 Reader s; top=-1; fstream file(reader.txt,ios:in);/打开一个输入文件while (1) file.read(char *)&s,sizeof(s); if (!file)break; top+; readtop=s; file.close(); / 关闭reader.txt void clear()/ 删除所有读者信息 top=-1; int addreader(int n,char *na)/ 添加读者时先查找是否存在 Reader *p=query(n); if (p=NULL) top+; readtop.add

12、reader(n,na); return 1; return 0; Reader *query(int readerid)/ 按编号查找 for (int i=0;i=top;i+) if (readi.getno()=readerid & readi.gettag()=0) return &readi; return NULL; void disp() / 输出所有读者信息 for (int i=0;i=top;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 2

13、0 页 - - - - - - - - - 许四平第 7 页2013-3-2411 readi.disp(); void readerdata();/读者库维护RDatabase() /析构函数,将read写到 reader.txt文件中 fstream file(reader.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) file.write(char *)&readi,sizeof(readi); file.close(); ; void RDatabase:readerdata() char choice; char

14、 rname20; int readerid; Reader *r; while (choice!=0) cout nnttt 读 者 维 护 nnntt 1 新 增nntt 2 更 改nntt 3 删 除nntt 4 查 找nntt 5 显 示nntt 6 全 删nntt 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 该读者

15、不存在endl; break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 许四平第 8 页2013-3-2411 cout rname; r-setname(rname); break; case 3: cout readerid; r=query(readerid); if (r=NULL) cout 该读者不存在 delreader(); break; case 4: cout 读入读者编号: readerid; r

16、=query(readerid); if (r=NULL) cout 该读者不存在disp(); break; case 5: disp(); break; case 6: clear(); break; default:cout 输入错误,请从新输入:; class Book private: int tag; / 删除标记1:已借0:未借名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 许四平第 9 页2013-3-2411

17、 int no; / 图书编号char name10; / 图书名public: Book() 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:未借int addbook(int n,char *na) tag=0; no=n; strcpy(name,na); return 0; int borrowbook() i

18、f (tag=1) return 0; else return 1; int retbook() tag=0; return 0; void disp()/ 读出读者信息 cout setw(5) no setw(10) name; if (tag=0) coutsetw(10) 未借出 endl; else coutsetw(10) 已借出 endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - 许四平第 10 页201

19、3-3-2411 ; class BDatabase private: int top; Book bookMaxb; public: BDatabase() Book b; top=-1; fstream file(book.txt,ios:in);/打开一个输入文件while (1) file.read(char *)&b,sizeof(b); if (!file)break; top+; booktop=b; file.close(); / 关闭reader.txt void clear() top=-1; int addbook(int n,char *na) Book *p=quer

20、y(n); if (p=NULL) top+; booktop.addbook(n,na); return 1; return 0; Book *query(int bookid)/按编号查找 for (int i=0;i=top;i+) if (booki.getno()=bookid ) return &booki; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - 许四平第 11 页2013-3-2411 return

21、NULL; void bookdata();/ 图书库维护void disp() for (int i=0;i=top;i+) booki.disp(); BDatabase()/析构函数,将 book 写到 book.txt 文件中 fstream file(book.txt,ios:out); for (int i=0;i=top;i+) file.write(char *)&booki,sizeof(booki); file.close(); ; void BDatabase:bookdata() char choice; char bname40; int bookid; Book *

22、b; while (choice!=0) cout nnnttt 图 书 维 护 endlendl; cout nnntt 1 新 增nntt 2 更 改nntt 3 删 除 nntt 4 查 找nntt 5 显 示nntt 6 全 删nntt 0 退 出 choice; switch (choice) case 1: cout bookid; cout bname; addbook (bookid,bname); break; case 2: cout 输入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书不存在endl; break; c

23、out 输入新的书名: 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(); break; case 6: clear(); break; default:cout 输入错误,请从新输入:; void help()

24、 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 20 页 - - - - - - - - - 许四平第 13 页2013-3-2411 coutn 本程序功能如下:endl; cout 1: 工作人员登陆后,可以进行的操作endl; cout ( 1)添加学生的信息(学号,姓名,院系,最大借阅的图书数量等); endl; cout ( 2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量) ;endl; cout ( 3)删除学生的信息(学号,姓名,院系,最大借阅

25、的图书数量) ,如果某个学生退学,就要清除他的信息;endl; cout ( 4)查看学生的信息;endl; cout ( 5)添加图书的信息(图书号,书名,作者,出版社,数量等);endl; cout ( 6)修改图书的信息(图书号,书名,作者,出版社,数量等); ;endl; cout ( 7)删除图书的信息(图书号,书名,作者,出版社,数量等);endl; cout ( 8)查看图书的信息;endl; cout ( 9)允许学生借书和还书;endl; cout 2: 学生登陆后,可以进行的操作endl; cout ( 1)查看学生自己借阅的数目信息;endl; cout ( 2)借阅图书

26、;endl; cout ( 3)归还图书; endl; cout! 备注 :要求将学生和图书信息存放到外存上,每次从外存读取数据。endl; cout*制作人:甄平 *endl; cout*设计日期: 2010年6月16日*endl; /main() 函数的实现,程序的主界面的引导void adminlogin() char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while(choice!=0) cout endlendlttt 图 书 管 理 系 统nnn;

27、 cout ttt1 借 书nnttt2 还 书 nnttt3 图 书 维 护nnttt4 读 者 维 护nnttt5 帮助文件nnttt0 离 开 choice; switch (choice) case 1: cout readerid; cout bookid; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 20 页 - - - - - - - - - 许四平第 14 页2013-3-2411 r=ReaderDB.query(readerid);/ 按编号查找

28、if (NULL=r) cout 不存在该读者,不能借书 endl; break; b=BookDB.query(bookid); if (b=NULL) cout 不存在该图书,不能借书borrowbook()=0) cout 该图书已借出,不能借书borrowbook(b-getno(); b-delbook(); break; case 2: coutreaderid; cout bookid; r=ReaderDB.query(readerid); if (r=NULL) cout 不存在该读者,不能还书 endl; break; b=BookDB.query(bookid); if

29、(b=NULL) cout 不存在该图书,不能还书 retbook(); r-retbook(b-getno(); break; case 3: BookDB.bookdata(); break; case 4: ReaderDB.readerdata(); break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 20 页 - - - - - - - - - 许四平第 15 页2013-3-2411 case 5: help(); break; case 0: b

30、reak; default:cout 输入错误,请从新输入:; void readerlogin() int i; char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; coutreaderid; r=ReaderDB.query(readerid); if (r!=NULL) while(choice!=0) cout endlendlttt 读 者 管 理 系 统nnn; cout ttt1 借 书nnttt2 还 书 nnttt3 借阅信息 nnttt0 离

31、开 choice; switch (choice) case 1: cout 读者姓名 :getname()endl; cout bookid; b=BookDB.query(bookid); if (b=NULL) cout 不存在该图书,不能借书borrowbook()=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 20 页 - - - - - - - - - 许四平第 16 页2013-3-2411 cout 该图书已借出,不能借书borrowbook(b

32、-getno(); b-delbook(); break; case 2: cout 读者姓名 :getname()endl; cout bookid; b=BookDB.query(bookid); if (b=NULL) cout 不存在该图书,不能还书 endl; break; for(i=0;igetborbook(i)=bookid) b-retbook(); r-retbook(b-getno(); break; else cout 该读者没有借此图书,不能还书 disp(); break; default:cout 输入错误,请从新输入:; else cout不存在此读者!end

33、l; void login() char choice=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 20 页 - - - - - - - - - 许四平第 17 页2013-3-2411 string adminname; string adminpassword; while(choice!=1 & choice!=2) coutendlendltttt用 户 登 录nnn; cout choice; if(choice=1) cout adminname;

34、 cout adminpassword; if(adminname=admin & adminpassword=123) adminlogin(); else readerlogin(); void main() login(); 4. 调试与结果主菜单:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 20 页 - - - - - - - - - 许四平第 18 页2013-3-2411 (1)借书图示:(2)还书图示(3)图书维护菜单名师资料总结 - - -精品资料欢

35、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 20 页 - - - - - - - - - 许四平第 19 页2013-3-2411 (4)读者维护菜单帮助文件:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 20 页 - - - - - - - - - 许四平第 20 页2013-3-2411 5. 课程设计心得通过本次实验,我设计了程序流程,并编写了C+程序,并且不断测试,虽然还有很多不足之处,但还是凭着自己的努力,完了本次程序设计,收获很大,了解了一些软件设计流程,并且查了相关资料,极大提高了自己的程序设计能力,希望以后更加努力,成为一名优秀的软件设计员。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 20 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁