回覆列表
  • 1 # 大白同學吖

    c語言,二維陣列求期評成績用二維陣列設計程式,實現計算一門課程的期評成績

    程式碼如下 ,二維陣列考察

    #include <iostream>

    #include <iomanip>

    #include <cmath>

    #include <string>

    using namespace std;

    const MAX_R=100;

    const MAX_C=10;

    float scores[MAX_R][MAX_C];

    float sum[MAX_R],aver[MAX_R];

    long id[MAX_R];

    char name[MAX_R][15];

    int m; //存放課程數

    int input()

    {

    int i,n=0;

    float t;

    do{

    cout <<"輸入課程數(<=" <<MAX_C <<"):";

    cin >>m;

    }while(m<1 || m>10);

    cout <<"輸入第 " <<n+1 <<" 個學生的學號(0 表示輸入結束):";

    cin >>id[n];

    while(id[n] && n<MAX_R){

    cout <<"輸入第 " <<n+1 <<" 個學生的姓名:";

    cin >>name[n];

    t=0;

    for(i=0; i<m; i++){

    cout <<"輸入第 " <<n+1 <<" 個學生的第 " <<i+1 <<" 門課的成績:";

    cin >>scores[n][i];

    t+=scores[n][i];

    }

    sum[n]=t;

    aver[n]=t/m;

    n++;

    cout <<"輸入第 " <<n+1 <<" 個學生的學號(0 表示輸入結束):";

    cin >>id[n];

    }

    return n;

    }

    void compute(int n)

    {

    int i,j;

    float t;

    cout <<setw(10) <<"學號" <<setw(10) <<"姓名" <<setw(8) <<"總分" <<setw(8) <<"平均分\n";

    for(i=0; i<n; i++){

    t=0;

    for(j=0; j<m; j++)

    t+=scores[i][j];

    sum[i]=t;

    aver[i]=t/m;

    cout <<setw(10) <<id[i] <<setw(10) <<name[i] <<setw(8) <<sum[i] <<setw(8) <<aver[i] <<endl;

    }

    }

    void displayFirst(int n)

    {

    int i,k;

    float t=-1;

    for(i=0; i<n; i++)

    if(sum[i]>t)

    t=sum[i], k=i;

    cout <<"總分第一名:\n";

    cout <<id[k] <<" " <<name[k] <<" " <<sum[k] <<" " <<aver[k] <<endl;

    }

    void displayLast(int n)

    {

    int i,k;

    float t=100000;

    for(i=0; i<n; i++)

    if(sum[i]<t)

    t=sum[i], k=i;

    cout <<"總分最後一名:\n";

    cout <<id[k] <<" " <<name[k] <<" " <<sum[k] <<" " <<aver[k] <<endl;

    }

    void search(int n)

    {

    long xh=0;

    char nm[15]={0};

    int i;

    cout<<"輸入要查詢學生的學號或姓名:";

    cin >>nm;

    xh=atol(nm);

    for(i=0; i<n; i++)

    if(id[i]==xh || strcmp(name[i],nm)==0)

    break;

    if(i<n){

    cout <<"學號:"<<id[i] <<" 姓名:" <<name[i]

    <<" 總分:" <<sum[i] <<" 平均分:" <<aver[i] <<endl;

    }else

    cout <<"沒有你要找的學生資訊\n";

    }

    void main()

    {

    int menu_id=5;

    int n=0;

    char ch;

    while(1)

    {

    cout<<"*********我的成績管理系統*********"<<endl;

    cout<<"1. 輸入成績"<<endl;

    cout<<"2. 彙總成績"<<endl;

    cout<<"3. 最高分和最低分"<<endl;

    cout<<"4. 查詢個人成績資訊"<<endl;

    cout<<"5. 退出系統"<<endl;

    cout<<"請選擇(輸入以上數字編號)";

    cin>>menu_id;

    switch(menu_id)

    {

    case 1:

    n = input();

    cout <<n <<endl;

    break;

    case 2:

    compute(n);

    cout<<"已經完成彙總!\n";

    break;

    case 3:

    displayFirst(n);

    displayLast(n);

    break;

    case 4:

    search(n);

    break;

    default:

    break;

    }

    if(menu_id==5) break;

    cout <<"打一鍵繼續……\n";

    cin.ignore();

    cin.get(ch);

    }

    }

  • 中秋節和大豐收的關聯?
  • 黃河三峽遊玩需要多長時間?