音像店實(shí)驗(yàn)設(shè)計(jì)報(bào)告_第1頁(yè)
音像店實(shí)驗(yàn)設(shè)計(jì)報(bào)告_第2頁(yè)
音像店實(shí)驗(yàn)設(shè)計(jì)報(bào)告_第3頁(yè)
音像店實(shí)驗(yàn)設(shè)計(jì)報(bào)告_第4頁(yè)
音像店實(shí)驗(yàn)設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

課程設(shè)計(jì)成績(jī)考勤成績(jī)(%)指導(dǎo)老師評(píng)語(yǔ)報(bào)告及程序成績(jī)(%)總評(píng)成績(jī)指導(dǎo)老師簽名:《C++程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告學(xué)院(系): 成都理工大學(xué)技術(shù)工程學(xué)院電計(jì)系班級(jí): 軟件工程 學(xué)生姓名: 徐某學(xué)號(hào)200920205108指導(dǎo)教師: 楊忠 時(shí)間:從2011年5月8日到2010年5月12日音像店(注:采用的編程工具為MicrosoftVisualC++6.0)課程設(shè)計(jì)目的《面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)》是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)和軟件工程專業(yè)集中實(shí)踐性環(huán)節(jié)之一,是學(xué)習(xí)完《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程后進(jìn)行的一次全面的綜合練習(xí)。其目的在于加深對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)中基礎(chǔ)理論和基本知識(shí)的理解,培養(yǎng)學(xué)生的實(shí)踐能力,促進(jìn)理論與實(shí)踐的結(jié)合。通過(guò)課程設(shè)計(jì),讓學(xué)生能夠熟練運(yùn)用C++進(jìn)行面向?qū)ο缶幊?,建立?duì)象模型,降低軟件的復(fù)雜性,改善軟件的重用性和維護(hù)性,提高軟件的生產(chǎn)效率,全面掌握面向?qū)ο缶幊碳夹g(shù)。通過(guò)課程設(shè)計(jì),掌握使用一種面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言開(kāi)發(fā)工具如BorlandC++或VisualC++等;培養(yǎng)調(diào)查研究、查閱技術(shù)文獻(xiàn)、資料、手冊(cè)以及編寫技術(shù)文獻(xiàn)的能力;通過(guò)課程設(shè)計(jì),要求學(xué)生在指導(dǎo)教師的指導(dǎo)下,獨(dú)立完成實(shí)習(xí)課題的全部?jī)?nèi)容,包括:⑴通過(guò)調(diào)查研究和上機(jī)實(shí)習(xí),收集和調(diào)查有關(guān)技術(shù)資料。⑵掌握設(shè)計(jì)課題的基本步驟和方法。⑶根據(jù)課題的要求進(jìn)行上機(jī)實(shí)驗(yàn)調(diào)試。任務(wù)要求設(shè)計(jì)一個(gè)利用文件處理方式實(shí)現(xiàn)音像店的程序,具有增加數(shù)據(jù)、更新數(shù)據(jù)、查詢數(shù)據(jù)、刪除數(shù)據(jù)、租出影碟、歸還影碟以及重組文件的功能,刪除數(shù)據(jù)在記錄中作刪除標(biāo)記,重組文件指在物理上刪除作有刪除標(biāo)記的記錄。設(shè)計(jì)方案 一 ;開(kāi)始,輸出菜單及提示信息輸入選擇調(diào)用各個(gè)功能函數(shù)按功能函數(shù)功能進(jìn)行操作輸出結(jié)果,并保存

