手机销售管理系统

这篇具有很好参考价值的文章主要介绍了手机销售管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

手机基本信息包括:手机编号(ID)、型号、品牌、进价、数量。

手机销售信息包括:手机编号(ID)、型号、品牌、售价、数量、销售日期(年.月.日)。

系统的主要功能包括:

1. 创建手机基本信息文件,根据提示输入若干手机的信息,并将这些信息保存至一个文件中。

2. 增加手机信息,在原有手机基本信息文件的基础上增加新的手机信息,并保存至原手机基本信息文件中。

3. 删除手机信息,提示用户输入要进行删除操作的手机编号,如果在手机基本信息文件中有该信息存在,则将对应的手机信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。

4. 修改手机信息,提示用户输入要进行修改操作的手机编号,如果在手机基本信息文件中有该信息存在,则将提示用户输入要修改的选项,并将结果保存至原手机基本信息文件,并提示用户选择是否继续进行修改操作。

5. 手机销售管理,创建一个手机销售记录文件,每完成一次销售,就按销售信息的要求输入各项数据,并将该次的销售信息添加到文件中。

6. 按不同条件进行查询操作,输出满足条件的手机信息。

(1) 输入手机编号,在手机产品信息文件中查找相应的手机信息并输出。

(2) 输入品牌,在手机销售记录文件中进行查找,输出该品牌手机的所有销售信息。

(3) 输入一个日期,输出该天所有的手机销售信息。

7. 按不同条件进行统计工作。

(1) 输入一个品牌,计算该品牌手机的总销售量和总销售金额。

(2) 输入一个日期(年.月),在销售记录文件中统计该月手机的总销售量,总销售金额,并由此制作本月销售排行榜(销量前10名)。

(3) 根据手机的进价,从小到大对手机信息进行排序,并输出排序后的信息。

       拿到这个课程设计,我首先将它分成了两个部分,一个是基本的手机信息,另一个是已售的手机信息。从而分成两个系统,将功能分开。基本的手机信息中的功能主要有创建文件、增加、删除、修改、查询手机信息,已售手机信息的操作功能主要有创建文件、统计手机信息。

       写代码时,我主要运用了四个头文件stdio.h、stdlib.h、string.h、conio.h,其中conio.h我们可能不太熟悉。

conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。

在本次编写中,我运用的主要是结构体数组,没有用指针,因此,代码的长度可能比较长。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
typedef struct jbphone //手机基本信息 
{
	char ID[2000]; //编号
	char size[4000]; //型号 
	char brand[2000]; //品牌 
	int in; //进价 
	int num;//数量 
}SJBPHONE;
typedef struct date //日期类型定义
{
	short year; //年
	short month; //月
	short day; //日
}SDATE;
typedef struct xsphone //手机销售信息 
{
	char ID[2000]; //编号
	char size[4000]; //型号 
	char brand[2000]; //品牌 
	short in; //进价
	short out;//售价 
	short num;//数量 
	SDATE out_time; //销售日期
}SXSPHONE;
#define SJBPHONE_LEN sizeof(SJBPHONE) 
#define SDATE_LEN sizeof(SDATE) 
#define SXSPHONE_LEN sizeof(SXSPHONE)
#define JBPHONENUM 1000
#define XSPHONENUM 1000
SJBPHONE jbphone[JBPHONENUM]={0}; 
SXSPHONE xsphone[XSPHONENUM]={0};

//输入手机信息函数声明 
int LoadJBPhone(void); //从文件载入全部手机信息的函数
void InputOneJBPhone(int i); //输入一个手机信息的函数
void SaveOneJBPhone(int i); //保存一个手机信息的函数
void SaveAllJBPhones(int pn); //保存全部手机信息的函数
int OriginalJBPhone(void);    //手机基本信息初始化的函数
//输出手机基本信息函数声明 
void OutputOneJBPhone(int i); //输出一个手机信息的函数
void OutputAllJBPhones(int pn); //输出全部手机信息的函数
//手机基本信息操作声明 
int AddPhone(int pn); //增加手机信息的函数
int DelPhone(int pn); //删除手机信息的函数
void ModifyPhone(int pn); //修改手机信息的函数
void RankInPrice(int pn);//按手机进价排序 

