2014-12-01 78 views
0
部分

我工作的學期我最後的編程任務(我最後的計算機程序都給我猜看到,因爲我改變了專業公頃),並那種碰到路障。該任務要求我們編寫兩個程序,一個程序從文件中讀取一些信息並創建一個散列表,將其保存到輸出文件中。第二個程序應該允許用戶輸入密鑰,程序將搜索該密鑰的輸出文件,並返回它包含的信息(如果找到的話)。使用其他程序在其他項目

我仍然處於這個程序的規劃階段,我喜歡在我開始編寫代碼之前將它們全部寫在紙上,因爲某種原因,它有助於我弄清楚發生了什麼更好,但是我認爲我的創建哈希表,因爲它應該工作程序是幾乎相同的程序,我們不得不在幾個星期前寫的,簡單地創建哈希表(手指交叉),但我有在搜索程序中的問題。我的搜索程序確實只有一種方法可以搜索文件中用戶輸入的密鑰。如果我在我提到的僅用於創建哈希表的程序中使用了搜索功能的代碼,則可能更容易解釋我的具體問題。

void Hash::findItem(int key) { 
    int index = hash(key); 
    bool wasFound = false; 
    record* ptr = hashTable[index]; 
    while(ptr != NULL) { 
     if(ptr->key == key) { 
      wasFound = true; 
      key = ptr->key; 
     } 
     ptr = ptr->next; 
    } 
    if(wasFound == true) { 
     cout << key << " " << name << " " << code << " " << cost << " " << index << endl; 
    } 
    else { 
     cout << "The key " << key << " was not found in the table." << endl; 
    } 
} 

哈希是我在程序中使用的類創建表的名稱,並記錄是我用來保存每條記錄的信息結構的名稱。其他一切都應該是不言而喻的。

所以這裏的地方我遇到麻煩了。在此代碼幾乎一切實際上是宣稱,在我的第一個程序規定,但這種方法/功能(不知道在正確的術語,我要帶3個編程班,3種不同的語言,所以我住在混亂的恆定狀態)只會在我的搜索程序中使用。我不知道如何去連接這兩個程序(如果這是有道理的)。就像,我怎樣才能使我在我的第一個程序中創建的東西可用於我的搜索程序?

我的散漫道歉,我在很短沒有更好的和甜比我的節目。希望這很清楚。如果我需要包含任何其他信息,請讓我知道,我會很樂意。預先感謝任何幫助您的好人能夠提供的幫助。

注意 我用「繼承」作爲這篇文章的標籤之一,我真的不知道,這是與繼承的問題,但我覺得它可能是。如果您覺得不然,請讓我知道,我可以刪除它,因爲我想確保這不會在錯誤的地方結束並浪費任何人的時間。

+0

不,不需要繼承。哈希值也不大,因爲哈希似乎不是你的問題。 – user2079303 2014-12-01 23:45:06

+0

您可以在新項目中重複使用源文件的副本,並且應該能夠像正常一樣引用它們。你的開發環境是什麼? (即Visual Studio?) – OfNothing 2014-12-01 23:48:55

+0

謝謝@ user2079303,我會看看我是否可以刪除這些標籤。 – HiTechRedneck3 2014-12-01 23:57:24

回答

2

讓說你有4個文件:

  • COMMON.H - 類型聲明一般工作人員
  • common.cpp - 與所有普通員工函數體
  • main1.cpp - 第一可執行
  • main2.cpp - 第二可執行

所有cpp文件應包括common.h

現在你可以編譯如下:您可以添加-g每一行,如果你想調試。

g++ -c common.cpp -o common.o 
g++ -c main1.cpp -o main1.o 
g++ -c main2.cpp -o main2.o 
g++ main1.o common.o -o main1 
g++ main2.o common.o -o main2 

前3行用於編譯源文件到目標文件。

最後2個是將對象鏈接到可執行文件。

請注意,您只需要有4個文件...

+0

謝謝,但我不認爲我可以做任何這些選項。我們的教授希望我們的所有程序都是以3種文件格式(頭文件,cpp文件,主文件或驅動程序文件)編寫的,因此該特定程序將包含6個文件。如果在我的搜索程序文件中添加諸如「#include」prog8.cpp「」這樣的內容,它不會起作用嗎? – HiTechRedneck3 2014-12-02 00:53:40

+0

查看新的答案 – SHR 2014-12-02 01:06:14

+0

好的我明白了。讓我確定我明白了。現在我有6個文件,prog8.h,prog8.cpp,prog8main.cpp,prog8search.h,prog8.cpp和prog8searchMain.cpp。所以如果我正確地理解了你,我可以將2個頭文件合併成一個文件,這2個文件包含函數的定義和所有東西到它們自己的單個文件中,然後再有2個文件,每個文件一個。它是否正確? – HiTechRedneck3 2014-12-02 02:10:42