超市总营业额分析程序 要求:使用文件,结构体 输出每天的销售记录,包括: (1)每笔销售记录存储3个数据,例如:得力固体胶22.5。它们代表:品名,数量(个) 单价(元)。 (2)将每天的销售记录通过文件进行存储。 (3)每周末进行盘存,从文件读取数据,并汇总出周销售额。
时间: 2024-05-04 19:18:56 浏览: 14
以下是一个简单的超市总营业额分析程序的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ITEM_NAME_LENGTH 50
#define MAX_ITEMS_PER_DAY 100
// 销售记录结构体
typedef struct {
char name[MAX_ITEM_NAME_LENGTH];
int quantity;
float price;
} SalesRecord;
// 销售记录列表结构体
typedef struct {
SalesRecord records[MAX_ITEMS_PER_DAY];
int count;
} SalesRecordList;
// 从文件读取销售记录
void readSalesRecordsFromFile(char *filename, SalesRecordList *list) {
FILE *fp = fopen(filename, "r");
if (fp == NULL) {
printf("无法打开文件 %s\n", filename);
exit(1);
}
list->count = 0;
while (!feof(fp)) {
SalesRecord record;
fscanf(fp, "%s %d %f", record.name, &record.quantity, &record.price);
if (strlen(record.name) > 0) {
list->records[list->count++] = record;
}
}
fclose(fp);
}
// 将销售记录写入文件
void writeSalesRecordsToFile(char *filename, SalesRecordList *list) {
FILE *fp = fopen(filename, "w");
if (fp == NULL) {
printf("无法打开文件 %s\n", filename);
exit(1);
}
for (int i = 0; i < list->count; i++) {
SalesRecord record = list->records[i];
fprintf(fp, "%s %d %f\n", record.name, record.quantity, record.price);
}
fclose(fp);
}
// 添加销售记录
void addSalesRecord(SalesRecordList *list, char *name, int quantity, float price) {
SalesRecord record;
strcpy(record.name, name);
record.quantity = quantity;
record.price = price;
list->records[list->count++] = record;
}
// 计算总销售额
float calculateTotalSales(SalesRecordList *list) {
float total = 0.0;
for (int i = 0; i < list->count; i++) {
SalesRecord record = list->records[i];
total += record.quantity * record.price;
}
return total;
}
int main() {
SalesRecordList recordList;
readSalesRecordsFromFile("sales.txt", &recordList);
printf("今日销售记录:\n");
for (int i = 0; i < recordList.count; i++) {
SalesRecord record = recordList.records[i];
printf("%s %d %.2f\n", record.name, record.quantity, record.price);
}
float totalSales = calculateTotalSales(&recordList);
printf("今日总销售额:%.2f\n", totalSales);
writeSalesRecordsToFile("sales.txt", &recordList);
return 0;
}
```
该程序使用了两个结构体:`SalesRecord`代表一条销售记录,包含品名、数量和单价;`SalesRecordList`代表一天的销售记录列表,包含多条销售记录和记录数量。
程序的主要流程如下:
1. 从文件中读取销售记录,存储到`SalesRecordList`结构体中。
2. 输出今天的销售记录和总销售额。
3. 将销售记录写入文件中。
在实际使用中,可以将该程序加入周末盘存的功能,即读取一周的销售记录文件,计算总销售额并输出。
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)