4.設(shè)計(jì)內(nèi)容1.分析:各個(gè)函數(shù)框架:2.設(shè)計(jì):#include"stdafx.h”#include<iostream>#include<fstream>#include<iomanip>usingnamespacestd;structVideo{booldelTag;//刪除標(biāo)志charvideoTitle[1000];//片名intnumOfCopies;//影碟副本數(shù)};voidshow(Videoobj)//打印數(shù)據(jù){已刪除”if(obj.delTag==true) 〃刪除標(biāo)記為true,則輸出已刪除”cout<<setw(16)<<"已刪除";elsecout<<setw(16)<<"";cout<<setw(18)<<obj.videoTitle<<setw(16)<<obj.numOfCopies<<endl;}classVideoManage{private:staticvoidAdd();//租出staticvoidDown();//歸還staticvoidWrite();//插入數(shù)據(jù)staticvoidShow();//顯示所有數(shù)據(jù)staticvoidSearch();//查詢數(shù)據(jù)staticvoidDelete。;//刪除數(shù)據(jù)staticvoidUpdate();//更新數(shù)據(jù)staticvoidPack();//文件重組public:staticvoidRun();};voidVideoManage::Add()//租出{Videoobj;fstreamadfile("video.datn,ios::in|ios::out|ios::binary);//打開(kāi)文件if(!adfile){cout<<endl;cout<<"打開(kāi)文件失?。?<<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)<<"刪除標(biāo)記”<<setw(18)<<"片名"<<setw(16)<<”影碟數(shù)"<<endl;show(obj);charflag;cout<<"是否租出?(Y/N)";cin>>flag;if(toupper(flag)=='Y'){ _if(obj.numOfCopies!=0)//副本數(shù)不為0{obj.numOfCopies--;//副本數(shù)減一adfile.seekg(-sizeof(Video),ios::cur);//定位adfile.write((char*)&obj,sizeof(obj));//寫入文件cout<<endl;cout<<"出租成功!"<<endl;} _else//副本數(shù)為0{cout<<endl;cout<<"無(wú)庫(kù)存!"<<endl;}}}else//查找失敗{cout<<endl;cout<<"未找到該影片!"<<endl;}adfile.close();//關(guān)閉文件}voidVideoManage::Down()//歸還{Videoobj;fstreamdofile("video.datn,ios::in|ios::out|ios::binary);//打開(kāi)文件if(!dofile){cout<<endl;cout<<"打開(kāi)文件失敗!"<<endl;exit(2);}charname[1000];cout<<"輸入要?dú)w還的影片名字:”;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<<"要?dú)w還的影片為:"<<endl;cout<<setw(16)<<"刪除標(biāo)記”<<setw(18)<<"片名"<<setw(16)<<”影碟數(shù)"<<endl;show(obj);charflag;cout<<"是否歸還?(Y/N)";cin>>flag;if(toupper(flag)=='Y'){obj.numOfCopies++;//副本數(shù)加一dofile.seekg(-sizeof(Video),ios::cur);//定位dofile.write((char*)&obj,sizeof(obj));//寫入文件cout<<endl;cout<<"歸還成功!"<<endl;}}else//查找失敗{cout<<endl;cout<<"未找到該影片!"<<endl;}dofile.close();//關(guān)閉文件}voidVideoManage::Write()/脯入數(shù)據(jù){Videoobj;ofstreamoutFile("video.dat”,ios::binary|ios::app);〃打開(kāi)文件if(!outFile){cout<<endl;cout<<"打開(kāi)文件失??!"<<endl;exit(3);charflag='Y';cout<<"輸入影碟數(shù)據(jù)(片名影碟數(shù)):"<<endl;while(toupper(flag)=='Y'){obj.delTag=false;cin>>obj.videoTitle>>obj.numOfCopies;//輸入新數(shù)據(jù)outFile.write((char*)&obj,sizeof(obj));//寫入文件cout<<"是否繼續(xù)錄入信息?(Y/N)";cin>>flag;}outFile.close();//關(guān)閉文件}voidVideoManage::Show()//顯示所有數(shù)據(jù){Videoobj;ifstreaminFile("video.dat”,ios::binary);//打開(kāi)文件if(!inFile){cout<<endl;cout<<"打開(kāi)文件失??!"<<endl;exit(4);}cout<<"顯示影碟信息"<<endl;cout<<setw(16)<<"刪除標(biāo)記"<<setw(18)<<"片名"<<setw(16)<<"影碟數(shù)"<<endl;inFile.read((char*)&obj,sizeof(obj));while(!inFile.eof()){show(obj);inFile.read((char*)&obj,sizeof(obj));}inFile.close();//關(guān)閉文件}voidVideoManage::Search()//S詢數(shù)據(jù){Videoobj;ifstreamsefile("video.dat”,ios::binary);//打開(kāi)文件if(!sefile){cout<<endl;cout<<"打開(kāi)文件失??!"<<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)<<"刪除標(biāo)記”<<setw(18)<<"片名"<<setw(16)<<”影碟數(shù)"<<endl;show(obj);}else//查找失敗{cout<<endl;cout<<"未找到該影碟!"<<endl;}sefile.close();//關(guān)閉文件}voidVideoManage::Delete()//刪除數(shù)據(jù){fstreamdefile;Videoobj;defile.open("video.dat”,ios::in|ios::out|ios::binary);//打開(kāi)文件if(!defile){cout<<endl;cout<<"打開(kāi)文件失?。?<<endl;exit(6);}charname[1000];cout<<"輸入要?jiǎng)h除的影碟名字:";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)<<"刪除標(biāo)記”<<setw(18)<<"片名"<<setw(16)<<”影碟數(shù)"<<endl;show(obj);charflag;cout<<"確認(rèn)刪除?(Y/N)";cin>>flag;if(toupper(flag)=='Y'){obj.delTag=true;//更改刪除標(biāo)記變?yōu)閠ruedefile.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();//關(guān)閉文件}voidVideoManage::Update()//M新數(shù)據(jù){fstreamupfile;Videoobj;upfile.open("video.dat”,ios::in|ios::out|ios::binary);//打開(kāi)文件if(!upfile){cout<<endl;cout<<"打開(kāi)文件失敗!"<<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)<<"刪除標(biāo)記”<<setw(18)<<"片名"<<setw(16)<<”影碟數(shù)"<<endl;show(obj);cout<<"輸入新的影碟數(shù)據(jù)(片名影碟數(shù)):"<<endl;cin>>obj.videoTitle>>obj.numOfCopies;//輸入更新數(shù)據(jù)upfile.seekg(-sizeof(Video),ios::cur);//定位upfile.write((char*)&obj,sizeof(obj));//寫入文件cout<<"被更新后記錄為:"<<endl;cout<<setw(16)<<"刪除標(biāo)記”<<setw(18)<<"片名"<<setw(16)<<”影碟數(shù)"<<endl;show(obj);cout<<endl;cout<<"更新成功!"<<endl;}else//查找失敗{cout<<endl;cout<<"未找到該影碟!"<<endl;}upfile.close();//關(guān)閉文件}voidVideoManage::Pack()//文件重組{ofstreampafilew("tem.dat",ios::app|ios::binary);//建立輸出文件對(duì)象ifstreampafiler("video.dat",ios::binary);//打開(kāi)原文件if(!pafilew&&!pafiler){cout<<endl;cout<<"打開(kāi)文件失??!"<<endl;exit(8);}Videoobj;pafiler.read((char*)&obj,sizeof(Video));while(!pafiler.eof()){if(!obj.delTag){ 一pafilew.write((char*)&obj,sizeof(obj));//把刪除標(biāo)記不為true的數(shù)據(jù)寫入tem.datz中}pafiler.read((char*)&obj,sizeof(Video));}pafiler.close();//關(guān)閉文件pafilew.close();//關(guān)閉文件remove("video.dat");//刪除文件rename("tem.dat”,"video.dat");//更改文件名cout<<endl;cout<<"重組成功!"<<endl;}voidVideoManage::Run()//以菜單方式調(diào)用各個(gè)函數(shù){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<<"請(qǐng)您在上述功能中選擇(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.結(jié)果:1)目錄============ = =音像店影碟管理====================以曾加影襟信息 5?刪除影襟信息 6.更新影襟信息顯示靳有影碟信息 磯文件童組 0=退出請(qǐng)您在上述助能中選擇<0-8>=2)租出影碟影碟數(shù)51片名天下8>下一天中碟..記標(biāo)功的碟除述刪上出的在要租

您入出請(qǐng)輸要出租成功I租出后:租出后:請(qǐng)您在上述功熊中選擇<0-8>:請(qǐng)您在上述功熊中選擇<0-8>:2IW5功夫刪除標(biāo)記是否歸還7(V/N)y歸還后:3)歸還影碟款碟數(shù)6歸還成功!4)查詢影碟信息|請(qǐng)您在上述功熊中選建?3逾入要查詢的散碟名字:人生|請(qǐng)您在上述功熊中選建?3逾入要查詢的散碟名字:人生被查詢記錄為;刪除標(biāo)記片名人生影碟數(shù)35)增加影碟信息請(qǐng)您在上述功能中選ftC0-8>=|A||?據(jù)(片名%碟數(shù))

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論