这要怎么写gshsjsis

输入学生信息,之后怎么按学号查询学生信息,按学号修改信息呢
sbdklskshavhdjkds

可以看看我写的这个,刚发的
https://blog.csdn.net/weixin_44882124/article/details/125285056

img

你要的是学生管理程序吗?如下:
https://github.com/csyxwei/StudentScoreManagerSystem/blob/master/%E6%88%90%E7%BB%A9%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F.c
该程序包括以下功能:
1.录入每个学生的学号、姓名和各科考试成绩

2.计算每门课程的总分和平均分

3.计算每个学生的总分和平均分

4.按每个学生的总分由高到低排出名次表

5.按每个学生的总分由低到高排出名次表

6.按学号由小到大排出成绩表

7.按姓名的字典顺序排出成绩表

8.按学号查询学生排名及其考试成绩

9.按姓名查询学生排名及其考试成绩

10.按优秀(90-100)、良好(80-89)、中等(70-79)、及格(60-69)、不及格(0-59)5个类别,对每门课程分别统计每个类别的人数以及所占的百分比

11.输出每个学生的学号、姓名、各科考试成绩,以及每门课程的总分和平均分

12.将每个学生的纪录信息写入文件

13.从文件中读出每个学生的纪录信息并显示

供参考:

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
#define N 100
typedef struct Dormitory {
    char name[32];  //姓名
    char id[16];    //学号
    char dormNo[32];//班级
    char sex[4];    //性别
    char details[64];//联系方式
}dorm;
dorm dor[N];
int  cnt = 0;
void menu()
{
    printf("\t\t***********************************************\n\n");
    printf("\t\t                学生学籍管理系统               \n\n");
    printf("\t\t***********************************************\n\n");
    printf("\t\t***********************************************\n");
    printf("\t\t                  1.添加记录                   \n");
    printf("\t\t                  2.查询记录                   \n");
    printf("\t\t                  3.修改记录                   \n");
    printf("\t\t                  4.删除记录                   \n");
    printf("\t\t                  5.浏览记录                   \n");
    printf("\t\t                  6.退    出                   \n");
    printf("\t\t***********************************************\n");
    printf("\t\t请选择(1 - 6):");
}
void add()
{
    printf("请输入姓名:");     scanf("%s", dor[cnt].name);    getchar();
    printf("请输入学号:");     scanf("%s", dor[cnt].id);      getchar();
    printf("请输入班级:");     scanf("%s", dor[cnt].dormNo);  getchar();
    printf("请输入性别:");     scanf("%s", dor[cnt].sex);     getchar();
    printf("请输入联系方式:"); scanf("%s", dor[cnt].details); getchar();
    cnt++;
    printf("请按任意键继续...");
    _getch();
}
void dispsingrecord(int i)
{
    if (i == -1)
        printf("未找到相关记录.\n");
    else {
        printf("姓名\t学号\t班 级\t性别\t联系方式\n");
        printf("%s  %s  %s  %s  %s\n", dor[i].name, dor[i].id,
            dor[i].dormNo, dor[i].sex, dor[i].details);
    }
    printf("请按任意键继续...");
    _getch();
}
int inquire()
{
    int  i;
    char n_id[32];
    if (cnt == 0) {
        return -1;
    }
    else {
        printf("请输入姓名或学号:");
        scanf("%s", n_id);
        for (i = 0; i < cnt; i++) {
            if (strcmp(dor[i].name, n_id) == 0 || strcmp(dor[i].id, n_id) == 0)
                return i;
        }
        if (i == cnt)
            return -1;
    }
}
void revise(int i)
{
    int choose = 1;
    if (i == -1)
        printf("未找到相关记录.\n");
    else {
        printf("待修改的记录信息:\n");
        printf("姓名:%s 学号:%s 班级:%s 性别:%s 联系方式:%s\n\n",
            dor[i].name, dor[i].id, dor[i].dormNo, dor[i].sex, dor[i].details);
        do {
            printf("请输入修改的信息(1.姓名  2.学号  3.班级  4.性别  5.联系方式  0.保存并退出修改):\n");
            scanf("%d", &choose);
            switch (choose)
            {
            case 1:printf("请输入新的姓名:"); scanf("%s", dor[i].name); break;
            case 2:printf("请输入新的学号:"); scanf("%s", dor[i].id);   break;
            case 3:printf("请输入新的班级:"); scanf("%s", dor[i].dormNo); break;
            case 4:printf("请输入新的性别:"); scanf("%s", dor[i].sex); break;
            case 5:printf("请输入新的联系方式:"); scanf("%s", dor[i].details); break;
            case 0:choose = 0; break;
            default:
                break;
            }
        } while (choose);
        printf("修改完成。\n");
    }
    printf("请按任意键继续...");
    _getch();
}
void del(int i)
{
    int k;
    if (i == -1)
        printf("未找到相关记录.\n");
    else {
        for (k = i; k < cnt - 1; k++)
            dor[k] = dor[k + 1];
        cnt--;
        printf("删除记录成功。\n");
    }
    printf("请按任意键继续...");
    _getch();
}
void browse()
{
    int i;
    if (cnt == 0)
        printf("无记录\n");
    else {
        printf("姓名\t学号\t班 级\t性别\t联系方式\n");
        for (i = 0; i < cnt; i++)
            printf("%s  %s  %s  %s  %s\n", dor[i].name, dor[i].id,
                dor[i].dormNo, dor[i].sex, dor[i].details);
    }
    printf("请按任意键继续...");
    _getch();
}
int main()
{
    int choose = 1;
    while (choose) {
        menu();
        scanf("%d", &choose);
        switch (choose)
        {
        case 1:add();     break;//添加
        case 2:dispsingrecord(inquire()); break;//查询
        case 3:revise(inquire()); break;//修改
        case 4:del(inquire()); break;//删除
        case 5:browse(); break; //浏览
        case 6:choose = 0; break;
        default:
            break;
        }
        system("cls");
    }
    return 0;
}

什么系统,有代码吗,帮你修改

img

1、按学号查询学生信息:输入学生信息是把学生学号存在字符数组中,比如:s[0][10]="123",s[1][10]="234"...,查询时输入要查询的学号,然后使用strcmp函数依次和已有的学号对比,如果有strcmp返回值=0,则输入这个学号的学生信息,实现查询功能;或者修改该学生信息。如下:

假设学号存在s[][]数组中:s[0][10]="123",s[1][10]="234"
scanf("%s",&str);         //输入要查询的学号
for(int i=0;i<n;i++)       //n是学生人数
  if(strcmp(s[i],str)==0)   //比较是否有这个学号学生,如有执行printf语句
    printf("%s",s[i]);      //输出该学号学生信息,完成查询功能
    //s[i]="345"             //修改学生信息