音像店实验设计报告_第1页
音像店实验设计报告_第2页
音像店实验设计报告_第3页
音像店实验设计报告_第4页
音像店实验设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计成绩考勤成绩(%)指导老师评语报告及程序成绩(%)总评成绩指导老师签名:《C++程序设计》课程设计报告学院(系): 成都理工大学技术工程学院电计系班级: 软件工程 学生姓名: 徐某学号200920205108指导教师: 杨忠 时间:从2011年5月8日到2010年5月12日音像店(注:采用的编程工具为MicrosoftVisualC++6.0)课程设计目的《面向对象程序设计课程设计》是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。通过课程设计,让学生能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。通过课程设计,掌握使用一种面向对象程序设计语言开发工具如BorlandC++或VisualC++等;培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力;通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括:⑴通过调查研究和上机实习,收集和调查有关技术资料。⑵掌握设计课题的基本步骤和方法。⑶根据课题的要求进行上机实验调试。任务要求设计一个利用文件处理方式实现音像店的程序,具有增加数据、更新数据、查询数据、删除数据、租出影碟、归还影碟以及重组文件的功能,删除数据在记录中作删除标记,重组文件指在物理上删除作有删除标记的记录。设计方案 一 ;开始,输出菜单及提示信息输入选择调用各个功能函数按功能函数功能进行操作输出结果,并保存

