输出学生信息
描述
请设计一个简单的学生成绩管理系统,要求系统实现以下功能:
1)插入一个学生的信息: Insert id name sex year month day x y z,
其中的参数分别为学号、姓名、性别、出生日期(年、月、日)、三门课的成绩,成绩为浮点数。
2)输出学生信息:
List 按输入顺序输出所有学生信息。
3)退出程序:
Quit或者Exit 请注意:姓名的长度不超过20。
输入
输入有多行,每行一条指令,指令格式如下:
Insert id name sex year month day x y z
其中的参数分别为学号、姓名、性别、出生日期(年、月、日)三门课的成绩,成绩为浮点数。
List 按输入顺序输出所有学生信息。
Quit或者Exit 输出"Good bye!"后结束程序。
输出
输出有多行,对应命令的输出如下:
Insert id name sex year month day x y z
插入后在单独的一行中输出"Insert:",然后在第二行中显示学生信息,
格式:id name sex year month day x y z ave sum,
分别为学号、姓名、性别、出生日期(年、月、日)和三门课(语文、数学、英语)的成绩, 平均成绩和总成绩,
数据之间用一个空格分开,成绩保留1位小数。
List 输出"List:"后,按输入的顺序输出所有学生的信息,格式与插入学生信息后输出的格式相同。
Quit或者Exit 在单独一行中输出"Good bye!"后结束程序。
输入样例 1
Insert 0911001 zhangsan F 1992 3 24 87 78 65 Insert 0911003 Lisi F 1992 5 3 77 72 55 Insert 0911005 Wangrong F 1990 12 12 68 56 100 Insert 0911004 Wangwu F 1991 9 2 68 56 95 List Quit
输出样例 1
Insert: 0911001 zhangsan F 1992 3 24 87.0 78.0 65.0 76.7 230.0 Insert: 0911003 Lisi F 1992 5 3 77.0 72.0 55.0 68.0 204.0 Insert: 0911005 Wangrong F 1990 12 12 68.0 56.0 100.0 74.7 224.0 Insert: 0911004 Wangwu F 1991 9 2 68.0 56.0 95.0 73.0 219.0 List: 0911001 zhangsan F 1992 3 24 87.0 78.0 65.0 76.7 230.0 0911003 Lisi F 1992 5 3 77.0 72.0 55.0 68.0 204.0 0911005 Wangrong F 1990 12 12 68.0 56.0 100.0 74.7 224.0 0911004 Wangwu F 1991 9 2 68.0 56.0 95.0 73.0 219.0 Good bye!
提示
HINT 时间限制:200ms 内存限制:64MB
#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
struct student
{
string id, name, sex;
int year, month, day;
double x, y, z, ave, sum;
}stu[N];
void input(student &s)
{
cin >> s.id >> s.name >> s.sex;
cin >> s.year >> s.month >> s.day;
cin >> s.x >> s.y >> s.z;
s.sum = s.x + s.y + s.z;
s.ave = s.sum / 3;
}
void outputsingle(student s)
{
cout << s.id << " " << s.name << " " << s.sex << " " ;
printf("%d %d %d ", s.year, s.month, s.day);
printf("%.1f %.1f %.1f ", s.x, s.y, s.z);
printf("%.1f %.1f\n", s.ave, s.sum);
}
void outputArray(student stu[],int n)
{
for(int i = 0; i < n; i ++) outputsingle(stu[i]);
}
int find(student stu[], int n, string id)
{
for(int i = 0; i < n; i ++)
if(stu[i].id == id)
return i;
return -1;
}
int main()
{
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
string order;
student s;
int n = 0;
while(true)
{
cin >> order;
if(order == "Insert")
{
input(s);
stu[n ++] = s;
puts("Insert:");
outputsingle(s);
}
else if(order == "List")
{
puts("List:");
outputArray(stu,n);
}
else if(order == "Quit" || order == "Exit")
{
puts("Good bye!");
break;
}
}
return 0;
}
1万+

被折叠的 条评论
为什么被折叠?



