




免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
许四平第 20 页2020-2-511软件课程设计指导书 设计名称 :数据库课程软件设计 班 级: 07级(2)班 姓 名: 甄 平指导教师:许四平组织单位:数理学院时 间: 2010-6-16黄石理工学院数理学院一课程设计目的 软件应用课程设计是计算机及相关专业的实践环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。其目的在于巩固和加深对C+语言课程的基本知识的理解和掌握;掌握C+语言编程和程序调试的基本技能;利用C+语言进行软件设计的基本思路和方法;提高运用C+语言解决实际问题的能力。二课程设计任务与要求:1设计任务基本要求: 1: 工作人员登陆后,可以进行的操作 (1)添加学生的信息(学号,姓名,院系,最大借阅的图书数量等);(2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量); (3)删除学生的信息(学号,姓名,院系,最大借阅的图书数量),如果某个学生退学,就要清除他的信息; (4)查看学生的信息; (5)添加图书的信息(图书号,书名,作者,出版社,数量等); (6)修改图书的信息(图书号,书名,作者,出版社,数量等); (7)删除图书的信息(图书号,书名,作者,出版社,数量等); (8)查看图书的信息; 2: 学生登陆后,可以进行的操作 (1)查看学生自己借阅的数目信息; (2)借阅图书; (3)归还图书;备注:要求将学生和图书信息存放到外存上,每次从外存读取数据。2设计要求(1)对指导教师下达的题目进行系统分析。(2)根据分析结果完成系统设计。(3)编程:在计算机上实现题目的代码实现。(4)完成对该系统的测试和调试。(5)提交课程设计报告,课程设计报告内容包括:需求分析、概要设计、详细设计,调试与结果和设计心得体会五个部分。三.原始依据已完成C+语言课程学习,有语言编程基础,能够熟练运用C+语言进行程序设计。通过C+语言编写实际应用程序,提高用C+语言解决实际问题的能力。参考文献:1 谭浩强等.面向对象程序设计.清华大学出版社,20062 谭浩强等.面向对象程序设计上机与习题指导.清华大学出版社,2006四课程设计说明书1. 需求分析(1)问题描述 设计一个C+数据库管理程序,能够维护图书信息和读者信息及相应的借书还书处理。(2)基本要求: 1、管理员登录后能够管理所有的信息,学生登录后只能查阅自己的借阅信息,并且能够借书和还书。 2、将学生和图书信息存放到外存上,每次从外存读取数据。(3)测试数据1、 图书信息 图书编号图书名称是否已借出1C+程序设计是2Java否 2、读者信息 图书编号学生姓名借书编号1reader112reader22. 概要设计1.数据结构 通过面向对象程序设计,分别设计图书类Book和图书数据库类BDatabase,读者类Reader和读者数据库类RDatabase,模块清晰,结构简单,很容易达到设计要求。2.程序模块及之间的调用关系管理员登录adminlogin()读者登录readerlogin()图书管理BDatabase读者管理RDatabase 3. 详细分析#include #include #include #include /输入/输出文件流类using namespace std;const int Maxr=100;/最多的读者const int Maxb=100;/最多的图书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 borbooki;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)/借书操作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;iMaxbor;i+)if(borbooki!=0)cout borbooki |;cout endl;/读者类库,实现建立读者的个人资料class RDatabase private:int top; /读者记录指针Reader readMaxr;/读者记录public:RDatabase() /构造函数,将reader.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.txtvoid clear()/删除所有读者信息top=-1;int addreader(int n,char *na)/添加读者时先查找是否存在Reader *p=query(n);if (p=NULL)top+;readtop.addreader(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+)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 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 该读者不存在 endl; break; cout rname; r-setname(rname); break; case 3: cout readerid; r=query(readerid); if (r=NULL) cout 该读者不存在 delreader(); break; case 4:cout 读入读者编号: readerid;r=query(readerid);if (r=NULL)cout 该读者不存在disp();break;case 5:disp();break;case 6:clear();break;default:cout输入错误,请从新输入:; class Bookprivate:int tag; /删除标记 1:已借 0:未借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() if (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;class BDatabaseprivate: 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.txtvoid clear()top=-1;int addbook(int n,char *na)Book *p=query(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;return 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 *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;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();break;case 6:clear();break;default:cout输入错误,请从新输入:;void help() coutn本程序功能如下:endl; cout 1: 工作人员登陆后,可以进行的操作endl; cout (1)添加学生的信息(学号,姓名,院系,最大借阅的图书数量等); endl; cout (2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量);endl; cout (3)删除学生的信息(学号,姓名,院系,最大借阅的图书数量),如果某个学生退学,就要清除他的信息;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)借阅图书;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;cout ttt1 借 书nnttt2 还 书 nnttt3 图 书 维 护nnttt4 读 者 维 护nnttt5 帮助文件nnttt0 离 开 choice;switch (choice)case 1:cout readerid;cout bookid;r=ReaderDB.query(readerid);/按编号查找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 (b=NULL)cout 不存在该图书,不能还书 retbook();r-retbook(b-getno();break;case 3:BookDB.bookdata();break;case 4:ReaderDB.readerdata();break;case 5:help();break;case 0:break;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 离 开 choice;switch (choice)case 1:cout 读者姓名:getname()endl;cout bookid;b=BookDB.query(bookid);if (b=NULL)cout 不存在该图书,不能借书borro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人事派遣与管理合作协议概要条款书
- 新能源汽车产业链投资合作框架合同
- 电影院线放映权授权协议
- 假如时光可以倒流中考作文10篇
- 企业员工绩效管理标准化体系
- 商业保密保密协议条款说明
- 初三物理电学动态电路难题试卷及答案
- 《青山不老》课件
- 企业安全生产事故预防及处理方案工具
- 2025年基本公共卫生考试题目(附答案)
- 肿瘤病人疼痛护理课件
- 酒店餐饮英语培训课件
- 2025年长沙市中考物理试卷真题(含答案)
- 外科术后康复
- 口腔科主任述职报告
- 心脏骤停的急救及处理
- 营养科专案管理制度
- 达州国企考试试题及答案
- 2025四川省人力资源和社会保障厅制劳动合同书
- 2025-2030年海洋环境监测行业市场发展分析及发展前景与投资机会研究报告
- 浙江花园营养科技有限公司 年产750吨饲料级VD3油剂项目环评报告
评论
0/150
提交评论