【C语言】C语言-设备管理系统(源码+数据文件)【独一无二】

news2025/3/19 8:09:24

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


系列文章目录


目录

  • 系列文章目录
  • 一、设计要求
  • 二、运行结果
  • 2.1 添加设备
  • 2.2 显示设备信息
  • 2.3 查询设备信息—设备名称
  • 2.4 查询设备信息—部门
  • 2.5 设备排序
  • 2.6 退出系统
  • 代码分析


一、设计要求

  1. 功能描述

    • 设备管理系统用于管理公司或组织的各种设备信息,包括设备的编号、名称、领用人、所属部门、数量、购买时间和价格等。
    • 功能包括显示所有设备信息、查询设备信息、添加设备、删除设备和排序设备。
  2. 数据存储

    • 设备信息应该以结构体数组的形式存储在内存中,每个结构体包含一个设备的所有信息。
    • 设备信息应该可以从文件中加载,并且在程序运行期间对设备信息的修改应该能够保存到文件中。
  3. 界面设计

    • 系统应该提供一个菜单界面,用于用户选择不同的功能。
    • 菜单应该清晰明了,包括显示所有设备信息、查询设备信息、添加设备、删除设备、排序设备和退出系统等选项。

      👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “设备” 获取。👈👈👈

  4. 功能设计

    • 显示所有设备信息:将所有设备的信息按照指定格式显示在屏幕上。

    • 查询设备信息:用户可以选择按设备名称或所属部门进行查询,查询结果应该显示所有符合条件的设备信息。

    • 添加设备:用户可以逐步输入新设备的各项信息,系统应该能够将新设备添加到设备列表中。

    • 删除设备:用户输入要删除的设备编号,系统应该能够根据编号删除对应的设备信息。

    • 排序设备:根据购买时间对设备信息进行排序,排序结果应该按照购买时间的先后顺序显示。

      👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “设备” 获取。👈👈👈


二、运行结果

2.1 添加设备

在这里插入图片描述

2.2 显示设备信息

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “设备” 获取。👈👈👈

2.3 查询设备信息—设备名称

在这里插入图片描述

2.4 查询设备信息—部门

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “设备” 获取。👈👈👈

2.5 设备排序

在这里插入图片描述

2.6 退出系统

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “设备” 获取。👈👈👈


代码分析

  1. 数据结构

    • 代码中使用了结构体 Device 来表示设备信息,包括设备编号、名称、领用人、所属部门、数量、购买时间和价格等字段。

    • 设备信息以结构体数组 devices 的形式存储,同时用整型变量 device_count 记录当前设备数量。

      typedef struct {
          int id;
          char name[50];
          char owner[50];
          char department[50];
          int quantity;
          char purchase_date[20];
          double price;
      } Device;
      

      👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “设备” 获取。👈👈👈

  2. 文件操作

    • load_devices_from_file 函数用于从文件中加载设备信息,采用文件流方式读取文件内容,并将读取到的设备信息存储到 devices 数组中。

    • save_devices_to_file 函数用于将当前的设备信息保存到文件中,采用文件流方式写入设备信息到文件。

      void load_devices_from_file(const char* filename) {
          FILE* file = fopen(filename, "r");
          if (file == NULL) {
              printf("无法打开文件。\n");
              return;
          }
          while (fscanf(file, "%d %49s %49s %49s %d %19s %lf",
              &devices[device_count].id,
              devices[device_count].name,
              devices[device_count].owner,
              devices[device_count].department,
              &devices[device_count].quantity,
              devices[device_count].purchase_date,
              &devices[device_count].price) != EOF) {
              device_count++;
          }
          fclose(file);
      }
      

      👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “设备” 获取。👈👈👈

  3. 菜单功能

    • display_menu 函数用于显示系统菜单,提供了显示所有设备信息、查询设备信息、添加设备、删除设备、排序设备和退出系统等选项。

    • main 函数通过循环结构提供了菜单选择功能,根据用户输入的选项调用相应的功能函数。

      
      void display_menu() {
          printf("\n设备管理系统\n");
          printf("1. 显示所有设备信息\n");
          printf("2. 查询设备信息\n");
          printf("3. 添加设备\n");
          printf("4. 删除设备\n");
          printf("5. 排序设备\n");
          printf("0. 退出系统\n");
      }
      
      
  4. 功能实现

    • display_all_devices 函数用于显示所有设备信息,遍历设备数组并将每个设备的信息输出到控制台。

    • query_device 函数用于根据用户输入的设备名称或所属部门查询设备信息,输出符合条件的设备信息。

    • add_device 函数用于添加新设备,先接收用户输入的设备信息,然后将新设备添加到设备数组中。

    • delete_device 函数用于删除指定编号的设备,根据用户输入的设备编号查找并删除对应的设备信息。

    • sort_devices 函数用于根据购买时间对设备信息进行排序,采用 qsort 函数实现。

      void display_all_devices() {
          printf("\n所有设备信息:\n");
          for (int i = 0; i < device_count; i++) {
              printf("ID: %d, 名称: %s, 领用人: %s, 部门: %s, 数量: %d, 购买时间: %s, 价格: %.2f\n",
                  devices[i].id,
                  devices[i].name,
                  devices[i].owner,
                  devices[i].department,
                  devices[i].quantity,
                  devices[i].purchase_date,
                  devices[i].price);
          }
      }
      

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “设备” 获取。👈👈👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1694366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS开发之DevEco Studio安装

