#include
#include
#include
using namespace std;
typedef struct student
{
int ID;
char name[64];
int score[5];
}stu;
void input(stu s[],int n)
{
cout<<"请输入参加考试的学生人数:";
cin>>n;
cout<<"***********学生信息录入***********"<<endl;
for(int i=0;i<n;i++)
{
cout<<"请输入学号:";
cin>>s[i].ID;
cout<<"请输入学生姓名:";
cin>>s[i].name;
cout<<"请输入该学生的数学,英语,物理,计算机程序设计I和近代史五门成绩,用空格隔开"<<endl;
cin>>s[i].score[0]>>" ">>s[i].score[1]>>" ">>s[i].score[2]>>" ">>s[i].score[3]>>" ">>s[i].score[4];
}
cout<<"录入成功,请按回车返回主界面"<<endl;
}
void main()
{
int n=0,number;
stu s[64];
while(1)
{
system("cls");
cout<<"********************************************"<<endl;
cout<<"1. 录入每个学生的学号、姓名和各科考试成绩"<<endl;
cout<<"2. 计算每个学生的总分和平均分"<<endl;
cout<<"3. 按每个学生的总分由低到高排出名次"<<endl;
cout<<"4. 按姓名的字典顺序排出成绩单"<<endl;
cout<<"5. 按学号由小到大排出名次"<<endl;
cout<<"6. 按姓名查询学生成绩排名及其各科考试成绩"<<endl;
cout<<"7. 统计各分数段的学生人数及所占的百分比"<<endl;
cout<<"8. 打印学生成绩"<<endl;
cout<<"9.退出"<<endl;
cout<<"********************************************"<<endl;
cout<<"请输入你的选择:"<<endl;
cin>>number;
if(1!=number&&9!=number)
{
cout<<"未录入学生学号,姓名和各科考试成绩,请先录入数据";
system("pause");
continue;
}
cout<<"根据用户输入的选项执行相应的操作:"<<endl;
switch(number)
{
case 1:
input(s,n);
system("pause");
break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
cout<<"程序运行结束!"<<endl;
exit(0);
}
}
}
学生成绩系统录入函数为什么只执行了一次
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2021-11-26 07:25关注
你是指input函数只被调用了一次,还是input函数中的输入循环只执行了一次?
n值在input中进行输入是有问题的啊,函数外部是无法知道到底输入了几个学生信息的。n最好定义为指针,这样能够把n值返回给调用代码,确保后续的学生信息处理能够知道有多少个学生本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报