📄 guanlixit.txt
字号:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
#define zd 1000
struct food //定义一个结构体
{
char num[20] ; //编号
char name[30]; //名称
char amount[30]; //数量
char price[20] ; //价格
char type[30]; //种类
double date[50]; //日期
char produce[30]; //产地
};
typedef struct food FOOD;
FOOD JiLu[zd];
int totalnum=0;
void mainmenu() //主菜单界面
{ system("color 2a");
printf("*************************************************************************\n\n\n");
printf("***********************欢迎进入消费信息管理系统**************************\n\n\n");
printf("***************************************************************************\n\n");
printf("************ 1:录入信息 2:修改信息 *************\n\n\n\n");
printf("************ 3:删除信息 4:查询信息 *************\n\n\n");
printf("************ 5:保存信息 6:读取信息 *************\n\n\n");
printf("***** 0:退出系统 ******\n\n");
printf("**************************************************************************\n\n");
printf(" 请输入一个功能编号:");
}
void Record (FOOD *pp ) //记录原始商品信息
{
system("color 9d");
printf("请输入商品编号:\n");gets(pp->num);
printf("请输入商品名称:\n");gets(pp->name);
printf("请输入商品数量(件):\n");gets(pp->amount);
printf("请输入商品单价(元):\n");gets(pp->price);
printf("请输入商品种类:\n");gets(pp->type);
printf("请输入商品生产日期(nnnn-yy-rr):\n");gets(pp->date);
printf("请输入商品产地:\n");gets(pp->produce);
}
void print(int index)
{
if(index>=0&&index<zd)
{
printf(" \n");
printf(" 商品编号:%-15s\n",JiLu[index].num );
getchar();
printf(" 商品名称:%-15s\n",JiLu[index].name);
printf(" 商品数量:%-15s\n",JiLu[index].amount);
printf(" 商品单价:%-15s\n",JiLu[index].price);
printf(" 商品种类:%-15s\n",JiLu[index].type);
printf(" 商品生产日期:%-15s\n",JiLu[index].date);
printf(" 商品产地:%-15s\n",JiLu[index].produce);
printf(" \n");
}
}
void Recordxinxi() // 记录信息函数
{
system("cls");
printf("***************************************************************************\n");
if(totalnum<zd-1)
{
printf(" 请输入商品信息:\n");
Record(&(JiLu[totalnum]));
totalnum++;
system("cls");
}
else
{
printf(" 信息已满!!!\n ");
}
system("cls");
printf("****************************************************************************\n\n\n");
}
int Revisexinxi() //信息修改函数
{
char num[20],name[30],op;
FOOD pp;
int i;
system("cls");
system("color 0c");
printf("**********************************************************************\n");
printf("请在下面输入要修改商品的信息\n\n");
printf(" 编号:");
scanf("%s",num);
printf(" 名称:");
scanf("%s",name);
printf("\n");
for(i=0;i<zd;i++)
{
if(strcmp(num,JiLu[i].num)==0 && strcmp(name,JiLu[i].name)==0)
{
printf(" 下面的记录将要被修改!\n\n");
print(i);
printf(" \n请输入修改后的记录值:\n\n");
Record(&pp);
printf(" 是否确定修改此条记录(y/n)? \n ");
op=getch();
if(op=='Y' || op=='y')
{
JiLu[i]=pp;
printf(" 信息已修改~!!!\n\n\n");
}
return 1;
}
}
printf(" 无此信息,输入有错!!!\n\n");
return 0;
}
int Deletexinxi() //信息删除函数
{
char num[20],name[30],op;
int i,j;
system("color 5d");
printf("***********************************************************************\n");
printf("请输入要删除的商品编号和名称\n");
printf(" 编号:");
scanf("%s",num);
printf(" 名称:");
scanf("%s",name);
for(i=0;i<zd;i++)
{
if(strcmp(num,JiLu[i].num)==0 && strcmp(name,JiLu[i].name)==0)
{
printf(" 下面的记录将要被删除\n");
print(i);
printf(" 是否确定要删除这条记录(y/n)? ");
printf("\n");
op=getch();
if(op=='Y' || op=='y')
{
for(j=i;j<totalnum-1;j++)
JiLu[j]=JiLu[j+1];
totalnum-=1;
}
printf(" 信息已删除!!!\n\n ");
return 1;
}
}
printf(" 无此信息,输入错误 !!!\n");
return 0;
}
void Seekxinxi() //信息查询函数
{
int i;
char opercode,info[20];
system("color 12");
printf(" 商品信息查询\n\n\n");
printf(" 1.编号 2.名称 \n\n ");
printf(" 3.数量 4.剩余商品查询\n\n");
opercode=getchar(); //getchar();
switch(opercode)
{
case '1':
printf("输编号查询:");
scanf("%s",info);
for(i=0;i<zd;i++)
{
if(strcmp(info,JiLu[i].num)==0)
print(i);
}
break;
case '2':
printf("输名称查询:");
scanf("%s",info);
for(i=0;i<zd;i++)
{
if(strcmp(info,JiLu[i].name)==0)
print(i);
}
break;
case '3':
printf("输数量查询:");
scanf("%s",info);
for(i=0;i<zd;i++)
{ if(strcmp(info,JiLu[i].amount)==0)
print(i);
}
break;
case '4':
if(totalnum !=0 )
{ printf("所有记录显示如下\n");
printf("*******************************************************\n");
for(i=0;i<totalnum;i++)
{
print(i);
}
}
else
printf("\n当前无记录!\n\n\n");
break;
default:
printf("\n输入错误,请检查!!!\n");
}
}
int Savexinxi() //信息保存函数
{
char Savename[30];
FILE *fp=0;
system("color 1a");
printf("*****************************************************************\n");
printf(" 请输入保存文件的文件名:\n");
scanf("%s",Savename);
fp=fopen(Savename,"wb");
if(fp==NULL)
{
printf("不能保存文件:%s\n",Savename);
return -1;
}
fwrite(&totalnum,sizeof(int),1,fp);
fwrite(JiLu,sizeof(FOOD),totalnum,fp);
fclose(fp);
printf("注意:%5d记录已经被成功的写入文件:%s!!\n",totalnum,Savename);
printf("*****************************************************************\n");
return totalnum;
}
int Readxinxi() // 信息读取函数
{
char Filename[30];
FILE *fp=0;
system("color 6b");
printf("****************************************************************\n");
printf("要读取文件,请输入一个包含完整路径的文件名:\n");
scanf("%s",Filename);
fp=fopen(Filename,"rb");
if(fp==NULL)
{
printf("不能打开指定的文件:%s,或文件不存在!\n",Filename);
return -1;
}
fread(&totalnum,sizeof(int),1,fp);
fread(JiLu,sizeof(FOOD),totalnum,fp);
fclose(fp);
printf("注意:%5d记录已从文件%s中成功读取出来!!\n",totalnum,Filename);
printf("*****************************************************************\n");
return totalnum;
}
int ExitSystem()
{
char ch;
system("color 09");
printf("你确定要退出系统吗(y/n)?");
ch=getch();
if(ch=='Y'||ch=='y')
return 1;
else
return 0;
}
int main( )
{
char choice;
int opercode;
do
{
mainmenu();
choice=getchar(); getchar();
printf("\n\n\n");
switch(choice)
{
case'1':
Recordxinxi();
break;
case'2':
Revisexinxi();
break;
case'3':
Deletexinxi();
break;
case'4':
Seekxinxi();
break;
case'5':
Savexinxi();
break;
case'6':Readxinxi();
break;
case '0':
opercode=ExitSystem();
if(opercode==1)
{
printf("\n系统已经退出!!!\n");
exit(0);
}
else
break;
default:
printf("\n\n错误的功能编号,请重新输入!!!\n");
}
}while(1);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -