C++實現學生成績資訊登記表
C++實現學生成績資訊登記表
學生成績資訊登記表:
每個學生的資料包括:學號,姓名,和語數英三門的成績
實現效果:
1.從鍵盤輸入3名學生的資料
2.顯示每個學生的三門課的平均分
3.顯示每門課的全班平均分
4.按平均分高低排名,並按名次降序輸出學生的所有資料
//學生成績資訊登記表
//每個學生的資料包括:學號,姓名,和語數英三門的成績
//實現效果:
//1.從鍵盤輸入3名學生的資料
//2.顯示每個學生的三門課的平均分
//3.顯示每門課的全班平均分
//4.按平均分高低排名,並按名次降序輸出學生的所有資料
#include <iostream>
using namespace std;
#define STU 3 //設定學生的人數
//定義學生結構體
struct Student {
int num;//學號
string name;//姓名
int gradeChinese;//語文成績
int gradeMath;//數學成績
int gradeEnglish;//英語成績
};
//得到輸入的學生的資訊
void getStudentInfo(Student a[STU]) {
for (int i = 0;i < STU;i++)
{
cout << "請輸入第" << i + 1 << "個同學的" << "學號:" ;
cin >> a[i].num;
cout << "請輸入第" << i + 1 << "個同學的" << "姓名:" ;
cin >> a[i].name;
cout << "請輸入第" << i + 1 << "個同學的" << "語文成績:" ;
cin >> a[i].gradeChinese;
cout << "請輸入第" << i + 1 << "個同學的" << "數學成績:" ;
cin >> a[i].gradeMath;
cout << "請輸入第" << i + 1 << "個同學的" << "英語成績:" ;
cin >> a[i].gradeEnglish;
}
cout << endl;
}
//計算每個學生的三門平均分
void averageStudent(Student a[STU]) {
for (int i = 0;i < STU;i++)
{
cout << "第" << i + 1 << "名同學的語數英平均分為:"
<< (a[i].gradeChinese + a[i].gradeEnglish + a[i].gradeMath) / 3
<< endl;
}
cout << endl;
}
//計算每門課的全班平均分
void averageClass(Student a[STU]) {
int a_math = 0;//全班數學總分
for (int i = 0;i < STU;i++)
{
a_math = a_math + a[i].gradeMath;
}
int a_chinese = 0;//全班語文總分
for (int i = 0;i < STU;i++)
{
a_chinese = a_chinese + a[i].gradeChinese;
}
int a_english = 0;//全班英語總分
for (int i = 0;i < STU;i++)
{
a_english = a_english + a[i].gradeEnglish;
}
cout << "全班語文的平均分為:"<<a_chinese/STU<<endl;
cout << "全班數學的平均分為:"<<a_math/STU<<endl;
cout << "全班英語的平均分為:"<<a_english/STU<<endl;
cout << endl;
}
//按平均分降序排名
void rankStudentGrade(Student a[STU]) {
int b[STU];//定義b陣列存放每個人的平均分
for (int i = 0;i < STU;i++)
{
b[i] = (a[i].gradeChinese + a[i].gradeEnglish + a[i].gradeMath) / 3;
}
//把b陣列資料存一份資料給c陣列
//b陣列中存放的是未排序的平均分,c陣列中存放的是排序過後的平均分
int c[STU];
for (int i = 0;i < STU;i++)
{
c[i] = b[i];
}
//氣泡排序
for (int i = 0;i < STU - 1;i++)
{
for (int j = 0;j < STU - 1 - i;j++)
{
int temp = 0;
if (c[j] < c[j + 1])
{
temp = c[j + 1];
c[j + 1] = c[j];
c[j] = temp;
}
}
}
//測試輸出
//for (int i = 0;i < STU;i++)
//{
// cout << "按平均分降序排名為:" << c[i] << endl;
//}
//比較b和c陣列,輸出對應平均分同學的成績
for (int i = 0;i < STU;i++)
{
for (int j = 0;j < STU;j++)
{
if (c[i] == b[j])
{
cout << "第" << i + 1 << "名是:" << a[j].name << " 平均分為:" << b[j]
<<" 學號為:"<<a[j].num
<< " 語文成績為:" << a[j].gradeChinese
<< " 數學成績為:" << a[j].gradeMath
<< " 英語成績為:" << a[j].gradeEnglish
<< endl;
}
}
}
}
int main()
{
Student a[STU];
getStudentInfo(a);//得到輸入的學生的資訊
//cout << "第三位同學的英語成績為:" << a[STU - 1].gradeEnglish << endl;//測試是否接收成功
averageStudent(a);//計算每個學生的三門平均分
averageClass(a);//計算每門課的全班平均分
rankStudentGrade(a);//按平均分降序排名
system("pause");
return 0;
}
轉載自:黑鳳梨の部落格
相關文章
- Django學生資訊管理系統(6)學生成績新增和學生成績查詢(多對對關係)Django
- python mysql實現學生成績管理系統蠖脲PythonMySql
- 學生成績管理系統
- 學生成績管理資料庫資料庫
- C語言連結串列實現的簡易學生成績管理系統C語言
- 一個簡單的學生成績管理程式(二叉樹實現) (轉)二叉樹
- 2-2 學生成績連結串列處理 (20分)——C語言實現C語言
- sql統計-關於學生成績SQL
- PTA (學生成績讀取與排序)排序
- 【練習】學生成績管理系統
- 學生成績判斷函式介面函式
- C語言陣列求學生成績C語言陣列
- vue-admin-template 學習筆記 登入實現Vue筆記
- vue實現登入和個人資訊元件展示Vue元件
- 【C#學習筆記】呼叫C++生成的DLLC#筆記C++
- C++實現迷宮的生成與解決C++
- c++模擬實現順序表C++
- bootstrap學習筆記一 登入水平表單boot筆記
- python學生成績管理系統【完整版】Python
- 【PTA】 學生成績錄入及查詢 (20分)
- Excel做網頁 學生成績網上查(轉)Excel網頁
- 一個簡單的學生成績管理程式 (轉)
- 無人機實名制現狀:登記資訊稽核不嚴,亂填也可通過無人機
- c++實現多型的方法 虛表C++多型
- jwt加meta元資訊實現登入後校驗JWT
- 學生成績管理系統(C++指標、連結串列、檔案及物件導向的運用)C++指標物件
- C++筆記——C++基本思想與實現(一)C++筆記
- C++實現查詢本機資訊並且上報C++
- C# 呼叫 C++ 生成的 dll 關鍵實現部分C#C++
- 學生成績管理系統——課程設計報告
- 面試登記表樣式面試
- 【資料結構】實現順序表(c++)資料結構C++
- 說說如何在登入頁實現生成驗證碼功能
- Vue.js實現可配置的登入表單Vue.js
- jeefast實現科目成績查詢AST
- 演算法學習記錄五(C++)--->兩個棧實現佇列演算法C++佇列
- 工作績效資訊和工作績效資訊測量結果的區分
- 記一次 SSO 單點登入實現