C语言开发一个简单的产品入库操作系统

编写一个简单的产品入库操作系统是一个涉及文件操作、用户输入和数据处理的项目。以下是一个基本的C语言示例,它展示了如何创建一个简单的产品入库系统。这个系统将允许用户添加产品信息,并将其存储在文件中。

功能描述

  1. 添加产品信息(产品ID、名称、数量)。
  2. 将产品信息保存到文件中。
  3. 从文件中读取并显示所有产品信息。

示例代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>typedef struct {int id;char name[100];int quantity;
} Product;void addProduct(Product *product) {printf("Enter Product ID: ");scanf("%d", &product->id);printf("Enter Product Name: ");scanf("%s", product->name);printf("Enter Product Quantity: ");scanf("%d", &product->quantity);
}void saveProducts(const char *filename, Product *products, int count) {FILE *file = fopen(filename, "w");if (file == NULL) {perror("Error opening file");return;}for (int i = 0; i < count; i++) {fprintf(file, "%d %s %d\n", products[i].id, products[i].name, products[i].quantity);}fclose(file);
}void loadProducts(const char *filename, Product *products, int *count) {FILE *file = fopen(filename, "r");if (file == NULL) {perror("Error opening file");return;}while (fscanf(file, "%d %99s %d\n", &products[*count].id, products[*count].name, &products[*count].quantity) != EOF) {(*count)++;}fclose(file);
}void displayProducts(Product *products, int count) {printf("Product Inventory:\n");for (int i = 0; i < count; i++) {printf("ID: %d, Name: %s, Quantity: %d\n", products[i].id, products[i].name, products[i].quantity);}
}int main() {char choice;Product products[100];int count = 0;const char *filename = "products.txt";do {printf("1. Add Product\n");printf("2. Display Products\n");printf("3. Exit\n");printf("Enter choice: ");scanf(" %c", &choice);switch (choice) {case '1':addProduct(&products[count]);saveProducts(filename, products, count + 1);count++;break;case '2':loadProducts(filename, products, &count);displayProducts(products, count);break;case '3':printf("Exiting program.\n");break;default:printf("Invalid choice. Please try again.\n");}} while (choice != '3');return 0;
}

说明

  1. 数据结构:使用了一个结构体Product来存储产品信息。
  2. 添加产品addProduct函数用于获取用户输入的产品信息。
  3. 保存产品saveProducts函数将产品信息保存到文件中。
  4. 加载产品loadProducts函数从文件中读取产品信息。
  5. 显示产品displayProducts函数用于显示所有产品信息。
  6. 主循环main函数中的循环允许用户选择不同的操作。

注意事项

  • 这个示例程序没有实现错误处理和数据验证,这在实际应用中是非常重要的。
  • 文件操作可能会失败,例如当磁盘空间不足时,因此应该检查fopenfprintf等函数的返回值。
  • 程序假设产品数量不会超过100个,这在实际应用中可能不够用,可以考虑使用动态内存分配。

这个程序是一个简单的起点,你可以根据实际需求添加更多功能,如删除产品、修改产品信息、搜索产品等。

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

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

相关文章

react js 路由 Router

完整的项目,我已经上传了 资料链接 起因, 目的: 路由, 这部分很难。 原因是, 多个组件,进行交互,复杂度比较高。 我看的视频教程 1. 初步使用 安装: npm install react-router-dom 修改 index.js/ 或是 main.js 把 App, 用 BrowserRouter 包裹起来 2. Navigate 点击…

无关痛痒的return 0

一般我们在程序的最后都要加上一行代码&#xff1a; return 0; 它通常用于main函数的末尾来表示程序正常结束。如果返回0以外的任何数&#xff0c;就表示程序没有正常结束。假使你在竞赛时一时兴起想要标新立异来个return 9527&#xff0c;那么你就悲剧了。 其实这玩艺完全可…

redis基本数据类型和常见命令

引言 Redis是典型的key-value&#xff08;键值型&#xff09;数据库&#xff0c;key一般是字符串&#xff0c;而value包含很多不同的数据类型&#xff1a; Redis为了方便我们学习&#xff0c;将操作不同数据类型的命令也做了分组&#xff0c;在官网&#xff08; Commands | Do…

TS 常用类型

我们经常说TypeScript是JavaScript的一个超级 TypeScript 常用类型 TypeScript 是 JS 的超集&#xff0c;TS 提供了 JS 的所有功能&#xff0c;并且额外的增加了&#xff1a;类型系统 所有的 JS 代码都是 TS 代码 JS 有类型&#xff08;比如&#xff0c;number/string 等&…

《JavaEE进阶》----14.<SpringMVC配置文件实践之【验证码项目】>

