ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:236.73KB ,
资源ID:7044779      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7044779.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++音像出租管理系统设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++音像出租管理系统设计.docx

1、C+音像出租管理系统设计一、问题分析与功能定义科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。信息化时代的到来成为不可拒的潮流,人类文明正在进入一个崭新的时代。因此,音像管理系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,减小出错的概率,使顾客可以花更多的时间在选择光盘上。同时,也使音像管理员可以有更多的时间了解顾客的需要和市场的需求。1、设计内容及要求设计一个音像出租管理系统,完成光盘管理和顾客管理的功能,并能对租借信息进行管理,要求完

2、成一下功能:租借音像光盘、归还音像光盘、光盘管理(增加光盘、删除光盘、查询光盘、修改光盘信息、输出租借光盘信息、输出所有光盘列表)、顾客管理(增加顾客、删除顾客、查询顾客信息、查询顾客信息借光盘数量、修改顾客信息、输出顾客列表)该项目是在Visual C+ 6.0的平台下用c+语言实现,创建对象,程序运行开始,打开文件并将其分别链入链表之中;程序结束关闭并保存文件。整体系统功能全部由链表实现。 2、模块图二、对象(类)设计及实现1、概要设计Customer顾客类、CDatabase 顾客库类、Gpan 光盘类、GDatabase 光盘库类class CDatabase /顾客库类int top

3、;/ 顾客记录指针Customer customMaxr;/ 顾客记录CDatabase() ;/构造函数,将customer.txt读到custom中void clear();/删除所有顾客信息int addcustomer(int n,char *na);/增添顾客信息Customer *query(int customerid);/按编号查找void disp();/输出所有顾客信息int Customernum();/记录顾客信息void customerdata();/顾客库维护CDatabase();/析构函数,将custom写入customer.txt文件中2、详细设计1)类的原

4、型描述class Customer /顾客类int tag;/删除标记1:已删0:未删 int no;/顾客编号 char name10;/顾客姓名 int borbookMaxbor; /所租借光盘 Customer() char *getname() /获取姓名 int gettag() /获取删除标记 int getno() /获取顾客编号 void setname(char na)/设置姓名 void delgpan() /设置删除标记 void addcustomer(int n,char *na); /增加顾客void borrowgpan(int gpanid); /出租操作in

5、t retgpan(int gpanid); /归还操作void disp(); /输出顾客信息class GDatabase /光盘库类int top;/光盘记录指针Gpan gpanMaxb;/光盘记录GDatabase() ;/构造函数,将gpan.txt读到gpan中void clear();/全删 int addgpan(int n,char *na);/增加光盘Book *query(int gpanid);/查找光盘void disp();/输出所有光盘信息void gpandata();/光盘库维护GDatabase();/析构函数,将gpan写入gpan.txt文件中clas

6、s Gpan /光盘类 int tag; /删除标记1:已删0:未删 int no; /光盘编号 char name20;/名称 int onshelf;/是否在架1:在架0:已借 Gpan() char *getname();/获取姓名 int getno();/获取光盘编号 int gettag(); /获取删除标记 void setname(char na);/设置名称 void delgpan();/删除光盘 void addgpan(int n,char *na);/增加光盘int borrowgpan();/出租操作 void retgpan();/归还操作 void disp()

7、;/输出光盘 3、核心控制设计1、在主函数中我们要做的操作包括: (1)建立1个Customer顾客类、1个CDatabase 顾客库类、1个Gpan光盘类、1个GDatabase 光盘库类(2)建立菜单界面。完成以下内容: 进入功能必须打开菜单,然后用户根据菜单选择相应的操作方式,如查看数据、编辑光盘数据以及修改光盘数据、维护光盘的采购信息。添加、删除、查看顾客个人信息,浏览光盘信息。 能够对光盘基本信息、光盘采购信息、光盘的出租信息进行统计,统计的结果能够以表格的形式来表示。(3) 将光盘基本信息、光盘采购信息、光盘的出租信息存储在相应的文件中。(4) 系统界面友好,易操作。2、本程序应具

