C语言实现学生信息管理系统(多文件)

C语言实现学生信息管理系统(多文件)攻略

1. 项目概述

该项目是一个基于C语言的学生信息管理系统,实现了学生的增删改查等功能,使用了多文件的方式组织代码,提高了代码的可维护性。

2. 实现步骤

2.1 文件结构

首先建立项目文件夹,并在文件夹中创建如下的文件:

  • main.c:包含主函数和系统的核心功能代码;
  • student.c:包含学生信息相关的实现代码;
  • student.h:包含学生信息相关的函数声明。

2.2 编写student.h文件

student.h 中声明学生信息相关的函数,例如:

#ifndef _STUDENT_H
#define _STUDENT_H

struct Student {
    int id;
    char name[20];
    int age;
    char sex[5];
};

extern struct Student students[100];
extern int count;

void addStudent(struct Student stu);
void modifyStudent(int id, struct Student new_stu);
void deleteStudent(int id);
struct Student queryStudent(int id);

#endif

2.3 编写student.c文件

student.c 中实现学生信息相关的函数,例如:

#include "student.h"
#include <stdio.h>

struct Student students[100];
int count = 0;

void addStudent(struct Student stu) {
    students[count++] = stu;
}

void modifyStudent(int id, struct Student new_stu) {
    for (int i = 0; i < count; i++) {
        if (students[i].id == id) {
            students[i] = new_stu;
            return;
        }
    }
    printf("未找到ID为 %d 的学生\n", id);
}

void deleteStudent(int id) {
    for (int i = 0; i < count; i++) {
        if (students[i].id == id) {
            for (int j = i + 1; j < count; j++) {
                students[j - 1] = students[j];
            }
            count--;
            return;
        }
    }
    printf("未找到ID为 %d 的学生\n", id);
}

struct Student queryStudent(int id) {
    for (int i = 0; i < count; i++) {
        if (students[i].id == id) {
            return students[i];
        }
    }
    printf("未找到ID为 %d 的学生\n", id);
    struct Student null_stu = {0, "", 0, ""};
    return null_stu;
}

2.4 编写main.c文件

main.c 中实现主函数和系统的核心功能,例如:

#include <stdio.h>
#include "student.h"

void printMenu() {
    printf("\n");
    printf("1. 添加学生信息\n");
    printf("2. 修改学生信息\n");
    printf("3. 删除学生信息\n");
    printf("4. 查询学生信息\n");
    printf("0. 退出\n");
    printf("\n");
}

void addStudentInfo() {
    struct Student stu;
    printf("请输入学号:");
    scanf("%d", &stu.id);
    printf("请输入姓名:");
    scanf("%s", stu.name);
    printf("请输入年龄:");
    scanf("%d", &stu.age);
    printf("请输入性别:");
    scanf("%s", stu.sex);
    addStudent(stu);
    printf("学生信息添加成功\n");
}

int main() {
    int choice = -1;
    while (choice != 0) {
        printMenu();
        printf("请选择:");
        scanf("%d", &choice);
        switch (choice) {
            case 1: addStudentInfo(); break;
            case 2: /* 修改学生信息 */ break;
            case 3: /* 删除学生信息 */ break;
            case 4: /* 查询学生信息 */ break;
            case 0: printf("退出系统\n"); break;
            default: printf("无效的选择\n"); break;
        }
    }
    return 0;
}

3. 示例说明

3.1 示例一

需求: 添加学生信息。

步骤:

  1. 用户输入学生信息;
  2. 调用 addStudent() 函数添加学生信息;
  3. 显示添加成功消息。

演示:

请输入学号:1001
请输入姓名:张三
请输入年龄:18
请输入性别:男
学生信息添加成功

3.2 示例二

需求: 查询学生信息。

步骤:

  1. 用户输入要查询的学生ID;
  2. 调用 queryStudent() 函数查询学生信息;
  3. 显示查询结果。

演示:

请输入要查询的学生ID:1001

