C语言的学生管理系统Demo(录入信息/信息查询/信息导出为文件)

C语言的学生管理系统

  • 学生的信息包括
    • 姓名
    • 性别
    • 年龄
    • 籍贯
    • 学号
    • 班级
    • 院系
  • 使用结构体数组存储学生的信息
  • 实现学生信息的录入
  • 实现学生信息的查询
  • 实现学生信息的导出
  • 其他功能请自行拓展,emmm

录入信息

主要代码

 // 录入函数 
 void entering()
 {
    int i;
    for (i = 0; i < N; ++i)
    { 
        printf("\n\n---------录入学生 %d 的信息---------\n\n", i + 1);
        inputStr(S[i].name, "姓名"); 
        inputStr(S[i].gender, "性别"); 
        inputNum(&(S[i].age), "年龄"); 
        inputStr(S[i].place, "籍贯"); 
        inputStr(S[i].number, "学号"); 
        inputStr(S[i].clazz, "班级"); 
        inputStr(S[i].department, "院系"); 
    }
 } 

信息查询

主要代码

 // 查询函数 
 void query()
 {
    int i;
    char number[10];
    printf("\n\n输入需要查询的学号:");
    scanf("%s", number);
    for (i = 0; i < N; ++i)
    {
        if (strcmp(number, S[i].number) == 0)
        {
            printf("\n--------学生信息--------\n"); 
            outputStr(S[i].name, "姓名"); 
            outputStr(S[i].gender, "性别"); 
            outputNum((S[i].age), "年龄"); 
            outputStr(S[i].place, "籍贯"); 
            outputStr(S[i].number, "学号"); 
            outputStr(S[i].clazz, "班级"); 
            outputStr(S[i].department, "院系"); 
            printf("\n------------------------\n"); 
            break;
        }
    }
    if (i == N)
    {
        printf("\n未查找到该学生的信息\n");
    }
    printf("按任意键继续...");
    getchar(); 
    getchar(); 
 }

导出信息

主要代码

 // 导出函数
 void export()
 {
    FILE *f;
    int i;
    f = fopen("export.txt", "w");
    printf("\n-------------------------\n导出中,请等待...\n");
    for (i = 0; i < N; ++i)
    {
        fprintf(f, "\n--------学生信息 %d--------\n", i + 1); 
        exportStr(f, S[i].name, "姓名"); 
        exportStr(f, S[i].gender, "性别"); 
        exportNum(f, (S[i].age), "年龄"); 
        exportStr(f, S[i].place, "籍贯"); 
        exportStr(f, S[i].number, "学号"); 
        exportStr(f, S[i].clazz, "班级"); 
        exportStr(f, S[i].department, "院系"); 
        fprintf(f, "\n---------------------------\n"); 
    } 
    fclose(f);
    printf("\n学生信息已导出为“export.txt”\n-------------------------\n按任意键继续...");
    getchar(); 
 }

全部代码