//输入已售手机信息函数声明
int LoadXSPhone(void); //从文件载入全部已售手机信息的函数
void InputOneXSPhone(int i); //输入一个已售手机信息的函数
void SaveOneXSPhone(int i); //保存一个已售手机信息的函数
void SaveAllXSPhones(int sn); //保存全部已售手机信息
int OriginalXSPhone(void);//已售手机信息初始化 
//输出已售手机信息函数声明 
void OutputOneXSPhone(int i); //输出一个已售手机信息的函数
void OutputAllXSPhones(int sn); //输出全部已售手机信息的函数
//已售手机信息操作声明 
int AddXSPhone(int sn); //增加手机信息的函数
int DelXSPhone(int sn); //删除已售手机信息的函数
//手机查询模块函数声明 
void SearchMenu(int sn); //手机查询函数
void SearchID (int sn); //按编号查询函数
void SearchBrand(int sn); //按品牌查询函数
void SearchOutTime(int sn); //按销售日期查询函数
//统计已售手机信息 
void statistics(int sn);//统计手机信息 
void sta_brand(int sn);//按品牌统计
void sta_date(int sn);//按销售日期统计 
int main()
{
	int select, pn=0, sn=0;
	pn=LoadJBPhone(); 
	if(pn==0)
	printf(" 基本手机信息为空!\n\n");
	sn=LoadXSPhone(); 
	if(sn==0) 
	printf(" 已售手机信息为空!\n\n");
	while(1)
	{ 
		printf("\t\t--------------------------------------\n");
		printf("\t\t         *                  *\n");
		printf("\t\t         * 手机销售管理系统 *\n");
		printf("\t\t         *                  *\n");
		printf("\t\t---------------------------------------\n\n");
		printf("\t\t手机基本信息操作            已售手机信息操作\n");
		printf("\t\t1.手机基本信息初始化        7.已售手机信息初始化\n");
		printf("\t\t2.增加手机信息              8.增加已售手机信息\n");
		printf("\t\t3.修改手机信息              9.查询已售手机信息\n");
		printf("\t\t4.删除手机信息              10.删除已售手机信息\n"); 
		printf("\t\t5.手机进价排序              11.统计\n"); 
		printf("\t\t6.显示全部手机基本信息      12.显示全部已售手机信息\n"); 
		printf("\n\t\t                            0. 退出系统\n"); 
		printf("-----------------------------------------------------------------------\n");
		printf("\n 请选择您需要的服务(0-8):");
		scanf("%d", &select); getchar();
		switch(select)
		{ 
			case 1: pn=OriginalJBPhone(); break;
			case 2: pn=AddPhone(pn); break;
			case 3: ModifyPhone(pn); break;
			case 4: pn=DelPhone(pn); break;
			case 5: RankInPrice(pn); break;
			case 6: OutputAllJBPhones(pn); break;
			case 7: sn=OriginalXSPhone();break;
			case 8: sn=AddXSPhone(sn); break;
			case 9: SearchMenu(sn); break;
			case 10: sn=DelXSPhone(sn); break;
			case 11: statistics(sn); break;
			case 12: OutputAllXSPhones(sn); break;
			case 0: printf("\n 谢谢使用!再见\n"); exit(1);
			default: printf("\n 按键错误,请重新选择!\n");
		} //end switch
	}
	return 0;
}
int LoadJBPhone(void) //从文件加载全部手机信息
{
	FILE *fp; 
	int pn=0; 
	fp=fopen("jbphone.txt","r");
	if(fp==NULL) 
	{ 
		printf("Can't open file jbphone.txt\n"); 
		return pn; 
	}
	while(!feof(fp))
	{
		fscanf(fp,"%s%s%s%d%d\n",jbphone[pn].ID,jbphone[pn].size,jbphone[pn].brand,&jbphone[pn].in,&jbphone[pn].num);
		pn++; 
	}
	fclose(fp); 
	return(pn); 
}
void InputOneJBPhone(int i) //输入一个手机的基本信息
{
	printf(" 编号:"); gets(jbphone[i].ID);
	printf(" 型号:"); gets(jbphone[i].size);
	printf(" 品牌:"); gets(jbphone[i].brand);
	printf(" 进价:"); scanf("%d",&jbphone[i].in); getchar();
	printf(" 数量:"); scanf("%d",&jbphone[i].num); getchar();
}
void SaveOneJBPhone(int i) //保存一个手机的信息
{
	FILE *fp;
	if((fp=fopen("jbphone.txt","r+"))==NULL)
	{ 
		printf("Can't open file jbphone.txt\n"); 
		exit(1); 
	}
	fseek(fp, SJBPHONE_LEN*i, 0);
	fprintf(fp,"%s\n%s\n%s\n%d\n%d\n",jbphone[i].ID,jbphone[i].size,jbphone[i].brand,jbphone[i].in,jbphone[i].num);
	fclose(fp);
}
void SaveAllJBPhones(int pn) //保存全部手机信息
{
	FILE *fp;
	if((fp=fopen("jbphone.txt","w"))==NULL) 
	{ 
		printf("Can't open file jbphone.txt\n");
		exit(1); 
	}
	for(int i=0;i<pn;i++)
	fprintf(fp,"%s\n%s\n%s\n%d\n%d\n",jbphone[i].ID,jbphone[i].size,jbphone[i].brand,jbphone[i].in,jbphone[i].num);
	fclose(fp);
}
int OriginalJBPhone(void)//手机基本信息初始化 
{
	int pn;
	char c = 'y';
	printf("正在初始化手机基本信息\n");
	FILE *fp;
	fp=fopen("jbphone.txt","w");
	for (pn = 0; c == 'y' || c == 'Y';pn++)
	{
		printf("\n输入手机%d的信息:\n", pn + 1);
		InputOneJBPhone(pn);                          
		SaveOneJBPhone(pn); 
		printf("\n继续输入请按'y',停止输入请按'n':");
		c = getchar(); getchar(); 
	}
	SaveAllJBPhones(pn);
	printf("pn=%d\n",pn);
	printf("\n 按任意键继续!\n"); getch();
	fclose(fp);
	return (pn);
}
void OutputOneJBPhone(int i) //输出一个手机的全部信息
{
	printf("\n");
	printf(" 编号:"); puts(jbphone[i].ID);
	printf(" 型号:"); puts(jbphone[i].size);
	printf(" 品牌:"); puts(jbphone[i].brand);
	printf(" 进价:"); printf("%d\n",jbphone[i].in); 
	printf(" 数量:"); printf("%d\n",jbphone[i].num); 
}
void OutputAllJBPhones(int pn) //输出全部手机信息的函数
{
	int i;
	if(pn==0)
	{ 
		printf("\n 手机基本信息为空,无法执行操作!\n"); 
		return ; //返回到主菜单 
	}
	printf("\n 全部手机的详细信息:\n");
	for(i=0; i<pn; i++) 
	{ 
		OutputOneJBPhone(i);
	}
	printf("\n 全部手机信息输出完毕。\n");
	printf("\n 按任意键返回!\n"); getch();
	return ;
}
int AddPhone(int pn)//增加手机信息
{
	char c = 'y';
	int i;
	printf("现有的手机总量为:%d\n",pn);
	FILE *fp;
	if((fp=fopen("jbphone.txt","a"))==NULL)
	{ 
		printf("can't open file jbphone.txt\n"); 
		exit(1); 
	}
	printf("增加手机信息:");
	for (i = 0; c == 'y' || c == 'Y'; i++)
	{
		printf("\n输入手机%d的信息:\n", pn + 1);
		InputOneJBPhone(pn);
		SaveOneJBPhone(pn); 
		pn++;
		printf("\n继续输入请按'y',停止输入请按'n':");
		c = getchar(); getchar();
	}
	SaveAllJBPhones(pn);
	printf("\n 按任意键继续!\n"); getch();
	fclose(fp);
	return(pn);
}
int DelPhone(int pn)//删除手机基本信息
{
	int i, k=-1; char id[2000], c1='y', c2;
	if(pn==0)
	{ 
		printf("\n 手机信息为空,无法执行操作!\n"); 
		return pn; 
	}
	while(c1=='y'||c1=='Y')
	{ 
		c2='n';
		printf("\n 请输入要删除的手机的编号:"); 
		gets(id);
		for(i=0; i<pn; i++)
		if(strcmp(jbphone[i].ID, id)==0)
		{ 
			k=i;
			break; 
		} 
		if(k<0)
		printf("\n 输入的编号有误,请重新输入!\n");
		else
		{ 
			printf("\n 显示该手机的信息:\n"); OutputOneJBPhone(k);
			printf("\n 确定要删除该手机的全部信息吗?(y/n):");
			c2=getchar(); getchar();
			if(c2=='y')
			{ 
				for(i=k; i<pn; i++)
				jbphone[i]=jbphone[i+1];
				pn--;
				printf("\n 成功删除!\n");
			}
			else 
			printf("\n 取消删除!\n");
		}//end else
		printf("\n 还需要删除其它手机的信息吗?(y/n):");
		c1=getchar(); getchar();
	} //end while
	SaveAllJBPhones(pn); 
	printf("\n 按任意键继续!\n"); getch();
	return(pn); 
}
void ModifyPhone(int pn)//修改手机信息的函数
{
	int select, k=-1; 
	char id[2000], c1='y', c2;
	if(pn==0)
	{ 
		printf("\n 手机基本信息为空,无法执行操作!\n"); 
		return ; //返回到主菜单 
	}
	while(c1=='y'||c1=='Y')
	{ 
		c2='y';
		printf("\n 请输入要修改的手机的编号:"); 
		gets(id);
		for(int i=0; i<pn; i++)
		{
			if(strcmp(jbphone[i].ID, id )==0)
			{
				k=i; 
				break; 
			}
		}
		if(k<0) 
			printf("\n 输入的编号有误,请重新输入!\n");
		else 
		{ 
			printf("\n 显示此手机信息:\n");
			OutputOneJBPhone(k);
			while(c2=='y'||c2=='Y')
			{ 
				printf("\n 手机信息包括以下数据项\n");
				printf("-------------------------------------------------\n");
				printf(" 1. 编号 \n");
				printf(" 2. 型号 \n");
				printf(" 3. 品牌 \n");
				printf(" 4. 进价 \n");
				printf(" 5. 数量 \n");
				printf(" 0. 取消删除 \n"); 
				printf("-------------------------------------------------\n");
				printf("\n 请选择要修改的数据项(0-5):");
				scanf("%d", &select); 
				getchar();
				switch(select)
				{ 
					case 1: printf(" 编号:"); gets(jbphone[k].ID);break;
					case 2: printf(" 型号:"); gets(jbphone[k].size);break;
					case 3: printf(" 品牌:"); gets(jbphone[k].brand);break;
					case 4: printf(" 进价:"); scanf("%d",&jbphone[k].in); getchar();break;
					case 5: printf(" 数量:"); scanf("%d",&jbphone[k].num); getchar();break;
					case 0: return ;
					default: printf("\n 按键错误,请重新输入!\n");
				} //end switch
				printf("\n 还要修改此手机的其他信息吗?(y/n):");
				c2=getchar(); getchar();
			} //end while(c2)
		}
		SaveOneJBPhone(k);
		printf("\n 还需要修改其它手机的信息吗?(y/n):");
		c1=getchar(); getchar();
	} //end while(c1);
	printf("\n 按任意键继续!\n"); getch();
}
void RankInPrice(int pn)//按手机进价排序 
{
	SJBPHONE temp1={0};
	int k,j,i;
	if(pn==0)
	{ 
		printf("\n 手机信息为空,无法执行操作!\n"); 
		return ; 
	}
	for (k = 0; k < pn - 1; k++)
	{
		for(j = 0; j < pn - 1 - k; j++)
		if (jbphone[j].in < jbphone[j + 1].in)
		{
			temp1 = jbphone[j];
			jbphone[j] = jbphone[j + 1];
			jbphone[j + 1] = temp1;
			
		}
	}
	printf("手机进价排序(由大到小):\n"); 
	for (j = 0; j < pn; j++)
	{
		OutputOneJBPhone(j);
	}
	printf("\n 按任意键继续!\n"); getch();
}
//已售 
int LoadXSPhone(void) //从文件加载全部已售手机信息
{
	FILE *fs; 
	int sn=0; 
	fs=fopen("xsphone.txt","r"); 
	if(fs==NULL)
	{ 
		printf("Can't open file xsphone.txt\n"); 
		return sn; 
	}
	while(!feof(fs))
	{
		fscanf(fs,"%s%s%s%d%d",xsphone[sn].ID,xsphone[sn].size,xsphone[sn].brand,&xsphone[sn].out,&xsphone[sn].num);
		fscanf(fs,"%d.%d.%d\n",&xsphone[sn].out_time.year,&xsphone[sn].out_time.month,&xsphone[sn].out_time.day);
		sn++; 
	}
	fclose(fs); 
	return(sn);
}
void InputOneXSPhone(int sn) //输入一个已售手机信息的函数
{
	printf(" 编号:"); gets(xsphone[sn].ID);
	printf(" 型号:"); gets(xsphone[sn].size);
	printf(" 品牌:"); gets(xsphone[sn].brand);
	printf(" 售价:"); scanf("%d",&xsphone[sn].out); getchar();
	printf(" 数量:"); scanf("%d",&xsphone[sn].num); getchar();
	printf(" 销售日期(年月日):"); scanf("%d.%d.%d",&xsphone[sn].out_time.year,&xsphone[sn].out_time.month,&xsphone[sn].out_time.day) ;getchar();
}
void SaveOneXSPhone(int i) //保存一个已售手机信息的函数
{
	FILE *fs;
	if((fs=fopen("xsphone.txt","w+"))==NULL)
	{ 
		printf("Can't open file xsphone.txt\n"); 
		exit(1); 
	}
	fseek(fs, SXSPHONE_LEN*i, 0); //文件指针定位到第 i 个手机 
	fprintf(fs,"%s\n%s\n%s\n%d\n%d\n",xsphone[i].ID,xsphone[i].size,xsphone[i].brand,xsphone[i].out,xsphone[i].num);
	fprintf(fs,"%d.%d.%d\n",xsphone[i].out_time.year,xsphone[i].out_time.month,xsphone[i].out_time.day);
	fclose(fs);
}
void SaveAllXSPhones(int sn) //保存全部已售手机信息
{
	FILE *fs;
	if((fs=fopen("xsphone.txt","w"))==NULL) 
	{ 
		printf("Can't open file xsphone.txt\n");
		exit(1); 
	}
	for(int i=0;i<sn;i++)
	{
		fprintf(fs,"%s\n%s\n%s\n%d\n%d\n",xsphone[i].ID,xsphone[i].size,xsphone[i].brand,xsphone[i].out,xsphone[i].num);
		fprintf(fs,"%d.%d.%d\n",xsphone[i].out_time.year,xsphone[i].out_time.month,xsphone[i].out_time.day);
	}
	fclose(fs);
}
int OriginalXSPhone(void)//已售手机信息初始化 
{
	int sn;
	char c = 'y';
	printf("正在初始化已售手机信息\n");
	FILE *fs;
	fs=fopen("xsphone.txt","w");
	for (sn = 0; c == 'y' || c == 'Y';sn++)
	{
		printf("\n输入已售手机%d的信息:\n", sn + 1);
		InputOneXSPhone(sn);
		SaveOneXSPhone(sn); 
		printf("\n继续输入请按'y',停止输入请按'n':");
		c = getchar(); getchar(); 
	}
	SaveAllXSPhones(sn); 
	printf("sn=%d\n",sn);
	printf("\n 按任意键继续!\n"); getch();
	fclose(fs);
	return (sn);
}
void OutputOneXSPhone(int i) //输出一个已售手机信息的函数
{
	printf("\n");
	printf(" 编号:"); puts(xsphone[i].ID);
	printf(" 型号:"); puts(xsphone[i].size);
	printf(" 品牌:"); puts(xsphone[i].brand);
	printf(" 售价:"); printf("%d\n",xsphone[i].out); 
	printf(" 数量:"); printf("%d\n",xsphone[i].num); 
	printf(" 销售日期:"); printf("%d.%d.%d\n",xsphone[i].out_time.year,xsphone[i].out_time.month,xsphone[i].out_time.day); 
}
void OutputAllXSPhones(int sn)	//输出全部已售手机信息的函数
{
	int i;
	if(sn==0)
	{ 
		printf("\n 已售手机信息为空,无法执行操作!\n"); 
		return ; 
	}
	printf("\n 全部已售手机的详细信息:\n");
	for(i=0; i<sn; i++) 
	{ 
		OutputOneXSPhone(i); 
	}
	printf("\n 全部手机信息输出完毕。\n");
	printf("\n 按任意键返回!\n"); getch();
	return ;
}
int AddXSPhone(int sn)//增加手机信息
{
	char c = 'y';
	int i;
	FILE *fs;
	printf("已售手机总量为:%d\n",sn);
	if((fs=fopen("xsphone.txt","a"))==NULL) 
	{ 
		printf("can't open file xsphone.txt\n"); 
		exit(1); 
	}
	printf("增加手机信息:");
	for (i = 0; c == 'y' || c == 'Y'; i++)
	{
		printf("\n输入已售手机%d的信息:\n", sn + 1);
		InputOneXSPhone(sn);
		SaveOneXSPhone(sn); 
		sn++;
		printf("\n继续输入请按'y',停止输入请按'n':");
		c = getchar(); getchar();
	}
	SaveAllXSPhones(sn);
	printf("\n 按任意键继续!\n"); getch();
	fclose(fs);
	return(sn);
}
int DelXSPhone(int sn)
{
	int i, k=-1;
	char id[2000], c1='y', c2;
	if(sn==0)
	{ 
		printf("\n 已售手机信息为空,无法执行操作!\n"); 
		return sn; 
	}
	while(c1=='y'||c1=='Y')
	{ 
		c2='n';
		printf("\n 请输入要删除的已售手机的编号:"); 
		gets(id);
		for(i=0; i<sn; i++)
		if(strcmp(xsphone[i].ID, id)==0)
		{ 
			k=i;
			break; 
		}
		if(k<0)
		printf("\n 输入的编号有误,请重新输入!\n");
		else
		{ 
			printf("\n 显示该已售手机的信息:\n"); OutputOneXSPhone(k);
			printf("\n 确定要删除该手机的全部信息吗?(y/n):");
			c2=getchar(); getchar();
			if(c2=='y') 
			{ 
				for(i=k; i<sn; i++)
				xsphone[i]=xsphone[i+1];  
				sn--; 
				printf("\n 成功删除!\n");
			}
			else 
			printf("\n 取消删除!\n");
		}//end else
		printf("\n 还需要删除其它已售手机的信息吗?(y/n):");
		c1=getchar(); getchar();
	} //end while
	SaveAllXSPhones(sn);
	printf("\n 按任意键继续!\n"); getch();
	return(sn);
}
void SearchMenu(int sn) //手机查询函数
{
	int select;
	while(1)
	{ 
		printf("\n 欢迎使用已售手机信息查询服务\n");
		printf("-----------------------------------------------------------\n");
		printf(" 1. 按编号查询\n");
		printf(" 2. 按品牌查询\n");
		printf(" 3. 按销售日期查询\n") ;
		printf(" 0. 退出查询服务\n") ;
		printf("-----------------------------------------------------------\n");
		printf("\n 请选择查询方式(0-3):");
		scanf("%d", &select); getchar();
		switch(select)
		{ 
			case 1: SearchID (sn); break;
			case 2: SearchBrand(sn); break;
			case 3: SearchOutTime(sn); break;
			case 0: return ;
			default: printf("\n 按键错误,请重新选择!\n");
		}
	}
}
void SearchID (int sn) //按编号查询函数
{
	int i, k; char id[2000], c1='y', c2;
	if(sn==0)
	{ 
		printf("\n 已售手机信息为空,无法执行操作!\n"); 
		return ; 
	}
	while(c1=='y'||c1=='Y')
	{ 
		k=-1;
		c2='n';
		printf("\n 请输入要查询的手机的编号:"); 
		gets(id);
		for(i=0; i<sn; i++)
		if(strcmp(xsphone[i].ID, id)==0)
		{ 
			k=i;
			break; 
		} 
		if(k<0)
			printf("\n 输入的编号有误,请重新输入!\n");
		else
		{ 
			printf("\n 显示该手机的信息:\n"); OutputOneXSPhone(k);
			
		}//end else
		printf("\n 继续查询其它编号的手机信息吗?(y/n):");
		c1=getchar(); getchar();
	} //end while
	printf("\n 按任意键继续!\n"); getch();
}
void SearchBrand(int sn) //按品牌查询函数
{
	int i,j, k=-1,a[XSPHONENUM]; char b[2000], c1='y', c2;
	if(sn==0)
	{ 
		printf("\n 已售手机信息为空,无法执行操作!\n"); 
		return ; 
	}
	while(c1=='y'||c1=='Y')
	{ 
		j=0;
		c2='n';
		printf("\n 请输入要查询的手机的品牌:"); 
		gets(b);
		for(i=0; i<sn; i++)
		if(strcmp(xsphone[i].brand,b)==0)
		{ 
			k=1;
			a[j]=i;
			j++;
		} 
		if(k<0) 
			printf("\n 输入的品牌有误,请重新输入!\n");
		else
		{ 
			k=j;
			printf("\n 显示该品牌的手机信息:\n");
			for(j=0;j<k;j++) 
			OutputOneXSPhone(a[j]);
			printf("\n 继续查询其它品牌的手机信息吗?(y/n):");
			c1=getchar(); getchar();
		}//end else
	} //end while
	printf("\n 按任意键继续!\n"); getch();
}
void SearchOutTime(int sn) //按销售日期查询函数
{
	int i, k, year, month; char c='y';
	while(c=='y'||c=='Y')
	{ 
		k=-1; 
		month=0;
		printf("\n 请输入销售日期(年.月):");
		scanf("%d.%d", &year, &month); getchar();
		for(i=0; i<sn; i++)
		{ 
			if(xsphone[i].out_time.year==year)
			{ 
				k=i;
				if(month!=0)
				if(xsphone[i].out_time.month!=month)
				continue; 
				OutputOneXSPhone(k);
			}
		}
		if(k== -1) 
		printf("\n 抱歉!没有相应的手机信息!\n");
		printf("\n 继续查询其他手机的信息吗?(y/n):");
		c=getchar(); getchar();
	}
	printf("\n 按任意键继续!\n"); getch();
}
void statistics(int sn)//统计手机信息 
{
	int select;
	while(1)
	{ 
		printf("\n 欢迎使用手机信息统计服务\n");
		printf("-----------------------------------------------------------\n");
		printf(" 1. 按品牌统计\n");
		printf(" 2. 按销售日期统计\n") ;
		printf(" 0. 退出统计服务\n") ;
		printf("-----------------------------------------------------------\n");
		printf("\n 请选择统计方式(0-2):");
		scanf("%d", &select); getchar();
		switch(select)
		{ 
			case 1: sta_brand(sn); break;
			case 2: sta_date(sn); break;
			case 0: return ;
			default: printf("\n 按键错误,请重新选择!\n");
		}
	}
}
void sta_brand(int sn)//按品牌统计
{
	int i, k,xsnum,xsprice;
	char b[2000], a[2000],c1='y', c2;
	if(sn==0)
	{ 
		printf("\n 已售手机信息为空,无法执行操作!\n"); 
		return ; 
	}
	while(c1=='y'||c1=='Y')
	{ 
		k=-1;
		xsprice=0;
		xsnum=0;
		c2='n';
		printf("\n 请输入要统计的手机品牌:"); 
		gets(b);
		for(i=0; i<sn; i++)
		if(strcmp(xsphone[i].brand,b)==0)
		{ 
			k=1;
			xsprice+=xsphone[i].out;
			xsnum+=xsphone[i].num;
		} 
		if(k<0)
			printf("\n 输入的品牌有误,请重新输入!\n");
		else
		{ 
			printf("该品牌的总销售量为:%d\n",xsnum);
			printf("该品牌的总销售金额为:%d\n",xsprice);
		}//end else
		printf("\n 继续统计其它品牌的手机信息吗?(y/n):");
		c1=getchar(); getchar();
	} //end while
	printf("\n 按任意键继续!\n"); getch();
}
void sta_date(int sn)//按销售日期统计 
{
	int i, j, k,l=0, year, month,totalnum,totalprice,a[1000];
	char c='y';
	SXSPHONE temp2={0};
	while(c=='y'||c=='Y')
	{ 
		k=-1; 
		totalnum=0;
		totalprice=0;
		month=0;
		printf("\n 请输入时间(年.月):");
		scanf("%d.%d", &year, &month); getchar();
		for(i=0,j=1; i<sn; i++)
		{ 
			if(xsphone[i].out_time.year==year)
			{ 
				k=i;
				if(month!=0)
				if(xsphone[i].out_time.month!=month)
				continue; 
				else 
				{
					totalnum+=xsphone[i].num;
					totalprice+=xsphone[i].out;
					a[l]=i;
					l++;
				} 
				j++; 
			}
		}
		if(k== -1|| j==1) 
		printf("\n 抱歉!没有相应的手机信息!\n");
		else
		{
			int y=l;
			printf("\n 该月总销售量为:%d\n",totalnum);
			printf(" 该月总销售金额为:%d\n",totalprice);
			printf("\n 本月销售量排行榜(前10):"); 
			for (k = 0; k<=y; k++)
			{
				for(l=0; l<=y-k ;l++)
				if (xsphone[a[l]].num < xsphone[a[l+1]].num)
				{
					temp2 = xsphone[a[l]];
					xsphone[a[l]] = xsphone[a[l+1]];
					xsphone[a[l+1]] = temp2;
					
				}
			}
			for(l=0;l<10;l++)
				OutputOneXSPhone(a[l]);
		}
		printf("\n 继续查询其他月份的手机信息吗?(y/n):");
		c=getchar(); getchar();
	}
	printf("\n 按任意键继续!\n"); getch();
}