8、备的功能:A.添加、出租、归还功能: (1)添加顾客和光盘信息。 (2)出租尚在架的光盘。 (3)顾客归还的光盘。B.查找功能(1) 根据光盘的编号查找光盘信息。(2)根据顾客的编号查找顾客的信息。C.系统的操作(1) 系统在进入时,要有菜单提示;(2) 系统在用户退出时,有一定的提示。3、算法分析1)添加操作:(顾客信息的添加与光盘信息的添加类似) 包括两个部分,先通过输入设备输入信息,系统获取;然后添加入顾客数据库customer.txt文件中。获取信息void Customer:addcustomer(int n,char *na) /增加顾客 tag=0; no=n; strcpy(n

9、ame,na); for (int i=0;iMaxbor;i+) borgpani=0; int CDatabase:addcustomer(int n,char *na) /增添顾客信息 der *p=query(n); if (p=NULL) top+; customtop.addcustomer(n,na); cout顾客添加成功endl; return 1; return 0; 流程图:析构函数写入新顾客的编号跟姓名CDatabase:CDatabase() fstream file(customer.txt,ios:out); for (int i=0;i=top;i+) if(c

10、ustomi.gettag()=0) file.write(char *)&customi,sizeof(customi); else file.close(); 流程图:2)借书操作:利用for语句和if语句,通过判断光盘的borgpan的编号是否为0,来判断光盘是否未被租走或还没有被租完。void Customer:borrowgpan(int gpanid) /出租操作 for (int i=0;iMaxbor;i+) if (borgpani=0) borgpani=gpanid; return; 流程图:3)归还操作:利用for语句和if语句,通过判断关盘的borgpan的编号是否为

11、要归还的编号,来判断是否租出此光盘。int Customer:retgpan(int gpanid) /归还操作 for(int i=0;iMaxbor;i+) if(borgpani=gpanid) borgpani=0; return 1; else continue; return 0; 流程图:4)查找功能:利用for语句和if语句,寻找与要查询的编号相同的顾客编号或光盘编号,如果找到,向系统返回相应的编号,输出相应的信息。(顾客的查找与光盘查找类似)Customer *query(int customerid) /按编号查找 for (int i=0;i=top;i+) if(cus

12、tomi.getno()=customerid& customi.gettag()=0) return &customi; return NULL; 流程图:四、测试分析(一)、此系统存在问题1) 未设登录密码保护系统,是整个音像出租管理系统失去了一定的安全性;2) 程序运行界面 此界面运行时选择4有时会出现内存读取错误;1)当输入错的数据类型时 可能导致内存错误;2)读者、图书信息不完善; 3)命名不是很规范; 4)信息存储有限;五、源程序代码#include #include #include #include /输入/输出文件流类using namespace std;const int

13、 Maxr=100;/最多的顾客const int Maxb=100;/最多的光盘const int Maxbor=5;/每位顾客最多借五张光盘/顾客类,实现对顾客的信息的描述class Customer private: int tag; /删除标记 1:已删 0:未删 int no; /顾客编号 char name20; /顾客姓名 int borgpanMaxbor;/所租光盘 public: Customer() /构造函数 char *getname() /获取姓名 return name; int gettag() /获取删除标记 return tag; int getno() /

14、获取顾客编号 return no; void setname(char na) /设置姓名 strcpy(name,na); void delgpan() /设置删除标记 tag=1; void addcustomer(int n,char *na); /增加顾客 void borrowgpan(int gpanid); /出租操作 int retgpan(int gpanid); /归还操作 void disp(); /输出顾客信息 void print(); /输出原顾客信息 ; void Customer:addcustomer(int n,char *na) /增加顾客 tag=0;

15、no=n; strcpy(name,na); for (int i=0;iMaxbor;i+) borgpani=0; void Customer:borrowgpan(int gpanid) /出租操作 for (int i=0;iMaxbor;i+) if (borgpani=0) borgpani=gpanid; return; int Customer:retgpan(int gpanid) /归还操作 for(int i=0;iMaxbor;i+) if(borgpani=gpanid) borgpani=0; return 1; else continue; return 0; v

