C++影碟出租系统课程设计源代码
C语言设计——光盘管理系统

光盘管理系统学号:*******姓名:***指导教师:***一、光盘管理系统要求概述:用于解决私人光盘逐渐增多以至于找一个光盘或软件要花费很多的时间和精力。
实现光盘的分类管理,查询,检索等功能。
主要功能列表:光盘登记光盘分类光盘查询软件检索结果输出三、程序代码#include <stdio.h>#include <stdlib.h>#include <string.h>#define SIZE 99 /* 可以录入的最大光盘数 */char S_name[30]; /* 记录年份*/char C_name[12]; /* 记录用户名 */int R=0; /* 记录已有的光盘信息数量 */struct cd_info /* 光盘信息结构体 */{char year[30]; /* 记录事件存盘日期 */char yh[12]; /* 记录用户名*/int num; /* 记录光盘号 */char name[10]; /* 记录光盘题目 */char rw[30]; /* 记录人物 */char rq[10]; /* 记录存盘存盘日期 */char address[30]; /* 记录光盘内容类型 */}cd[SIZE];void first(char S_name[30],char C_name[12]); /* 检测是否为第一次使用 */ void load(struct cd_info cd[]); /* 数据初始化 */void add(struct cd_info cd[]); /* 录入光盘信息 */void change(struct cd_info cd[]); /* 修改光盘信息 */void search(struct cd_info cd[]); /* 查找光盘信息 */void del(struct cd_info cd[]); /* 删除光盘信息 */void cyear(char S_name[30]); /* 更改当前默认年份 */void cclass(char C_name[12]); /* 更改当前默认用户名 */void help(); /* 查看使用帮助 */void save(struct cd_info cd[]); /* 保存数据 */void main() /* 主函数 */{int menu_select;char exit_select;load(cd);if(strlen(S_name)==0||strlen(C_name)==0) /* 判断是否为第一次使用 */{first(S_name,C_name);}while(1){menu_select=-1;do{printf("\n");printf("\t\t-----------------------光盘管理系统-------------------\n");printf("\t\t------------------------------------------------------\n"); printf("\t\t 1.录入光盘信息\n");printf("\t\t\n");printf("\t\t 2.修改光盘信息\n");printf("\t\t\n");printf("\t\t 3.查询光盘信息\n");printf("\t\t\n");printf("\t\t 4.删除光盘信息\n");printf("\t\t\n");printf("\t\t 5.更改当前默认年份\n");printf("\t\t\n");printf("\t\t 6.更改当前默认用户名\n");printf("\t\t\n");printf("\t\t 7.查看使用帮助\n");printf("\t\t\n");printf("\t\t 0.退出光盘管理系统\n");printf("\t\t\n");printf("\t\t-------------------------------------------------------\n");printf("\t\t-------------------------------------------------------\n"); printf("\t\t 当前默认年份为:%s\n",S_name);printf("\t\t 当前默认用户名为:%s\n",C_name);printf("\t\t-------------------------------------------------------\n"); printf("请从0-7中选择:");scanf("%d",&menu_select);switch(menu_select){case 1:add(cd);break;case 2:change(cd);break;case 3:search(cd);break;case 4:del(cd);break;case 5:cyear(S_name);break;case 6:cclass(C_name);break;case 7:help();break;case 0:break;default:printf("输入错误!\n");break;}}while(menu_select!=0);if(menu_select==0) /* 判断是否要退出 */{printf("----------确定要退出本系统?(Y/N):");scanf("%s",&exit_select);if(exit_select=='y'||exit_select=='Y'){exit(0);}else{continue;}}}}void first(char S_name[30],char C_name[12]) /* 检测是否为第一次使用 */ {FILE *fp;printf("\t\t---------------------------------------------\n");printf("\t\t由于您是第一次使用,请输入年份和用户名:\n");if(strlen(S_name)==0){printf("\n当前年份为空,请输入年份:");scanf("%s",S_name);printf("您设置的年份为:%s\n",S_name);if((fp=fopen("save_year.rec","wb"))==NULL) /* 把当前年份记录到save_year.rec中 */{printf("----------记录年份文件打开错误。
碟片出租课程设计报告

碟片出租管理信息系统目录一、碟片出租管理信息系统..................... ( 3 )1.1开发背景................................... (3 )1.2新系统目标................................. (3 )1.3系统的可行性分析........................... (3 )二、碟片出租管理信息系统分析.................. (4 )2.1业务流程分析 .............................. (4 )2.2数据流程分析............................... (5 )2.3数据字典................................... (6 )三、................... 碟片出租管理信息系统设计( 10 )3.1系统总体结构分析......................... ( 10 )3.2数据库设计................................ (10 )3. ........................................................................... 3功能层次分析................................................. (13 )3.4输入输出设计.............................. ( 14 )3.5物理配置方案设计......................... ( 15 )四、协会经费管理系统实施4.1系统开发环境............................... ( 15 )4.2模块功能实现............................. (15 )4.3代码设计................................. (20 )五、总结27 ) 参考文献........................................... (28 )一、碟片出租管理信息系统1.1开发背景当今社会,随着计算机科学技术的日异发展,数据库技术被越来越多地应用在互联网及其人们的日常生活中。
C语言课程设计说明书--影碟管理系统

