思维导图
课后作业
使用菜单框架完成:
功能1(信息录入):提示并输入学生的个数,并分别录入学生的成绩
功能2(信息输出):输出目前的所有学生的成绩
功能3(求最值):输出所有学生中的最高分和最低分
功能4(查找):提示并输入一个分数,查找该分数是否存在
功能5(及格率):输出学生的及格率(90分及以上及格)
功能6:将成绩进行逆序
功能7:添加一个学生分数到容器末尾
功能8:提示并输入一个位置,修改该位置上的数值(也是输入进来的)
功能9:给出一个位置,删除该位置上的数据 : 1,2,3,4,5 --> 删除第三个元素后 1,2,4,5
功能0:退出系统
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
1
请输入成绩个数
4
请输入成绩
12
23
98
94
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
2
12.00 23.00 98.00 94.00
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
3
最低分为12.00
最低分是第1位学生
最高分为98.00
最高分是第3位学生
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
4
输入你要查找的分数
23
你要找的分数在第2个位置
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
5
及格率为50.00%
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
6
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
7
输入要添加的成绩
23
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
8
请输入你要修改的值的位置
3
请输入你要修改的值
97
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
2
94.00 98.00 97.00 12.00 23.00
***************************************
请根据功能序号进行功能`的选择:
1.信息录入
2.信息输出
3.求最值
4.查找
5.及格率
6.将成绩逆序
7.成绩添加到末尾
8.提示并输入一个位置并修改该位置上的值
9.给出一个位置,删除该位置上的数据
0.退出系统
0
欢迎下次继续使用本系统,再见!
#include <myhead.h>
int main(int argc, const char *argv[])
{
double arr[50];//定义成绩数组
int len = 0;//数组中实际被使用的长度
while(1)
{
int number;
printf("\n***************************************\n");
printf("请根据功能序号进行功能`的选择:\n");
printf("1.信息录入 \n2.信息输出\n3.求最值 \n4.查找 \n5.及格率\n");
printf("6.将成绩逆序 \n7.成绩添加到末尾 \n8.提示并输入一个位置并修改该位置上的值\n9.给出一个位置,删除该位置上的数据 \n0.退出系统\n");
scanf("%d",&number);//输入功能序号
switch(number)
{
case 1://信息录入
{int a1;//输入成绩的个数
printf("请输入成绩个数\n");
scanf("%d",&a1);
printf("请输入成绩\n");
len += a1;
for(int i=0;i<a1;i++)
{
scanf("%lf",&arr[i]);
}
}
break;
case 2://信息输出
{
for(int i=0;i<len;i++)
{
printf("%.2lf\t",arr[i]);
}
}
break;
case 3://求最高分和最低分
{
//求最小值
double min = arr[0];
int count = 0;
for(int i=0;i<len;i++)//循环比较出最小值
{
if(arr[i]<min)
{
min = arr[i];
count = i;
}
}
printf("最低分为%.2lf\n",min);
printf("最低分是第%d位学生\n",count+1);
//求最大值
double max = arr[0];
count = 0;
for(int i=0;i<len;i++)//循环比较出最大值
{
if(arr[i]>max)
{
max = arr[i];
count = i;
}
}
printf("最高分为%.2lf\n",max);
printf("最高分是第%d位学生\n",count+1);
}
break;
case 4://查找
{
double a2;//查找时输入的分数
int double1 = 0;//记录查找到的个数
printf("输入你要查找的分数\n");
scanf("%lf",&a2);
for(int i=0;i<len;i++)//循环查找
{
if(arr[i] == a2)
{
double1 ++;
printf("你要找的分数在第%d个位置\n",i+1);
}
}
if(double1 == 0)
{
printf("你查找的分数不存在\n");
}
}
break;
case 5://输出及格率(90分及以上)
{
int people =0;//定义及格人数
for(int i=0;i<8;i++)
{
if(arr[i]>=90)
{
people++;
}
}
printf("及格率为%.2f%%\n",1.0*people/len*100);//输出及格率
}
break;
case 6://成绩逆序
{
for(int i=0;i<len/2;i++)
{
arr[i]= arr[len-1-i] + arr[i];
arr[len-1-i] = arr[i] - arr[len-1-i];
arr[i] =arr[i] - arr[len-1-i];
}
printf("逆序成功\n");
}
break;
case 7://添加一个学生成绩到末尾
{
printf("输入要添加的成绩\n");
scanf("%lf",&arr[len]);
len++;
}
break;
case 8://输入一个位置,修改该位置的值
{
int location;// 位置
printf("请输入你要修改的值的位置\n");
scanf("%d",&location);
printf("请输入你要修改的值\n");
scanf("%lf",&arr[location-1]);
}
break;
case 9://给出位置,删除该位置上的数据
{
int location;// 位置
printf("请输入你要删除的值的位置\n");
scanf("%d",&location);
for(int i=location;i<len;i++)
{
arr[i-1] = arr[i];
len--;
}
}
break;
case 0://退出
{
printf("欢迎下次继续使用本系统,再见!\n");
}
break;
default :
{
printf("输入有误,请从新输入\n");
}
break;
}
if(number == 0)//退出系统
{
break;
}
}
return 0;
}