学号:1001
姓名:张三
年龄:18
性别:男

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现学生信息管理系统(多文件) - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++ 压缩文件及文件夹方法 使用zlib开源库

    C++ 压缩文件及文件夹方法 使用zlib开源库 简介 本文将介绍如何使用zlib开源库在C++中实现文件及文件夹的压缩。 安装zlib 首先需要安装zlib开源库,可以在官网下载源码进行编译安装。也可以通过包管理器进行安装,如在Ubuntu中执行以下命令: sudo apt-get install zlib1g-dev 压缩文件 使用zlib库的压缩文件函…

    C 2023年5月23日
    00
  • C语言实现扫雷小游戏的示例代码

    C语言是一门广泛应用于计算机编程领域的编程语言,扫雷小游戏是一款经典的益智小游戏,下面将详细讲解如何使用C语言实现扫雷小游戏的示例代码的完整攻略。 设计游戏界面 在开始编写扫雷小游戏的代码之前,我们先需要设计游戏界面。游戏板块一般是一个二维矩阵,可以通过字符来表示不同单元是否有雷。我们可以借助C语言中的二维字符数组来实现这一点。下面是一个游戏板块的初始界面代…

    C 2023年5月24日
    00
  • vue和react中关于插槽详解

    当我们在使用Vue或React构建组件时,经常会遇到需要给组件传递内容的情况。比如一个弹出框,需要在内容区域中传递不同的文本、表单或者其他组件作为content。这时候,我们可以使用插槽的概念来进行解决。 概述 插槽(Slot)是Vue和React中组件通信的一种技术,它允许我们在一个组件的模板中预留一定的位置,然后在使用该组件的父组件中,使用自定义的内容来…

    C 2023年5月23日
    00
  • c语言中main函数用法及知识点总结

    标题:C语言中main函数用法及知识点总结 什么是main函数? 在C语言中,main函数是一个程序的入口,也是程序执行的起点。当程序被调用时,操作系统会首先找到程序中的main函数并执行它。因此,main函数通常是程序中必不可少的一部分。 main函数的定义和格式 main函数的定义和格式如下所示: int main(int argc, char *arg…

    C 2023年5月23日
    00
  • C语言中字符串和数字的相互转换实现代码

    C语言中字符串和数字的相互转换是常见的编程操作。下面是一些实现代码,以便帮助你进行相应的转换。 将字符串转换为数字 C语言中,字符串可以使用标准库函数 atoi() 转换为整数。由于 atoi() 是标准库函数,因此需要包含头文件 <stdlib.h>。 #include <stdio.h> #include <stdlib.h…

    C 2023年5月24日
    00
  • C语言实现学生信息管理系统开发

    C语言实现学生信息管理系统开发攻略 简介 学生信息管理系统是企事业单位、政府机关和社会组织等管理组织必不可少的一项基础工作,管理学生信息可以提高工作效率,有效保证了各项工作的有序开展。本文将以C语言为开发语言,实现学生信息管理系统的开发。 开发工具 开发学生信息管理系统的首选是C语言,然后我们需要一款好用的IDE进行编写,比如Visual Studio Co…

    C 2023年5月23日
    00
  • 浅谈c++11闭包的实现

    浅谈C++11闭包的实现 什么是闭包 闭包是一种特殊的函数,它可以访问它的外部作用域中的变量,并且可以在离开作用域后仍然继续访问这些变量。在C++中,闭包通常会通过lambda函数来实现。 Lambda表达式简介 Lambda表达式是C++11引入的新特性,它是一种匿名函数,可以用于定义匿名临时函数对象。Lambda表达式通常有以下形式: [capture …

    C 2023年5月22日
    00
  • R语言常见面试题整理

    R语言常见面试题整理 1. R语言基础 1.1 R中的数据类型有哪些? 在R语言中,常见的数据类型包括: 数值型(numeric) 字符型(character) 逻辑型(logical) 因子型(factor) 时间型(time) 数据框(data frame) 列表(list) 矩阵(matrix) 1.2 请解释一下R语言中assign函数的作用。 as…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部