已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网四川省电力公司高校毕业生提前批招聘笔试参考题库浓缩500题及1套完整答案详解
- 国家管网集团2025届高校毕业生招聘笔试历年参考题库附带答案详解(浓缩500题)及参考答案详解(研优卷)
- 2026秋季国家管网集团山东分公司高校毕业生招聘考试备考试题(浓缩500题)含答案详解(典型题)
- 2026国家管网集团广西公司秋季高校毕业生招聘考试备考试题(浓缩500题)含答案详解(a卷)
- 2025国网宁夏高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题及完整答案详解1套
- 2026秋季国家管网集团华南公司(广东省管网公司)高校毕业生招聘考试参考题库(浓缩500题)带答案详解(预热题)
- 2025国网江西省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题附答案详解(能力提升)
- 2026年鹰潭市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(综合卷)
- 2026秋季国家管网集团福建公司高校毕业生招聘考试备考试题(浓缩500题)含答案详解(新)
- 2026国网湖北省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题及一套答案详解
- 2025下半年新疆维吾尔自治区地质局招聘事业单位人员151人考试模拟试题及答案解析
- 2025年成人高考政治试题及答案
- 河南省中小学教师副高职称评审申报指南(含六个附件证明模板)
- 养兔学课件(精选优秀)
- 1978年全国高考语文试卷
- 幼儿园大班科学:《树叶为什么会变黄》课件
- 铁路客车空气制动装置电子防滑器检修标准
- 2022版输变电工程标准工艺(土建分册)培训课件- 第5章
- 新人教版四年级数学上册专题训练解决问题
- 阀门设计手册第三版计算书(带公式)
- 小学说明文说明方法及作用(课堂PPT)
评论
0/150
提交评论