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

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈: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.mzph.cn/bicheng/15549.shtml

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

相关文章

AI大模型:大数据+大算力+强算法

前言&#xff1a;好久不见&#xff0c;甚是想念&#xff0c;我是辣条&#xff0c;我又回来啦&#xff0c;兄弟们&#xff0c;一别两年&#xff0c;还有多少老哥们在呢&#xff1f; 目录 一年半没更文我干啥去了&#xff1f; AI大模型火了 人工智能 大模型的理解 为什么学习…

ComfyUI完全入门:图生图局部重绘

大家好&#xff0c;我是每天分享AI应用的萤火君&#xff01; 这篇文章的主题和美女有关&#xff0c;不过并不是教大家生产美女视频&#xff0c;而是讲解 ComfyUI 的图生图局部重绘&#xff0c;其中将会以美女图片为例&#xff0c;来展示局部重绘的强大威力。 先看看效果&…

2024年5月26日 十二生肖 今日运势

小运播报&#xff1a;2024年5月26日&#xff0c;星期日&#xff0c;农历四月十九 &#xff08;甲辰年己巳月庚寅日&#xff09;&#xff0c;法定节假日。 红榜生肖&#xff1a;马、猪、狗 需要注意&#xff1a;牛、蛇、猴 喜神方位&#xff1a;西北方 财神方位&#xff1a;…

《python编程从入门到实践》day38

# 昨日知识点回顾 定义、迁移模型Entry # 今日知识点学习 18.2.7 Django shell 每次修改模型后&#xff0c;看到重启后的效果需要重启shell&#xff0c;退出shell会话Windows系统按ctrlZ或者输入exit() 18.3 创建页面&#xff1a;学习笔记主页 创建页面三阶段&#xf…

AI大模型探索之路-基础篇5:GLM-4解锁国产大模型的全能智慧与创新应用

目录 前言一、GLM4大模型总体概述二、GLM4和GPT4功能对比三、GLM4和GPT4性能对比1、基础能力&#xff08;英文&#xff09;2、指令跟随能力3、对齐能力4、长文本能力5、多模态-文生图 四、GLM-4 ALL Tools1、文生图2、代码解释器3、网页浏览4、Function Call5、多工具自动调用 …

C语言之指针进阶(3),函数指针

目录 前言&#xff1a; 一、函数指针变量的概念 二、函数指针变量的创建 三、函数指针变量的使用 四、两段特殊代码的理解 五、typedef 六、函数指针数组 总结&#xff1a; 前言&#xff1a; 本文主要讲述C语言指针中的函数指针&#xff0c;包括函数指针变量的概念、创建…

【面试干货】事务的并发问题(脏读、不可重复读、幻读)与解决策略

【面试干货】事务的并发问题&#xff08;脏读、不可重复读、幻读&#xff09;与解决策略 一、脏读&#xff08;Dirty Read&#xff09;二、不可重复读&#xff08;Non-repeatable Read&#xff09;三、幻读&#xff08;Phantom Read&#xff09;四、总结 &#x1f496;The Begi…

Stable Diffusion——U-ViT用于扩散建模的 ViT 主干网

1.概述 扩散模型是最近出现的强大的深度生成模型&#xff0c;可用于生成高质量图像。扩散模型发展迅速&#xff0c;可应用于文本到图像生成、图像到图像生成、视频生成、语音合成和 3D 合成。 除了算法的改进&#xff0c;骨干网的改进在扩散建模中也发挥着重要作用。一个典型…

汽车R155法规中,汽车获取到的VTA证书,E后面的数字表示什么意思?

标签&#xff1a; 汽车R155法规中&#xff0c;汽车获取到的VTA证书&#xff0c;E后面的数字表示什么意思&#xff1f;&#xff1b; 汽车&#xff1b;VTA认证; 有些厂商汽车拿到的VTA证书上面写着E9&#xff0c; 有些厂商汽车拿到的VTA证书上面写着E5&#xff0c;E9与E5有什么差…

嵌入式之音频基础知识

