c语言成绩查询系统大作业,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写了一个,仅供参考。

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

1 #include

2 #include

3 #include

4 #include

5 #include

6 using namespacestd;7 structinfo{8 stringname;9 intscore;10 }stu;11 /*

12 定义find函数:13 功能:在容器中按姓名查找是否有相同姓名的记录;14 参数:结构体类型的容器,字符串类型的姓名;15 返回值类型:指向某条数据的指针。16 */

17 vector::iterator find(vector&stu,stringname){18 vector::iterator it;//声明迭代器

19 for(it=stu.begin();it!=stu.end();it++){20 if(it->name==name)21 break;22 }23 return it;//返回的是指向某条数据的指针

24 }25 intmain(){26 stringsign,name;27 intscore;28 vector inf;//声明结构体类型的容器,用来存放数据

29 cin>>sign;//录入操作符

30 vector::iterator it;//声明迭代器

31 while(sign!="end"){32 if(sign=="insert"){33 cin>>stu.name>>stu.score;//录入

34 it = find(inf,stu.name);//调用函数

35 if(it==inf.end()){36 inf.push_back(stu);37 }else if(it->score

38 inf.insert(it,stu);//存放分数高的记录

39 }else{//没有找到,新存一条记录

40 inf.insert(it+1,stu);41 }42 }43 else if(sign=="find"){44 cin>>stu.name;//录入

45 it=find(inf,stu.name);//调用函数

46 cout<score<name<score<>sign;//执行完一遍操作,进入下一遍

54 }55 return 0;56 }

20180110230204953801.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值