1 //******************************************************** 2 //*程序作者:兔至 3 //*完成日期:2018年3月2日 4 //*章 节:第一章 5 //*题 号:习题4 6 //*题 目:学生成绩统计 7 // 从键盘输入一个班(全班最多不超过30人)学生某门课 8 // 的成绩,当输入成绩为负值时,输入结束,分别实现下列功能: 9 // (1)统计不及格人数并打印不及格学生名单; 10 // (2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单; 11 // (3)统计各分数段的学生人数及所占的百分比。 12 // 注:将成绩分为六个分数段, 13 // 60分以下为第0段, 14 // 60~69为第1段, 15 // 70~79为第2段, 16 // 80~89为第3段, 17 // 90~99为第4段, 18 // 100分为第5段。 19 // 编程要求: 20 // (1).较好的用户输入输出提示信息 21 // (2).使用子函数来实现上述各个功能 22 // (3).最好不要使用全局变量 23 //******************************************************** 24 25 #include<iostream> 26 #include<string> 27 using namespace std; 28 struct score 29 { 30 string name; 31 float point; 32 }; 33 void fail(score Score); 34 void exce(score Score); 35 void per(score Score); 36 int main() 37 { 38 score Score[30]; 39 int i; 40 char code; 41 for(i=0;Score[i].point >=0;i++) 42 { 43 cout << "请输入学生姓名:"; 44 cin >> Score[i].name; 45 cout << endl; 46 cout << "请输入该学生成绩:"; 47 cin >> Score[i].point; 48 cout << endl; 49 } 50 cout << "A、统计不及格人数并打印不及格学生名单\nB、统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单\nC、统计各分数段的学生人数及所占的百分比\n请输入您想进行的操作代号:"; 51 cin >> code; 52 switch(code) 53 { 54 case(‘A‘):fail(*Score);break; 55 case(‘B‘):exce(*Score);break; 56 case(‘C‘):per(*Score);break; 57 } 58 return 0; 59 } 60 61 void fail(score Score) 62 { 63 int i,count=0; 64 cout << "不及格的学生为:"; 65 for(i=0;Score[i].name !=‘\0‘;i++) 66 { 67 if(Score[i].point<60) 68 { 69 count++; 70 cout << Score[i].name<<" "; 71 } 72 } 73 cout << endl; 74 cout << "不及格的人数为:"<<count; 75 } 76 77 void exce(score Score) 78 { 79 float ave; 80 int sum=0,count=0,i,Count=0; 81 for(i=0;Score[i].name!=‘\0‘;i++) 82 { 83 count++; 84 sum+=Score[i].point; 85 } 86 ave=sum/count; 87 cout << "成绩在平均分及其上的学生为:"; 88 for(i=0;Score[i].name!=‘\0‘;i++) 89 { 90 if(Score[i].point>=ave) 91 { 92 cout << Score[i].name<<" "; 93 Count++; 94 } 95 } 96 cout << endl; 97 cout << "成绩在平均分及其上的学生人数为:"<<Count<<endl; 98 } 99 100 void per(score Score) 101 { 102 int count=0,count_0=0,count_1=0,count_2=0,count_3=0,count_4=0,count_5=0,i; 103 float per0,per1,per2,per3,per4,per5; 104 for(i=0;Score[i].name!=‘\0‘;i++) 105 { 106 count++; 107 if(Score[i].point<60) 108 count_0++; 109 else if(Score[i].point>=60&&Score[i].point<=69) 110 count_1++; 111 else if(Score[i].point>=70&&Score[i].point<=79) 112 count_2++; 113 else if(Score[i].point>=80&&Score[i].point<=89) 114 count_3++; 115 else if(Score[i].point>=90&&Score[i].point<=99) 116 count_4++; 117 else if(Score[i].point==100) 118 count_5++; 119 } 120 per0=count_0/(100*count); 121 per1=count_1/(100*count); 122 per2=count_2/(100*count); 123 per3=count_3/(100*count); 124 per4=count_4/(100*count); 125 per5=count_5/(100*count); 126 cout << "各分数段的学生人数及所占的百分比:\n"; 127 cout << "第0段:" <<per0<<"%"<<endl; 128 cout << "第1段:" <<per1<<"%"<<endl; 129 cout << "第2段:" <<per2<<"%"<<endl; 130 cout << "第3段:" <<per3<<"%"<<endl; 131 cout << "第4段:" <<per4<<"%"<<endl; 132 cout << "第5段:" <<per5<<"%"<<endl; 133 }
想要传递结构数组到子函数里,但是子函数里用“Score[i].point”就会提示格式不相称……
1 //******************************************************** 2 //*程序作者:兔至 3 //*完成日期:2018年3月1日 4 //*章 节:第一章 5 //*题 号:习题3 6 //*题 目: 身高预测:每个做父母的都关心自己孩子成人后的身高, 7 // 据有关生理卫生知识与数理统计分析表明,影响小孩成人后 8 // 的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人 9 // 后的身高与其父母的身高和自身的性别密切相关。 10 // 设faHeight为其父身高,moHeight为其母身高,身高预测公式为 11 // 男性成人时身高=(faHeight + moHeight)×0.54cm 12 // 女性成人时身高=(faHeight×0.923 + moHeight)/2cm 13 // 此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫 14 // 生饮食习惯,那么可增加身高1.5%。编程从键盘输入用户的性别 15 // (用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性) 16 // 父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、 17 // 是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱, 18 // 输入字符N表示不喜爱)、是否有良好的饮食习惯等条件 19 // (用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好) 20 // ,利用给定公式和身高预测方法对身高进行预测。 21 // 编程要求:有用户输入输出提示信息。 22 //******************************************************** 23 24 #include<iostream> 25 using namespace std; 26 int main() 27 { 28 float kheight,faheight,moheight; 29 char sex,diet,sports; 30 cout << "【儿童身高神预测】"<<endl; 31 cout << endl; 32 cout << "请输入父亲身高:"; 33 cin >> faheight; 34 cout << endl; 35 cout << "请输入母亲身高:"; 36 cin >> moheight; 37 cout << endl; 38 cout << "请输入孩子性别:"; 39 cin >> sex; 40 cout << endl; 41 if(sex == ‘F‘) 42 kheight=(faheight*0.923+moheight)/2; 43 else 44 kheight=(faheight + moheight)*0.54; 45 cout << "请问您的孩子喜爱运动吗?"; 46 cin >> sports; 47 if(sports==‘Y‘) 48 kheight*=1.02; 49 cout << endl; 50 cout << "请问您的孩子是否有良好的饮食习惯?"; 51 cin >> diet; 52 cout << endl; 53 if(diet==‘Y‘) 54 kheight*=1.015; 55 cout << "您的孩子的预测身高为:"<<kheight<<"cm\n[注:此预测仅供娱乐。]"; 56 return 0; 57 }
这个倒是挺好玩??