(切割字符串)成绩查询系统

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

样例输入:

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

样例输出:

86

-1

#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <string.h> 
#include <algorithm>
#include <map>
#include <sstream>
using namespace std;

int n,m;
int ans=0;
bool vis[105];
int dp[105],aa[105];
map<string,int> mp;
int main() {
    string op,name,sc;
    while(getline(cin,op)){
        stringstream ss(op);
        if(ss>>op){
            if(op=="end"){
                return 0;
            }
            else if(op=="insert"){
                ss>>op;                         //字符后移 
                name=op;
                ss>>op;
                sc=op;
                int sum=0;
                for(int i=0;i<sc.length();i++){
                    sum=sum*10+(sc[i]-'0');
                }
                if(mp[name]<sum){
                    mp[name]=sum;
                }
            }
            else{
                ss>>op;
                name=op;
                if(mp.count(name))
                cout<<mp[name]<<endl;
                else
                cout<<-1<<endl;
            }
        }
    } 
    return 0;
}
原文地址:https://www.cnblogs.com/xusi/p/12614203.html