C语言 · 成绩查询系统
抱歉,昨天忘了往博客上更新,今天补上。
成绩查询系统
分值: 21
数学老师小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
作者注释:本人能力有限,用纯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语言 · 成绩查询系统的更多相关文章
- C语言程序设计#成绩查询系统
学生成绩管理系统 [注释]:请点赞,好人一生平[yi]安[wo]. #codeblocks程序下编写 #include<stdio.h>#include<stdlib.h>// ...
- 暑假闲着没事第一弹:基于Django的长江大学教务处成绩查询系统
本篇文章涉及到的知识点有:Python爬虫,MySQL数据库,html/css/js基础,selenium和phantomjs基础,MVC设计模式,ORM(对象关系映射)框架,django框架(Pyt ...
- C语言身份证信息查询系统(修改版)
很久以前写了一个<C语言身份证信息查询系统>,如果你点击链接进去看了. 估计也会被我那磅礴大气的代码震惊到的,最近复习/学习文件操作,把代码改了改,算是对以前还不会文件操作的时候的愿望,哈 ...
- C语言-用函数实现社保工资查询系统
需求: 1.有登陆操作,超过三次需重新打开登录 2.查询五险一金.税前税后工资计算,个人与单位应缴明细 3.输入税后工资和税前工资都可查询 4.退出有询问确认操作 代码如下; #include< ...
- 用excel打造报表查询系统
网络数据库以及ERP在中小型企业中日益风行,虽然ERP功能强大,但有的ERP报表系统中规范的报表较少,主要提供二次开发接口或通过如CRYSTALREPORT等其他报表工具进行管理,其实我们可以使用Ex ...
- 【百度地图API】建立全国银行位置查询系统(二)——怎样为地图添加控件
原文:[百度地图API]建立全国银行位置查询系统(二)--怎样为地图添加控件 <摘要>你将在第二章中学会以下知识: 使用手写代码的利器——notepad++: 如何为地图添加控件——鱼骨. ...
- Android查询系统的音频(音乐播放器的核心)
//查询系统的音频库 public static List<MusicBean> getMusicInfo(Context context){ List<MusicBean> ...
- PHP中CURL技术模拟登陆抓取网站信息,用与微信公众平台成绩查询
伴随微信的红火,微信公众平台成为许多开发者的下一个目标.笔者本身对于这种新鲜事物没有如此多的吸引力.但是最近有朋友帮忙开发微信公众平台中一个成绩查询的功能.于是便在空余时间研究了一番. 主要的实现步骤 ...
- 【云图】如何制作全国KTV查询系统?
原文:[云图]如何制作全国KTV查询系统? 摘要:本文以[唱吧]531麦霸音乐节为案例,详细解读了如何导入自有数据到高德云图,并进行检索和展示.最后,调起高德mobile地图来进行路线规划和周边查询. ...
随机推荐
- background-size ie8不支持怎么解决
background-size这个属性是css3,新增的属性,现在很多浏览器已经支持了,但是IE系列的浏览器却没有支持,比如IE8,下面介绍下如何解决这个问题 在IE浏览器中,可以通过滤镜filter ...
- 还没被玩坏的robobrowser(4)——从页面上抓取感兴趣的内容
背景 本节的知识实际上是属于Beautiful Soup的内容. robobrowser支持Beautiful Soup,一般来说通过下面3个方法获取页面上感兴趣的内容 find find_all s ...
- 构建你的长寿命的API第1部分:规范驱动的API开发
构建你的长寿命的API第1部分:规范驱动的API开发 这篇文章是由MuleSoft的Mike Stowe在nginx.conf 2016公布的演示文稿改编的.第一部分重点是规范驱动的API开发. 第二 ...
- 传智播客c/c++公开课学习笔记--邮箱账户的破解与邮箱安全防控
一.SMTP协议 SMTP(SimpleMail Transfer Protocol)即简单邮件传输协议. SMTP协议属于TCP/IP协议簇,通过SMTP协议所指定的server,就能够把E-mai ...
- php file_get_contents读取大容量文件方法
当我们遇到文本文件体积很大时,比如超过几十M甚至几百M几G的大文件,用记事本或者其它编辑器打开往往不能成功,因为他们都需要把文件内容全部放到内存里面,这时就会发生内存溢出而打开错误,遇到这种情况我 ...
- VB的一些项目中常用的通用方法-一般用于验证类
1.VB的一些项目中常用的通用方法: ' 设置校验键盘输入值,数字 Public Function kyd(key As Integer) As Integer Dim mychar mychar = ...
- 孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!
最近我们试图从Dubbo迁移到Spring Cloud.为此对二者分别进行了性能测试.为了得出数据量不同的情况下的二者的性能表现,我们分别准备了一个25个属性pojo对象和一个50个属性的pojo对象 ...
- 关于 隐藏元素(样式为 display: none 的元素)及其子元素 获取不到高度的问题
IE 和 Edge 中都是这样,Chrome中好像还好. 方法就是换一个样式,还有一个控制显示隐藏的:visibility 相关文档:http://www.w3school.com.cn/cssref ...
- php获取图片RGB颜色值的例子
php获取图片RGB颜色值的例子 很多图片站点都会根据用户上传的图片检索出图片的主要颜色值,然后在通过颜色搜索相关的图片. 之前按照网上的方法将图片缩放(或者马赛克)然后遍历每个像素点,然后统计处RG ...
- [转载]java日志框架log4j详细配置及与slf4j联合使用教程
一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” 1 2 3 4 5 <dependen ...