#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct node {
char no[12]; //代号
char name [40]; //姓名
int month ; //月份
float sales ; //月销售额
float total; //年度总销售额
struct node *next; //指向下一结点的指针
};
typedef struct node Node;
void menue() {
printf("\n********欢迎使用销售管理系统*********\n\n");
printf("1.录入销售员每个月的销售额及相关信息\n2.查找某个销售员某个月的销售额\n");
printf("3.修改某个销售员某个月的销售额\n4.删除某个销售员的销售信息\n");
printf("5.统计所有销售员的年度总销售额\n6.找出最大(或最小)月销售额和年度总销售额\n");
printf("0.退出系统\n\n");
printf("***********************************\n");
printf("请输入你的选择(0-6):");
fflush(stdout);
}
void insert(Node *link) {
printf("\n===录入销售员每个月的销售额及相关信息===\n");
printf("请输入代号,姓名,月份,月销售额,年度总销售额,之间用空格分隔\n");
fflush(stdout);
Node *node=(Node *)malloc(sizeof(Node));
scanf("%s %s %d %f %f",node->no,node->name,&node->month,&node->sales,&node->total);
printf("信息录入成功。\n");
printf("===================================\n");
fflush(stdout);
Node *position=link;
while (position->next!=NULL)
position=position->next;
position->next=node;
node->next=NULL;
}
void select(Node *link) {
printf("\n======查找某个销售员某个月的销售额=====\n");
printf("请输入销售员的名字,销售月份,之间用空格分隔\n");
fflush(stdout);
char name[40];
int month;
scanf("%s %d",name,&month);
Node *position=link;
while (position!=NULL) {
if(strcmp(position->name,name)==0&&position->month==month) {
printf("销售员:%s,%d月销售额是:%.2f\n",position->name,position->month,(*position).sales);
printf("===================================\n");
fflush(stdout);
return;
}
position=position->next;
}
printf("未找到员工:%s,%d月份销售信息!!!\n",name,month);
printf("===================================\n");
fflush(stdout);
}
void update(Node *link) {
printf("\n======修改某个销售员某个月的销售额=====\n");
printf("请输入销售员的名字,销售月份,销售额,之间用空格分隔\n");
fflush(stdout);
char name[40];
int month;
float sales;
scanf("%s %d %f",name,&month,&sales);
Node *position=link;
while (position!=NULL) {
if(strcmp(position->name,name)==0&&position->month==month) {
position->sales=sales;
printf("信息修改成功。\n");
printf("===================================\n");
fflush(stdout);
return;
}
position=position->next;
}
printf("未找到员工:%s,%d月份销售信息!!!\n",name,month);
printf("===================================\n");
fflush(stdout);
}
void delete(Node *link){
printf("\n=======删除某个销售员的销售信息=======\n");
printf("请输入销售员的名字\n");
fflush(stdout);
char name[40];
scanf("%s",name);
Node *position=link;
while (position->next!=NULL) {
if(strcmp(position->next->name,name)==0) {
position->next=position->next->next;
printf("员工:%s的信息删除成功。\n",name);
printf("===================================\n");
fflush(stdout);
return;
}
position=position->next;
}
printf("未找到员工:%s的信息!!!\n",name);
printf("===================================\n");
fflush(stdout);
}
void total(Node *link) {
printf("\n======统计所有销售员的年度总销售额======\n");
Node *position=link->next;
if(position==NULL) {
printf("请先录入销售员每个月的销售额及相关信息\n");
printf("===================================\n");
fflush(stdout);
return;
}
float total=0;
while (position!=NULL) {
total+=position->total;
position=position->next;
}
printf("所有销售员的年度总销售额:%.2f\n",total);
printf("===================================\n");
fflush(stdout);
}
void min_max(Node *link) {
printf("\n==找出最大(或最小)月销售额和年度总销售额==\n");
Node *position=link->next;
if(position==NULL) {
printf("请先录入销售员每个月的销售额及相关信息\n");
printf("===================================\n");
fflush(stdout);
return;
}
float max_sales=position->sales;
float min_sales=position->sales;
float max_total=position->total;
float min_total=position->total;
while (position!=NULL) {
if(position->sales>max_sales) {
max_sales=position->sales;
}
if(position->sales<min_sales) {
min_sales=position->sales;
}
if(position->total>max_total) {
max_total=position->total;
}
if(position->total<min_total) {
min_total=position->total;
}
position=position->next;
}
printf("最大月销售额:%.2f\n",max_sales);
printf("最小月销售额:%.2f\n",min_sales);
printf("最大度总销售额:%.2f\n",max_total);
printf("最小度总销售额:%.2f\n",min_total);
printf("===================================\n");
fflush(stdout);
}
int main(){
Node *link=(Node *)malloc(sizeof(Node));
strcpy(link->no,"");
strcpy(link->name,"");
link->month=-1;
link->sales=0;
link->total=0;
link->next=NULL;
while(1) {
menue();
int choose;
scanf("%d",&choose);
switch (choose) {
case 0:
printf("\n******欢迎再次使用******");
exit(0);
case 1:insert(link);break;
case 2:select(link);break;
case 3:update(link);break;
case 4:delete(link);break;
case 5:total(link);break;
case 6:min_max(link);break;
default: break;
}
}
}
#include <string.h>
#include <stdlib.h>
struct node {
char no[12]; //代号
char name [40]; //姓名
int month ; //月份
float sales ; //月销售额
float total; //年度总销售额
struct node *next; //指向下一结点的指针
};
typedef struct node Node;
void menue() {
printf("\n********欢迎使用销售管理系统*********\n\n");
printf("1.录入销售员每个月的销售额及相关信息\n2.查找某个销售员某个月的销售额\n");
printf("3.修改某个销售员某个月的销售额\n4.删除某个销售员的销售信息\n");
printf("5.统计所有销售员的年度总销售额\n6.找出最大(或最小)月销售额和年度总销售额\n");
printf("0.退出系统\n\n");
printf("***********************************\n");
printf("请输入你的选择(0-6):");
fflush(stdout);
}
void insert(Node *link) {
printf("\n===录入销售员每个月的销售额及相关信息===\n");
printf("请输入代号,姓名,月份,月销售额,年度总销售额,之间用空格分隔\n");
fflush(stdout);
Node *node=(Node *)malloc(sizeof(Node));
scanf("%s %s %d %f %f",node->no,node->name,&node->month,&node->sales,&node->total);
printf("信息录入成功。\n");
printf("===================================\n");
fflush(stdout);
Node *position=link;
while (position->next!=NULL)
position=position->next;
position->next=node;
node->next=NULL;
}
void select(Node *link) {
printf("\n======查找某个销售员某个月的销售额=====\n");
printf("请输入销售员的名字,销售月份,之间用空格分隔\n");
fflush(stdout);
char name[40];
int month;
scanf("%s %d",name,&month);
Node *position=link;
while (position!=NULL) {
if(strcmp(position->name,name)==0&&position->month==month) {
printf("销售员:%s,%d月销售额是:%.2f\n",position->name,position->month,(*position).sales);
printf("===================================\n");
fflush(stdout);
return;
}
position=position->next;
}
printf("未找到员工:%s,%d月份销售信息!!!\n",name,month);
printf("===================================\n");
fflush(stdout);
}
void update(Node *link) {
printf("\n======修改某个销售员某个月的销售额=====\n");
printf("请输入销售员的名字,销售月份,销售额,之间用空格分隔\n");
fflush(stdout);
char name[40];
int month;
float sales;
scanf("%s %d %f",name,&month,&sales);
Node *position=link;
while (position!=NULL) {
if(strcmp(position->name,name)==0&&position->month==month) {
position->sales=sales;
printf("信息修改成功。\n");
printf("===================================\n");
fflush(stdout);
return;
}
position=position->next;
}
printf("未找到员工:%s,%d月份销售信息!!!\n",name,month);
printf("===================================\n");
fflush(stdout);
}
void delete(Node *link){
printf("\n=======删除某个销售员的销售信息=======\n");
printf("请输入销售员的名字\n");
fflush(stdout);
char name[40];
scanf("%s",name);
Node *position=link;
while (position->next!=NULL) {
if(strcmp(position->next->name,name)==0) {
position->next=position->next->next;
printf("员工:%s的信息删除成功。\n",name);
printf("===================================\n");
fflush(stdout);
return;
}
position=position->next;
}
printf("未找到员工:%s的信息!!!\n",name);
printf("===================================\n");
fflush(stdout);
}
void total(Node *link) {
printf("\n======统计所有销售员的年度总销售额======\n");
Node *position=link->next;
if(position==NULL) {
printf("请先录入销售员每个月的销售额及相关信息\n");
printf("===================================\n");
fflush(stdout);
return;
}
float total=0;
while (position!=NULL) {
total+=position->total;
position=position->next;
}
printf("所有销售员的年度总销售额:%.2f\n",total);
printf("===================================\n");
fflush(stdout);
}
void min_max(Node *link) {
printf("\n==找出最大(或最小)月销售额和年度总销售额==\n");
Node *position=link->next;
if(position==NULL) {
printf("请先录入销售员每个月的销售额及相关信息\n");
printf("===================================\n");
fflush(stdout);
return;
}
float max_sales=position->sales;
float min_sales=position->sales;
float max_total=position->total;
float min_total=position->total;
while (position!=NULL) {
if(position->sales>max_sales) {
max_sales=position->sales;
}
if(position->sales<min_sales) {
min_sales=position->sales;
}
if(position->total>max_total) {
max_total=position->total;
}
if(position->total<min_total) {
min_total=position->total;
}
position=position->next;
}
printf("最大月销售额:%.2f\n",max_sales);
printf("最小月销售额:%.2f\n",min_sales);
printf("最大度总销售额:%.2f\n",max_total);
printf("最小度总销售额:%.2f\n",min_total);
printf("===================================\n");
fflush(stdout);
}
int main(){
Node *link=(Node *)malloc(sizeof(Node));
strcpy(link->no,"");
strcpy(link->name,"");
link->month=-1;
link->sales=0;
link->total=0;
link->next=NULL;
while(1) {
menue();
int choose;
scanf("%d",&choose);
switch (choose) {
case 0:
printf("\n******欢迎再次使用******");
exit(0);
case 1:insert(link);break;
case 2:select(link);break;
case 3:update(link);break;
case 4:delete(link);break;
case 5:total(link);break;
case 6:min_max(link);break;
default: break;
}
}
}