抱歉,昨天忘了往博客上更新,今天补上。

成绩查询系统

分值: 21

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

  1. insert [name] [score],向系统中插入一条信息,表示名字为name的学生的数学成绩为score。
  2. 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

作者注释:本人能力有限,用纯C写的有bug,整std写了一个,仅供参考。

对了,代码功能添加了一个查询所有记录的功能,删掉即符合题意了。

 #include<stdio.h>
#include<vector>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;
struct info{
string name;
int score;
}stu;
/*
定义find函数:
功能:在容器中按姓名查找是否有相同姓名的记录;
参数:结构体类型的容器,字符串类型的姓名;
返回值类型:指向某条数据的指针。
*/
vector<info>::iterator find(vector<info>&stu,string name){
vector<info>::iterator it;//声明迭代器
for(it=stu.begin();it!=stu.end();it++){
if(it->name==name)
break;
}
return it;//返回的是指向某条数据的指针
}
int main(){
string sign,name;
int score;
vector<info> inf;//声明结构体类型的容器,用来存放数据
cin>>sign;//录入操作符
vector<info>::iterator it;//声明迭代器
while(sign!="end"){
if(sign=="insert"){
cin>>stu.name>>stu.score;//录入
it = find(inf,stu.name);//调用函数
if(it==inf.end()){
inf.push_back(stu);
}else if(it->score<stu.score){//若刚刚输入的成绩大于已存的成绩
inf.insert(it,stu);//存放分数高的记录
}else{//没有找到,新存一条记录
inf.insert(it+,stu);
}
}
else if(sign=="find"){
cin>>stu.name;//录入
it=find(inf,stu.name);//调用函数
cout<<it->score<<endl;
}
else if(sign=="all"){
for(it=inf.begin();it!=inf.end();it++){
cout<<it->name<<" "<<it->score<<endl;
}
}
cin>>sign;//执行完一遍操作,进入下一遍
}
return ;
}

此题学到一个处理出入输出的技巧:用while来做判断。

如题中while(sign!="end"){······}。

补:今天有人提到此题,用map写:

 #include<map>
#include<math.h>
#include<iostream>
using namespace std;
int main(){
map<string,int> m;
string sign,name;
int score;
while(){
cin>>sign;
if(sign=="end"){
break;
}
else if(sign=="insert"){
cin>>name>>score;
if(score>m[name]){
m[name] = score;
}
}
else if(sign=="find"){
cin>>name;
if(m[name]==){
cout<<"-1"<<endl;
}else{
cout<<m[name]<<endl;
}
}
}
return ;
}

C语言 · 成绩查询系统的更多相关文章

  1. C语言程序设计#成绩查询系统

    学生成绩管理系统 [注释]:请点赞,好人一生平[yi]安[wo]. #codeblocks程序下编写 #include<stdio.h>#include<stdlib.h>// ...

  2. 暑假闲着没事第一弹:基于Django的长江大学教务处成绩查询系统

    本篇文章涉及到的知识点有:Python爬虫,MySQL数据库,html/css/js基础,selenium和phantomjs基础,MVC设计模式,ORM(对象关系映射)框架,django框架(Pyt ...

  3. C语言身份证信息查询系统(修改版)

    很久以前写了一个<C语言身份证信息查询系统>,如果你点击链接进去看了. 估计也会被我那磅礴大气的代码震惊到的,最近复习/学习文件操作,把代码改了改,算是对以前还不会文件操作的时候的愿望,哈 ...

  4. C语言-用函数实现社保工资查询系统

    需求: 1.有登陆操作,超过三次需重新打开登录 2.查询五险一金.税前税后工资计算,个人与单位应缴明细 3.输入税后工资和税前工资都可查询 4.退出有询问确认操作 代码如下; #include< ...

  5. 用excel打造报表查询系统

    网络数据库以及ERP在中小型企业中日益风行,虽然ERP功能强大,但有的ERP报表系统中规范的报表较少,主要提供二次开发接口或通过如CRYSTALREPORT等其他报表工具进行管理,其实我们可以使用Ex ...

  6. 【百度地图API】建立全国银行位置查询系统(二)——怎样为地图添加控件

    原文:[百度地图API]建立全国银行位置查询系统(二)--怎样为地图添加控件 <摘要>你将在第二章中学会以下知识: 使用手写代码的利器——notepad++: 如何为地图添加控件——鱼骨. ...

  7. Android查询系统的音频(音乐播放器的核心)

    //查询系统的音频库 public static List<MusicBean> getMusicInfo(Context context){ List<MusicBean> ...

  8. PHP中CURL技术模拟登陆抓取网站信息,用与微信公众平台成绩查询

    伴随微信的红火,微信公众平台成为许多开发者的下一个目标.笔者本身对于这种新鲜事物没有如此多的吸引力.但是最近有朋友帮忙开发微信公众平台中一个成绩查询的功能.于是便在空余时间研究了一番. 主要的实现步骤 ...

  9. 【云图】如何制作全国KTV查询系统?

    原文:[云图]如何制作全国KTV查询系统? 摘要:本文以[唱吧]531麦霸音乐节为案例,详细解读了如何导入自有数据到高德云图,并进行检索和展示.最后,调起高德mobile地图来进行路线规划和周边查询. ...

随机推荐

  1. Easyui中 messager出现的位置

    $.messager.alert 弹出框的位置随页面的长度越大越靠下. $.messager.alert('消息','只能对单个客户进行清款!','info'); 弹出的位置 太靠下方.修改为: $. ...

  2. MySQL 错误1418

    创建function的时候报如下错误: Error Code : This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA ...

  3. [转]什么是C++虚函数、虚函数的作用和使用方法

    我们知道,在同一类中是不能定义两个名字相同.参数个数和类型都相同的函数的,否则就是“重复定义”.但是在类的继承层次结构中,在不同的层次中可以出现名字相同.参数个数和类型都相同而功能不同的函数.例如在例 ...

  4. Spring boot注解(annotation)含义详解

    Spring boot注解(annotation)含义详解 @Service用于标注业务层组件@Controller用于标注控制层组件(如struts中的action)@Repository用于标注数 ...

  5. VB的一些项目中常用的通用方法-一般用于验证类

    1.VB的一些项目中常用的通用方法: ' 设置校验键盘输入值,数字 Public Function kyd(key As Integer) As Integer Dim mychar mychar = ...

  6. 【python】Python 资源大全中文版

    申明:感谢原作者的整理与分享,本篇文章分享自:https://www.jianshu.com/p/9c6ae64a1bd7 GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常 ...

  7. Google Mesa概览

    Google Mesa的文章:https://research.google.com/pubs/pub42851.html  https://gigaom.com/2014/08/07/google- ...

  8. curl以cookie的方式登录

    curl -o /dev/null -s -w ‘%{time_connect}:%{time_starttransfer}:%{time_total}’ --cookie "UM_dist ...

  9. Android 推送集成华为,小米,友盟

    公司的 app 一直使用的是极光推送,最近反馈比较多的是推送消息收不到,看来需要找新的推送服务了,在国内目前手机品牌占有率比较多的是华为和小米,且这两家都有自己的推送服务,同时一个合作的友商说他们使用 ...

  10. ios开发-引导页实现

    源码:http://files.cnblogs.com/ios8/%5Bcode4app.com%5DIntroductionTutorialView_10843.zip 可以看看demo,很简单,我 ...