#include <stdio.h>
#include <stdlib.h> 
#include <string.h>  

 struct student
 {
    char name[10];
    char gender[10];
    int age;
    char place[10];
    char number[10];
    char clazz[10];
    char department[10];
 }stu, * s;

 #define N 3

 // 学生数组 
 struct student S[N]; 

 // 输入字符串
 void inputStr(char * c, char * tips);
 // 输入数字
 void inputNum(int * n, char * tips); 
 // 录入函数 
 void entering();
 // 查询函数 
 void query();
 // 导出函数
 void export();
 // 输出字符串 
 void  outputStr(char * c, char * tips);
 // 输出数字 
 void  outputNum(int n, char * tips);
 // 写出字符串信息
 void  exportStr(FILE * f, char * c, char * tips);
 // 输出数字信息 
 void  exportNum(FILE * f, int n, char * tips); 


 int main() 
 {
    int op; // 操作方式 
    int loop = 1; // 是否循环
    while (loop)
    {
        system("cls");
        printf("\n============= 学生管理系统 =============\n"); 
        printf("\n0:退出系统 \t1:录入信息 \t2:查询信息 \t3:导出信息\n");
        printf("\n请输入你的选择:");
        scanf("%d", &op);
        getchar();
        switch(op)
        {
            case 0: // 退出 
                loop = 0;
                break;
            case 1: // 录入信息 
                entering();
                break;
            case 2: // 查询
                query();
                break;
            case 3: // 导出 
                export();
                break;
            default: break; 
        }
        printf("\n感谢使用本系统,系统已退出\n");
    }
 }

  // 输入字符串
 void inputStr(char * c, char * tips)
 {  
    printf("请输入%s:", tips);
    gets(c);
 }
 // 输入数字
 void inputNum(int * n, char * tips)
 {
    printf("请输入%s:", tips);
    scanf("%d", n);
    getchar();
 } 
 // 录入函数 
 void entering()
 {
    int i;
    for (i = 0; i < N; ++i)
    { 
        printf("\n\n---------录入学生 %d 的信息---------\n\n", i + 1);
        inputStr(S[i].name, "姓名"); 
        inputStr(S[i].gender, "性别"); 
        inputNum(&(S[i].age), "年龄"); 
        inputStr(S[i].place, "籍贯"); 
        inputStr(S[i].number, "学号"); 
        inputStr(S[i].clazz, "班级"); 
        inputStr(S[i].department, "院系"); 
    }
 } 

 // 输出字符串信息
 void  outputStr(char * c, char * tips)
 {
    printf("%s: %s\n", tips, c);
 }

 // 输出数字信息 
 void  outputNum(int n, char * tips)
 {
    printf("%s: %d\n", tips, n);
 } 

 // 写出字符串信息
 void  exportStr(FILE * f, char * c, char * tips)
 {
    fprintf(f, "%s: %s\n", tips, c);
 }

 // 输出数字信息 
 void  exportNum(FILE * f, int n, char * tips)
 {
    fprintf(f, "%s: %d\n", tips, n);
 } 



 // 查询函数 
 void query()
 {
    int i;
    char number[10];
    printf("\n\n输入需要查询的学号:");
    scanf("%s", number);
    for (i = 0; i < N; ++i)
    {
        if (strcmp(number, S[i].number) == 0)
        {
            printf("\n--------学生信息--------\n"); 
            outputStr(S[i].name, "姓名"); 
            outputStr(S[i].gender, "性别"); 
            outputNum((S[i].age), "年龄"); 
            outputStr(S[i].place, "籍贯"); 
            outputStr(S[i].number, "学号"); 
            outputStr(S[i].clazz, "班级"); 
            outputStr(S[i].department, "院系"); 
            printf("\n------------------------\n"); 
            break;
        }
    }
    if (i == N)
    {
        printf("\n未查找到该学生的信息\n");
    }
    printf("按任意键继续...");
    getchar(); 
    getchar(); 
 }
 // 导出函数
 void export()
 {
    FILE *f;
    int i;
    f = fopen("export.txt", "w");
    printf("\n-------------------------\n导出中,请等待...\n");
    for (i = 0; i < N; ++i)
    {
        fprintf(f, "\n--------学生信息 %d--------\n", i + 1); 
        exportStr(f, S[i].name, "姓名"); 
        exportStr(f, S[i].gender, "性别"); 
        exportNum(f, (S[i].age), "年龄"); 
        exportStr(f, S[i].place, "籍贯"); 
        exportStr(f, S[i].number, "学号"); 
        exportStr(f, S[i].clazz, "班级"); 
        exportStr(f, S[i].department, "院系"); 
        fprintf(f, "\n---------------------------\n"); 
    } 
    fclose(f);
    printf("\n学生信息已导出为“export.txt”\n-------------------------\n按任意键继续...");
    getchar(); 
 }

效果截图

录入
录入

查询
查询

导出
导出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值