C语言实现自行车管理系统

C语言实现自行车管理系统完整攻略

系统需求

本系统需要实现以下功能:

  • 添加自行车信息
  • 删除自行车信息
  • 修改自行车信息
  • 查找自行车信息
  • 展示自行车信息

具体而言,自行车信息应该包含以下内容:

  • 品牌
  • 型号
  • 轮径
  • 颜色
  • 价格

数据结构设计

为了实现以上功能,我们需要用到以下数据结构:

struct bike {
    char brand[20];
    char model[20];
    float wheel_diameter;
    char color[10];
    float price;
};

另外,我们还需要一个数组来存储自行车信息:

#define MAX_BIKES 100
struct bike bikes[MAX_BIKES];
int num_bikes = 0;

系统实现

添加自行车信息

我们可以通过以下代码实现添加自行车信息的功能:

void add_bike() {
    struct bike new_bike;
    printf("请输入自行车品牌:");
    scanf("%s", new_bike.brand);
    printf("请输入自行车型号:");
    scanf("%s", new_bike.model);
    printf("请输入自行车轮径(单位:英寸):");
    scanf("%f", &new_bike.wheel_diameter);
    printf("请输入自行车颜色:");
    scanf("%s", new_bike.color);
    printf("请输入自行车价格:");
    scanf("%f", &new_bike.price);
    bikes[num_bikes++] = new_bike;
}

删除自行车信息

我们可以通过以下代码实现删除自行车信息的功能:

void delete_bike() {
    int i, j;
    char brand[20], model[20];
    printf("请输入要删除的自行车品牌:");
    scanf("%s", brand);
    printf("请输入要删除的自行车型号:");
    scanf("%s", model);
    for (i = 0; i < num_bikes; i++) {
        if (strcmp(bikes[i].brand, brand) == 0 && strcmp(bikes[i].model, model) == 0) {
            for (j = i; j < num_bikes - 1; j++) {
                bikes[j] = bikes[j + 1];
            }
            num_bikes--;
            printf("删除成功!\n");
            return;
        }
    }
    printf("未找到要删除的自行车信息!\n");
}

修改自行车信息

我们可以通过以下代码实现修改自行车信息的功能:

void modify_bike() {
    char brand[20], model[20];
    int i;
    printf("请输入要修改的自行车品牌:");
    scanf("%s", brand);
    printf("请输入要修改的自行车型号:");
    scanf("%s", model);
    for (i = 0; i < num_bikes; i++) {
        if (strcmp(bikes[i].brand, brand) == 0 && strcmp(bikes[i].model, model) == 0) {
            printf("请输入自行车新的信息(可以不修改,直接回车):\n");
            printf("品牌:%s  --> ", bikes[i].brand);
            scanf("%s", bikes[i].brand);
            printf("型号:%s  --> ", bikes[i].model);
            scanf("%s", bikes[i].model);
            printf("轮径(单位:英寸):%f  --> ", bikes[i].wheel_diameter);
            scanf("%f", &bikes[i].wheel_diameter);
            printf("颜色:%s  --> ", bikes[i].color);
            scanf("%s", bikes[i].color);
            printf("价格:%f  --> ", bikes[i].price);
            scanf("%f", &bikes[i].price);
            printf("修改成功!\n");
            return;
        }
    }
    printf("未找到要修改的自行车信息!\n");
}

查找自行车信息

我们可以通过以下代码实现查找自行车信息的功能:

void search_bike() {
    char brand[20], model[20];
    int i;
    printf("请输入要查找的自行车品牌:");
    scanf("%s", brand);
    printf("请输入要查找的自行车型号:");
    scanf("%s", model);
    for (i = 0; i < num_bikes; i++) {
        if (strcmp(bikes[i].brand, brand) == 0 && strcmp(bikes[i].model, model) == 0) {
            printf("品牌:%s\n", bikes[i].brand);
            printf("型号:%s\n", bikes[i].model);
            printf("轮径(单位:英寸):%f\n", bikes[i].wheel_diameter);
            printf("颜色:%s\n", bikes[i].color);
            printf("价格:%f\n", bikes[i].price);
            return;
        }
    }
    printf("未找到要查找的自行车信息!\n");
}

展示自行车信息

我们可以通过以下代码实现展示自行车信息的功能:

void show_bikes() {
    int i;
    if (num_bikes == 0) {
        printf("暂无自行车信息!\n");
        return;
    }
    printf("品牌\t型号\t轮径\t颜色\t价格\n");
    for (i = 0; i < num_bikes; i++) {
        printf("%s\t%s\t%.2f\t%s\t%.2f\n", bikes[i].brand, bikes[i].model, bikes[i].wheel_diameter, bikes[i].color, bikes[i].price);
    }
}

示例说明

以下是两个示例:

示例一:添加自行车信息

