版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計說明書</b></p><p> 設(shè)計名稱: 操作系統(tǒng)課程設(shè)計 </p><p> 題 目: 文件訪問接口設(shè)計 </p><p><b> 課程設(shè)計任務(wù)書</b></p><p> 設(shè)計題目:文
2、件訪問接口設(shè)計</p><p><b> 主要內(nèi)容:</b></p><p> 本設(shè)計的目的是通過BIOS調(diào)用設(shè)計簡單的文件訪問接口,使學(xué)生掌握程 序接口的設(shè)計方法。 </p><p> 要求學(xué)生在熟悉比BIOS、DOS操作系統(tǒng)的中斷接口及
3、程序接口的基礎(chǔ)上,利用C語言設(shè)計簡單的文件訪問接口,最后通過程序驗證接口的正確性。 </p><p><b> 具體要求</b></p><p> 利用C語言設(shè)計,具體包括:</p><p><b> 基本文件內(nèi)容輸入</b></p><p><b> 基本文件內(nèi)容輸出&l
4、t;/b></p><p><b> 創(chuàng)建文件</b></p><p><b> 打開文件</b></p><p><b> 關(guān)閉文件</b></p><p><b> 文件緩沖區(qū)管理</b></p><p><
5、b> 7、文件句柄管理</b></p><p><b> 8、讀順序文件</b></p><p><b> 9、寫順序文件</b></p><p><b> 10、讀隨機文件</b></p><p><b> 11、寫隨機文件</b&
6、gt;</p><p> 12、文本文件操作驗證程序</p><p> 上述功能由兩部分程序驗證,中斷駐留程序和驗證程序。首先運行中斷駐留程序,然后運行驗證程序得到預(yù)期結(jié)果。</p><p><b> 進度安排</b></p><p> 1-2天:資料查找、系統(tǒng)分析,數(shù)據(jù)流程分析,概要設(shè)計</p>
7、<p> 1-2天:系統(tǒng)詳細(xì)設(shè)計、功能設(shè)計</p><p> 5-6天:模塊設(shè)計、編程調(diào)試</p><p> 1天:資料整理、課程設(shè)計說明書編寫。</p><p><b> 完成后應(yīng)上交的材料</b></p><p> 1、課程設(shè)計說明書(程序流程圖、功能模塊圖、相關(guān)數(shù)據(jù)結(jié)構(gòu)、核心算法等)</p
8、><p><b> 2、相關(guān)源程序文件</b></p><p><b> 總評成績</b></p><p> 指導(dǎo)教師 簽名日期 年 月 日</p><p> 系 主 任 審核日期 年 月 日</p><p>
9、;<b> 目錄</b></p><p><b> 一、程序流程圖5</b></p><p> 二、函數(shù)功能模塊…………………………………………………………………………………………………..6</p><p><b> 三、源代碼6</b></p><p> 四、
10、程序運行結(jié)果11</p><p><b> 五、心得體會15</b></p><p><b> 一、程序流程圖</b></p><p><b> 二、函數(shù)功能模塊</b></p><p> 函數(shù)1:基于文件內(nèi)容的輸入</p><p> 函數(shù)
11、:int output_file();</p><p> 函數(shù)2:基于文件內(nèi)容的輸出</p><p> 函數(shù):int input_file();</p><p><b> 函數(shù)3:創(chuàng)建文件</b></p><p> 函數(shù):bool create_file(char* name);</p><p
12、><b> 函數(shù)4:打開文件</b></p><p> 函數(shù):int open_file(char name[]);</p><p> 函數(shù)5:順序讀寫文件</p><p> 函數(shù):int order_file(char name[]);</p><p> 函數(shù)6:隨機讀寫文件</p>&l
13、t;p> 函數(shù):int random_file(char name[]);</p><p><b> 三、源代碼</b></p><p> #include<iostream.h></p><p> #include<fstream.h></p><p> #include<
14、assert.h></p><p> char d[]="f:\\VC++\\TITLE4.txt";</p><p> class Tinterface{</p><p><b> public:</b></p><p> int output_file();</p>&
15、lt;p> void input_file();</p><p> bool create_file(char name[]);</p><p> int open_file(char name[]);</p><p> int order_file(char name[]);</p><p> int random_file
16、(char name[]);</p><p><b> };</b></p><p> //基于文件內(nèi)容的輸入,以f:\\VC++\\TITLE4.txt為例</p><p> int Tinterface::output_file(){</p><p> ofstream out;</p><
17、;p> out.open(d,ios::app);</p><p><b> if(!out){</b></p><p> cout<<"Can not open";</p><p><b> return 1;</b></p><p><b>
18、; }</b></p><p> cout<<"請輸入要輸入的文字:";</p><p> char a[99];</p><p><b> cin>>a;</b></p><p><b> out<<a;</b><
19、/p><p> out.close();</p><p><b> }</b></p><p> //基于文件內(nèi)容的輸出,以f:\\VC++\\TITLE4.txt為例</p><p> void Tinterface::input_file(){</p><p> ifstream inp
20、ut;</p><p><b> char ch;</b></p><p> input.open(d,ios::app);</p><p> while(input.get(ch)){</p><p><b> cout<<ch;</b></p><p>
21、;<b> }</b></p><p> cout<<endl;</p><p><b> }</b></p><p><b> //創(chuàng)建文件</b></p><p> bool Tinterface::create_file(char name[]){&
22、lt;/p><p> ifstream fs;</p><p><b> if(!name)</b></p><p> return false;</p><p> fs.open(name,ios::nocreate);</p><p><b> if(!fs){</b&g
23、t;</p><p> fs.clear();</p><p> fs.close();</p><p> fs.open(name,ios::out);</p><p> if(!fs.is_open()){</p><p> cout<<"創(chuàng)建失敗!"<<end
24、l;</p><p> fs.clear();</p><p> fs.close();</p><p><b> return 0;</b></p><p><b> }</b></p><p> cout<<"\""&l
25、t;<name<<"\" 創(chuàng)建成功!"<<endl;</p><p> fs.close();</p><p><b> return 1;</b></p><p><b> }</b></p><p> cout<<
26、"文件已存在!"<<endl;</p><p><b> return 0;</b></p><p><b> }</b></p><p><b> //打開文件</b></p><p> int Tinterface::open_fil
27、e(char name[]){</p><p> ifstream fs;</p><p> fs.open(name,ios::nocreate);</p><p><b> if(!fs){</b></p><p> cout<<"文件不存在!"<<endl;<
28、;/p><p><b> }else{</b></p><p> cout<<"文件已打開!"<<endl;</p><p><b> }</b></p><p><b> return 0;</b></p><
29、;p><b> }</b></p><p><b> //順序讀寫文件</b></p><p> int Tinterface::order_file(char name[]){</p><p> int choice;</p><p> cout<<"請選擇讀
30、或?qū)懖僮鳎?.順序讀 2.順序?qū)懀?quot;<<endl;</p><p> cin>>choice;</p><p> if(choice==1){</p><p> ifstream in;</p><p> in.open(name,ios::nocreate||ios::out);</p&g
31、t;<p><b> if(!in){</b></p><p> cout<<"文件不存在!"<<endl;</p><p><b> }else{</b></p><p><b> char ch;</b></p>&l
32、t;p> while(in.get(ch)){</p><p><b> cout<<ch;</b></p><p><b> }</b></p><p><b> }</b></p><p> in.close();</p><
33、p><b> }</b></p><p><b> else{</b></p><p> if(choice==2){</p><p> ofstream fs;</p><p> fs.open(name,ios::nocreate||ios::in);</p>&l
34、t;p><b> if(!fs){</b></p><p> cout<<"文件不存在!"<<endl;</p><p><b> }else{</b></p><p> cout<<"請輸入要輸入的文字:";</p>
35、<p> char a[99];</p><p><b> cin>>a;</b></p><p><b> fs<<a;</b></p><p><b> }</b></p><p> fs.close();</p>
36、;<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"輸入錯誤!"<<endl;</p><p><b>
37、}</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p><b> //隨機讀寫文件</b></p><p>
38、 int Tinterface::random_file(char name[]){</p><p> int choice;</p><p> cout<<"請選擇讀或?qū)懖僮鳎?.隨機讀 2.隨機寫)"<<endl;</p><p> cin>>choice;</p><p>
39、; if(choice==1){</p><p> ifstream in;</p><p> in.open(name,ios::nocreate||ios::out);</p><p><b> if(!in){</b></p><p> cout<<"文件不存在!"<
40、<endl;</p><p><b> }else{</b></p><p><b> int i;</b></p><p> cout<<"請輸入文件開始讀的位置"<<endl;</p><p><b> cin>>i
41、;</b></p><p> in.seekg(i,ios::beg);</p><p><b> char ch;</b></p><p> while(in.get(ch)){</p><p><b> cout<<ch;</b></p><p
42、><b> }</b></p><p> in.close();</p><p><b> }</b></p><p><b> }</b></p><p> if(choice==2){</p><p> ofstream out;&
43、lt;/p><p> out.open(name,ios::nocreate||ios::in);</p><p><b> if(!out){</b></p><p> cout<<"文件不存在!"<<endl;</p><p><b> }else{</
44、b></p><p><b> int i;</b></p><p> cout<<"請輸入要輸入的文字:"<<endl;</p><p> char a[99];</p><p><b> cin>>a;</b></p&g
45、t;<p> cout<<"請輸入文字插入的位置:"<<endl;</p><p><b> cin>>i;</b></p><p> out.seekp(i,ios::beg);</p><p> out<<a;</p><p&
46、gt;<b> }</b></p><p> out.close();</p><p><b> }</b></p><p> return 0;</p><p><b> }</b></p><p> int main(){</p
47、><p> Tinterface file;</p><p> int choice;</p><p> cout<<"*************菜單******************\n\n"</p><p> <<"1、基于文件內(nèi)容的輸入\n"</p>&
48、lt;p> <<"2、基于文件內(nèi)容的輸出\n"</p><p> <<"3、創(chuàng)建文件\n"</p><p> <<"4、打開文件\n"</p><p> <<"5、順序讀寫文件\n"</p><p>
49、 <<"6、隨機讀寫文件\n"</p><p> <<"99、退出\n\n";</p><p> while(true){</p><p> cout<<"請選擇功能"<<endl;</p><p> cin>>ch
50、oice;</p><p> switch(choice){</p><p><b> case 1:</b></p><p> file.output_file();</p><p><b> break;</b></p><p><b> case 2
51、:</b></p><p> file.input_file();</p><p><b> break;</b></p><p><b> case 3:</b></p><p> char name[256];</p><p> cout<&
52、lt;"請輸入要創(chuàng)建的文件名\n";</p><p> cin>>name;</p><p> file.create_file(name);</p><p> cout<<endl;</p><p><b> break;</b></p><
53、p><b> case 4:</b></p><p> char fname[256];</p><p> cout<<"請輸入你要打開的文件名:\n";</p><p> cin>>fname;</p><p> file.open_file(fname);
54、</p><p> cout<<endl;</p><p><b> break;</b></p><p><b> case 5:</b></p><p> char fsname[256];</p><p> cout<<"
55、請輸入文件名:"<<endl;</p><p> cin>>fsname;</p><p> file.order_file(fsname);</p><p> cout<<endl;</p><p><b> break;</b></p><p&
56、gt;<b> case 6:</b></p><p> char finame[256];</p><p> cout<<"請輸入文件名:"<<endl;</p><p> cin>>finame;</p><p> file.random_file(f
57、iname);</p><p> cout<<endl;</p><p><b> break;</b></p><p><b> case 99:</b></p><p><b> return 0;</b></p><p><
58、;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 四、程序運行結(jié)果</b></p><p><b> 1、主界面</b></p><p&
59、gt;<b> 2、基于文件的輸入</b></p><p> 輸入前的TITLE4.txt 執(zhí)行后的TITLE4.txt</p><p> 3、基于文件內(nèi)容的輸出</p><p><b> 4、創(chuàng)建文件</b></p><p> 執(zhí)行前F
60、:\VC++目錄 執(zhí)行后F:\VC++目錄</p><p><b> 5、打開文件</b></p><p><b> 6、順序讀寫文件</b></p><p> 執(zhí)行前FILE.txt的內(nèi)容為空</p><p> 執(zhí)
61、行后FILE.txt的內(nèi)容</p><p><b> 7、隨機讀寫文件</b></p><p> 執(zhí)行前FILE.txt的內(nèi)容 執(zhí)行后FILE.txt的內(nèi)容</p><p><b> 8、退出</b></p><p><b&g
62、t; 五、心得體會</b></p><p> 在這個課程設(shè)計中,我被分配到的任務(wù)是建立文件訪問接口,剛好本學(xué)期我們學(xué)習(xí)了C++這門課程,里面就講了關(guān)于文件操作的文件流,所謂學(xué)以致用,所以這次的課程設(shè)計我是用C++的文件流來實現(xiàn)設(shè)計要求的。運用了文件流的基本知識實現(xiàn)了文件的創(chuàng)建,輸入,輸出等等功能。</p><p> 從看到課程設(shè)計任務(wù)書之后,我就開始查找資料,從課本上還有
63、網(wǎng)上,首先是將文件的打開方式掌握了,明白了如何對文件進行操作以及進行怎樣的操作,準(zhǔn)備了兩三天之后才開始編寫程序,編寫程序中主要遇到的困難的在進行文件隨機讀寫的時候seekp() 與seekg()使用過程中遇到許多的問題,剛開始對使用函數(shù)之后,文件當(dāng)前指針位置的理解不透徹,所以在隨機輸出與輸入的時候無法精確的按照想的位置開始進行讀寫,運行結(jié)果與自己想象中的不一樣,最后通過咨詢老師,了解其本質(zhì)后才解決了這個問題。</p>&l
64、t;p> 總體來說,因為我做的這個程序?qū)崿F(xiàn)的功能很簡單,程序相對來說也不是很難,所以我很快就完成了,只是這個程序還是存在著一定的缺陷,比如說,在進行順序?qū)懙臅r候,如果文件本身存在內(nèi)容的話,所寫的內(nèi)容會覆蓋文件本身存在的內(nèi)容,隨機寫的時候也會出現(xiàn)這個問題,可能會造成文件內(nèi)容的缺失。針對這個問題,我自己也在努力探索,相信自己很快就可以解決掉這個問題。</p><p> 通過這次課程設(shè)計,我基本掌握C++文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計---磁盤文件操作
- 操作系統(tǒng)課程設(shè)計---文件管理系統(tǒng)設(shè)計
- 操作系統(tǒng)課程設(shè)計——操作系統(tǒng)課程設(shè)計模擬操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計--文件管理系統(tǒng)
- 操作系統(tǒng)課程設(shè)計---文件加密存儲
- 操作系統(tǒng)課程設(shè)計報告----文件管理系統(tǒng)
- 操作系統(tǒng)課程設(shè)計-- 操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計--模擬文件系統(tǒng)
- 《操作系統(tǒng)》課程設(shè)計-- 模擬文件管理系統(tǒng)
- 操作系統(tǒng)課程設(shè)計--樹形目錄文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計---操作系統(tǒng)之文件管理部分的設(shè)計與實現(xiàn)
- 操作系統(tǒng)課程設(shè)計報告--多級文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計報告--多級文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計---文件系統(tǒng)的模擬
- 操作系統(tǒng)課程設(shè)計---模擬文件系統(tǒng)
- 《操作系統(tǒng)》課程設(shè)計--模擬文件管理系統(tǒng)
- 操作系統(tǒng)課程設(shè)計-模擬文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計報告--多級文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計
- 操作系統(tǒng)課程設(shè)計
評論
0/150
提交評論