成绩查询系统

来源:互联网 发布:nginx反向代理的原理 编辑:程序博客网 时间:2024/04/27 18:19

问题

数学老师小y 想写一个成绩查询系统,包含如下指令:

insert [name] [score],向系统中插入一条信息,表示名字为name的学生的数学成绩为score。
find [name],表示查找名字为name的学生的数学成绩。
注意有些同学可能会为了刷分多次选课,查询的时候给出最大成绩即可。学生的名字是由小写字母组成。成绩是一个 0 …100 的整数。

老师找到你,想你帮他完成这个系统。

输入格式

输入若干行,每行都是insert [name] [score]或者find [name]的形式,或一行end表示输入结束。输入行数不大于 1000,每个学生名字长度不大于 20 个字符。

输出格式

对于每个查询,输出查询的学生的最高成绩,如果系统中不存在该学生,输出 -1。

样例输入

insert zhangsan 90
insert lisi 78
insert xiaoming 86
find xiaoming
find jack
end

样例输出

86
-1


思路

此题可以用映射表map做,key为name,value为score


实现代码c++

#include <iostream>#include <map>using namespace std;int main(int argc, char *argv[]) {    map<string,int> m;    string s1;    int x[2000];    int p=0;    do {        cin>>s1;        if (s1=="insert") {            string name;            int score;            cin>>name>>score;            int Max=-1;            if (m.count(name)) {                Max=max(score,m[name]);                m[name]=Max;            }else {                m.insert(pair<string, int>(name,score));            }        }        if(s1=="find"){            string name2;            cin>>name2;            if (m.count(name2)) {                x[p]=m[name2];                p++;            }else {                x[p]=-1;                p++;            }         }    } while (s1!="end");    for (int i=0;i<p;i++) {        printf("%d\n",x[i]);    }    return 0;}
0 0
原创粉丝点击