内蒙古科技大学本科生课程设计说明书题目:C语言课程设计——影碟管理系统学生姓名:张升辉学号:1567159128专业:软件工程班级:软件1班指导教师:褚燕华日期: 2016年1月4日内蒙古科技大学课程设计任务书目录目录 (I)第一章需求分析 (2)1.1 引言 (2)1.2 任务概述 (2)1.3 数据描述 (2)1.4 功能需求 (2)1.5 性能需求 (2)第二章概要设计 (3)2.1 总体设计 (3)2.2 数据类型设计(或数据结构设计) (3)2.3 接口设计 (4)第三章详细设计 (5)3.1 输入模块设计 (5)3.2 输出模块设计 (6)3.3 查找模块设计 (6)3.4 保存及读取模块设计 (7)第四章测试分析 (7)4.1 测试程序执行情况 (7)第五章课程设计总结 (14)附录:程序代码: (14)参考文献 (29)第一章需求分析1.1引言一直以来人们使用传统的人工方式管理影碟店的日常工作,租借和归还过程主要依靠手工。
这样无论是销售人员还是购买人员都很不方便。
为方便对影碟店光盘、影碟资料、借还影碟等进行高效的管理,特编写程序以提高影碟店的管理效率。
1.2任务概述本影碟管理系统主要应用与小型的影碟音像店中,方便管理员对大量的影碟信息,包括电影名、导演、电影公司、上市日期等进行增加、查询、保存等操作。
本系统对于硬件要求不高,软件只要是windows2000及以上版本都可以使用。
1.3 数据描述系统数据类型有:整型int,字符型char,结构体struct;自己定义的数据类型有:DATE ,CD1.4功能需求功能划分:影碟管理系统可分为三部分:信息管理;借阅处理;查询功能描述:(1)信息管理功能:能对影碟的各种信息进行管理、登记,保存等。
(2)借阅处理功能:对影碟的借阅进行管理登记,保存记录。
(3)查询功能:让管理人员对影碟的信息进行查阅。
1.5性能需求1.时间特性本系统对时间的要求较高,时间反应要快,在查询时必须能在几秒时间内作出反应,弹出所要查询的各类图书信息以及借阅者信息。
数据库——影碟出租系统

《数据库原理与应用》课程设计题目:影碟出租数据库系统设计与实现系别:数学与信息工程学院专业(含班级):09计算机科学与技术(嵌入式)学号:姓名:游海斌指导教师:林克明职称副教授填表日期:2011 年12 月26 日前言一、选题的依据及意义1.依据熟悉C#、SQL程序设计的基本语法知识及常用技巧。
2.意义本课程的课程设计实际是学生学习完《数据库系统概论》课程后,进行的一次全面的综合训练,其目的在于加深对编程技术基本知识的理解,掌握运用开发应用程序的基本方法及基本技巧。
二、本课程设计内容1. 出租、归还碟片信息的统计:会员账号,影碟编号,出租时间,归还时间,租金等2. 影片信息的查询的统计:影碟编号,名称,类型,国家,主演,单价,购入时间,库存量。
3.营业员和会员资料的查询的统计:营业员账号,会员账号,密码,姓名,办理时间,剩余可租碟数,工作时间。
4.营业员、会员及碟片的添加或删除。
三、研究目标1. 碟片出租系统是一个面向碟片出租者的管理信息系统。
有会员(租借者),营业员,店长三方组成。
该系统的工作目标就是要碟片的出租能有计划地进行,以利于出租者管理。
2. 本系统开发将综合采用结构化系统开发方法和面向对象开发方法,充分发挥两种开发方法的优势。
- 38 -实现方案一、开发平台选择1. SQL Server 20002. C#二、需求分析在对世面上的影碟出租公司进行了初步的了解后,发现其业务主要是集中在影碟的管理和录像的出租归还上。
对影碟的管理工作量较大,采用手工的方式还容易出错,并且不能满足顾客对影碟的详细信息的查询功能。
在现有的影碟出租中对会员的管理也很重要,传统的登记方式不仅费时而且不能对其出租日志进行系统的管理,造成了不必要的经济损失。
综上说述,在影碟出租数据库设计中应考虑和克服了上诉的诸多问题,增强了实用性。
2.1数据需求影片信息数据:录像ID、片名、导演、主演、类型、介绍、上映时间。
录像信息数据:录像ID、格式、语言、进货时间、状态、库存数量。
2.影碟租赁系统

课程设计(论文)任务书软件学院软件工程+交通设备信息工程专业 3 班一、课程设计(论文)题目影碟租赁系统二、课程设计(论文)工作自 2011 年 6 月 20日起至 2011 年 6 月 26日止。
三、课程设计(论文) 地点: 教室四、课程设计(论文)内容要求:1.本课程设计的目的(1)熟练掌握C++语言的基本知识和技能;(2)掌握面向对象程序设计的基本思路和方法;(3)了解指针、类的继承、文件的打开和保存、链表应用(4)利用所学的基本知识和技能,解决面向对象程序设计问题(5)培养分析、解决问题的能力;提高学生的科技论文写作能力。
2.课程设计的任务及要求1)基本要求:(1)设计一个的菜单将在实现的功能显示出来,并有选择提示(2)影碟分为三类:CD、DVD、VCD,能够这三类影碟实现增加、删除、修改功能(3)影碟出租后动态的修改库存信息,并根据租用影碟的数目和天数计算打印出相关信息(4)要求有错误提示功能,例如输入日期,输入错误提示重新输入2)创新要求:影碟的信息可以通过文件保存,根据出租的情况动态更新。
3)课程设计论文编写要求(1)要按照课程设计模板的规格书写课程设计论文(2)论文包括目录、正文、心得体会、参考文献等(3)课程设计论文用B5纸统一打印,装订按学校的统一要求完成4)答辩与评分标准:(1)完成原理分析:20分;(2)完成设计过程:40分;(3)完成调试:20分;(4)回答问题:20分。
5)参考文献:(1)谭浩强. C++程序设计. 北京:清华大学出版社,2004(2)/(3)/6)课程设计进度安排内容天数地点构思及收集资料2图书馆编程设计与调试5实验室撰写论文3图书馆、实验室学生签名:2011 年6 月日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(20分):优()、良()、中()、一般()、差();(3)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否()评阅人:职称:2011 年6月日目录一、问题描述 (4)二、内容简介 (5)2.1 基本要求: (5)2.2. 算法思想: (5)2.3. 模块划分: (5)2.4. 源程序: (5)2.5. 测试情况: (10)三、小结 (11)四、参考文献 (12)一、问题描述(描述要求编程解决的问题)字体为宋体五号字,行间距为1.1倍。
光盘出租系统课程设计

光盘出租系统课程设计一、教学目标本课程的目标是让学生了解和掌握光盘出租系统的相关知识,包括其功能、操作和管理方法。
具体目标如下:1.知识目标:学生能够描述光盘出租系统的基本功能和特点,理解其工作原理,掌握如何使用和管理光盘出租系统。
2.技能目标:学生能够熟练操作光盘出租系统,进行光盘的借阅、归还和查询等操作。
3.情感态度价值观目标:学生能够认识到光盘出租系统对于学习和娱乐的重要性,培养良好的信息素养和自主学习的能力。
二、教学内容本课程的教学内容主要包括光盘出租系统的功能、操作和管理。
具体内容包括:1.光盘出租系统的基本功能和特点:介绍光盘出租系统的主要功能,如光盘的借阅、归还、查询等,以及其特点和优势。
2.光盘出租系统的工作原理:讲解光盘出租系统的工作原理和操作流程,包括光盘的存放、借阅规则和归还流程等。
3.光盘出租系统的管理方法:介绍光盘出租系统的管理方法,如如何进行光盘的分类、编号和管理,如何处理借阅违规等问题。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括:1.讲授法:教师讲解光盘出租系统的基本概念、功能和操作方法,引导学生理解和掌握相关知识。
2.案例分析法:通过分析实际案例,让学生了解光盘出租系统的应用场景和实际操作,提高学生的实际操作能力。
3.实验法:安排实验课程,让学生亲自动手操作光盘出租系统,培养学生的实际操作能力和解决问题的能力。
四、教学资源为了支持教学内容的传授和教学方法的实施,我们将准备以下教学资源:1.教材:选用合适的教材,为学生提供系统的学习材料。
2.参考书:提供相关的参考书籍,丰富学生的知识视野。
3.多媒体资料:制作多媒体课件,通过图片、视频等形式,生动展示光盘出租系统的功能和操作方法。
4.实验设备:准备光盘出租系统实验设备,让学生进行实际操作和实验。
五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用多种评估方式,包括平时表现、作业和考试等。
具体评估方式如下:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度。
影碟租赁系统(MYSQL数据库)_1401191950409387