声音特性 1、响度&#xff1a;人主观上感觉声音的大小&#xff08;俗称音量&#xff09;&#xff0c;由“振幅”和人离声源的距离决定&#xff0c;振幅越大响度越大&#xff0c;人和声源的距离越小&#xff0c;响度越大&#xff1b; 2、音调&#xff1a;声音的高低&#xff0…

多商户消费券系统源码(ThinkPHP+FastAdmin+微信公众号)

打造智能促销新体验 一、引言&#xff1a;消费券系统的时代意义 在当今这个数字化高速发展的时代&#xff0c;电子商务和移动支付已经成为人们日常生活的重要组成部分。随着市场竞争的加剧&#xff0c;多商户消费券系统作为一种创新的促销手段&#xff0c;正逐渐受到商家和消…

从零训练yolov8

1.收集数据 2.数据标注 pip install labelimg3.划分数据集 0.2的验证机0.8的训练集 import os from shutil import copyfile from sys import exit import randomsource r"D:\Data\imgs\screenc" \\ target_train r"D:\Data\imgs\datasets\mydata\images\t…

aws msk加密方式和问控制连接方式

msk加密方式 msk提供了两种加密方式 静态加密传输中加密 创建集群时可以指定加密方式&#xff0c;参数如下 aws kafka create-cluster --cluster-name "ExampleClusterName" --broker-node-group-info file://brokernodegroupinfo.json --encryption-info file:/…

Android四大组件 Broadcast广播机制

一 概述 广播 (Broadcast) 机制用于进程或线程间通信&#xff0c;广播分为广播发送和广播接收两个过程&#xff0c;其中广播接收者 BroadcastReceiver 是 Android 四大组件之一。BroadcastReceiver 分为两类&#xff1a; 静态广播接收者&#xff1a;通过 AndroidManifest.xm…

flutter 实现旋转星球

先看效果 planet_widget.dart import dart:math; import package:flutter/material.dart; import package:vector_math/vector_math_64.dart show Vector3; import package:flutter/gestures.dart; import package:flutter/physics.dart;class PlanetWidget extends StatefulW…

echarts-树图、关系图、桑基图、日历图

树图 树图主要用来表达关系结构。 树图的端点也收symbol的调节 树图的特有属性&#xff1a; 树图的方向&#xff1a; layout、orient子节点收起展开&#xff1a;initialTreeDepth、expandAndCollapse叶子节点设置&#xff1a; leaves操作设置&#xff1a;roam线条&#xff1a…

2、xss-labs之level2

1、打开页面 2、传入xss代码 payload&#xff1a;<script>alert(xss)</script>&#xff0c;发现返回<script>alert(xss)</script> 3、分析原因 打开f12&#xff0c;没什么发现 看后端源码&#xff0c;在这form表单通过get获取keyword的值赋给$str&am…

【Vue】input框自动聚焦且输入验证码后跳至下一位

场景&#xff1a;PC端 样式&#xff1a; <div class"verification-code-input"><input v-model"code[index]" v-for"(_, index) in 5" :key"index" type"text" maxlength"1" input"handleInput(i…

渲染管线——应用阶段

知识必备——CPU和GPU 应用阶段都做了什么 应用阶段为渲染准备了什么 1.把不可见的数据剔除 2.准备好模型相关数据&#xff08;顶点、法线、切线、贴图、着色器等等&#xff09; 3.将数据加载到显存中 4.设置渲染状态&#xff08;设置网格需要使用哪个着色器、材质、光源属性等…

【机器学习】机器学习与大型预训练模型的前沿探索:跨模态理解与生成的新纪元

&#x1f512;文章目录&#xff1a; &#x1f4a5;1.引言 ☔2.跨模态理解与生成技术概述 &#x1f6b2;3.大型预训练模型在跨模态理解与生成中的应用 &#x1f6f4;4.前沿探索与挑战并存 &#x1f44a;5.未来趋势与展望 &#x1f4a5;1.引言 近年来&#xff0c;机器学习领…