C语言实现学生消费管理系统

C语言实现学生消费管理系统攻略】

一、需求分析

对于学生来说,管理自己的消费是很有必要的。因此我们需要实现一款学生消费管理系统,具备以下功能:

  • 学生信息管理:包括姓名、学号、性别等信息。
  • 消费信息管理:包括日期、消费品种(如食物、书籍等)、消费金额等信息。
  • 消费查询功能:能够查询某一段时间内的消费情况。
  • 统计分析功能:能够统计学生的消费情况,如消费总额、平均每日消费等。

二、设计思路

学生消费管理系统可以使用C语言来实现,具体的设计思路如下:

  1. 学生信息和消费信息的数据结构定义:使用结构体类型来定义学生信息和消费信息,包括姓名、学号、性别、消费日期、消费品种和消费金额等信息。
  2. 学生信息和消费信息的录入:使用scanf函数来录入信息,使用fscanf来从文件中读取信息。
  3. 学生信息和消费信息的查询:使用printf函数来显示信息,使用fprintf函数将数据存储到文件中。
  4. 统计分析功能的实现: 使用for循环和if语句来计算统计分析结果,并使用printf函数输出结果。

三、代码实现(示例一)

以下是学生消费管理系统的代码实现示例:

#include<stdio.h>

typedef struct student{
    char name[20];
    int id;
    char sex[10];
} Student; //定义学生信息结构体

typedef struct consumption{
    char date[10];
    char category[20];
    float amount;
} Consumption; //定义消费信息结构体

void input_student_info(Student *student);
void input_consumption_info(Consumption *consumption);
void save_student_info(Student student);
void save_consumption_info(Consumption consumption);

int main(){
    Student student;
    input_student_info(&student);
    save_student_info(student);
    Consumption consumption;
    input_consumption_info(&consumption);
    save_consumption_info(consumption);
    return 0;
}

void input_student_info(Student *student){
    printf("请输入学生姓名:");
    scanf("%s", student->name);
    printf("请输入学号:");
    scanf("%d", &student->id);
    printf("请输入性别:");
    scanf("%s", student->sex);
}

void input_consumption_info(Consumption *consumption){
    printf("请输入消费日期:");
    scanf("%s", consumption->date);
    printf("请输入消费品种:");
    scanf("%s", consumption->category);
    printf("请输入消费金额:");
    scanf("%f", &consumption->amount);
}

void save_student_info(Student student){
    FILE *f;
    f = fopen("student.txt", "w");
    fprintf(f, "%s %d %s", student.name, student.id, student.sex);
    fclose(f);
}

void save_consumption_info(Consumption consumption){
    FILE *f;
    f = fopen("consumption.txt", "w");
    fprintf(f, "%s %s %.2f", consumption.date, consumption.category, consumption.amount);
    fclose(f);
}

该程序可以录入学生信息和消费信息,并存储到文件中。

四、代码实现(示例二)

以下是消费查询功能的代码实现示例:

#include<stdio.h>

typedef struct consumption{
    char date[10];
    char category[20];
    float amount;
} Consumption; //定义消费信息结构体

void query_consumption_info(char *start_date, char *end_date);

int main(){
    query_consumption_info("2021-01-01", "2021-01-30");
    return 0;
}

void query_consumption_info(char *start_date, char *end_date){
    FILE *f;
    f = fopen("consumption.txt", "r");
    while(!feof(f)){
        Consumption consumption;
        fscanf(f, "%s %s %f", consumption.date, consumption.category, &consumption.amount);
        if(strcmp(consumption.date, start_date) >= 0 && strcmp(consumption.date, end_date) <= 0){
            printf("%s\t%s\t%.2f\n", consumption.date, consumption.category, consumption.amount);
        }
    }
    fclose(f);
}

该程序可以查询给定日期范围内的消费信息并输出到屏幕上。

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

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