影碟租赁系统(MYSQL数据库)摘要:随着科学技术的进步,计算机行业的迅速发展,大大提高人们的工作效率。
计算机信息处理系统的引进已彻底改变了许多系统的经营管理。
影碟管理系统是学校管理机制中的重要组成部分,通过对影碟管理系统的运行管理机制进行调查研究,开发了此影碟系统。
本系统中解决了学校影碟管理事务中的常用基本问题以及相关统计工作。
本系统中包含6个功能模块:系统设置,客户管理,影碟管理,影碟租还,系统查询和更改口令。
本系统使有jsp进行网页界面的设计,使用MVC设计模式,采用了开源框架Struts,它采用了当今软件设计的最新技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。
本系统中通过JDBC驱动和数据库进行无缝连接,后端的数据库是mysql,也是一个开源的数据库系统,该数据库具有较高的完整性,一致性和安全性。
关键词:影碟管理;信息管理;jsp;struts;租赁目录摘要IIIAbstract IV1. 绪论11.1毕业设计主要任务11.2目前影碟管理系统存在的问题11.3课题意义11.4论文的工作和安排22.影碟租赁管理需求分析32.1 可行性分析32.1.1.技术可行性32.1.2.经济可行性32.2 影碟租赁管理系统需求概述32.2.1系统目标32.2.2用户类和用户特性42.3 影碟租赁管理系统需求模型42.3.1功能描述42.3.2影碟管理员详细功能描述52.3.3客户详细功能描述52.3.4主要用例的用例描述63.总体设计93.1 数据库设计93.1.1数据库设计概述93.1.2影碟信息表结构设计103.1.3影碟类型信息表结构设计113.1.4 客户信息表结构设计113.1.5客户类型信息表结构设计123.1.6影碟租赁信息表结构设计123.1.7影碟归还信息表结构设计133.1.8用户信息表结构设计133.1.9影碟信息表结构设计143.1.10办证参数信息表结构设计143.2 系统总体结构设计153.2.1影碟管理系统总体结构图153.2.2 系统管理员模块功能153.2.3 客户管理模块功能163.2.4 影碟管理模块功能163.2.5 影碟租还模块功能173.2.6 系统查询模块功能184.程序设计与编码204.1开发平台与工具204.1.1 J2EE平台204.1.2 WEB服务器和数据库204.2程序设计214.2.1程序设计概述214.2.2数据库与Web服务器的连接214.2.3登录模块程序设计234.2.4系统管理员功能模块的实现254.2.5客户管理功能模块的实现264.2.6查询功能模块的实现274.2.7影碟管理功能模块的实现294.2.8影碟租还功能模块的实现305.软件测试335.1 软件测试的方法与步骤335.2 测试用例设计与测试用例的运行过程及测试结果分析345.2.1模块测试345.2.2集成测试355.2.3 验收测试365.3 评价366.结束语376.1 工作成果376.2 改进意见376.3 收获体会37参考文献39致谢40功能描述影碟租赁管理系统的主要任务是实现客户迅速检索查询,方便租赁归还影碟,影碟管理员高效的完成系统的各项基本操作,系统管理员是管理用户设置权限等操作,影碟租赁管理系统要完成一下功能:1. 登录:客户、影碟管理员、系统管理员进入该系统必须登录,身份验证正确了才可以进入该系统,以不同身份进入该系统所对应的系统使用权限是不同的。
c影碟出租课程设计