4.设计内容1.分析:各个函数框架:2.设计:#include"stdafx.h”#include<iostream>#include<fstream>#include<iomanip>usingnamespacestd;structVideo{booldelTag;//删除标志charvideoTitle[1000];//片名intnumOfCopies;//影碟副本数};voidshow(Videoobj)//打印数据{已删除”if(obj.delTag==true) 〃删除标记为true,则输出已删除”cout<<setw(16)<<"已删除";elsecout<<setw(16)<<"";cout<<setw(18)<<obj.videoTitle<<setw(16)<<obj.numOfCopies<<endl;}classVideoManage{private:staticvoidAdd();//租出staticvoidDown();//归还staticvoidWrite();//插入数据staticvoidShow();//显示所有数据staticvoidSearch();//查询数据staticvoidDelete。;//删除数据staticvoidUpdate();//更新数据staticvoidPack();//文件重组public:staticvoidRun();};voidVideoManage::Add()//租出{Videoobj;fstreamadfile("video.datn,ios::in|ios::out|ios::binary);//打开文件if(!adfile){cout<<endl;cout<<"打开文件失败!"<<endl;exit(1);}charname[1000];cout<<"输入要出租的影碟名字:”;cin>>name;adfile.seekg(0);//定位adfile.read((char*)&obj,sizeof(obj));while(!adfile.eof()){if(strcmp(obj.videoTitle,name)==0&&!obj.delTag)break;adfile.read((char*)&obj,sizeof(obj));}if(!adfile.eof())//查询成功{cout<<"要出租的影碟为:"<<endl;cout<<setw(16)<<"删除标记”<<setw(18)<<"片名"<<setw(16)<<”影碟数"<<endl;show(obj);charflag;cout<<"是否租出?(Y/N)";cin>>flag;if(toupper(flag)=='Y'){ _if(obj.numOfCopies!=0)//副本数不为0{obj.numOfCopies--;//副本数减一adfile.seekg(-sizeof(Video),ios::cur);//定位adfile.write((char*)&obj,sizeof(obj));//写入文件cout<<endl;cout<<"出租成功!"<<endl;} _else//副本数为0{cout<<endl;cout<<"无库存!"<<endl;}}}else//查找失败{cout<<endl;cout<<"未找到该影片!"<<endl;}adfile.close();//关闭文件}voidVideoManage::Down()//归还{Videoobj;fstreamdofile("video.datn,ios::in|ios::out|ios::binary);//打开文件if(!dofile){cout<<endl;cout<<"打开文件失败!"<<endl;exit(2);}charname[1000];cout<<"输入要归还的影片名字:”;cin>>name;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;cout<<setw(16)<<"删除标记”<<setw(18)<<"片名"<<setw(16)<<”影碟数"<<endl;show(obj);charflag;cout<<"是否归还?(Y/N)";cin>>flag;if(toupper(flag)=='Y'){obj.numOfCopies++;//副本数加一dofile.seekg(-sizeof(Video),ios::cur);//定位dofile.write((char*)&obj,sizeof(obj));//写入文件cout<<endl;cout<<"归还成功!"<<endl;}}else//查找失败{cout<<endl;cout<<"未找到该影片!"<<endl;}dofile.close();//关闭文件}voidVideoManage::Write()/脯入数据{Videoobj;ofstreamoutFile("video.dat”,ios::binary|ios::app);〃打开文件if(!outFile){cout<<endl;cout<<"打开文件失败!"<<endl;exit(3);charflag='Y';cout<<"输入影碟数据(片名影碟数):"<<endl;while(toupper(flag)=='Y'){obj.delTag=false;cin>>obj.videoTitle>>obj.numOfCopies;//输入新数据outFile.write((char*)&obj,sizeof(obj));//写入文件cout<<"是否继续录入信息?(Y/N)";cin>>flag;}outFile.close();//关闭文件}voidVideoManage::Show()//显示所有数据{Videoobj;ifstreaminFile("video.dat”,ios::binary);//打开文件if(!inFile){cout<<endl;cout<<"打开文件失败!"<<endl;exit(4);}cout<<"显示影碟信息"<<endl;cout<<setw(16)<<"删除标记"<<setw(18)<<"片名"<<setw(16)<<"影碟数"<<endl;inFile.read((char*)&obj,sizeof(obj));while(!inFile.eof()){show(obj);inFile.read((char*)&obj,sizeof(obj));}inFile.close();//关闭文件}voidVideoManage::Search()//S询数据{Videoobj;ifstreamsefile("video.dat”,ios::binary);//打开文件if(!sefile){cout<<endl;cout<<"打开文件失败!"<<endl;exit(5);}charname[1000];cout<<"输入要查询的影碟名字:”;cin>>name;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;cout<<setw(16)<<"删除标记”<<setw(18)<<"片名"<<setw(16)<<”影碟数"<<endl;show(obj);}else//查找失败{cout<<endl;cout<<"未找到该影碟!"<<endl;}sefile.close();//关闭文件}voidVideoManage::Delete()//删除数据{fstreamdefile;Videoobj;defile.open("video.dat”,ios::in|ios::out|ios::binary);//打开文件if(!defile){cout<<endl;cout<<"打开文件失败!"<<endl;exit(6);}charname[1000];cout<<"输入要删除的影碟名字:";cin>>name;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<<"被删除的影碟为:"<<endl;cout<<setw(16)<<"删除标记”<<setw(18)<<"片名"<<setw(16)<<”影碟数"<<endl;show(obj);charflag;cout<<"确认删除?(Y/N)";cin>>flag;if(toupper(flag)=='Y'){obj.delTag=true;//更改删除标记变为truedefile.seekg(-sizeof(Video),ios::cur);//定位defile.write((char*)&obj,sizeof(obj));//写入文件cout<<endl;cout<<"删除成功!"<<endl;}else{cout<<endl;cout<<"删除取消!"<<endl;}}else//查找失败{cout<<endl;cout<<"未找到该影碟!"<<endl;}defile.close();//关闭文件}voidVideoManage::Update()//M新数据{fstreamupfile;Videoobj;upfile.open("video.dat”,ios::in|ios::out|ios::binary);//打开文件if(!upfile){cout<<endl;cout<<"打开文件失败!"<<endl;exit(7);}charname[1000];cout<<"输入要更新的影碟名字:”;cin>>name;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;cout<<setw(16)<<"删除标记”<<setw(18)<<"片名"<<setw(16)<<”影碟数"<<endl;show(obj);cout<<"输入新的影碟数据(片名影碟数):"<<endl;cin>>obj.videoTitle>>obj.numOfCopies;//输入更新数据upfile.seekg(-sizeof(Video),ios::cur);//定位upfile.write((char*)&obj,sizeof(obj));//写入文件cout<<"被更新后记录为:"<<endl;cout<<setw(16)<<"删除标记”<<setw(18)<<"片名"<<setw(16)<<”影碟数"<<endl;show(obj);cout<<endl;cout<<"更新成功!"<<endl;}else//查找失败{cout<<endl;cout<<"未找到该影碟!"<<endl;}upfile.close();//关闭文件}voidVideoManage::Pack()//文件重组{ofstreampafilew("tem.dat",ios::app|ios::binary);//建立输出文件对象ifstreampafiler("video.dat",ios::binary);//打开原文件if(!pafilew&&!pafiler){cout<<endl;cout<<"打开文件失败!"<<endl;exit(8);}Videoobj;pafiler.read((char*)&obj,sizeof(Video));while(!pafiler.eof()){if(!obj.delTag){ 一pafilew.write((char*)&obj,sizeof(obj));//把删除标记不为true的数据写入tem.datz中}pafiler.read((char*)&obj,sizeof(Video));}pafiler.close();//关闭文件pafilew.close();//关闭文件remove("video.dat");//删除文件rename("tem.dat”,"video.dat");//更改文件名cout<<endl;cout<<"重组成功!"<<endl;}voidVideoManage::Run()//以菜单方式调用各个函数{intselect;do{cout<<endl<<"======================音像店影碟管理=========="<<endl;cout<<" "<<endl;cout<<"1.租出影碟2.归还影碟3.查询影碟信息"<<endl;cout<<"4.增加影碟信息5.删除影碟信息6.更新影碟信息"<<endl;cout<<"7.显示所有影碟信息8.文件重组0:退出"<<endl;cout<<" "<<endl;cout<<"请您在上述功能中选择(0--8):";cin>>select;switch(select){case0:break;//退出case1:Add();break;//租出影碟case2:Down();break;//归还影碟case3:Search();break;//查询影碟信息case4:Write();break;//增加影碟信息case5:Delete();break;//删除影碟信息case6:Update();break;//更新影碟信息case7:Show();break;//显示所有影碟信息case8:Pack();break;//文件重组default:cout<<"选择有误!"<<endl;break;}}while(select!=0);}intmain(){VideoManage::Run();system("PAUSE");return0;}3.结果:1)目录============ = =音像店影碟管理====================以曾加影襟信息 5•删除影襟信息 6.更新影襟信息显示靳有影碟信息 矶文件童组 0=退出请您在上述助能中选择<0-8>=2)租出影碟影碟数51片名天下8>下一天中碟..记标功的碟除述删上出的在要租

您入出请输要出租成功I租出后:租出后:请您在上述功熊中选择<0-8>:请您在上述功熊中选择<0-8>:2IW5功夫删除标记是否归还7(V/N)y归还后:3)归还影碟款碟数6归还成功!4)查询影碟信息|请您在上述功熊中选建®3逾入要查询的散碟名字:人生|请您在上述功熊中选建®3逾入要查询的散碟名字:人生被查询记录为;删除标记片名人生影碟数35)增加影碟信息请您在上述功能中选ftC0-8>=|A||»据(片名%碟数)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论