本人是一名小白,如果有更好的建议或意见,欢迎提出。文章来源地址https://www.toymoban.com/news/detail-608514.html

到了这里,关于手机销售管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ssm509基于java的网上手机销售系统+vue

    题目:网上手机销售系统 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本网上手机销售系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使

    2024年01月18日
    浏览(42)
  • JSP+access手机销售系统(论文+系统+开题+封面+扉页+需求分析+任务书)

    软 件 课 程 设 计 报 告 手 机 在 线 销 售 系 统 专 业 : 计算机科学与技术专业 班级 : 小组成员: 指导教师: 职 称: 中 20 年 月 题 目 手机在线销售系统 设计日期 20 年 月 日至 20 年 月 日 小组成员 在本次设计中承担的任务 文档成绩 担任小组组长,在设计中主要设计手机

    2024年02月14日
    浏览(37)
  • 基于Java网上手机销售系统设计实现(源码+lw+部署文档+讲解等)

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月07日
    浏览(36)
  • 基于Java+SpringBoot+Vue前后端分离手机销售商城系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2023年04月15日
    浏览(76)
  • 手机电商销售数据集可视化大屏全屏系统毕业设计应用

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(52)
  • python——手机销售统计

    类型:集合 文件中包含有2018和2019手机销售榜单数据(市场份额百分数),请根据要求升序输出分析结果: 输入’1’时,以列表形式在两行中分别输出2019年和2018年上榜品牌 输入’2’时,以列表形式输出2019年和2018年都上榜的品牌 输入’3’时,以列表形式输出2019年和2018年

    2024年02月04日
    浏览(36)
  • odoo16 销售订单中数量与单价,手机录入不方便

    odoo16 销售订单中数量与单价,手机录入不方便 在销售订单中,服装批发,数量与单价均是整数,系统默认的为保留两位小数的float类型,输入起来很不方便,如何修改 电脑版,输入时,自动选取,点取数字后直接录入,很方便,但手机界面不行,1.00还需从后面删除,直接录

    2024年02月01日
    浏览(32)
  • 计算机毕业设计 jsp手机销售购物商城ssh 毕设

    4. 系统的实现 4.1 nbsp;前台系统的实现 4.1.1 nbsp;用户前台界面的实现 本系统网站的主界面设计结构采用了上左右的结构,上部分为主功能菜单区,主要是显示网站的主功能,左侧为用户注册、登录,公告浏览,商品查询,右部分为信息显示区,销售排行榜 主要是为方便用户提供

    2024年02月22日
    浏览(49)
  • android手机销售app(IDEA,SpringBoot,SSM,MySQL)+支付宝支付+全套视频教程

    本项目亮点: 支付宝支 付 + eCharts柱状图图表数据统计 【项目功能介绍】     本系统包含后台管理和前端app双端系统,后台管理的功能包含: 登录, 退出, 修改管理员信息(基本信息与头像),资源管理,角色管理,资源权限分配,字典管理,用户管理,图书管理,订单管理,订单统计;

    2024年02月10日
    浏览(53)
  • ssm/php/node/python基于数据分析星辰网智能手机销售网站

    本系统 (程序+源码) 带文档lw万字以上    文末可领取本课题的JAVA源码参考 选题背景: 在数字化时代,智能手机已经成为人们日常生活和工作中不可或缺的一部分。随着科技的迅猛发展,消费者对智能手机的需求日益多样化,市场上涌现出各式各样的品牌和型号。星辰网

    2024年02月21日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包