【PTA】 學生成績錄入及查詢 (20分)

karshey發表於2020-12-08

學生成績表中,一名學生的資訊包含如下資訊: 學號(11位)、姓名、數學成績、英語成績、程式設計成績、物理成績。

本題要求編寫程式,錄入N條學生的資訊,並且按查詢要求顯示學生成績等資訊。

輸入格式:
輸入在第一行給出正整數N(N<=10);隨後N行,每行按格式:

學號 姓名 數學成績 英語成績 程式設計成績 物理成績
給出一名學生的資訊。 其中學號是11位數字;姓名是不超過10個字元、不包含空格的非空字串;成績是<=100的非負整數;

在學生資訊輸入完成後,給出要查詢的姓名。

輸出格式:
對查詢的姓名的每一名學生,在一行中按照如下格式輸出:

學號 姓名 數學成績 英語成績 程式設計成績 物理成績

如果有相同姓名的同學,輸出全部同學的資訊,每名同學一行; 如果要查詢的學生不存在,則輸出:

Not Found!

輸入樣例:
在這裡給出一組輸入。例如:

4
20201003012 LiWen 68 90 78 86
20201003012 HeHua 91 88 80 82
20201002121 WangFang 78 78 82 90
20201002112 ZhengYi 56 83 77 80
ZhengYi

輸出樣例:
在這裡給出相應的輸出。例如:

20201002112 ZhengYi 56 83 77 80

發現一個坑:
如果我在自己鍵盤是中文輸入法的時候直接複製Not Found!(本身是英文輸入法打進去的),那麼它的感嘆號會自動變成中文版的,於是就輸出錯誤…
幸好中文的感嘆號有空格,很容易就看出來了。

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	
	struct student
	{
		string num;
		string name;
		int math,english,c,wuli;
	}stud[11];
	
	for(int i=0;i<n;i++)
	{
		cin>>stud[i].num>>stud[i].name>>stud[i].math>>stud[i].english>>stud[i].c>>stud[i].wuli;
	}
	
	string name2;
	cin>>name2;
	
	int flag=0;
	for(int i=0;i<n;i++)
	{
		if(name2==stud[i].name)
		{
			flag++;
               if(flag!=1)  cout<<endl;
               cout<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].math<<" "<<stud[i].english<<" "<<stud[i].c<<" "<<stud[i].wuli;	
			}				
		}		
	if(flag==0)  cout<<"Not Found!";			
	return 0;
}

相關文章