题目描述
您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 105 条):
- 插入与修改,格式
1 NAME SCORE
:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 SCORE(0<SCORE<231) 的学生。如果已经有同名的学生则更新这名学生的成绩为 SCORE。如果成功插入或者修改则输出OK
。 - 查询,格式
2 NAME
:在系统中查询姓名为 NAME 的学生的成绩。如果没能找到这名学生则输出Not found
,否则输出该生成绩。 - 删除,格式
3 NAME
:在系统中删除姓名为 NAME 的学生信息。如果没能找到这名学生则输出Not found
,否则输出Deleted successfully
。 - 汇总,格式
4
:输出系统中学生数量。
输入格式
无
输出格式
无
输入输出样例
输入 #1复制
5 1 lxl 10 2 lxl 3 lxl 2 lxl 4
输出 #1复制
OK 10 Deleted successfully Not found 0
代码实现:
方法一:用结构体:
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
#include <cstring>
using namespace std;
struct s {
char name[100];
double score;
} ss[1000];
// 查找姓名对应的数组下标
int insert(string name, int count) {
for (int i = 0; i < count; i++) {
if (string(ss[i].name) == name) {
return i;
}
}
return -1;
}
int main() {
int n, k, i = 0, count = 0,index;
cin >> n;
int sum = n;
while (sum--) {
string na;
double su;
cin >> k;
switch (k) {