c++超市销售管理系统

 

参考:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
struct off_type
{
	char num[15];
	char name[10];
	int stock;
	char supplier[20];
	char phone[20];
};
extern int off_num;
extern struct off_type off[];
void add(); 
int display(char str[]);
void find();
void modify();
void del();
void save_txt();
void load_txt();
void main()
{
	int choice;
	while(1)
	{
			printf("\n欢迎使用办公用品管理系统\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("---------------------------------------------------\n");
			printf("请选择功能模块,输入数字1-8:");
			fflush(stdin);
			scanf("%d",&choice);
			switch(choice)               
			{
				case 1:
					add();
					break;
				case 2:display("");break;
				case 3:find();break;
				case 4:modify();break;
				case 5:del();break;
				case 6:save_txt();break;
				case 7:load_txt();break;
				case 8:exit(0);break;
			}
	}
}
struct off_type off[100];
int off_num=0;
void add()
{
	int i=off_num;
	char end[] = {"0"};
	printf("说明:依次输入办公用品信息,当输入的编号为0时表示输入结束\n");
	while(1)
	{
		printf("请输入第%d个办公用品的信息\n",i+1);
		printf("请输入编号:");
		fflush(stdin);
		scanf("%s",&off[i].num);
		if(strcmp(off[i].num,"0")==0)
		{
			return;
		}
			
		printf("请输入名称:");
		scanf("%s",off[i].name);
		printf("请输入库存:");
		scanf("%d",&off[i].stock);
		printf("请输入供货商:");
		scanf("%s",&off[i].supplier);
		printf("请输入联系方式:");
		scanf("%s",&off[i].phone);
		i++;
	}
	off_num=i;
	printf("总共已输入%s个办公用品的信息\n",off_num);
}
int display(char str[])
{
	int i,k=-1;
	if(strlen(str)==0)
	{
	if(off_num>0)
	{
	printf("办公用品编号\t名称\t库存\t供货商\t联系方式\n");
	for(i=0;i<off_num;i++)
	printf("%s\t%s\t%s\t%s\t%s\t%s\n",off[i].num,off[i].name,off[i].stock,off[i].supplier,off[i].phone);
	}
	else
    	printf("办公用品信息为空!");
	}
	else 
	{
		for(i=0;i<off_num;i++)
			if(strcmp(str,off[i].num)==0)
			{
				printf("办公用品编号\t名称\t库存\t供货商\t联系方式\n");
				printf("%s\t%s\t%s\t%s\t%s\t%s\n",off[i].num,off[i].name,off[i].stock,off[i].supplier,off[i].phone);
				k=i;
			}
			if(k==-1)
				printf("没有找到符合条件的办公用品\n");
	}
	return k;
}
void find()
{
	char str[15];
	printf("请输入要查找的办公用品:");
	scanf("%s",str);
	display(str);
}
void modify()
{
	char str[15],m;
	int i;
	printf("请输入要修改的办公用品编号:");
	scanf("%s",str);
	i=display(str);
	if(i!=-1)
	{
		printf("确认修改该办公用品的信息吗?(y/n):");
		m=getche();
		if(m=='y'||m=='Y')
		{
		printf("\n请输入该办公用品的信息\n");
		printf("\n请输入编号:");
		scanf("%s",off[i].num);
    	printf("\n请输入名称:");
		scanf("%s",off[i].name);
		printf("请输入库存:");
		scanf("%s",&off[i].stock);
		printf("请输入供货商:");
		scanf("%s",&off[i].supplier);
		printf("请输入联系方式:");
		scanf("%s",&off[i].phone);
		}
	}
}
void del()
{
	char str[15],m;
	int i,j;
	printf("请输入要删除的办公用品编号:");
	scanf("%s",str);
	i=display(str);
	if(i!=-1)
	{
		printf("确认删除该办公用品的信息吗?(y/n):");
		m=getche();
		if(m=='y'||m=='Y')
		{
			off_num--;
			for(j=i;j<off_num;j++)
				off[j]=off[j+1];
			printf("\n记录删除成功!\n");
		}
	}
}
void save_txt()
{
	FILE *fp;
	char fname[20];
	int i;
	printf("请输入文件名(如:off.txt):");
	scanf("%s",fname);
	if((fp=fopen(fname,"w"))==NULL)
	{
		printf("不能打开文件,文件保存失败\n");
		return;
	}
	for(i=0;i<off_num;i++)
fprintf(fp,"%s %s %s %s %s %s\n",off[i].num,off[i].name,off[i].stock,off[i].supplier,off[i].phone);
	printf("文件保存成功!\n");
	fclose(fp);
}
void load_txt()
{
	FILE *fp;
	char fname[20];
	int i=0,flag;
	printf("请输入文件名(如:off.txt):");
	scanf("%s",fname);
	if((fp=fopen(fname,"r"))==NULL)
	{
		printf("不能打开文件,文件读取失败!\n");
		return;
	}
	while(1)
	{
		flag=fscanf(fp,"%s %s %s %s %s",off[i].num,off[i].name,off[i].stock,off[i].supplier,off[i].phone);
		if(flag==EOF)
			break;
		i++;
	}
	off_num=i;
	printf("从文件中成功读取%d条记录!\n",i);
	fclose(fp);
}