总进货费用计算 超市管理系统(使用模块化编程思想),功能描述:统计一次进货的费用。 1>初始化进货商品的种类数(例 5 种商品) 2>根据种类数,创建三个数组(商品名称、商品数量、商品进价) 3>显示出每种商品的总进价,以及本次进货的总费用。 (提示:总进价=进价*数量,总费用=每个商品总进价和)用c#编写并带有执行程序的窗体

时间: 2023-06-18 08:05:34 浏览: 77
以下是使用C#编写的一个简单的窗体程序实现了上述功能: ```csharp using System; using System.Windows.Forms; namespace SupermarketManagementSystem { public partial class MainForm : Form { private const int MAX_ITEMS = 5; // 最大商品种类数 private string[] itemNames = new string[MAX_ITEMS]; // 商品名称数组 private int[] itemQuantities = new int[MAX_ITEMS]; // 商品数量数组 private double[] itemPrices = new double[MAX_ITEMS]; // 商品进价数组 public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { // 初始化商品种类数 itemComboBox.Items.Add("1"); itemComboBox.Items.Add("2"); itemComboBox.Items.Add("3"); itemComboBox.Items.Add("4"); itemComboBox.Items.Add("5"); itemComboBox.SelectedIndex = 0; } private void itemComboBox_SelectedIndexChanged(object sender, EventArgs e) { int count = itemComboBox.SelectedIndex + 1; // 根据种类数创建数组 itemNames = new string[count]; itemQuantities = new int[count]; itemPrices = new double[count]; // 显示输入框和标签 for (int i = 0; i < count; i++) { itemLabel[i].Visible = true; quantityLabel[i].Visible = true; priceLabel[i].Visible = true; itemNameTextBox[i].Visible = true; itemQuantityTextBox[i].Visible = true; itemPriceTextBox[i].Visible = true; } // 隐藏多余的输入框和标签 for (int i = count; i < MAX_ITEMS; i++) { itemLabel[i].Visible = false; quantityLabel[i].Visible = false; priceLabel[i].Visible = false; itemNameTextBox[i].Visible = false; itemQuantityTextBox[i].Visible = false; itemPriceTextBox[i].Visible = false; } } private void calculateButton_Click(object sender, EventArgs e) { double totalCost = 0.0; // 计算每种商品的总进价和本次进货的总费用 for (int i = 0; i < itemComboBox.SelectedIndex + 1; i++) { double itemCost = double.Parse(itemPriceTextBox[i].Text) * int.Parse(itemQuantityTextBox[i].Text); totalCost += itemCost; MessageBox.Show(itemNames[i] + "总进价为:" + itemCost.ToString("C")); } MessageBox.Show("本次进货的总费用为:" + totalCost.ToString("C")); } } } ``` 在窗体设计器中,我们添加了一个下拉框(`itemComboBox`)和多个标签、文本框(命名规则为`itemNameTextBox[i]`、`itemQuantityTextBox[i]`、`itemPriceTextBox[i]`,其中`i`为商品序号)。在窗体的代码中,我们使用了三个数组`itemNames`、`itemQuantities`、`itemPrices`分别存储了商品的名称、数量、进价。在下拉框的`SelectedIndexChanged`事件中,我们根据选择的商品种类数动态创建和隐藏了输入框和标签。在计算按钮的`Click`事件中,我们遍历每种商品,计算出每种商品的总进价,并累加总进价计算出本次进货的总费用。同时,我们使用`MessageBox.Show()`方法弹出消息框显示每种商品的总进价。执行程序后,我们可以在界面上输入每种商品的名称、数量和进价,然后点击计算按钮即可计算出本次进货的总费用。

相关推荐

最新推荐

recommend-type

Python 面向对象编程:类的创建与初始化、实例属性与方法、类属性与方法

1. 类的创建并实例化 类的定义:在Python中,类通过 class 关键字定义。按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。下面是一个简单的类创建并实例化: class ...
recommend-type

mysql第一次安装成功后初始化密码操作步骤

在本篇文章里小编给大家整理了关于mysql第一次安装成功后初始化密码操作步骤以及相关知识点,有兴趣的朋友们可以学习下。
recommend-type

c++ 子类构造函数初始化及父类构造初始化的使用

主要介绍了c++ 子类构造函数初始化及父类构造初始化的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

C++全局变量初始化的一点总结

注意:本文所说的全局变量指的是 variables with static storage,措词来自 c++ 的语言标准文档。  什么时候初始化 ...  static initialization: 静态初始化指的是用常量来对变量进行初始化,主要包括 zero init
recommend-type

C#中结构(struct)的部分初始化和完全初始化实例分析

主要介绍了C#中结构(struct)的部分初始化和完全初始化,通过实例分析了结构初始化中常见的错误及技巧,有助于加深对C#结构(struct)的认识,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。