当前位置:网站首页>学生成绩查找系统
学生成绩查找系统
2022-08-09 11:08:00 【追梦杰尼龟】
学生成绩查找系统
题目
:`学生成绩查找系统是一个根据姓名查找学生成绩的系统。系统可以录入是学生的姓名和成绩,录完之后可以输入查找条件,即学生的姓名,查找该生的成绩,如果存在该生的信息,则输出该生成绩,否则给出查无此人的提示信息。
输入
:题目输入包括录入学生信息和输入查找条件以及输入结束标志。insert语句表示录入学生信息,格式为字符insert+空格+字符串+空格+数字+换行符 ,例如 insert xiaohua 99 ,表示录入姓名为xiaohua的学生,其成绩为99 。 find语句表示查找某学生的信息,格式为字符find+空格+字符串+换行符。例如 find xiaohua。end语句表示输入结束,格式为字符end
输出
:对应每一条find语句都应该有一条输出语句。对于find xiaohua这条输入语句,因为已经插入过xiaohua的成绩 需要输出 99+换行符,否则查找不到输出-1+换行符。
输入格式
:
insert zhangsan 90
insert lisi 78
insert xiaoming 86
find xiaoming
find Jack
end
输出格式
:
86
-1
思路
1.因为需要不断地输入,所以在输入的时候需要用到while(scanf())。
2.需要存储学生的姓名和成绩,那就需要定义结构体数组。
3.查找–可以用字符串函数strcmp进行比对
4.输出的时候可以运用循环,遍历结构体数组,当查找到的和自己所需要的一样的,就循环输出。
代码实现
#include<stdio.h>
#include<string.h>
struct student
{
char name[20];
int score;
}stu[100];
int main()
{
char a[20]; //定义一维数组,用来存放insert , find, end
int cnt = 0; //计数器
while(scanf("%s",a))
{
if(strcmp(a,"end") == 0) //如果输入的字符串是end的话 就跳出
{
break;
}
if(strcmp(a,"insert") == 0) //如果输入的字符串是insert的话
//就将学生的姓名和成绩存入结构体数组之中
{
scanf("%s %d",&stu[cnt].name ,&stu[cnt].score );
cnt++; //每当输入过一个学生的姓名和成绩之后计数器加一
}
if(strcmp(a,"find") == 0) //如果输入的字符串是find的话
// 再定义一个数组存储需要查找的姓名
{
char b[20];
int flag = 0; //标记
scanf("%s",b);
int i; //定义循环变量i,用来遍历结构体数组
for(i=0; i<cnt; i++) //条件是i<cnt;遍历结构体数组
{
if(strcmp(b,stu[i].name ) == 0) //如果遍历的结构体数组之中有需要查询的姓名的话,
//输出并且将flag = 1;
{
printf("%d\n",stu[i].score );
flag = 1;
break;
}
}
if(flag == 0) //flag=0的都是没有存入结构体数组之中的,输出-1即可
{
printf("-1\n");
}
}
}
return 0;
}
注释之中详细的解释了代码
这道题就完成了!!!
边栏推荐
- Getting Started with MNIST Machine Learning
- MATLAB代码实现三次样条插值
- Numpy常用操作博客合集
- CentOS6.5 32bit安装Oracle-11gR2步骤说明
- 二叉树 前序是根在前(根左右)中序(左根右)
- PTA习题 三角形判断
- Solve 1. tensorflow runs using CPU but not GPU 2. GPU version number in tensorflow environment 3. Correspondence between tensorflow and cuda and cudnn versions 4. Check cuda and cudnn versions
- 日期工具类
- 无重复字符的最长子串
- The complete grammar of CSDN's markdown editor
猜你喜欢
随机推荐
华为VRRP+MSTP联动接口检测实验案例
API接口是什么?API接口常见的安全问题与安全措施有哪些?
Official explanation, detailed explanation and example of torch.cat() function
Qt读写.ini配置文件
Cesium加载三维模型数据
MATLAB中如何把cftool拟合的函数输出到命令行(解决如何导出拟合后的曲线数据)
ACM最长不下降子序列问题
MySQL查询性能优化七种武器之索引潜水
Qt获取EXE可执行文件的上一级目录下的文件
RPN principle in faster-rcnn
GOPROXY 中国代理
x86异常处理与中断机制(2)中断向量表
PTA 找出不是两个数组共有的元素
kubernetes中不可见的OOM
Oracle数据库的两种进入方式
PTA习题 阶梯电价(C)
最长回文子串
论文分享 | ACL2022 | 基于迁移学习的论元关系提取
x86异常处理与中断机制(1)概述中断的来源和处理方式
性能测试(03)-JDBC Request