#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<math.h>
#include<string.h>
#include<conio.h>
#define N 100
typedef struct item{
char name[20];//商品名称
char category[20];//商品的所属种类
int inPrice;//商品进价
int outPrice;//商品售价
int num;//商品数量
}
Item;
Item item[N];
typedef struct user{
char id[20];
char pass[20];
}User;
User user[N];
/**函数声明**/
void mainMenu();/**主菜单**/
void itemSelect();//商品信息查询
void findAll();//查询所有商品信息
void find_name();//按名字查询商品信息
void itemUpdate();//商品信息修改
void updateOutPrice();//修改商品售价
void updateNum();//修改商品数量 void mainMenu(){
int choose;
system("cls");
printf("\n\n\n");
printf("\t\t★******★**********★*********★******★ \n");
printf("\t\t★ ★ \n");
printf("\t\t★ ★超市管理系统★ ★ \n");
printf("\t\t★ ★ \n");
printf("\t\t★*************************************★ \n");
printf("\t\t★ ★ \n");
printf("\t\t 1.商品信息查询 \n");
printf("\t\t 2.商品信息修改 \n");
printf("\t\t 请输入您的选项[1-2]:");
printf("\t\t★ ★ \n");
printf("\t\t★******★**********★*********★******★ \n");
fflush(stdin);;
scanf("%d",&choose);
switch(choose)
{
case 1:
system("cls");
itemSelect();
break;
case 2:
system("cls");
itemUpdate();
break;
default:
system("cls");
getch();
system("cls");
break;
}
}
/*商品信息查询*/
void itemSelect()
{
int choose;
system("cls");
printf("\n\n\t\t 请选择操作 \n\n");
printf("\n\n\t\t 1.查询所有商品信息 \n");
printf("\n\n\t\t 2.按名称查询商品信息 \n");
printf("\n\n\t\t 0.返回 \n");
fflush(stdin);
scanf("%d",&choose);
switch(choose)
{
case 1:
system("cls");
findAll();
break;
case 2:
system("cls");
find_name();
break;
case 0:
system("cls");
break;
default:
system("cls");
getch();
system("cls");
itemSelect();
break;
}
}
/*查询所有商品信息*/
void findAll()
{
int i;
printf("\n\n\t\t商品信息如下:\n\n");
FILE * fp=fopen("information.txt","r+");
if(fp==NULL)
{
printf("打开文件错误!\n");
exit(0);
}
for(i=0;i<N;i++){
fscanf(fp,"%s%s%d%d%d",item[i].name,item[i].category,&item[i].inPrice,&item[i].outPrice,&item[i].num);
if(item[i].outPrice!=0){
printf("\t\t--------------------------\n");
printf("\t\t| 商品的名称: %s \n",item[i].name);
printf("\t\t| 商品的种类: %s \n",item[i].category);
printf("\t\t| 商品的进价: %d \n",item[i].inPrice);
printf("\t\t| 商品的售价: %d \n",item[i].outPrice);
printf("\t\t| 商品的数量: %d \n",item[i].num);
printf("\t\t--------------------------\n\n");
}
}
fclose(fp);
printf("\n\n商品信息已查询,按任意键继续!");
getch();
system("cls");
itemSelect();
}
/*按名称查询商品*/
void find_name()
{
int i;
char thingName[20];
printf("\n\n\t\t请输入商品名称:");
fflush(stdin);
scanf("%s",thingName);
printf("商品信息如下:\n\n");
FILE * fp=fopen("information.txt","r+");
if(fp==NULL)
{
printf("打开文件错误!\n");
exit(0);
}
for(i=0;i<N;i++){
fscanf(fp,"%s%s%d%d%d%",item[i].name,item[i].category,&item[i].inPrice,&item[i].outPrice,&item[i].num);
if((item[i].outPrice!=0)&&(strcmp(thingName,item[i].name)==0)){
printf("\t\t--------------------------\n");
printf("\t\t| 商品的名称: %s \n",item[i].name);
printf("\t\t| 商品的种类: %s \n",item[i].category);
printf("\t\t| 商品的进价: %d \n",item[i].inPrice);
printf("\t\t| 商品的售价: %d \n",item[i].outPrice);
printf("\t\t| 商品的数量: %d \n",item[i].num);
printf("\t\t--------------------------\n\n");
}
}
fclose(fp);
printf("\n\n商品信息已查询,按任意键继续!");
getch();
system("cls");
itemSelect();
}
/*修改商品信息的界面*/
void itemUpdate(){
int choose;
printf("\n\n\n\t\t请选择您的操作:[0-2]\n\n");
printf("\t\t1.修改商品售价\n\n");
printf("\t\t2.修改商品数量\n\n");
printf("\t\t0.返回上一层\n\n");
fflush(stdin);
scanf("%d",&choose);
switch(choose){
case 1:
system("cls");
updateOutPrice();
break;
case 2:
system("cls");
updateNum();
break;
case 0:
system("cls");
break;
default:
system("cls");
getch();
}
}
/*修改商品售价*/
void updateOutPrice(){
char thing[20];
int i,price;
printf("\n\n\n\t\t请输入要修改商品的名称:\n\t\t");
fflush(stdin);
scanf("%s",thing);
printf("\t\t请输入修改后的售价:\n\t\t");
fflush(stdin);
scanf("%d",&price);
FILE * fp=fopen("information.txt","r+");
if(fp==NULL){
printf("读取文件错误!");
exit(0);
}
for(i=0;i<N;i++){
fscanf(fp,"%s%s%d%d%d",item[i].name,item[i].category,&item[i].inPrice,&item[i].outPrice,
&item[i].num);
if(strcmp(item[i].name,thing)==0){
item[i].outPrice=price;
FILE * f=fopen("information.txt","w");
if(f==NULL){
printf("读取文件错误!");
exit(0);
}
for(i=0;i<N/2;i++){
fprintf(f," %s %s %d %d %d",item[i].name,item[i].category,item[i].inPrice,item[i].outPrice,
item[i].num);
}
fclose(f);
}
}
fclose(fp);//关闭文件
printf("\n\n商品信息已经修改,按任意键继续!");
getch();
system("cls");
itemUpdate();
}
/*修改商品数量*/
void updateNum(){
char thing[20];
int i,num;
printf("\n\n\n\t\t请输入要修改商品的名称:\n\t\t");
fflush(stdin);
scanf("%s",thing);
printf("\t\t请输入修改后的数量:\n\t\t");
fflush(stdin);
scanf("%d",&num);
FILE * fp=fopen("information.txt","r+");
if(fp==NULL){
printf("读取文件错误!");
exit(0);
}
for(i=0;i<N;i++){
fscanf(fp,"%s%s%d%d%d",item[i].name,item[i].category,&item[i].inPrice,&item[i].outPrice,
&item[i].num);
if(strcmp(item[i].name,thing)==0){
item[i].num=num;
FILE * f=fopen("information.txt","w");
if(f==NULL){
printf("读取文件错误!");
exit(0);
}
for(i=0;i<N/2;i++){
fprintf(f," %s %s %d %d %d",item[i].name,item[i].category,item[i].inPrice,item[i].outPrice,
item[i].num);
}
fclose(f);
}
}
fclose(fp);
printf("\n\n商品信息已经修改,按任意键继续!");
getch();
system("cls");
itemUpdate();
}