某公司生产300 种产品,请编程使用结构体类型数组管理公司的产品信息,产品信息包括:产品编号、产品名称、单件成本、月产量

wjx 发布于 2023-12-20 562 次阅读


某公司生产300 种产品,请编程使用结构体类型数组管理公司的产品信息,产品信息包括:产品编号、产品名称、单件成本、月产量。完成下面任务:

(1)输人产品信息存放在结构体类型数组中。
(2)计算并输出每种产品的月成本总和 (月成本总和等于单件成本乘以月产量):
(3) 根据产品编号查找并输出该产品信息。

可以定义包含4 个成员 (产品编号、产品名称、单件成本、月产量) 的结构体类型数组 prod [300],用于存放产品信息。编写3 个函数 (func1、func2、func3) 供主函数调用,分别完成任务。

#include <stdio.h >
#include <string.h >
#define N 3
struct product{
	int num;
	char name[20];
	int cost;
	int count;
}prod[N];

int sum[N] = {0};/*数组 sum存放每种产品的成本总和*/

void func1() {
	int i;
	for (i = 0; i < N; i++) {
		printf("请输入产品编号:"); scanf("%d", &prod[i].num);
		printf("请输入产品名称:"); gets_s(prod[i].name);
		printf("请输入单件成本:"); scanf("%d", &prod[i].cost);
		printf("请输入月产量:");  scanf("%d", &prod[i].count);
	}
	return;
}

void func2() {/*函数 func2 的功能是计算并输出每种产品的生产成本总和*/
	int i;
	for (i = 0; i < N; i++)
		sum[i] = prod[i].cost * prod[i].count;
	printf("每种产品的月生产成本总和如下:\n");
	for (i = 0; i < N; i++) {
		printf("产品编号%d,产品名称%d,", prod[i].num, prod[i].name);
		printf("单件成本号%d,月产量%d,\n", prod[i].cost, prod[i].count);
		printf("月生产成本总和%d。\n", sum[i]);
	}
	return;
}

void func3() {/*函数 func3 的功能是根据产品编号查找并输出该产品信息*/
	int i, seek, mark = 0;
	printf("请输入产品编号:");
	scanf("%d", &seek);
	for (i = 0; i < N; i++)
		if (prod[i].num == seek) {
			printf("产品编号%d,产品名称号%d。", prod[i].num, prod[i].name);
			printf("单件成本%d,月产量号%d。\n", prod[i].cost, prod[i].count);
			mark = 1;
		}
	if (mark == 0)
		printf("没有找到产品编号为%d的产品。\n", seek);
	return;
}

int main() {
	int select;
	while (1) {
		printf("----------产品信息管理----------\n");
		printf("----------1.输入产品信息----------\n");
		printf("----------2.计算并输出每种产品的月生产成本总和----------\n");
		printf("----------3.根据产品编号查找并输出该产品信息----------\n");
		printf("----------4.结束操作----------\n");
		printf("请选择(1,2,3,4):");
		scanf("%d", &select);
		if (select == 1) func1();
		else if (select == 2) func2();
		else if (select == 3) func3();
		else if (select == 4) break;
		else  printf("选择有误!请重新选择!\n"); continue; 
	}
	printf("谢谢使用!再见!\n");
	return 0;
}