c 影碟出租课程设计一、教学目标本课程的学习目标包括:知识目标:学生能够理解并掌握影碟出租的基本概念、流程以及相关法律法规。
技能目标:学生能够运用所学知识,独立完成影碟出租的各项工作,如租赁、归还、盘点等。
情感态度价值观目标:学生能够认识到影碟出租行业对于文化交流和娱乐生活的重要性,并培养对行业的热爱和敬业精神。
二、教学内容本课程的教学内容主要包括:1.影碟出租的基本概念:介绍影碟出租的定义、分类及其在文化产业中的地位。
2.影碟出租的流程:讲解影碟的采购、租赁、归还、盘点等环节的操作规范。
3.相关法律法规:普及我国关于影碟出租行业的法律法规,如《出版物市场管理规定》、《著作权法》等。
4.影碟出租行业的现状与发展趋势:分析行业发展状况,探讨未来发展趋势。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解基本概念、法律法规和行业现状。
2.案例分析法:分析典型影碟出租案例,提高学生解决实际问题的能力。
3.讨论法:学生就行业发展趋势等问题进行讨论,培养学生的独立思考能力。
4.实验法:模拟影碟出租操作流程,让学生动手实践,巩固所学知识。
四、教学资源本课程所需教学资源包括:1.教材:选用权威、实用的影碟出租教材,为学生提供系统理论知识。
2.参考书:推荐相关领域的参考书籍,拓展学生的知识视野。
3.多媒体资料:制作精美的课件、视频等,增强课堂教学的趣味性。
4.实验设备:配置合适的实验设备,保障实践教学的顺利进行。
五、教学评估本课程的评估方式包括:1.平时表现:考察学生在课堂讨论、提问等方面的参与程度,以及作业完成的质量。
2.作业:布置与课程内容相关的作业,评估学生对知识点的理解和运用能力。
3.考试:定期进行课程考试,全面检验学生的学习成果。
评估方式应客观、公正,能够全面反映学生的学习成果。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材和大纲,合理安排每个章节的教学内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#ifndef VIDEO_H#define VIDEO_H#include<iostream>#include<string>using namespace std;//class videostring vidname;class video{ //影碟类friend ostream &operator<<(ostream &os,video &vi);friend class application;public:video(string="",string="",int=0,string="",string="",string="",int=0);video(video &vi);void input();//private:string Vname; //碟片名称string Country; //国家int Type; //类型string Producer; //制片人string Director; //导演string Star; //主演明星int Number; //库存量video *next;};video::video(string vname,string country,int type,string producer,string director,string star,int number){Vname=vname;Country=country;Type=type;Producer=producer;Director=director;Star=star;Number=number;}video::video(video &vi){Vname=vi.Vname;Country=vi.Country;Type=vi.Type;Producer=vi.Producer;Director=vi.Director;Star=vi.Star;Number=vi.Number;}ostream &operator<<(ostream &os,video *vi){os<<"****************************************************************"<<end l;os<<"该影碟信息为:"<<endl;os<<"名称:"<<vi->Vname<<"国家:"<<vi->Country<<"类型:";if(vi->Type==1)os<<"喜剧";else{if(vi->Type==2)os<<"悲剧";else{if(vi->Type==3)os<<"科幻片";else{if(vi->Type==4)os<<"悬疑剧";else{if(vi->Type==5)os<<"惊悚片";else{if(vi->Type==6)os<<"其他";}}}}}os<<endl;os<<"制片人:"<<vi->Producer<<"导演:"<<vi->Director<<"主演:"<<vi->Star<<"库存量:"<<vi->Number<<endl;return os;}#endif#ifndef CUSTOMER_H#define CUSTOMER_H#include<iostream>#include<string>#include"video.h"using namespace std;//class Customerstruct VideoInfo{ //碟片信息string VideoName; //影片名称int BeginTime; //影片借阅日期int EndTime; //影片归还日期};string Cname;class Customer{ //顾客类friend ostream & operator<< (ostream &os,const Customer &cu);friend class application;friend class video;public:Customer(string="",string="",int=0,int=0,string="",int=0,int=0); //构造函数int DeclineMoney(int ); //扣取消费额bool RentVideo(string ); //出租影碟bool ReturnVideo(string ); //归还影片//private:string idPerson; //会员账号string Name; //会员姓名int LeftMoney; //会员剩余金额int nCount; //所借碟片数量VideoInfo Video[10]; //每个会员最多借10张影碟Customer *next1;};Customer::Customer(string idperson,string name,int leftmoney,int ncount,string videoname,int begintime,int endtime){idPerson=idperson;Name=name;LeftMoney=leftmoney;nCount=ncount;for(int i=0;i<nCount;i++){Video[i].VideoName=videoname;Video[i].BeginTime=begintime;Video[i].EndTime=endtime;}}ostream & operator<< (ostream &os,const Customer *cu){os<<"会员编号为:\t"<<cu->idPerson<<"会员姓名为:\t"<<cu->Name<<"会员剩余会费余额为:\t"<<cu->LeftMoney<<endl;for (int i=0;i<cu->nCount;i++){os<<"所借影片名为:\t"<<cu->Video[i].VideoName<<endl;os<<"影片借阅日期为:\t"<<cu->Video[i].BeginTime<<endl;os<<"影片归还日期为:\t"<<cu->Video[i].EndTime<<endl;os<<"--------------------------------------------\n";}return os;}#endif#ifndef MENU_H#define MENU_H#include<iostream>using namespace std;//class menuclass menu{ //菜单类public:int showMainMenu();private:};int menu::showMainMenu(){system("cls");cout<<" ————————————————————————"<<endl;cout<<"| 欢迎使用影碟出租系统|"<<endl;cout<<"|************************************************|"<<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<<"| 10.注销会员|"<<endl;cout<<"| 11.更新会员信息与充值|"<<endl;cout<<"| 12.退出系统|"<<endl;cout<<" ————————————————————————"<<endl;cout<<"请选择1-12:"<<endl;int select;cin>>select;while(select<1||select>12){cout<<"选择错误,请重新选择1-12"<<endl;cin.clear(); //当输入字符,清空流错误状态cin.sync(); //清空数据流cin>>select;}return select;}#endif#ifndef APPLICATION_H#define APPLICATION_H#include<iostream>#include<string>#include<fstream>#include"video.h"#include"Customer.h"#include"menu.h"using namespace std;class application{ //数据应用类public:application();~application();void load(); //数据输出void save(); //数据保存到文件void Rent(); //1.影碟租赁void Return(); //2.影碟归还void Checkall(); //3.查看各类型影碟信息void search(int Type); //根据类型查找void Check(string vidname); //4.查看影碟信息:根据碟片名称查找void Addvideo(); //5.添加影碟void Deletevideo(); //6.删除影碟void Modifyvideo(string Vname); //7.修改影碟信息void Customerinfo(string Cname);//8.会员信息:根据姓名查找void Add(); //9.注册会员void Delete(); //10.注销会员void Modify(string Name); //11.更新会员信息与充值void run();private:string title;menu myMenu;video myvideo;Customer mycustomer;video *vid;Customer *cus;};application::application(){vid=0;cus=0;load();}application::~application(){video *v;v=vid;Customer *c;c=cus;while(v){v=v->next;delete vid;vid=v;}vid=0;while(c){c=c->next1;delete cus;cus=c;}vid=0;}void application::load(){ifstream file; //碟片信息video *v=vid;string Vname; //碟片名称string Country; //国家int Type; //类型string Producer; //制片人string Director; //导演string Star; //主演明星int Number=0; //库存量file.open("video.txt",ios::in);file>>Vname>>Country>>Type>>Producer>>Director>>Star>>Number;while(file.good()){v=new video(Vname,Country,Type,Producer,Director,Star,Number);v->next=0;//碟片结点加入链表if(vid) //若已经存在结点{video *v2;v2=vid;while(v2->next) //查找尾结点{v2=v2->next;}v2->next=v; //连接}else //若不存在结点(表空)vid=v; //连接file>>Vname>>Country>>Type>>Producer>>Director>>Star>>Number;}file.close();ifstream file1; //会员信息Customer *c=cus;string idPerson; //会员账号string Name; //会员姓名int LeftMoney; //会员剩余金额int nCount; //所借碟片数量VideoInfo Video[10]; //每个会员最多借10张影碟file1.open("Customer.txt",ios::in);file1>>idPerson>>Name>>LeftMoney>>nCount;for(int i=0;i<nCount;i++){file1>>Video[i].BeginTime>>Video[i].EndTime>>Video[i].VideoName;}while(file1.good()) {for(int i=0;i<nCount;i++){c=newCustomer(idPerson,Name,LeftMoney,nCount,Video[i].VideoName ,Video[i].BeginTime,Video[i]. EndTime);c->next1=0;//顾客结点加入链表if(cus) //若已经存在结点{Customer *c2;c2=cus;while(c2->next1) //查找尾结点{c2=c2->next1;}c2->next1=c; //连接}else //若不存在结点(表空)cus=c; //连接file1>>Video[i].BeginTime>>Video[i].EndTime>>Video[i].VideoName;}}file1.close();}void application::save(){ofstream file("video.txt",ios::out);ofstream file1("Customer.txt",ios::out);char c;cout<<"\n是否保存数据?[Y/N]:";cin>>c;if(toupper(c)!='Y')return;video *v=vid;while(v){file<<v->Vname<<v->Country<<v->Type<<v->Producer<<v->Director<<v->Star<<v->Nu mber<<endl;v=v->next;file.close();Customer *cu=cus;while(cu){file1<<cu->idPerson<<cu->Name<<cu->LeftMoney<<cu->nCount<<cu->Video<<endl;cu=cu->next1;}file1.close();cout<<"\n保存成功...\n";}void application::Rent(){int number;Customer *c1;c1=cus;cout<<"请输入会员姓名:"<<endl;cin>>Cname;while(c1){if(c1->Name==Cname)break;else{c1=c1->next1;}}if(c1!=NULL){cout<<c1;cout<<"请输入租赁碟片数目:";cin>>number;if(number>10-c1->nCount)cout<<"租赁数目超过限定值!"<<endl;elseif(number*20>c1->LeftMoney)cout<<"余额不足,请充值或减少影碟数!"<<endl;if(number<=10-c1->nCount&&number*20<=c1->LeftMoney){c1->nCount=number;for(int i=0;i<number;i++){cout<<"请输入租赁日期(例:2013年08月08日写为20130808):";cin>>c1->Video[i].BeginTime;cout<<"请输入碟片名:";cin>>c1->Video[i].VideoName;}c1->LeftMoney-=number*20;cout<<"\t\t租赁成功!"<<endl;}elsecout<<"未找到该会员,请先注册!"<<endl;}void application::Return(){int number,time;Customer *c1;c1=cus;cout<<"请输入会员姓名:"<<endl;cin>>Cname;while(c1){if(c1->Name==Cname)break;else{c1=c1->next1;}}if(c1!=NULL){cout<<c1;Customerinfo(Cname);cout<<"请输入归还碟片数目:";cin>>number;c1->nCount=c1->nCount-number;for(int i=0;i<number;i++){cout<<"请输入碟片名称:";cin>>c1->Video[i].VideoName;cout<<"请输入归还日期:";cin>>c1->Video[i].EndTime;cout<<"请输入该碟片租赁天数:";cin>>time;if(time%3==0)c1->LeftMoney=c1->LeftMoney+20-time/3;elsec1->LeftMoney=c1->LeftMoney+20-time/3-1;cout<<"\t\t扣费成功!"<<endl;}cout<<"\t\t***归还成功***\n";}elsecout<<"未找到该会员,请确认!"<<endl;}void application::search(int Type){ //根据类型查找video *v1;v1=vid;while(v1){if(v1->Type==Type)break;else{v1=v1->next;}}if(v1!=NULL){cout<<v1;}elsecout<<"未找到该类型的碟片!"<<endl;}void application::Checkall(){int Type;char c;cout<<"选择要查找的碟片类型(1.喜剧2.悲剧3.科幻片4.悬疑剧5.历史剧6.惊悚片7.其他):"<<endl;cin>>Type;search(Type);cout<<"********以上为类型所有碟片*********"<<endl;cout<<"是否继续查找【Y/N】?"<<endl;cin>>c;if(toupper(c)=='Y'){Checkall();return ;}elsereturn ;system("pause");}void application::Check(string vidname){video *v1;v1=vid;while(v1){if(v1->Vname==vidname)break;else{v1=v1->next;}}if(v1!=NULL){cout<<v1;}elsecout<<"未找到该碟片!"<<endl;}void application::Addvideo(){system("cls");video *v,*v2; //新结点指针string Vname; //碟片名称string Country; //国家int Type=7; //类型string Producer; //制片人string Director; //导演string Star; //主演明星int Number=0; //库存量char c;cout<<"\n** 新增碟片信息**\n";//输入碟片信息cout<<"输入片名:\t";cin>>Vname;cout<<endl;video *v1;v1=vid;while(v1){if(v1->Vname==Vname){break;}else{v1=v1->next;}}if(v1!=NULL){cout<<"该碟片已存在,是否修改该碟片信息(Y/N) "<<endl;cin>>c;if(toupper(c)=='Y'){cout<<"该碟片信息为:"<<endl;Check(Vname);cout<<endl;Modifyvideo(Vname);return ;}elsereturn ;}cout<<"国家:";cin>>Country;cout<<"类型(1.喜剧2.悲剧3.科幻片4.悬疑剧5.惊悚片6.其他):";cin>>Type;cout<<"制片人:";cin>>Producer;cout<<"导演:";cin>>Director;cout<<"主演:";cin>>Star;cout<<"库存量:";cin>>Number;v=new video(Vname,Country,Type,Producer,Director,Star,Number);v->next=0;//碟片结点加入链表if(vid) //若已经存在结点{v2=vid;while(v2->next) //查找尾结点{v2=v2->next;}v2->next=v; //连接}else //若不存在结点(表空){vid=v; //连接}save();cout<<"\t\t\t ***添加成功***\n"<<endl;cout<<"是否继续添加(Y/N) "<<endl;cin>>c;if(toupper(c)=='Y'){Addvideo();return ;}elsereturn ;}void application::Deletevideo(){system("cls");char c;string Vname;cout<<"\n** 删除信息**\n";cout<<"输入要删除的碟片名:\t";cin>>Vname;cout<<endl;//查找要删除的结点video *v1,*v2;v1=vid;while(v1){if(v1->Vname==Vname)break;else{v2=v1;v1=v1->next;}}//删除结点if(v1!=NULL)//若找到结点,则删除{cout<<"所要删除的碟片信息如下:\n"<<endl;cout<<v1;cout<<"确定是否删除(Y/N): ";cin>>c;if(toupper(c)!='Y')return;if(v1==vid) //若要删除的结点是第一个结点{vid=v1->next;delete v1;}else //若要删除的结点是后续结点{v2->next=v1->next;delete v1;}save();cout<<"\t\t***删除成功***\n";cout<<"是否继续删除(Y/N) "<<endl;cin>>c;if(toupper(c)=='Y'){Deletevideo();return ;}elsereturn ;}else //未找到结点cout<<"未找到该碟片!\n";}void application::Modifyvideo(string vidname){ video *v1;char c;v1=vid;while(v1){if(v1->Vname==vidname)break;else{v1=v1->next;}}if(v1!=NULL)//若找到结点{system("cls");cout<<"所要修改的碟片信息如下:\n"<<endl;cout<<v1;do{cout<<"1.修改碟片名称 2.修改国家 3. 修改类型4.修改制片人" ;cout<<" 5. 修改导演 6.修改主演7.修改库存量8. 退出修改\n"<<endl;cout<<"请选择(1-8)要修改的信息\n"<<endl;cin>>c;if(c!='8')cout<<"请输入新的信息: ";switch(c){case '1': cin>>v1->Vname; break;case '2': cin>>v1->Country; break;case '3': cin>>v1->Type; break;case '4': cin>>v1->Producer; break;case '5': cin>>v1->Director; break;case '6': cin>>v1->Star; break;case '7': cin>>v1->Number;break;default: break;}}while(c!='8');cout<<"\t ***修改成功***\n"<<endl;cout<<"是否继续修改(Y/N): "<<endl;cin>>c;if(toupper(c)=='Y'){cout<<"请输入要修改碟片的名称: ";cin>>vidname;cout<<endl;Modifyvideo(vidname);return ;}elsereturn ;}else //未找到结点cout<<"未找到!\n";}void application::Customerinfo(string Cname){ Customer *c1;c1=cus;while(c1){if(c1->Name==Cname)break;else{c1=c1->next1;}}if(c1!=NULL){cout<<c1;}elsecout<<"未找到该会员!"<<endl;}void application::Add(){system("cls");Customer *c,*c2; //新结点指针string idPerson; //会员账号string Name; //会员姓名int LeftMoney=0; //会员剩余金额int nCount=0; //所借碟片数量char a;cout<<"\n** 新增会员信息**\n";cout<<"输入会员名:\t";cin>>Name;cout<<endl;Customer *c1;c1=cus;while(c1){if(c1->Name==Name){break;}else{c1=c1->next1;}}cout<<"请输入会员编号:\n";cin>>idPerson;cout<<"初始金额:";cin>>LeftMoney;nCount=0;c=new Customer(idPerson,Name,LeftMoney,nCount);c->next1=0;if(cus){c2=cus;while(c2->next1){c2=c2->next1;}c2->next1=c;}else{cus=c;}save();cout<<"\t\t\t ***注册成功***\n"<<endl;cout<<"是否继续(Y/N) "<<endl;cin>>a;if(toupper(a)=='Y'){Add();return ;}elsereturn ;}void application::Delete(){system("cls");char a;string Name;cout<<"\n** 删除信息**\n";cout<<"输入要删除的会员名:\t";cin>>Name;cout<<endl;Customer *c1,*c2;c1=cus;while(c1){if(c1->Name==Name)break;else{c2=c1;c1=c1->next1;}}if(c1!=NULL){cout<<"所要删除的会员信息如下:\n"<<endl;cout<<c1;cout<<"确定是否删除(Y/N): ";cin>>a;if(toupper(a)!='Y')return;if(c1==cus){cus=c1->next1;delete c1;}else{c2->next1=c1->next1;delete c1;}save();cout<<"\t\t***删除成功***\n";cout<<"是否继续删除(Y/N) "<<endl;cin>>a;if(toupper(a)=='Y'){Delete();return ;}elsereturn ;}else //未找到结点cout<<"未找到该会员!\n";}void application::Modify(string Cname){Customer *c1;char a;c1=cus;while(c1){if(c1->Name==Cname)break;else{c1=c1->next1;}}if(c1!=NULL)//若找到结点{system("cls");cout<<"所要修改的会员信息如下:\n"<<endl;cout<<c1;do{cout<<"1.修改姓名 2.修改编号 3.充值 4.退出\n"<<endl;cout<<"请选择(1-4)要修改的信息\n"<<endl;cin>>a;if(a!='4')cout<<"请输入新的信息: ";switch(a){case '1': cin>>c1->Name; break;case '2': cin>>c1->idPerson; break;case '3': cin>>c1->LeftMoney;break;default: break;}}while(a!='4');cout<<"\t ***修改成功***\n"<<endl;cout<<"是否继续修改(Y/N): "<<endl;cin>>a;if(toupper(a)=='Y'){cout<<"请输入要修改会员的姓名: ";cin>>Cname;cout<<endl;Modify(Cname);return ;}elsereturn ;}else //未找到结点cout<<"未找到!\n";}void application::run(){bool userExcited=false;while(!userExcited){int userSelection=myMenu.showMainMenu();switch(userSelection){case 1:Rent(); //1.影碟出租break;case 2:Return(); //2.影碟归还break;case 3:Checkall(); //3.查看各类型影碟信息break;case 4:{system("cls");cout<<"请输入碟片名称: ";cin>>vidname;cout<<endl;Check(vidname); //4.查看影碟信息}break;case 5:Addvideo(); //5.添加影碟break;case 6:Deletevideo(); //6.删除影碟break;case 7:{cout<<"请输入要修改碟片的名称: ";cin>>vidname;cout<<endl;Modifyvideo(vidname);} //7.修改影碟break;case 8:{system("cls");cout<<"请输入会员姓名: ";cin>>Cname;cout<<endl;Customerinfo(Cname);}break; //8.查看会员信息case 9:Add();break; //9.注册会员case 10:Delete();break; //10.注销会员case 11:{cout<<"请输入要修改会员的姓名: ";cin>>Cname;cout<<endl;Modify(Cname);}break; //11.更新会员信息与充值case 12:userExcited=true; //12.退出}if(userSelection!=12){cout<<"流程将返回主界面,";system("pause");}elsecout<<"你选择了退出功能,程序将结束运行!";}}#endif#include<iostream>#include"application.h"using namespace std;int main(){application myApp;myApp.run();char s;cout<<"是否要保存您的所有操作(Y/N): "<<endl;cin>>s;if(toupper(s)=='Y')myApp.save();return 0;}。