




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学 生 实 验 报 告 学 院: 软件与通信工程学院 课程名称: C+程序设计 专业班级: 软件与通信工程学院103班 姓 名: 袁帅帅哥 学 号: 学生实验报告 学生姓名袁帅帅哥学号无实验项目音像店管理必修 选修 演示性实验 验证性实验 操作性实验 综合性实验实验地点H113实验仪器台号xxx指导教师廖老师实验日期及节次2011,11,23, 5.6.7一、实验综述 1、实验目的及要: 用C+编一个音像店管理程序,有顾客查询,管理人员添加等功能。 (1)在出租影碟时,首先由用户输入片名,然后在影碟库文件中查找是否存在此影碟,如果有此影碟,并且副本数大于0,则将影碟副本数减1,租出影碟,租出影碟成功,否则租出失败。 (2)在归还影碟时,首先由用户输入片名,然后在影碟库文件中查找是否存在此影碟,如果有此影碟记录,则将影碟副本数加1,归还影碟成功,否则归还失败。2、实验目的: 实现两个功能:管理员的功能: 1,影片信息增加。2,影片信息删除。3.影片信息更新。4.影片信息显示。5,文件重组。6,退出。 顾客的功能1.影片出租。2,影片归还。3,影片信息查询。4,退出。3、实验仪器、设备或软件计算机二、实验过程(实验步骤、记录、数据、)#include #include /文件#include /格式化输出#include /标准库头文件using namespace std;struct Video/声明一个结构体类型Video bool delTag;/删除标记 char videoTitle20;/片名 int numOfCopies;/影片的部数obj;/结构体类型变量struct account/账户结构体 char name20;obx;void show(Video obj)/显示数据 if(obj.delTag=true)/删除标记为true,输出已删除 coutsetw(12)已删除!;/域宽为12个字符 else coutsetw(12) ;coutsetw(18)obj.videoTitlesetw(16)obj.numOfCopiesendl;class VideoManageprivate: static void zhuchu(); static void guihuai(); static void zengjia(); static void Show(); static void chazhao(); static void shanchu(); static void gengxin(); static void pack(); static void run(); static int yanzheng(); static void CreateAccount();public: static void Run(); static void yunxing();void VideoManage:CreateAccount()/创建用户 system(cls); ifstream iFile(guke.dat);/定义输入文件流对象,以输入方式打开打开磁盘文件,video.dat ofstream outFile(guke.dat,ios:binary|ios:app);/定义文件流对象,打开磁盘文件guke.datif(!outFile)/如果打开失败返回0值coutendl; cout打开i文件失败!endl; exit(3); char flag=Y; do cout请输入你的姓名:; outFile.write(char *)&obx,sizeof(obx);/向磁盘文件中输入数据 coutflag;while(toupper(flag)=Y); outFile.close();int VideoManage:yanzheng() fstream adfile(guke.dat,ios:in|ios:out|ios:binary);/打开文件,读写二进制 if(!adfile) coutendl; cout打开文件失败!endl; exit(1); char name20; coutname; adfile.seekg(0);/直接把指针定在文件首部 adfile.read(char *)&obx,sizeof(obx);while(!adfile.eof() if(strcmp(,name)=0) break; adfile.read(char *)&obx,sizeof(obx); if(!adfile.eof()coutendl; couttt登陆成功!endl; return 1; else coutendl; cout未找到该人!endl; return -1; adfile.close();/关闭磁盘文件void VideoManage:zhuchu()/租出 ifstream iFile(video.dat);/定义输入文件流对象,以输入方式打开打开磁盘文件,video.dat fstream adfile(video.dat,ios:in|ios:out|ios:binary); if(!adfile) coutendl; cout打开文件失败!; exit(1); char name1000; coutname; adfile.seekg(0);/adfile文件中的指针向前移到0字节的位置 adfile.read(char *)&obj,sizeof(obj); while(!adfile.eof()/eof()为假表示未遇到文件结束符 if(strcmp(obj.videoTitle,name)=0&!obj.delTag) break; adfile.read(char *)&obj,sizeof(obj); if(!adfile.eof()/eof()为假表示未遇到文件结束符 cout要出租的影碟为:endl; coutsetw(12)删除标记setw(16)片名setw(20)影碟数endl; show(obj); char flag; coutflag; if(toupper(flag)=Y) if(obj.numOfCopies!=0) obj.numOfCopies-; adfile.seekg(-sizeof(Video),ios:cur); adfile.write(char *)&obj,sizeof(obj); coutendl; cout租出成功!endl; else coutendl; cout没有该影片了.endl; else coutendl; cout未找到该片!endl; adfile.close();void VideoManage:guihuai() fstream dofile(video.dat,ios:in|ios:out|ios:binary);/打开文件 if(!dofile) coutendl; cout打开文件失败!endl; exit(2); char name1000; coutname; dofile.seekg(0);/定位 dofile.read(char *)&obj,sizeof(obj); while(!dofile.eof() if(strcmp(obj.videoTitle,name)=0&!obj.delTag) break; dofile.read(char *)&obj,sizeof(obj); if(!dofile.eof()/查询成功 cout要归还的影片为:endl; coutsetw(12)删除标记setw(16)片名setw(20)影碟数endl; show(obj); char flag; coutflag; if(toupper(flag)=Y) obj.numOfCopies+;/副本数加1 dofile.seekg(-sizeof(Video),ios:cur);/定位 dofile.write(char *)&obj,sizeof(obj);/写入文件 coutendl; cout归还成功!endl; else/查找失败 coutendl; cout未找到该片!endl; dofile.close();void VideoManage:zengjia() ofstream outFile(video.dat,ios:binary|ios:app);/打开文件 if(!outFile) coutendl; cout打开文件失败!endl; exit(3); char flag=Y; while(toupper(flag)=Y) coutobj.videoTitleobj.numOfCopies;/输入新的数据 outFile.write (char *)&obj,sizeof(obj);/写入文件 coutflag; outFile.close();void VideoManage:Show() ifstream inFile(video.dat,ios:binary);/打开文件 if(!inFile) coutendl; cout打开文件失败!endl; exit(4); cout显示影碟信息endl; coutsetw(12)删除标记setw(16)片名setw(20)影碟数endl; inFile.read(char *)&obj,sizeof(obj); while(!inFile.eof() show(obj); inFile.read(char *)&obj,sizeof(obj); inFile.close();void VideoManage:chazhao() ifstream sefile(video.dat,ios:binary);/打开文件 if(!sefile) coutendl; cout打开文件失败!endl; exit(5); char name1000; coutname; sefile.read(char *)&obj,sizeof(obj); while(!sefile.eof() if(strcmp(obj.videoTitle,name)=0&!obj.delTag) break; sefile.read(char *)&obj,sizeof(obj); if(!sefile.eof()/查询成功 cout查询记录为:endl; coutsetw(12)删除标记setw(16)片名setw(20)影碟数endl; show(obj); else/查找失败 coutendl; cout没有要查找的影碟!endl; sefile.close();void VideoManage:shanchu() fstream defile; defile.open(video.dat,ios:in|ios:out|ios:binary);/打开文件 if(!defile) coutendl; cout打开文件失败!endl; exit(6); char name1000; coutname; defile.seekg(0); defile.read(char *)&obj,sizeof(obj); while(!defile.eof() if(strcmp(obj.videoTitle,name)=0&!obj.delTag) break; defile.read(char *)&obj,sizeof(obj); if(!defile.eof()/查询成功 cout被删除的影碟为:; cout endl; coutsetw(16)删除标记setw(16)片名setw(20)影碟数endl; show(obj); coutflag; if(toupper(flag)=Y) obj.delTag=true;/更改删除标志为true defile.seekg(-sizeof(Video),ios:cur);/定位 defile.write(char *)&obj,sizeof(obj);/写入文件 coutendl; cout删除成功!endl; if(flag=N) coutendl; cout取消删除!endl; else/查找失败 coutendl; cout没有找到该影碟!endl; defile.close();void VideoManage:gengxin() fstream upfile; upfile.open(video.dat,ios:in|ios:out|ios:binary); if(!upfile) coutendl; cout打开文件失败!endl; exit(7); char name1000; coutname; upfile.seekg(0); upfile.read(char *)&obj,sizeof(obj); while(!upfile.eof() if(strcmp(obj.videoTitle,name)=0&!obj.delTag) break; upfile.read(char *)&obj,sizeof(obj); if(!upfile.eof() cout更新记录为:endl; coutsetw(12)删除标记setw(16)片名setw(20)影碟数endl; show(obj); coutobj.videoTitleobj.numOfCopies;/输入更新用户 upfile.seekg(-sizeof(Video),ios:cur);/定位 upfile.write(char *)&obj,sizeof(obj);/写入文件 cout更新后的记录为:endl; coutsetw(16)删除标记setw(16)片名setw(20)影碟数endl; cout ;show(obj); coutendl; cout更新成功!endl; else coutendl; cout没有找到该影碟!endl; upfile.close();void VideoManage:pack() ofstream pafilew(tem.dat,ios:app|ios:binary);/建立输出文件对象 ifstream pafiler(video.dat,ios:binary);/打开原文件if(!pafilew&!pafiler) coutendl; cout打开文件失败!endl; exit(8); pafiler.read(char *)&obj,sizeof(Video); while(!pafiler.eof() if(!obj.delTag) pafilew.write(char *)&obj,sizeof(obj);/把删除标记不为true的写入到tem.dat中 pafiler.read(char *)&obj,sizeof(Video); pafiler.close();/关闭 文件 pafilew.close();/关闭文件 remove(video.dat);/删除文件 rename(tem,dat,video,dat);/更改文件名 coutendl; cout重组成功!endl;void VideoManage:Run() int x,a; do coutendl; couttt=endl; couttt 欢迎进入顾客界面 endl;couttt-endl; couttt| 1.注册 2.登陆 3.退出 |endl;couttt-endl; couttt| 请选择(1-3). |endl;couttt=x; system(cls); switch(x) case 1: CreateAccount();break; case 2: a=yanzheng(); if(a=1) run(); break; else break;while(x!=3);void VideoManage:run() int select; do coutendl;couttt-endl; couttt| 1.租出信息 |endl; couttt| 2.归还信息 |endl; couttt| 3.查询影碟信息 |endl; couttt| 4.退出 |endl; couttt| 请选择(1-4). |endl; couttt-select; system(cls); switch(select) case 1:zhuchu();break; case 2:guihuai();break; case 3:chazhao();break;while(select!=4);void VideoManage:yunxing() int select; docout
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 面案等级考试及答案
- 主体剪力墙模板施工方案
- 旅行社运营实务(第二版)习题及答案 项目四 习题
- 2025年国企会计考试题目及答案
- 慢性肾功能衰竭课件
- 慕课课件观看时长建议
- 弱电设备采购规范书六安
- 酒钢公司考试题及答案
- 竞聘店长考试题目及答案
- 软件技能考试模拟题及答案
- GB/T 19355.2-2016锌覆盖层钢铁结构防腐蚀的指南和建议第2部分:热浸镀锌
- 主编-孙晓岭组织行为学-课件
- 核心素养视角下教师专业发展课件
- 企业信用信息公告系统年度报告模板:非私营其他企业
- 施工员钢筋工程知识培训(培训)课件
- 质量管理体系审核中常见的不合格项
- 共用水电费分割单模板
- 《阿房宫赋》全篇覆盖理解性默写
- 学校体育学(第三版)ppt全套教学课件
- NCStudioGen6A编程手册
- 胸痛中心各项管理制度汇编(2022年)
评论
0/150
提交评论