HUAWEI DevEco Studio是基于IntelliJ IDEA Community开源版本打造&#xff0c;为运行在HarmonyOS和OpenHarmony系统上的应用和服务&#xff08;以下简称应用/服务&#xff09;提供一站式的开发平台。 作为一款开发工具&#xff0c;除了具有基本的代码开发、编译构建及调测等功能…

Python高级进阶--slice切片

slice切片⭐⭐ 在 Python 中&#xff0c;切片操作是一种常见且方便的方式&#xff0c;用于从字符串、列表或元组中获取部分元素。这种操作通过指定起始索引、结束索引和步长来实现。下面我们来看一些关于切片的简单介绍以及一些常见用法。 1. 切片简介 取一个str、list、tup…

一文搞懂 Transformer(总体架构 三种注意力层)

本文将从Transformer的本质、Transformer_的原理_、_Transformer的应用__三个方面&#xff0c;带您一文搞懂Transformer&#xff08;总体架构 & 三种注意力层&#xff09;。 节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友…

出题123

题目时限空间说明 无特殊均默认 1 s , 256 M B 1s,256MB 1s,256MB Problem a 最大化 在最大化目标值的基础上选择的操作越多越好&#xff0c;且输出操作应当按照顺序执行&#xff0c;即你的输出顺序就是你的执行顺序&#xff0c;当有多个执行顺序可以最大化目标值时&#xff0…

GEE批量导出逐日、逐月、逐季节和逐年的遥感影像(以NDVI为例)

影像导出 1.逐日数据导出2.逐月数据导出3.季节数据导出4.逐年数据导出 最近很多小伙伴们私信我&#xff0c;问我如何高效导出遥感数据&#xff0c;从逐日到逐季度&#xff0c;我都有一套自己的方法&#xff0c;今天就来和大家分享一下&#xff01;   &#x1f50d;【逐日导出…

详解最新版RabbitMQ 基于RPM 方式的安装

如何选择安装版本 已经不支持的发布系列 版本最后补丁版本首次发布时间停止更新时间3.73.7.282017年11月28日2020年09月30日3.63.6.162015年12月22日2018年05月31日3.53.5.82015年03月11日2016年10月31日3.43.4.42014年10月21日2015年10月31日3.33.3.52014年04月02日2015年03…

Vivado报错集合

Synth 8-5535 报错代码 [Synth 8-5535] port <clk_0> has illegal connections. It is illegal to have a port connected to an input buffer and other components. The following are the port connections : Input Buffer:Port I of instance clkin1_ibufg(IBUF) i…

张大哥笔记:穷人都在拼命挣钱,而富人都在努力让自己更值钱

最近行业大佬&#xff0c;纷纷网红化&#xff0c;比如周鸿祎&#xff0c;雷军&#xff0c;刘强东纷纷下场&#xff01; 大佬当网红&#xff0c;图啥&#xff1f;当然是图钱了。 大佬都很精的&#xff0c;他们老早就运用媒体的传播杠杆&#xff0c;把自己热度炒起来。 在不断…

类和对象(下篇)(未完结)!

文章目录 在谈构造函数1.构造函数体赋值2.初始化列表尽量使用初始化列表&#xff1f;初始化列表的初始化顺序&#xff1f;成员变量声明处的缺省值构造函数支持类型转换3.explicit关键字 static成员 在谈构造函数 1.构造函数体赋值 class Date{public:Date(int year, int mont…

