C 程序显示商店商品库存


2022年12月22日, Learn eTutorial
4558

这是一个基本的 C 程序,演示了如何使用 struct 数据类型来记录不同数据类型的不同元素。在这里,我们创建一个商店库存,包括产品(即商品名称、价格、数量等),并以像账单软件一样的表格格式显示。

C 语言中的结构体数据类型是什么?结构体数据类型如何帮助实现产品库存商店?

结构体是 C 语言中用户定义的数据类型。它是一组具有不同数据类型但由单个名称表示的变量。关键字 struct 用于定义结构体。使用结构体数据类型,我们可以将不同数据类型元素的记录存储在单个内存位置。例如,我们可以使用结构体检查日期。

struct date
    {
       int day;
       int month;
       int year;
    };

在这里,我们将产品详细信息和日期详细信息保存在两个不同的结构体数据类型中,分别为 struct details 和 struct date。

此库存商店程序的逻辑是,首先声明结构体变量 datedetails。然后声明数据类型为 details 的数组 item。然后读取用户想要添加的产品数量到变量 n 中。通过使用带有条件 i= 0 到 nfor 循环,读取商品详情到 item 中,并在读取后使用 printf 以适当的格式显示它们。

算法

步骤 1:包含头文件以在 C 程序中使用内置函数。

步骤 2:声明结构体 date,包含元素 daymonthyear

步骤 3:声明另一个结构体 details,包含元素 namepricecodeqtymfg

步骤 4:初始化结构体 details 的变量 item

步骤 5:声明整数变量 n, i

步骤 6:将商品数量读取到 n 中。

步骤 7:使用 for 循环,条件为 i = 0 到 n,读取产品详细信息到 item 中。

步骤 8:使用 printf 和另一个 for 循环 显示库存。


本程序使用了 C 语言编程的以下概念,请参考这些主题以获得更好的理解。

C 语言源代码

                                          #include <stdio.h>
 
void main()
{
    struct date
    {
        int day;
        int month;
        int year;
    };
    struct details
    {
        char name[20];
        int price;
        int code;
        int qty;
        struct date mfg;
    };
    struct details item[50];
    int n, i;
 
    printf("Enter number of items:");
    scanf("%d", &n);
    fflush(stdin);
    for (i = 0; i < n; i++)
    {
        fflush(stdin);
        printf("Item name: \n");
        scanf("%s", item[i].name);
        fflush(stdin);
        printf("Item code: \n");
        scanf("%d", & item[i].code);
        fflush(stdin);
        printf("Quantity: \n");
        scanf("%d", & item[i].qty);
        fflush(stdin);
        printf("price: \n");
        scanf("%d",  & item[i].price);
        fflush(stdin);
        printf("Manufacturing date(dd-mm-yyyy): \n");
        scanf("%d-%d-%d", & item[i].mfg.day, & item[i].mfg.month, & item[i].mfg.year);
    }
    printf("             *****  INVENTORY ***** \n");
    printf("------------------------------------------------------------------\n");
    printf("S.N.|    NAME           |   CODE   |  QUANTITY |  PRICE| MFG.DATE \n");
    printf("------------------------------------------------------------------\n");
    for (i = 0; i < n; i++)
        printf("%d     %-15s        %-d          %-5d     %-5d %d/%d/%d \n", i + 1, item[i].name,
item[i].code, item[i].qty, item[i].price, item[i].mfg.day, item[i].mfg.month, item[i].mfg.year);
    printf("------------------------------------------------------------------\n");
}
                                      

输出

Enter number of items:5

Item name:Tea Powder
Item code:123
Quantity:23
price:40
Manufacturing date(dd-mm-yyyy):12-03-2007

Item name:Milk Powder
Item code:345
Quantity:20
price:80
Manufacturing date(dd-mm-yyyy):30-03-2007

Item name:Soap Powder
Item code:510
Quantity:10
price:30
Manufacturing date(dd-mm-yyyy):01-04-2007

Item name:Washing Soap
Item code:890
Quantity:25
price:12
Manufacturing date(dd-mm-yyyy):10-03-2007

Item name:Shampoo
Item code:777
Quantity:8
price:50
Manufacturing date(dd-mm-yyyy):17-05-2007

     *****  INVENTORY *****
------------------------------------------------------------------------
S.N.|    NAME           |   CODE   |  QUANTITY |  PRICE  |MFG.DATE
------------------------------------------------------------------------
1     Tea Powder           123         23         40        12/3/2007
2     Milk Powder          345         20         80        30/3/2007
3     Soap Powder          510         10         30        1/4/2007
4     Washing Soap         890         25         12        10/3/2007
5     Shampoo              777         8          50        17/5/2007
------------------------------------------------------------------------