@
某公司有N(N<=20)位销售员(编号:E001-E00N,至少包含销售员的若干基本信息如姓名、性别、受教育程度等),负责销售M(M<=30)个产品(编号:P001-P00M,至少包含产品的基本信息,如产品名称、单价、库存量等信息)。每个销售员在销售商品时,执行订单操作(销售记录,至少包含销售日期、销售编号、销售员编号、销售产品编号、销售数量等信息)。
设计一个简易库存-销售系统,使之能提供以下功能:
1、系统以菜单方式工作;
2、销售表信息录入功能(销售记录信息用文件保存)--输入;
3、统计销售情况
1)统计每个销售员的总销售额、每种产品的总销售额;
2)按销售额对销售员进行升序排序,输出排序结果;
3)按销售额对产品进行降序排序,输出排序结果。
(提示:至少应该有三个文件来保存基本数据,一个文件保存商品的基本信息,一个文件保存销售员的基本信息,还有一个文件保存销售记录。自行设计完整的数据结构并实现以上功能,程序应具有简单的错误处理,如不存在的销售员、超过库存的销售、不存在的产品等。如同学觉得能有更好的想法,也可以增加额外的功能,会酌情加分)。
项目的实验报告包括以下部分内容:
一、报告封面(请自行设计,内容清晰明了);
二、第一章:项目介绍;
三、第二章:完善的程序设计算法与流程;
四、第三章:清晰的测试结果;
五、第四章:分析与评论:完整且清晰的注释;
整个报告必须是:完整的包含以上内容且文档的总体风格非常专业(包括:参考文献、版权声明等)。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int count_salasman = 0 ;
int count_product = 0 ;
int count_information = 0 ;
struct salasman {
char num[10];
char name[20] ;
char gender[20] ;//性别
char education[20] ;//学历
int sum_salas ;
} s[20];
struct product {
char number[10] ;
char goods[20] ;
double price ;
int repertory ;
int sum_salas = 0 ;
} p[30];
struct salas_information {
char data[30] ;//这里的订单操作日期格式为2022.06.01
int num ; //销售编号按照顺序从1开始
char salasman_num[20] ;
char products_num[20] ;
int sum ;
} s_i[200];
void menu_sum() {
printf("主程序!!!\n") ;
printf("自动从文件中读取销售员、商品和销售信息\n") ;
printf("1.查询/修改销售员信息(修改后自动修改文件里的信息)\n") ;
printf("2.查询/修改商品信息(修改后自动修改文件里的信息)\n") ;
printf("3.添加销售信息\n") ;
printf("4.查询每个销售员的总销售额\n") ;
printf("5.查询每种产品的总销售额\n") ;
printf("6.按销售额对销售员进行升序排序\n") ;
printf("7.按销售额对产品进行降序排序\n") ;
// printf("8.从文件中读取商品的基本信息\n") ;
// printf("9.从文件中读取销售员信息\n") ;
// printf("10.从文件中读取销售记录\n") ;
printf("0.退出程序\n") ;
printf("请输入你的选择:") ;
}
void menu1() {
printf("员工程序!!!\n") ;
printf("1.添加销售员信息\n") ;
printf("2.输出销售员信息\n") ;
printf("3.修改销售员信息\n") ;
printf("4.删除销售员信息\n") ;
printf("5.将所有调整好的销售员信息读入到文件夹中\n") ;
printf("0.退出销售员程序\n") ;
printf("请输入你的选择:") ;
}
void Print_S_record() {
int i ;
if (count_salasman == 0) {
printf("Count of salasman is zero!\n");
return;
}
printf("总共有%d个员工\n", count_salasman) ;
printf("编号\t姓名\t性别\t学历\n") ;
for (i = 0; i < count_salasman; i++) {
printf("%s\t%s\t%s\t%s\n", s[i].num, s[i].name, s[i].gender, s[i].education);
}
}
void Add_S_record() {
int i, n ;
if ( count_salasman == 20 ) {
printf("FULL!\n") ;
return ;
}
int temp = count_salasman ;
printf("Please input the Number of Salasman:") ;
scanf("%d", &n) ;
for (i = temp; i < temp + n ; i++) {
printf("Input the salasman's num:") ;
scanf("%s", s[i].num) ;
printf("Input the salasman's name:") ;
scanf("%s", s[i].name) ;
printf("Input the salasman's gender:") ;
scanf("%s", s[i].gender) ;
printf("Input the salasman's education background:") ;
scanf("%s", s[i].education) ;
count_salasman++ ;
}
printf("输入成功!\n") ;
}
void Modify_S_record() {
int flag = -1 ;
int i ;
char num[20] ;
int c ;
char data[50] ;
printf("输入销售员的编号:");
scanf("%s", num) ;
pr