用户依次输入以下信息:

自行车品牌:Giant
自行车型号:Talon
自行车轮径(单位:英寸):27.5
自行车颜色:red
自行车价格:2999

系统会自动将信息添加到自行车信息数组中。

示例二:查找自行车信息

用户依次输入以下信息:

要查找的自行车品牌:Giant
要查找的自行车型号:Talon

系统会展示出查找到的自行车信息:

品牌:Giant
型号:Talon
轮径(单位:英寸):27.50
颜色:red
价格:2999.00

注意:此处轮径会自动保留两位小数。

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

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

相关文章

  • C++如何判断一个数字是否为质数

    下面是C++判断一个数字是否为质数的完整攻略,包含两条示例说明。 什么是质数 在数论中,质数是指除了 1 和本身之外,不能被其它正整数整除的数。比如,2、3、5、7、11、13等是质数,而4、6、8、9等不是质数。 C++中判断一个数字是否为质数 C++中判断一个数字是否为质数的方法一般是通过判断这个数是否能被除了1和它本身之外的其它数整除。这种判断方法比较…

    C 2023年5月23日
    00
  • 浅谈c语言中一种典型的排列组合算法

    浅谈C语言中一种典型的排列组合算法 排列组合算法是一个经常在计算机程序设计中使用的技巧,可以通过一些简单的递归实现。在这里我们介绍一种典型的排列组合算法,在C语言中实现,可以用于处理排列和组合等问题。 原理 排列组合算法的原理可以通过一个简单的例子来解释。假设有n个元素需要从中选取m个元素作为一组,并且选定的元素需要按照顺序排列。那么共有多少种可能的结果呢?…

    C 2023年5月23日
    00
  • C语言 strspn()函数

    当我们需要检测两个字符串之间共有的字符时,可以使用C语言的strspn()函数。该函数返回字符串中的字符数目,直到字符串中的第一个不属于目标字符集合的字符(即停止搜索的字符)被检测到。以下是关于该函数的详细使用攻略。 函数原型 size_t strspn(const char *str1, const char *str2); 该函数接受两个参数:str1和…

    C 2023年5月9日
    00
  • C++找出字符串中出现最多的字符和次数,时间复杂度小于O(n^2)

    题目描述 给定一个包含n个字符的字符串S,请你编写一个复杂度小于O(n^2)的算法,找出字符串S中出现最多的字符和次数。 思路分析 本题可以采用哈希表来实现。具体的做法是,在扫描整个字符串的过程中记录下每个字符出现的次数,然后遍历所有字符,找出出现次数最多的字符即可。 遍历字符串的时间复杂度为O(n),统计每个字符出现次数的过程为O(n),遍历哈希表找到出现…

    C 2023年5月22日
    00
  • C++超详细讲解智能指针

    C++超详细讲解智能指针 简介 在C++中,智能指针是一种非常有用、安全的内存管理工具。相较于原始指针,它能够自动释放内存,避免内存泄漏等问题。同时,智能指针也能够避免重复释放内存、访问空指针以及释放栈上分配的内存等问题。本文将对智能指针进行详细的讲解,介绍其类型、使用方法以及注意事项。 智能指针类型 在C++中,常见的智能指针有以下几种: unique_p…

    C 2023年5月23日
    00
  • C++回溯算法之深度优先搜索详细介绍

    C++回溯算法之深度优先搜索详细介绍 什么是深度优先搜索 深度优先搜索(DFS)是一种用于遍历或搜索树或图的算法。在深度优先搜索中,我们按深度优先顺序访问每个节点,尽可能深地探索每个节点的分支,直到达到最深处,然后返回到该节点的上一级分支。 深度优先搜索的算法框架 深度优先搜索的算法框架可以表示成以下伪代码: dfs(node) { if (node is …

    C 2023年5月22日
    00
  • C语言运算符与表达式

    关于“C语言运算符与表达式”的完整攻略,我将从以下四个方面进行讲解:1. 运算符的概念和分类2. 运算符优先级和结合性3. 表达式的基本概念和组成方式4. 示范两个使用运算符和表达式的实例说明 1. 运算符的概念和分类 在C语言中,运算符是用来完成特定的操作的符号,比如加减乘除等。根据不同的功能和优先级,C语言中的运算符分为以下几类: 算术运算符:+、-、*…

    C 2023年5月23日
    00
  • Linux中生成Core Dump系统异常信息记录文件的教程

    生成Core Dump文件一般用于分析程序在运行过程中出现的异常情况,其中包含了详细的系统异常信息。下面是在Linux系统中生成Core Dump文件的教程: 1. 设置ulimit值 在生成Core Dump文件前,要先设置ulimit值,其中ulimit -c设置生成Core Dump文件的大小(单位:KB),ulimit -S -c 0表示不生成任何C…

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