2014-02-23 85 views
0

我已給出問題域。輸入結構數組C++將輸入值寫入結構數組+打印出

一個班級有5名學生。您需要編寫一個程序來接受來自用戶的以下信息。

First Name 
Last Name 
Age 
Major 
GPA 

所有這些信息必須從用戶獲得並存儲在一個數組中。一旦數組已填充,爲每個學生打印所有這些信息。

對於做這個項目,你可能喜歡用戶struct,數組和一些循環。確保使用適當的數據類型來存儲信息。在接受GPA時,您需要確保GPA大於或等於2且小於或等於4.如果學生的GPA超出此範圍,請讓用戶再次輸入GPA,給他限制。


我需要知道如何將值輸入到struct數組中,然後將它們打印出來。這是我到目前爲止。任何幫助,將不勝感激。

#include <iostream> 
#include <string> 

using namespace std; 

typedef struct 
{ 
    string firstName; 
    string lastName; 
    int age; 
    string major; 
    float GPA; 
} student; 


int main() 
{ 
    //Variable declaration 
    string fnInput; 
    string lnInput; 
    int ageInput; 
    string majorInput; 
    float GPAInput; 

    student students[4]; 

    cout << "Enter the first name: " ; 
    cin >> fnInput ; 
    cout << "Enter the last name: " ; 
    cin >> lnInput ; 
    cout << "Enter the age: "; 
    cin >> ageInput ; 
    cout << "Enter the major: " ; 
    cin >> majorInput; 
    cout << "Enter the GPA: "; 
    cin >> GPAInput ; 

    cout << fnInput << lnInput << ageInput << majorInput << GPAInput ; 

    /*students[0].firstName = fnInput;*/ 
} 
+0

什麼你遇到的問題?不要只是轉儲一些代碼並說「修復它」。 – Barmar

回答

1

要輸入值到結構數組,你不需要臨時變量,只需直接存儲輸入值:

std::cout << "Enter the first name: " ; 
std::cin >> students[0].firstName; 
std::cout << "Enter the age: "; 
std::cin >> students[0].age; 

輸出類似:

std::cout << students[0].firstName;; 
std::cout << students[0].age;