2016-04-23 50 views
0

我在編程(C語言)中做了功課,而且我遇到了一個難以解決的難題。如何複製C中結構的唯一成員

之前,我問具體的問題,我想告訴你什麼是給出:

在第一個純文本文件(F1)存儲的電影標題的所有數據。在第二個純文本文件(F2)中 - 由文件F1列出的電影 ,由普通用戶和電影評論家評論。每部電影可以由 由無限數量的電影評論家和普通的 用戶評估。同一個人可能是幾部電影中的導演。 此外,每個評論者/用戶都可以參與幾部 電影的評估。

·在屏幕上顯示所有評論家(電影評論家和普通 用戶),他們評分的電影數量和平均分數。批評人數由標記數量(從最大到最小)排序 。

所以我評論的結構是這樣的:

struct Review{ 
char ID[20]; 
char MovieID[20]; 
char FamilyName[20]; 
char Critic; 
double Mark; 


}; 

我已創建了動態內存分配結構的陣列。我需要的是通過FamilyName識別每位獨特的評論作者,計算他們評級的電影數量(評論中出現FamilyName的次數)以及他們給予所有電影的平均評分。

到目前爲止,我正在考慮創建用戶的新結構,這將有所有這3個成員Familyname,評級的電影數量,AverageMark。但我不能想到算法只複製Review []到用戶[]的唯一值... 完成後,排序不會成爲問題。

謝謝,

回答

0

該任務主要是關於數據庫設計。一個例子結構佈局使用如下:

struct Movie { 
    int ID; 
    char MovieName[20]; 
    int DirectorId; /* lookup in Person */ 
}; 

struct Person { 
    int Id; 
    char Surname[20]; 
    char Firstname[20]; 
    /* numbers of reviews, movies directed etc, can be calculated, and should not be stored to disk */ 
    int NumberOfReviews; 
    int SumMarks; /* AverageMark = SumMarks/NumberOfReviews */ 
}; 

struct Review { 
    int Id; 
    int MovieId; 
    int AuthorId; /* Lookup in person */ 
    int Mark; 
}; 

接下來你需要做的這些數組或鏈表,使例程從磁盤和打印出報表加載數據。

+0

是的,我有這樣的結構,但事情是Review和Movie是從txt文件中讀取和存儲的,我真正需要做的是使用Review填充Person結構,這對我來說似乎很困難。我正在尋找如何複製和處理數據從一個陣列到另一個沒有重複的內容或從審閱人沒有重複作者的一般算法。感謝您的回答。 –

+0

您從txt文件中讀取一行和一行。如果文件包含每個記錄上某個人的名稱,則首先檢查該人是否已經存在於內存中,如果是,則重複使用相同的ID,否則添加該人並使用新的唯一ID。 –