题目
某公司生产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;
}
Comments NOTHING