MATLAB:插值函数之interp与griddata

MATLAB 提供了多种插值函数来处理不同维度的数据。其中&#xff0c;interp1、interp2 和 griddata 是常用的插值函数&#xff0c;分别用于一维、二维和多维&#xff08;不规则&#xff09;数据的插值。 之前有对interp1进行过详细介绍&#xff0c;如需详细了解&#xff0c;请查…

【算法】决策单调性优化DP

文章目录 决策单调性四边形不等式决策单调性 形式1法1 分治法2 二分队列例题 P3515Solution 形式2例题 P3195Solution 形式3例题 CF833BSolution 形式4例题Solution 后话 决策单调性 四边形不等式 定义: 对于二元函数 w ( x , y ) w(x,y) w(x,y)&#xff0c;若 ∀ a , b , …

【Linux取经路】线程同步——条件变量

文章目录 前言一、条件变量1.1 pthread_cond_init——初始化一个条件变量1.2 pthread_cond_destroy——销毁一个条件变量1.3 定义一个全局的条件变量1.4 pthread_cond_wait——等待条件满足1.5 pthread_cond_signal——唤醒一个等待线程1.6 pthread_cond_broadcast——唤醒所有…

云界洞见:移动云服务开启技术创新与问题解决的新篇章

一、什么是移动云 移动云以“央企保障、安全智慧、算网一体、属地服务”为品牌支撑&#xff0c;聚焦智能算力建设&#xff0c;打造一朵智能、智慧、安全可信可控的云&#xff0c;提供更优质的算力服务&#xff0c;引领云计算产业发展。 那么下面博主带领大家了解移动云的优势所…

为什么建立数据库连接耗时?究竟耗时多久?

数据库连接从连接池中取这已经是大家的共识了&#xff0c;因为频繁的建立或者关闭连接代价太大&#xff0c;那么代价究竟有多大&#xff1f; 我们先准备一个简单的数据库连接代码段 public static void main(String[] args) throws ClassNotFoundException, SQLException, Int…

Aligned Layer:trustless应用的通用验证层

1. 引言 Aligned Layer近期获得了2000万美金的A轮融资&#xff0c;Aligned Layer&#xff1a; 致力于成为 去中心化 zero-knowledge (ZK) proof 验证层。旨在为不同证明系统&#xff0c;提供快速、经济且可扩展的零知识证明验证。作为以太坊生态系统及其他生态系统的通用sour…

都2024年了!是谁还不会优化 Hive 的小文件啊!!!速看!

文章目录 小文件产生的原因1.查询建表或者插入2.装载数据3.动态分区小文件影响解决方法针对已经存在的小文件进行优化1.小文件归档2.getmerge3.concatenate4.重写针对写入数据时的优化1.调参优化2.动态分区优化3.使用 Spark 算子控制小文件数量查看 HDFS 上的文件时,无意间点进…

1791.找出星形图的中心节点

刷算法题&#xff1a; 第一遍&#xff1a;1.看5分钟&#xff0c;没思路看题解 2.通过题解改进自己的解法&#xff0c;并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步&#xff0c;下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

蓝桥杯备赛——DP【python】

一、小明的背包1 试题链接&#xff1a;https://www.lanqiao.cn/problems/1174/learning/ 问题描述 输入实例 5 20 1 6 2 5 3 8 5 15 3 3 输出示例 37 问题分析 这里我们要创建一个DP表&#xff0c;DP&#xff08;i&#xff0c;j&#xff09;表示处理到第i个物品时消耗j体…

# 【基于随机森林算法的数据回归预测】附详细Matlab代码

文章目录 1. 引言2. 随机森林算法原理2.1 决策树基础2.2 随机森林的构建 3. 随机森林回归的实现3.1 数据准备3.2 模型训练3.3 模型预测 4. 模型评估5. 参数调优6. 结论7. 参考文献 在数据科学的世界里&#xff0c;预测模型是解决未来未知问题的关键工具。随机森林算法&#xff…

[国产大模型简单使用介绍] 开源与免费API

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 随着大模型技术蓬勃发展和开源社区越来越活跃,国内的大模型也如雨后春笋一般.这时,一些就会问了,有了llama3,Mistral还有Gemma等等,国外大厂接连发力,一些开源社区也会有一些不错的模型,国内怎么比?对一个人使用,oll…