100分求一个c++程序 写一个统计学生成绩的程序

写一个统计学生成绩的程序。分别用子函数求出:(1)输入n个学生m门功课的成绩(2)每个学生的平均分;(3)每门功课的平均分;(4)找出最高分所对应的学生和功课。
要求:(1)由四个单独的子函数完成上述功能
(2)用动态存储分配思想完成数组的定义

#include<iostream.h>#include<math.h>#include<stdio.h>#include<stdlib.h>
int studentNums; //ѧÉúÊýÁ¿int courseNums; //¿Î³ÌÊýÁ¿char **courseName; //¿Î³ÌÃû×Öchar **studentName; //ѧÉúÃû×Öfloat **scores; //ѧÉúËùÓгɼ¨float *aveScores; //ѧÉúûÃŹ¦¿ÎµÄƽ¾ù·Ö£»float *aveCourseScores; //ûÃſγ̵Äƽ¾ù³É¼¨£»
void inputScore(){ int i=0,j=0; //×÷Ϊ¼ÇÊýÑ­»·ÓÃ
cout<<"ÇëÊäÈëѧÉúÊýÁ¿£º "; //ÊäÈëѧÉúÊýÁ¿Label_1: cin >> studentNums; if(studentNums<=0) { cout<<"ѧÉúÊýÁ¿ÖÁÉÙΪ1£¬ÇëÖØÐÂÊäÈ룺 "; goto Label_1; }
cout<<"ÇëÊäÈë¿Î³ÌÊýÁ¿£º "; //ÊäÈë¿Î³ÌÊýÁ¿Label_2: cin >> courseNums; if(courseNums<=0) { cout<<"¿Î³ÌÊýÁ¿ÖÁÉÙΪ1£¬ÇëÖØÐÂÊäÈ룺 "; goto Label_2; } //ÊäÈëËùÓеĿγÌÃû courseName = new char*[courseNums]; aveCourseScores = new float[courseNums]; cout<<"ÏÖÔÚÇë¸ù¾ÝÌáʾÊäÈë¿Î³ÌÃû\n"; for(i=0;i<courseNums;i++) { cout<<"ÊäÈëµÚ"<<i+1<<"ÃſγÌÃû£º "; courseName[i] = new char[255]; cin >> courseName[i]; } //ÒÔÏÂÊÇÊäÈëËùÓÐѧÉúµÄid ºÍ ËùÓпγ̳ɼ¨ studentName = new char*[studentNums]; scores = new float*[studentNums]; aveScores = new float[studentNums]; for(i=0;i<studentNums;i++) scores[i] = new float[courseNums]; for(i=0;i<studentNums;i++) { cout<<"ÇëÊäÈëµÚ"<<i+1<<"¸öѧÉúµÄÐÕÃû£º"; studentName[i] = new char[255]; cin >> studentName[i]; for(j=0;j<courseNums;j++) { cout<<" ÊäÈë " << studentName[i] << " \tµÄ " <<courseName[j] << " ³É¼¨£º"; float score = 0; cin>> score; scores[i][j] = score; } } }
void calAveScores(){ int i=0,j=0; cout<<endl; for(i=0;i<studentNums;i++) { aveScores[i] = 0; for(j=0;j<courseNums;j++) { aveScores[i] += scores[i][j]; } if(courseNums != 0) aveScores[i] /= courseNums; cout<<studentName[i]<<"\tµÄƽ¾ù³É¼¨Îª£º"<<aveScores[i]<<endl; }}void calAveCourseScores(){ int i=0,j=0; cout<<endl; for(i=0;i<courseNums;i++) { aveCourseScores[i] = 0; for(j=0;j<studentNums;j++) { aveCourseScores[i] += scores[j][i]; } if(studentNums!=0) aveCourseScores[i] /= studentNums; cout<<courseName[i]<<"\tµÄƽ¾ù³É¼¨Îª£º"<<aveCourseScores[i]<<endl; }}void getmaxScores(){ int i=0,j=0; cout<<endl; int maxid_course=-1,maxid_student=-1; float maxscores = 0; for(i=0;i<courseNums;i++) { for(j=0;j<studentNums;j++) { if(scores[j][i] > maxscores) { maxscores = scores[j][i]; maxid_course = i; maxid_student = j; } } } if(maxid_course!= -1 || maxid_student != -1) { cout<<endl; cout<<"×î¸ß³É¼¨Îª£º"<<scores[maxid_student][maxid_course]<<endl; cout<<" ¶ÔÓ¦µÄ¿Î³ÌÃûΪ£º"<<courseName[maxid_course]<<endl; cout<<" ¶ÔÓ¦µÄѧÉúÃûΪ£º"<<studentName[maxid_student]<<endl; } }void main(){ int i=0,j=0; //×÷Ϊ¼ÇÊýÑ­»·ÓÃ
inputScore(); //ÊäÈë³É¼¨
calAveScores();//¼ÆËãƽ¾ù·Ö calAveCourseScores();//¼ÆËã¿Î³Ìƽ¾ù·Ö getmaxScores();
for(i=0;i<courseNums;i++) { delete scores[i]; delete courseName[i]; } for(i=0;i<studentNums;i++) { delete studentName[i]; } delete []studentName; delete []scores; delete []aveScores; delete []aveCourseScores; delete []courseName;}

//看看符合要求不追问

能分下段么。。还有¼ÆËãƽ¾ù·Ö是什么?

追答

怎么成这样了。。。你给个邮箱吧,我发你邮箱

追问

[email protected]

追答

#include "stdio.h" //程序运行必须包含的头文件,标准输入输出#include "string.h" //程序运行必须包含的头文件,含与字符串相关的#include
void findchar(char *src,char * sfindchar,int idfind[] ,int &idfindnums){ idfindnums = 0; for(int i=0;i= strlen(src) ) { hasfind = false; break; }
if(src[i+k]!=sfindchar[k]) { hasfind = false; break; } }
if(hasfind) { idfind[idfindnums++] = i; i+= strlen(sfindchar); }
} }}
void replacechar(char *src,char *sfindchar,char *sreplacechar){
int idfind[255]; int idfindnums = 0; findchar(src,sfindchar,idfind,idfindnums);
char s[3000] = {0}; int id = 0 ; int sum = 0; for(int i=0;i<strlen(src);i++) {
if(i==idfind[id]) { for(int k=0;k<strlen(sreplacechar);k++) s[sum++] = sreplacechar[k]; i += strlen(sfindchar)-1; id++; } else { s[sum++] = src[i]; } }
for( i=0;i<strlen(src);i++) src[i] = 0;
for( i=0;i<200 && i<strlen(s);i++) src[i] = s[i];
}
int main() // 主函数,每个程序都只能有且至少有1个,是程序的入口,函数类型是int型(整型),需要用return 返回一个整型值{
char *src = new char[200]; char *sfindchar = new char[20]; char *sreplacechar = new char[20];
cout<<"请输入一个原始字符串200字符以内:"; cin.getline(src,200);
cout<<"输入的原始字符串为"<<src<<endl;
cout<<"请输入要查找的字符串:"; cin.getline(sfindchar,20);
cout<<"请输入要替换的字符串: "; cin.getline(sreplacechar,20); replacechar(src,sfindchar,sreplacechar);
cout<<"替换后的字符串为:"<<src<<endl; }

追问

这是什么?!今天最后一天给完加分。。

追答

已经重发。发到你qq邮箱了。查收。

温馨提示:答案为网友推荐,仅供参考