本篇博客介绍的是Google的开源项目Kaptcha来实现的验证码。 这种是最简单的验证码。 也是很常见的一种验证码。可以去看项目结果展示。就可以明白这个项目了。 前言&#xff1a; 随着安全性的要求越来越高、很多项目都使用了验证码。如今验证码的形式也是有许许多多、更复杂的图…

LeetCode: 673.最长子序列的数量 动态规划 时间复杂度O(n*n)

673.最长子序列的数量 LeetCode原题连接 673. 最长子序列的数量 题目描述 给定一个未排序的整数数组&#xff0c;找到最长递增子序列的个数。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列&#xff0c;分别是 [1, 3, 4, 7] 和 [1, 3, 5, 7]。示例 2: 输…

基于SpringBoot的古城墙景区管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的古城墙景区管理系…

用go语言实现树和哈希表算法

算法复杂度 判断一个算法的效率通常基于其计算复杂度&#xff0c;这主要与算法访问输入数据的次数有关。计算机科学中常用大O表示法来描述算法的复杂度。例如&#xff0c;O(n)的算法只需访问一次输入数据&#xff0c;因此优于O(n)的算法&#xff0c;后者则优于O(n)的算法&…

2024数学建模国赛官方评阅标准发布!

​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑​↑…

C++类与对象(下)--最后的收尾

内部类 • 如果⼀个类定义在另⼀个类的内部&#xff0c;这个内部类就叫做内部类。内部类是⼀个独⽴的类&#xff0c;跟定义在 全局相⽐&#xff0c;他只是受外部类类域限制和访问限定符限制&#xff0c;所以外部类定义的对象中不包含内部类。 #include<iostream> using…

JS中的indexOf与Set(其实是引用类型比较的问题)

起因是想在一个二维数组中查找是否包含一个一维数组 indexOf 先看个例子&#xff1a; const arr [[1, 1], [2, 2]] if(arr.indexOf([1, 1]) -1){console.log("无法查到该数组") }else{console.log("已找到") }const arr2 [1,2,3,4,5] if(arr2.index…

安装FTP服务器教程

一。安装vsftpd yum install vsftpd 二。修改配置文件&#xff0c;匿名账户具有访问&#xff0c;上传和创建目录的权限 vim /etc/vsftpd/vsftpd.conf &#xff08;红色进行设置放开YES&#xff09; local_enable&#xff1a;本地登陆控制&#xff0c;no表示禁止&#xff0c;ye…

3. 轴指令(omron 机器自动化控制器)——>MC_MoveAbsolute

机器自动化控制器——第三章 轴指令 4 MC_MoveAbsolute变量▶输入变量▶输入输出变量▶输入输出变量 功能说明▶指令详情▶时序图▶重启运动指令▶多重启动运动指令▶异常 示例程序1▶参数设定▶动作示例▶梯形图▶结构文本(ST) 示例程序2▶参数设定▶动作示例▶梯形图▶结构文…

Python 从入门到实战16(正则表达式语法)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们通过举例学习了字符串一些操作说明。今天讨论一下正…

RDMA应用场景及效果

GPU Direct 参考&#xff1a;网络架构如何支持超万卡的大规模 AI 训练&#xff1f;| AICon_芯片与网络_InfoQ精选文章 GPU 网络的情况已经发生了很大变化。每个 GPU 都有自己的内部互联&#xff0c;例如 NVIDIA 的 A100 或 H800&#xff0c;它们内部的 NVLink 互联可以达到 6…

【Kubernetes】常见面试题汇总(六)

目录 17.简述 kube-proxy ipvs 和 iptables 的异同&#xff1f; 18.简述 Kubernetes 中什么是静态 Pod&#xff1f; 19.简述Kubernetes中 Pod 可能位于的状态&#xff1f; 17.简述 kube-proxy ipvs 和 iptables 的异同&#xff1f; &#xff08;1&#xff09;iptables 与 IP…

单个 java 虚拟机 生产者消费者

一、通过 java.lang.Object#wait()&#xff0c;java.lang.Object#notify&#xff0c;java.lang.Object#notifyAll来实现 生产者&#xff0c;消费者 public abstract class Goods {protected String type;protected String goodName;protected int number;public abstract …

【Authing身份云-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

EP10 全局渐变背景色

文件路径&#xff1a; E:/homework/uniappv3tswallpaper/common/style/common-style.scss view,swiper,swiper-item{box-sizing: border-box; } .pageBg{background: linear-gradient(to bottom,rgba(0,0,0,0.2),white 35%),linear-gradient(to right,#A6E3D7 30%,#FFE1F2);mi…

香港打工人√三天通过微软mos认证

在繁忙的香港&#xff0c;时间就是金钱&#xff0c;效率就是生命。作为一名香港的打工人&#xff0c;在这座竞争激烈的城市中&#xff0c;不断提升自我是保持竞争力的关键。最近&#xff0c;我完成了一项挑战&#xff1a;在短短三天内通过微软MOS认证大师。以下是我备考的经验分…