文件中查成绩

问题描述:

【项目4 - 查成绩】
(1)score1.txt提供了某大学两个班某次测验的数据,包括每位同学的学号及成绩。
请编程序,输入学号,查找出该同学的成绩。
提示1:可以定义两个int型数组,其中一个n存放学号,另一个s存放成绩,可以保证两个数组中,元素下标相同,对应的是同一位同学。例如n[18]值为3123,s[18]为98,说明学号为3123的同学成绩为98。
提示2:因为数据无序,运用顺序查找算法,在n数组中依据学号进行查找,在s数组中对应下标的值则为其成绩。例如,通过在n中的查找,得出学号为3123的同学的下标为18,则其成绩为s[18]。
下面是完成应用的部分代码,已经能够输出成绩清单。请在此基础上实现有关的函数:

程序代码

 

#include <stdio.h>
#include <stdlib.h>
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun174.c
*问题描述:查成绩
*作者:小臣小仁
*完成日期:2017年10月21日
*/
int readData(int [],int []);
int search(int [],int,int);
int main()
{
    int num[200], score[200];  //分别保存学号和成绩
    int count;  //代表学生人数
    int index;  //代表查找到的学生的下标
    int key;
    count = readData(num, score);   //将成绩数据从文件中读到数组中
    printf("请输入要查找的学生学号:");
    scanf("%d",&key);
    index = search(num, count, key);  //在count个学生中查找学号为key的学生对应的下标
    if(index<0)    //输入的学号不存在时,index的值要求返回-1
        printf("不存在学号为%d的同学\n",key);
    else
        printf("学号为%d的同学的成绩是:%d\n", key, score[index]);
    return 0;
}
int readData(int num[],int score[])
{
    int i=0;
    FILE *fp;
    fp=fopen("score1.txt","r");
    if(fp==NULL)
    {
        printf("file cannot open!!");
        exit(0);
    }
    while(fscanf(fp,"%d%d",&num[i],&score[i])!=EOF)
          i++;
    fclose(fp);
    return i;
}
int search(int n[],int count,int key)
{
    int i=0;
    int index=-1;
    while(i<count)
    {
        if(n[i]==key)
        {
            index=i;
            break;
        }
        i++;
    }
    return index;
}

 

 

 

 

 

输出结果

 

心得体会

作为一个初学的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵tongue.gifuploading.4e448015.gif转存失败重新上传取消吐舌头

好的,你可以使用 Python 编程语言来读取并查询 txt 文件中的学生成绩。具体步骤如下: 1. 打开 txt 文件:使用 Python 的内置函数 open() 可以打开一个 txt 文件,如下所示: ``` with open('scores.txt', 'r') as f: scores = f.readlines() ``` 其中,`'scores.txt'` 是 txt 文件的路径,`'r'` 表示以只读方式打开文件,`f.readlines()` 可以读取文件中的所有行,并将其存储在变量 scores 中。 2. 解析学生成绩:将 txt 文件中的学生成绩解析为一个字典,如下所示: ``` student_scores = {} for score in scores: # 假设 txt 文件中每行的格式为:学生姓名 成绩 name, mark = score.strip().split(' ') student_scores[name] = int(mark) ``` 其中,`strip()` 函数用于去除每行末尾的换行符,`split()` 函数用于按空格分割每行内容,将学生姓名和成绩分别存储在变量 name 和 mark 中,最后将其添加到字典 student_scores 中。 3. 查询学生成绩:根据学生姓名查询其成绩,如下所示: ``` name = input('请输入学生姓名:') if name in student_scores: print('{} 的成绩是:{}'.format(name, student_scores[name])) else: print('找不到该学生的成绩!') ``` 其中,`input()` 函数用于获取用户输入的学生姓名,`if` 语句用于判断该学生是否存在于字典 student_scores 中,若存在,则输出其成绩,否则输出提示信息。 希望这些代码可以帮助你查询 txt 文件中的学生成绩
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值