【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;…

java hashmap在项目中的使用

java hashmap在项目中的使用 1&#xff0c;缓存机制&#xff1a; 在需要频繁访问数据但又不想每次都从数据库或远程服务获取的场景中&#xff0c;可以使用 HashMap 作为缓存。例如&#xff0c;在一个 Web 应用程序中&#xff0c;用户信息可能只需要在登录时从数据库检索一次&a…

解释器和编译器(程序语言基础)

一、解释器 解释器则是一种逐行或逐段地解释执行源代码的工具。解释器会直接读取源代码&#xff0c;并在运行时逐行或逐段地解释执行代码&#xff0c;不生成独立的目标代码文件。解释器适用于一些动态语言&#xff0c;允许用户在代码执行过程中进行交互&#xff0c;更容易调试…

【linux_常用的指令】

笔记 1连接远程主机2 两台主机间复制2.1 查看当前目录2.2 普通复制 3 创建能运行sudo命令的用户3.1 更改用户admin的密码3.2 切换到admin用户&#xff0c;并且启动一个新的shell3.3 更改文件或目录的权限 4 切换目录5 解.tar.gz格式的压缩包6 运行.sh文件7 查看当前目录的所有文…

泛型中K T V E ? Object等分别代表的含义

E – Element (在集合中使用&#xff0c;因为集合中存放的是元素) T – Type&#xff08;Java 类&#xff09; K – Key&#xff08;键&#xff09; V – Value&#xff08;值&#xff09; N – Number&#xff08;数值类型&#xff09; &#xff1f; – 表示不确定的java类型&…

一个月速刷leetcodeHOT100 day07 轮转数组 除自身以外的乘积 找到字符串中所有字母异位词

轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: […

系统思考—跳出症状看全局

结束了《系统思考—跳出症状看全局》的迭代课程后&#xff0c;我感触颇深。通过一个深入的案例研讨、互动讨论和实战演练&#xff0c;学员们不仅更好地理解了如何跳出症状看全局&#xff0c;还掌握了制定更具前瞻性和可持续性策略的方法。我们还探讨了如何在实际工作中应用这些…

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

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

介绍一下Hugging Face,这个公司的背景是什么

Hugging Face是一家成立于2016年的人工智能公司&#xff0c;专注于为AI研究人员和开发者提供开源模型库和工具。以下是关于Hugging Face公司的详细背景介绍&#xff1a; 公司历史与创始人&#xff1a; Hugging Face由Clment Delangue、Julien Chaumond和Thomas Wolf三位法国籍…

E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体

解决方案&#xff1a; 在Visual Studio中&#xff0c;在项目上右键&#xff0c;属性 >> C/C >> 语言 >> 符合模式&#xff0c;改为“否”。

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、多工具自动调用 …

【学习笔记】关于建模时需要调整的变量

在进行回归分析时&#xff0c;选择调整变量&#xff08;也就是模型中的协变量&#xff09;需要谨慎考虑。调整的变量并不一定必须是混杂因素&#xff0c;但通常情况下&#xff0c;目的是为了控制那些可能扭曲主要自变量和因变量关系的混杂因素。除了混杂因素&#xff0c;还有几…

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;骨干网的改进在扩散建模中也发挥着重要作用。一个典型…

nginx代理前端html

正常配置&#xff0c;通过www.example.com或192.168.20.12:80访问server {listen 80;server_name example.com www.example.com;root /var/www/html;index index.html index.htm;location / {try_files $uri $uri/ 404;} }解释&#xff1a; listen 80;&#xff1a;监听 HTTP 端…

汽车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…