相关文章

  • C#并查集(union-find)算法详解

    C#并查集(union-find)算法详解 并查集是一种用于维护并查集的一种树型数据结构。用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。 在计算机科学中,并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 每个集合的代表元(元素)用它的祖先来表示。并查集数据结构…

    C 2023年5月22日
    00
  • C语言与C++中内存管理详解

    C语言与C++中内存管理详解 内存管理是C语言和C++中非常重要的一部分,正确的内存管理可以避免内存泄漏和内存溢出等问题,从而提高程序的稳定性和性能。本文将详细介绍C语言和C++中的内存管理技巧和注意事项。 内存分配和释放 在C语言和C++中,内存分配和释放是通过动态内存管理函数来实现的。C语言中的动态内存管理函数包括malloc()、calloc()和re…

    C 2023年5月22日
    00
  • C经典冒泡排序法实现代码

    冒泡排序算法是一种基础算法,它的实现代码很简单,但它却能帮助我们了解排序算法的基本实现和时间复杂度的概念。 1. 什么是冒泡排序 冒泡排序是一种简单的排序算法,它会遍历若干次要排序的数列,每次遍历时,它会依次比较相邻的两个元素,如果它们的顺序错误就交换它们的位置。遍历完成后,最大的元素就被交换到了数列的末尾。然后它会从头开始重复这个过程,直到整个数列都排好序…

    C 2023年5月24日
    00
  • 海康存储C4000ECO 1T怎么样? 海康存储C4000ECO 1T固态硬盘测评

    海康存储C4000ECO 1T固态硬盘测评 概述 海康存储C4000ECO 1T是一款固态硬盘,采用SATA III接口,配备1TB的存储容量。本文对该固态硬盘进行了细致的评测和测试,下面详细介绍该固态硬盘的性能表现。 性能测试 读写速度测试 我们使用CrystalDiskMark软件进行了读写速度测试,测试结果如下: ——————-…

    C 2023年5月23日
    00
  • c++ 内联函数和普通函数的区别

    C++中内联函数和普通函数都是函数的两种实现方式。内联函数是C++特有的一种函数实现方式,主要把函数的内容直接嵌入到调用语句中,而不是像普通函数那样调用函数。 内联函数和普通函数的区别 内联函数的调用时间和执行时间比普通函数更快。这是因为内联函数会把函数的内容嵌入到调用语句中,避免了函数调用的开销。而普通函数调用则需要跳转到函数执行的地址去执行。这样一来,在…

    C 2023年5月22日
    00
  • C语言实现推箱子游戏完整代码

    非常感谢您对于 C 语言实现推箱子游戏的关注! 推箱子游戏是一款非常经典的益智游戏,本文将完整讲解 C 语言实现推箱子游戏的攻略。 步骤一:准备工作 为了让代码更加简洁,我们需要引入外部库文件,本文使用的库文件为 <stdio.h> 与 <conio.h>,其中 <stdio.h> 是 C 语言的标准输入输出库, <…

    C 2023年5月30日
    00
  • JavaScript数组,JSON对象实现动态添加、修改、删除功能示例

    下面是详细的攻略: 简介 在网页开发过程中,经常需要处理数据。JavaScript中的数组和JSON对象是最常用的数据结构,在实际开发中,需要对数组和JSON对象进行动态添加、修改、删除等操作。本文将详细介绍如何使用JavaScript实现这些操作。 数组 动态添加元素 使用push()方法可以向数组末尾添加一个或多个元素,使用unshift()方法可以向数…

    C 2023年5月23日
    00
  • Node.js模块加载详解

    Node.js模块加载详解 在 Node.js 中,模块是组织代码的基本单位,它可以通过 require 函数进行加载。本篇文章将详细讲解 Node.js 模块加载的过程和实现原理。 CommonJS 规范 Node.js 使用了 CommonJS 规范来组织模块。在 CommonJS 规范中,一个文件就是一个模块,每一个模块都是一个单独的作用域,各自拥有自…

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