16、oid Customer:disp() /输出顾客信息 cout setw(5) no setw(10) name 租借光盘编号:; for (int i=0;iMaxbor;i+) if (borgpani!=0) cout borgpani |; coutendl; void Customer:print() /输出原顾客信息 cout 原顾客编号:setw(5) no t原顾客姓名: setw(10) name t租借光盘编号:; for (int i=0;iMaxbor;i+) if (borgpani!=0) cout borgpani |; coutendl; /顾客类库,实现建立

17、顾客的个人资料 class CDatabase private: int top; /顾客记录指针 Customer customMaxr;/顾客记录public: CDatabase(); /构造函数,将customer.txt读到custom中 void clear() /删除所有顾客信息 top=-1; int addcustomer(int n,char *na); /增添顾客信息 Customer *query(int customerid) /按编号查找 for (int i=0;i=top;i+) if(customi.getno()=customerid& customi.ge

18、ttag()=0) return &customi; return NULL; void disp(); /输出所有顾客信息 void print(int customerid) /输出顾客原有信息 for (int i=0;i=top;i+) if(customi.getno()=customerid& customi.gettag()=0) customi.print(); int customernum(); /得到顾客编号 void customerdata(); /顾客库维护 CDatabase(); / 析构函数,将custom写入customer.txt文件中;CDatabase

19、:CDatabase() /构造函数,将customer.txt读到custom中 Customer s; top=-1; fstream file(customer.txt,ios:in); while (1) file.read(char *)&s,sizeof(s); if (!file) break; top+; customtop=s; file.close(); CDatabase:CDatabase() / 析构函数,将custom写入customer.txt文件中 fstream file(customer.txt,ios:out); for (int i=0;i=top;i+

20、) if(customi.gettag()=0) file.write(char *)&customi,sizeof(customi); else file.close(); int CDatabase:addcustomer(int n,char *na) /增添顾客信息 Customer *p=query(n); if (p=NULL) top+; customtop.addcustomer(n,na); cout顾客添加成功endl; return 1; return 0; void CDatabase:disp() /输出所有顾客信息 for (int i=0;i=top;i+) cu

21、stomi.disp(); int CDatabase:customernum() return top; void CDatabase:customerdata() /顾客库维护 char choice; char cname20; /顾客姓名 int customerid; Customer *r; do cout nnttt欢迎进入顾客维护界面nntt 1 新 增ntt 2 更 改ntt 3 删 除ntt 4 查 找ntt 5 显 示ntt 6 全 删ntt 0 退 出 choice; switch (choice) case 1: cout customerid; cout cname

22、; addcustomer (customerid,cname); break; case 2: cout customerid; r=query(customerid); if (r=NULL) cout 该顾客不存在 endl; break; print(customerid); coutcustomerid; cout cname; r-addcustomer(customerid,cname); cout修改成功!endl; break; case 3: cout customerid; r=query(customerid); if (r=NULL) cout 该顾客不存在 delg

23、pan(); break; case 4: cout customerid; r=query(customerid); if (r=NULL) cout 该顾客不存在disp(); break; case 5: cout显示:endl; disp(); break; case 6: clear(); cout已删除!endl; break; default:if (choice!=0) cout输入错误,请从新输入:;break; while (choice!=0);/光盘类,实现对光盘的描述,光盘的编号,名称,租出,归还等class Gpanprivate: int tag;/删除标记 1:

24、已删 0:未删 int no;/光盘编号 char name20;/名称 int onshelf;/是否再架 1:再架 0:已借public: Gpan() char *getname() return name; /获取姓名 int getno() return no; /获取光盘编号 int gettag() return tag; /获取删除标记 void setname(char na)/设置名称 strcpy(name,na); void delgpan() tag=1;/删除光盘 void addgpan(int n,char *na)/增加光盘 tag=0; no=n; strcpy(name,na); onshelf=1; int borrowgpan()/出租操作 if (onshelf=1) onshelf=0; return 1; return 0; void retgpan()/归还操作 onshelf=1; void print() /输出光盘 cout 光盘原编号: setw(6) no t光盘原名称: setw(18) name t setw(10) (onshelf=1? 在架:已借) endl; void disp()/显示 cout setw(6) no setw(18) name setw(10) (onshelf=1? 在架:已借)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1