2015級C 第16周實踐專案 檔案

2021-07-13 07:13:28 字數 3369 閱讀 3671

【專案1 - 小玩檔案】參考解答

(1)下面程式的功能是統計文字檔案abc.txt中的字元個數,請填空將程式補充完整。

#include 

#include

#include _____________ // (1)

using

namespace

std;

int main()

char ch;

int i=0;

while( _____________) // (3)

cout

<

/ (5)

return

0;}

(2)下面程式的功能是將文字檔案abc.txt中的所有行加上行號後寫到newabc.txt檔案中,請填空將程式補充完整。

#include 

#include

#include

using

namespace

std;

int main()

outfile.open("newabc.txt",______);//(2)

if(!outfile)

char buf[80];

int i=1;

while(____________) // (3)

infile.close();

outfile.close();

return

0;}

【專案2-用檔案儲存的學生名單】參考解答

檔案score.dat中儲存的是若干名學生的姓名和c++課、高數和英語成績。

(1)定義學生類,其中包含姓名、c++課、高數和英語成績及總分資料成員。

//定義學生類

class

student

;

(2)用物件陣列進行儲存學生的成績,讀入成績並計算總分;將總分高於平均總分且沒掛科的同學的資訊儲存到檔案pass_score.dat中。

int main( )

【專案3-電子詞典】參考解答

做乙個簡單的電子詞典。在檔案dictionary.txt中,儲存的是英漢對照的乙個詞典,詞彙量近8000個,英文、中文釋義與詞性間用』\t』隔開。程式設計序,由使用者輸入英文詞,顯示詞性和中文釋義。

提示1:可以定義乙個word類表示乙個詞條,其中的資料成員string english;表示英文單詞,string chinese;表示對應中文意思,string word_class;表示該詞的詞性;還可以定義乙個dictionary類,用來表示詞典,其中word words[8000]成員表示詞典中的詞條,int wordsnum;表示詞典中的詞條數,在建構函式中從檔案讀入詞條,而專門增加乙個成員函式用於查單詞。

提示2:檔案中的詞彙已經排序,故在查詢時,用二分查詢法提高效率。

提示3:這樣的專案,最好用多檔案的形式組織

【專案4-用二進位制檔案處理學生成績】參考解答

(1)定義學生類,其中包含學號、姓名、c++課、高數和英語成績及總分資料成員,成員函式根據需要確定。

(2)讀入學生的成績,並求出總分,用物件陣列進行儲存。ascii檔案score.dat中儲存的是100名學生的學號、姓名和c++課、高數和英語成績。

(3)將所有資料儲存到乙個二進位制檔案binary_score.dat中,最後通過鍵盤輸入你的資訊,並寫入到檔案中(咱不謙虛,三科全100分,期末求好運)。

(4)為驗證輸出檔案正確,再將binary_score.dat中的記錄逐一讀出到學生物件中並輸出檢視。

(5)用binaryviewer命令檢視二進位制檔案檔案

【專案5-二進位制檔案瀏覽器】參考解答

(1)做乙個類似binaryviewer的檢視二進位制檔案的程式,輸入檔名後,可以以16進製制和ascii對照的方式列出該檔案的內容,可以參考下圖:

(2)通過為main函式加引數,在命令列方式下,輸入「命令加檔名」的方式,就可以顯示該檔案的內容,也採用如上16進製制和ascii對照的形式。

【專案6 - 處理c++源**的程式】參考解答

在codeblocks等ide中都提供了**格式整理的功能。完成這種功能的程式,操作的資料是用c++寫的源**檔案。c++原始檔是一種文字檔案,可以通過程式進行操作。

整合開發環境(ide)對對程式進行編譯,操作的「資料」是源程式。編譯中,要對源程式進行詞法檢查和語法檢查,後續還要進行目標**生成、**優化等工作。相關的技術將在《編譯原理》課中學習。這些技術可以用在很多領域,當然也能夠讓我們對於程式語言有更深的了解。

本專案將以c++源程式為操作物件,完成對源程式的一系列處理。各功能可以分別編制乙個程式實現(建議用這種簡單的方案),也可以將其整合在一起(向著自己做出ide努力)。

(1)讀入乙個c++程式,判斷其中是否只有乙個main()函式,輸出「暫時沒有發現問題」,或者「沒有main()函式」,或者「不能定義多個main()函式」;

提示1:簡單處理,可以只比較判斷」main()」,考慮實際上的各種可能,main後面的括號中有任意多個空格及void的都應該算在內。建議按最簡單的情形處理。

提示2:建議設計乙個函式,將讀到的**與字串」main()」進行比較。函式用於判斷s1是否「包含」在讀入的一行s2中,呼叫時,形參s1處的實參用」main()」即可,這樣寫提公升了「抽象」級別,更容易實現,對應更高的**質量。

(2)讀入乙個c++程式,使程式中的所有左花括號「 」都單獨佔一行,新程式儲存到另乙個.cpp檔案中,並在螢幕上顯示處理過的程式,顯示時加上行號。

(3)讀入乙個c++程式,輸入m、n兩個數字,從第m行起的n行**將作為注釋使用(即在這些行前面加上」//」),新程式儲存到另乙個.cpp檔案中,並在螢幕上顯示處理過的程式,顯示時加上行號。

(4)文書處理領域能做的工作也就此向大家敞開大門,在課程主頁中,還提供了一些功能作為選做內容,請有餘力的同學參考。

(選做)讀入乙個c++程式,將程式中的所有注釋(包括//形式和/…/形式的)刪除,新程式儲存到另乙個.cpp檔案中,並在螢幕上顯示處理過的程式,顯示時加上行號。

(5)(選做)讀入乙個c++程式,使程式中:(1)所有左花括號「 」都單獨佔一行;(2)每個語句單獨佔一行;(3)各行採用統一的縮格排放(每遇乙個「 」,其下一行的程式,在第乙個有意義的符號前的空格數減少4(也可以是乙個』\t』))。

2015級C 第3周實踐專案

include using namespace std int main 附 關於個人所得稅的有關背景知識 計算方法 個人所得稅 收入總額 3500 稅率 速算扣除數 從2011年9月1日起,我國個人所得稅起徵點基數為3500元,超出部分按以下7級計算。序號收入範圍 稅率速算扣除數 1超過0至150...

2015級C 第10 11周實踐專案 繼承和派生

專案1 點 圓 圓柱類族的設計 參考解答 專案2 儲存班長資訊的學生類 參考解答 class stu 宣告基類 class studetail public stu 宣告派生類studetail int main 1 上面是宣告好的類及測試函式,請完成類中成員函式的定義,使執行結果如圖所示。2 將s...

2015級C 第16周程式閱讀 檔案操作

1 請寫出下面程式的輸出結果 1 include include using namespace std int main 2 說出程式的功能,並上機驗證 請自建a.txt include include using namespace std int main 3 include include ...