【C语言期末】商品管理系统

 本文资源:https://download.csdn.net/download/weixin_47040861/88820155


1.题目要求

商品管理系统

商品信息包括:包括编号、类别、名称、价格、折扣比例、生产时间 、存货数量等要求:
1、信息首先保存在文件中,然后打开文件进行读写操作,信息的改写必须与文件中保存的数据同步。
2、完成以下功能:
1 系统以菜单方式工作
2 增加商品信息
3 删除指定的商品信息
4 修改指定的商品信息
5 能按照多种方式查询(至少两种,如编号、类别、名称等
6 统计功能。按类别统计各种商品的存货数量,平均价格及存货量最多的商品信息
7 按照商品类别进行排序

2.实现效果

1.添加商品

2.修改商品

3.查询商品

4.删除商品

5.统计

6.排序

3.功能介绍

1.添加商品

  1. 创建一个名为newProductProduct结构体,用于存储新商品的信息。结构体的各字段包括编号(id)、类别(category)、名称(name)、价格(price)、折扣比例(discount)、生产日期(productionDate)和库存数量(inventory)。

  2. 通过printfscanf_s函数,向用户展示商品信息的输入提示,并接收用户输入的商品信息。用户需要输入产品编号、类别、名称、价格、折扣比例、生产日期和库存数量。

  3. 将用户输入的新商品(newProduct)添加到商品数组(products)的末尾,即数组的下一个位置。

  4. 打印"修改成功!"的提示消息,表示商品添加操作成功。

  5. 更新商品数组的长度,通过递增len指针所指向的值。

  6. 调用saveToCSV函数,将更新后的商品数组保存到CSV文件中。

  7. 使用system("pause")暂停程序执行,以便用户查看输出信息。这通常用于保持控制台窗口打开,直到用户手动关闭。

2.修改商品

  1. 用户首先被要求输入要修改的商品编号(productId)。

  2. 通过循环遍历商品数组(products),查找与用户输入的商品编号匹配的商品在数组中的位置(index)。

  3. 如果找到对应编号的商品(index != -1),则向用户展示一个菜单,要求用户选择要修改的商品属性。

  4. 用户通过输入菜单编号,选择要修改的商品属性,包括商品类别、商品名称、商品价格、折扣比例、生产时间、存货数量等。

  5. 根据用户的选择,通过switch语句分别执行相应的修改操作。用户输入的新信息将替代原有的商品属性。

  6. 修改完成后,调用saveToCSV函数将更新后的商品数组保存到CSV文件中。

  7. 打印"修改成功"的提示消息,告知用户修改操作成功。

  8. 使用system("pause")暂停程序执行,以便用户查看输出信息。这通常用于保持控制台窗口打开,直到用户手动关闭。

  9. 如果未找到对应编号的商品,打印"未找到该商品编号"的提示消息。

3.查询商品

用户首先选择查询方式(通过商品编号、商品类别、商品名称或生产日期),然后输入相应的信息进行查询。根据用户的选择,函数会遍历商品数组,找到匹配的商品,并打印出相应的详细信息。如果找不到匹配的商品,会提示用户未找到。

4.删除商品

用户首先输入要删除的商品编号,函数会查找该编号对应的商品在数组中的位置。如果找到对应编号的商品,会打印出该商品的详细信息,并将数组中该位置后的所有数据向前移动一位,相当于删除该商品。最后,数组长度减一,表示删除了一个商品。如果未找到匹配的商品,会提示用户未找到。

5.统计

函数首先检查数组中是否存在商品信息,如果数组长度小于等于0,则输出提示信息暂无商品信息并返回。接下来,用户需要输入要统计的商品类别。函数会遍历商品数组,对于每一个匹配输入类别的商品,累加总存货量、总价格,并统计匹配商品数量。同时,函数寻找该类别存货量最多的商品信息。

最后,函数输出该类别的总存货量、平均价格,以及存货量最多的商品信息。如果该类别暂无商品信息,会相应地输出提示。

6.排序

首先,函数会检查数组的长度是否小于等于1,如果是,则表示无需排序,直接返回。接下来,函数使用冒泡排序算法,按照商品的类别进行升序排序。

内层循环比较相邻两个商品的类别,如果前一个商品的类别字符串大于后一个商品的类别字符串(按照字典顺序),则交换它们的位置,以达到升序排序的目的。

最后,函数打印排序后的商品信息,保存到CSV文件。

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

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

相关文章

用友U8 Cloud ReportDetailDataQuery SQL注入漏洞复现(QVD-2023-47860)

0x01 产品简介 用友U8 Cloud 提供企业级云ERP整体解决方案,全面支持多组织业务协同,实现企业互联网资源连接。 U8 Cloud 亦是亚太地区成长型企业最广泛采用的云解决方案。 0x02 漏洞概述 用友U8 cloud ReportDetailDataQuery 接口处存在SQL注入漏洞,攻击者未经授权可以访…

C语言----内存函数

内存函数主要用于动态分配和管理内存,它直接从指针的方位上进行操作,可以实现字节单位的操作。 其包含的头文件都是:string.h memcpy copy block of memory的缩写----拷贝内存块 格式: void *memcpy(void *dest, const void …

解决MapboxGL的Popup不支持HTMLDiv元素的问题

解决MapboxGL的Popup不支持HTMLDiv元素的问题 官网给出的文档是不支持HTMLDivElement的,只支持HTML标签。 如果单纯的只显示字符串,那就没问题,如果想在Popup中使用更强大的功能,此时就不行了,下面是源码的一部分显示…

【npm】安装全局包,使用时提示:不是内部或外部命令,也不是可运行的程序或批处理文件

问题 如图,明明安装Vue是全局包,但是使用时却提示: 解决办法 使用以下命令任意一种命令查看全局包的配置路径 npm root -g 然后将此路径(不包括node_modules)添加到环境变量中去,这里注意,原…

大模型学习 一

https://www.bilibili.com/video/BV1Kz4y1x7AK/?spm_id_from333.337.search-card.all.click GPU 计算单元多 并行计算能力强 指数更重要 A100 80G V100 A100 海外 100元/时 单卡 多卡并行: 单机多卡 模型并行 有资源的浪费 反向传播 反向传播(B…

【机器学习笔记】决策树

决策树 文章目录 决策树1 决策树学习基础2 经典决策树算法3 过拟合问题 1 决策树学习基础 适用决策树学习的经典目标问题 带有非数值特征的分类问题离散特征没有相似度概念特征无序 例子: SkyTempHumidWindWaterForecastEnjoySunnyWarmNormalStrongWarmSameYesSunny…

深入探究 HTTP 简化:httplib 库介绍

✏️心若有所向往,何惧道阻且长 文章目录 简介特性主要类介绍httplib::Server类httplib::Client类httplib::Request类httplib::Response类 示例服务器客户端 总结 简介 在当今的软件开发中,与网络通信相关的任务变得日益普遍。HTTP(Hypertext…

Electron基本介绍

Electron基本介绍 Electron 官方网站:https://www.electronjs.org/zh/ Electron安装方法:npm install electron -g 全局安装 Electron简介:Electron提供了丰富的本地(操作系统)API,使你能够使用纯JavaScr…

【Iceberg学习四】Evolution和Maintenance在Iceberg的实现

Evolution Iceberg 支持就底表演化。您可以像 SQL 一样演化表结构——即使是嵌套结构——或者当数据量变化时改变分区布局。Iceberg 不需要像重写表数据或迁移到新表这样耗费资源的操作。 例如,Hive 表的分区布局无法更改,因此从每日分区布局变更到每小…

JVM 性能调优- 五种内存溢出(5)

在介绍之前先简单介绍下 直接内存(Direct Memory)和堆内存(Heap Memory): 关系: 直接内存并不是Java虚拟机的一部分,它是通过Java的NIO库中的ByteBuffer来分配和管理的。直接内存通常由操作系统的本地内存(Native Memory)提供支持。堆内存是Java虚拟机的一部分,用于存…

【VSTO开发-WPS】下调试

重点2步: 1、注册表添加 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\kingsoft\Office\WPP\AddinsWL] "项目名称"""2、visual studio 运行后,要选中附加到调试,并指定启动项目。 如PPT输入WPP搜…

【数据结构】二叉树的三种遍历(非递归讲解)

目录 1、前言 2、二叉树的非递归遍历 2.1、先序遍历 2.2、中序遍历 2.3、后序遍历 1、前言 学习二叉树的三种非递归遍历前,首先来了解一下递归序: 递归序就是按照先序遍历的顺序,遇到的所有结点按顺序排列,重复的结点也必须记…

【数据结构】链表OJ面试题5(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 后三题在这http://t.csdnimg.cn/gbohQ 给定一个链表,判断链表中是否有环。http://t.csdnimg.cn/Rcdyc 给定一个链表,返回链表开始入环的第一个结点。 如果链表无环,则返回 NULLhttp://t.cs…

大厂的供应链域数据中台设计

关注我,紧跟本系列专栏文章,咱们下篇再续! 作者简介:魔都技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主,编程严选网创始人。具有丰富的引领团队经验,深厚业务架…

Linux 软件管理(YUM RPM)

1 YUM yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次…

算法学习——LeetCode力扣栈与队列篇1

算法学习——LeetCode力扣栈与队列篇1 232. 用栈实现队列 232. 用栈实现队列 - 力扣(LeetCode) 描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQu…

ChatGPT4 教你如何完成SQL的实践应用

对数据库的各项应用与操作都离不开SQL来对数据进行增删改查。 例如 : 有一张某公司职员信息表如下: 需求1:在公司职员信息表中,请统计各部门,各岗位下的员工人数。 如果这个SQL语句不会写或者不知道怎么操作可以交给…

Unity入门学习

目录 Unity环境搭建Unity引擎是什么软件下载和安装工程文件夹 Unity界面基础Scene场景和Hierarchy层级窗口Game游戏和Project工程Inspector和Console工具栏和父子关系 Unity工作原理反射机制和游戏场景预设体和资源包的导入导出 Unity脚本基础脚本基本规则生命周期函数Inspecto…

产品效果图为何要用渲染100农场?渲染100邀请码1a12

产品效果图很重要,它能帮助设计人员和消费者理解产品特点,是不可或缺的一步。产品效果图渲染耗时耗力,不仅慢而且容易出错,在这种情况下,使用渲染农场就成了必备选择,以目前国内最好的渲染农场渲染100为例&…

JAVA设计模式之原型模式详解

原型模式 1 原型模式介绍 定义: 原型模式(Prototype Design Pattern)用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 西游记中的孙悟空 拔毛变小猴,孙悟空这种根据自己的形状复制出多个身外化身的技巧,在面向对象软件设计领…