服装销售管理系统

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

这个是我大一下刚开学在哥哥的帮助下完成的服装销售管理,系统,基本包括:登录界面,管理菜单,其中管理菜单又包括:数据的录入,查询,修改,插入,删除,统计,排序,报表,存储以及退出系统,而各个内容还有一些细化,此处暂不详说,后面会有解释。

话不多说,先上代码,我这个主要分为三部分:

主函数

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "./Cloth.cpp"
#include "./function.cpp"

int main() {
	Cloth *head;
	int f,num1,num2;
	printf("\t\t\t\t\t**************************************\n");
	printf("\t\t\t\t\t*       请选择:1.登录  2.注册       *\n");
	printf("\t\t\t\t\t**************************************\n");
	printf("\t\t\t\t\t您的选择是:");
	scanf("%d",&f);
	if(f==1) {
		printf("\t\t\t\t\t请输入账号:");
		scanf("%d",&num1);
		while(num1!=123) {
			printf("\t\t\t\t\t请输入密码:");
			scanf("%d",&num2);
			printf("\t\t\t\t\t     账号或密码错误,请重新输入!\n");
			printf("\t\t\t\t\t请输入账号:");
			scanf("%d",&num1);
		}
		printf("\t\t\t\t\t请输入密码:");
		scanf("%d",&num2);
		while(num2!=123) {
			printf("\t\t\t\t\t     账号或密码错误,请重新输入!\n");
			printf("\t\t\t\t\t请输入账号:") ;
			scanf("%d",&num1);
			printf("\t\t\t\t\t请输入密码:");
			scanf("%d",&num2);
		}
		printf("\n\t\t\t\t\t\t   ---登录成功!---\n");
		system("pause");
		int n,a=1;	
		while(a>0) {	system("cls");//清屏 
			printf("\n\t\t\t\t\t**************************************\n");
			printf("\t\t\t\t\t*      欢迎访问服装销售管理系统      *\n");
			printf("\t\t\t\t\t*             1.数据录入             *\n");
			printf("\t\t\t\t\t*             2.数据查询             *\n");
			printf("\t\t\t\t\t*             3.数据修改             *\n");
			printf("\t\t\t\t\t*             4.数据插入             *\n");
			printf("\t\t\t\t\t*             5.数据删除             *\n");
			printf("\t\t\t\t\t*             6.数据统计             *\n");
			printf("\t\t\t\t\t*             7.数据排序             *\n");
			printf("\t\t\t\t\t*             8.数据报表             *\n");
			printf("\t\t\t\t\t*             9.数据存储             *\n");
			printf("\t\t\t\t\t*            -1.退出系统             *\n");
			printf("\t\t\t\t\t**************************************\n\n");
			printf("请输入您想选择的功能:");
			scanf("%d",&n);
			//多项选择使用switch 
			switch(n) {
				case 1:
					head=creat();
					system("pause");//暂停 
					break;
				case 2:
					printf("1.按服装颜色查询\n");
					printf("2.按服装颜色和性别查询\n");
					printf("3.按服装编号查询\n");
					printf("请选择操作:\n");
					int choose1;
					scanf("%d",&choose1);
					switch(choose1) {
						case 1: {
							search1(head);
							break;
						}
						case 2: {
							search2(head);
							break;
						}
						case 3: {
							search3(head);
							break;
						}
					}
					system("pause");//暂停 
					break;
				case 3:
					mod(head);
					system("pause");//暂停 
					break;
				case 4:
					insert(head);
					system("pause");//暂停 
					break;
				case 5: 
				del(head);
					system("pause");//暂停 
					break;
				case 6:
					printf("1.按颜色统计\n");
					printf("2.按颜色和性别\n");
					printf("请选择操作:\n");
					int choose3;
					scanf("%d",&choose3);
					if(choose3==1) {
						stastistics(head);
					} else {
						stastistics_group(head);
					}
					system("pause");//暂停 
					break;
				case 7: {
					printf("1.按价格-正序\n");
					printf("2.按价格-倒序\n");
					printf("请选择操作:\n");
					int choose1;
					scanf("%d",&choose1);
					if(choose1==1) {
						printf("排序后服装信息为:\n");
						pop_sortp_ace(head);
					} else {
						printf("排序后服装信息为:\n");
						pop_sortp_desc(head);
					}
				}
				system("pause");//暂停 
				break;
				case 8:
					printf("服装报表如下\n");
					printf("----------------------------------------------------------------------------------------------------------\n");
					printf("服装编号\t服装颜色\t服装性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
					printf(head);
					printf("----------------------------------------------------------------------------------------------------------\n");					
					system("pause");//暂停 
					break;
				case 9:
					printf("1.数据写入文件\n");
					printf("2.数据读取\n");
					printf("3.数据覆写到文件\n");
					printf("请选择操作:  ");
					int choose4;
					scanf("%d",&choose4);
					if(choose4==1) 
					{
						write_file(head);
					} 
					if (choose4==2)
					{
						head = read_file();
					} 
					if (choose4==3)
					{
					    write_file1(head);
					}
					system("pause");//暂停 
					break;
				case -1:
					a=-1;
					printf("\n*************感谢您的使用*************\n") ;
					printf("*************    END     *************\n\n");
					break;
				default:
					printf("输入错误,请重新选择\n");
			}
		}
		system("pause");//暂停 
	}

	return 0;
};

函数部分:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>


Cloth *creat() {                                 //录入数据 (创建服装链表)

	Cloth *head,*q,*p;//定义指针
	head=(Cloth*)malloc(sizeof(Cloth));//为头结点开辟空间(强制类型转换)
	head->next=NULL;//置空头结点指针域
	q=head;//q指针记录头结点的地址
	int id;
	printf("\t请您输入:   服装编号 服装颜色 服装适用性别(m/f) 服装销量 服装价格 服装款式 服装品牌(输入0结束)\n");
	printf("\t\t\t");
	scanf("%d",&id);
	while(id!=0) { //当服装编号为0停止输入循环
		p=(Cloth *)malloc(sizeof(Cloth));
		p->id=id;
		scanf("%s %s %d %f %s %s",p->color,p->sex,&p->count,&p->price,p->style,p->brand);
		p->next=NULL;
		q->next=p;//连接p,q指针
		q=p;//q指针后移
		printf("\t请您输入:   服装编号 服装颜色 服装适用性别(m/f) 服装销量 服装价格 服装款式 服装品牌(输入0结束)\n");
		printf("\t\t\t");
		scanf("%d",&id);
	}
	return head;//返回链表head节点
}

void printf(Cloth *head) {                       //输出数据
	Cloth *p=head->next;
	while(p) { //当p到达链表最后停止输出
		printf("----------------------------------------------------------------------------------------------------------\n");
		printf("%d\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%s\t\t%s\n",p->id,p->color,p->sex,p->count,p->price,p->style,p->brand);
		p=p->next;
	}
}

void insert(Cloth *head) {                       //插入数据
	int id,no,flag=1,id1;
	//flag--判断指针是否到达指定节点
	printf("请您输入要插入服装的信息:\n");
	printf("服装编号(输入0退出):   ");
	scanf("%d",&id);
	Cloth *p,*q,*r;
	while(id!=0) {
		r=(Cloth*)malloc(sizeof(Cloth));
		r->next=NULL;
		r->id=id;
		printf("请您继续输入:服装颜色 服装适用性别(m/f) 服装销量 服装价格 服装款式 服装品牌\n");
		scanf("%s %s %d %f %s %s",r->color,r->sex,&r->count,&r->price,r->style,r->brand);
		q=head;
		p=q->next;
		printf("请选择您想插入的方式:\n");
		printf("1.插在头部\n2.插在尾部\n3.插在指定编号之后\n");
		printf("\n请输入您的选择:  ");
		scanf("%d",&no);
		if(no==1) { //头插
			q->next=r;
			r->next=p;
			//插入指针r
			printf("插入成功!\n") ;
		}
		if(no==2) { //尾插
			while(head->next!=NULL) {
				q=q->next;
				p=p->next;
				if(q->next==NULL) {
					p=NULL;
					q->next=r;
					r->next=NULL;
					flag=0;
					break;
				}
			}
			if(flag) {
				r->next==p;
				q->next=r;
			}
			printf("插入成功!\n") ;
		}
		if(no==3) { //任意位置
			printf("请输入您想插在哪个编号之后:  ");
			scanf("%d",&id1);
			while(q->id!=id1) {
				q=q->next;
				p=p->next;
				if(q->id==id1) {
					flag=1;
					break;
				}
			}
			if(flag==1) {
				q->next=r;
				r->next=p;
				printf("插入成功!\n");
			} else {
				printf("未找到该编号,无法插入\n");
			}
		}
		printf("请您输入继续要插入的服装编号:(输入0退出)");
		scanf("%d",&id);
	}
	
					printf("\n添加后所有服装信息为\n");
					printf("----------------------------------------------------------------------------------------------------------\n");
					printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
					printf(head);
}

void del(Cloth *head) {                          //删除数据
	Cloth *p,*q;
	int no2,flag=0,no3;
	//选项 1中,flag确定是否找到并删除目标节点
	//选项 2中,flag代表找到符合条件的服装的个数
	p=head;
	q=head->next;
	printf("请选择您想删除的服装相关属性:\n1.编号      2.颜色 \n");
	printf("您的选择是: ");
	scanf("%d",&no2);
	if(no2==1) {
		int b;
		printf("请输入您想删除的服装编号: ");
		scanf("%d",&b);
		while(q!=NULL) {
			if(q->id==b) {
				p->next=q->next;//断开q节点
				free(q);//释放q节点内存
				q=NULL;//置空q指针防止出现野指针
				printf("删除成功!\n");
				flag=1;//已经找到目标节点并删除
				break;
			} else {
				p=p->next;
				q=q->next;
				flag=0;//现在还未找到目标节点
			}
		}
		if(flag==0) { //指针到达尾节点也没找到并删除目标节点
			printf("未查询到该服装编号\n");
		}
	}
	if(no2==2) {
		Cloth *p,*q;
		char color1[20];
		int flag=0;//初始化找到符合条件的服装个数为 0
		printf("请输入您要删除的服装颜色:");
		scanf("%s",color1);
		q=head;
		p=head->next;
		while(p!=NULL) {
			if(strcmp(p->color,color1)==0) {
				printf("----------------------------------------------------------------------------------------------------------\n");
				printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
				printf("----------------------------------------------------------------------------------------------------------\n");
				printf("%d\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%s\t\t%s\n",p->id,p->color,p->sex,p->count,p->price,p->style,p->brand);
				flag++;//每找到一条+1
			}
			p=p->next;
			//此处符合条件的服装可能不止一条
			//所以不论找到与否,继续后移查找,要找出所有符合条件的节点
		}
		if(p==NULL&&flag==0) { //一条也没找到
			printf("未查询到该颜色的服装\n");
		}
		if(p==NULL&&flag==1) { //只找到一条,可以确定,直接删除
			p=head;
			q=head->next;
			while(q!=NULL) {
				if(strcmp(q->color,color1)==0) {
					p->next=q->next;//断开q节点
					free(q);//释放q节点内存
					q=NULL;//置空q指针防止出现野指针
					printf("删除成功!\n");
					break;
				} else {
					p=p->next;
					q=q->next;
				}
			}
		}
		if(p==NULL&&flag>1) { //找到不止一条,无法确定具体删除哪一条
			printf("颜色为 %s 的服装有 %d 件\n",color1,flag);
			p=head;
			q=head->next;
			int b;
			printf("请输入您想删除的服装编号: ");//进一步选择确定
			scanf("%d",&b);
			flag=0;
			while(q!=NULL) {
				if(strcmp(q->color,color1)==0&&q->id==b) {
					p->next=q->next;
					free(q);
					q=NULL;
					printf("删除成功!\n");
					flag=1;
					break;
				} else {
					p=p->next;
					q=q->next;
					flag=0;
				}
			}
			if(flag==0) {
				printf("未查询到该服装编号\n");
			}
		}
	}
	printf("\n删除后所有服装信息为\n");
	printf("----------------------------------------------------------------------------------------------------------\n");
	printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
	printf(head);
}

void mod(Cloth *head) {                          //修改数据
	int ab,flag=0,id1,id2,count1;
	float price1;
	Cloth *p,*q;
	char color1[20],color2[20],sex1[20],style1[20],style2[20],brand1[20];
	//flag确定找到符合条件的服装个数,初始值为 0
	printf("请输入您想修改的服装的属性:    1.颜色 \t 2.款式\n");
	printf("您的选择是: ");
	scanf("%d",&ab);
	if(ab==1) {
		printf("\n请输入您要修改的服装的颜色:   ");
		scanf("%s",color1);//输入目标颜色
		q=head;
		p=head->next;
		while(p!=NULL) {
			if(strcmp(p->color,color1)==0) { //strcmp函数用于比较两个字符串,此处对比是不是所求颜色
				printf("----------------------------------------------------------------------------------------------------------\n");
				printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
				printf("----------------------------------------------------------------------------------------------------------\n");
				printf("%d\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%s\t\t%s\n",p->id,p->color,p->sex,p->count,p->price,p->style,p->brand);
				flag++;//每找到一条+1
			}
			p=p->next;//不论找到与否,继续后移查找,要找出所有符合条件的节点
		}
		if(p==NULL&&flag==0) {
			printf("\n未查询到该颜色的服装!\n");
		}
		if(p==NULL&&flag==1) { //只找到一条,直接进行修改
			q=head;
			p=head->next;
			while(p!=NULL) {
				if(strcmp(p->color,color1)==0) {
					printf("\n请您重新录入(修改)服装信息:\n");
					printf("服装编号 服装颜色 服装性别 服装销量 服装价格 服装款式 服装品牌\n");
					scanf("%d %s %s %d %f %s %s",&id2,color2,sex1,&count1,&price1,style1,brand1);
					p->id=id2;
					strcpy(p->color,color2);//strcpy比较字符串
					strcpy(p->sex,sex1);
					strcpy(p->style,style1);
					strcpy(p->brand,brand1);
					p->count=count1;
					p->price=price1;
					break;
				} else
					p=p->next;
			}
			if(p==NULL)
				printf("\n未查询到该服装编号!\n");
		}
		if(p==NULL&&flag>1) { //查找到符合条件的信息不止一条
			printf("颜色为 %s 的服装有 %d 件\n",color1,flag);
			printf("\n请输入您想修改的服装编号: ");
			scanf("%d",&id1);
			q=head;
			p=head->next;
			while(p!=NULL) {
				if(p->id==id1) {
					printf("\n请您重新录入(修改)服装信息:\n");
					printf("服装编号 服装颜色 服装性别 服装销量 服装价格 服装款式 服装品牌\n");
					scanf("%d %s %s %d %f %s %s",&id2,color2,sex1,&count1,&price1,style1,brand1);
					p->id=id2;
					strcpy(p->color,color2);//strcpy比较字符串
					strcpy(p->sex,sex1);
					strcpy(p->style,style1);
					strcpy(p->brand,brand1);
					p->count=count1;
					p->price=price1;
					break;
				} else
					p=p->next;
			}
			if(p==NULL)
				printf("\n未查询到该服装编号!\n");
		}
	}
	if(ab==2) {
		printf("\n请输入您要修改的服装的款式:   ");
		scanf("%s",style1);//输入目标款式
		q=head;
		p=head->next;
		while(p!=NULL) {
			if(strcmp(p->style,style1)==0) { //strcmp函数用于比较两个字符串,此处对比是不是所求颜色
				printf("----------------------------------------------------------------------------------------------------------\n");
				printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
				printf("----------------------------------------------------------------------------------------------------------\n");
				printf("%d\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%s\t\t%s\n",p->id,p->color,p->sex,p->count,p->price,p->style,p->brand);
				flag++;//每找到一条+1
			}
			p=p->next;//不论找到与否,继续后移查找,要找出所有符合条件的节点
		}
		if(p==NULL&&flag==0) {
			printf("\n未查询到该款式的服装!\n");
		}
		if(p==NULL&&flag==1) { //只找到一条,直接进行修改
			q=head;
			p=head->next;
			while(p!=NULL) {
				if(strcmp(p->style,style1)==0) {
					printf("\n请您重新录入(修改)服装信息:\n");
					printf("服装编号 服装颜色 服装性别 服装销量 服装价格 服装款式 服装品牌\n");
					scanf("%d %s %s %d %f %s %s",&id2,color1,sex1,&count1,&price1,style2,brand1);
					p->id=id2;
					strcpy(p->color,color1);//strcpy比较字符串
					strcpy(p->sex,sex1);
					strcpy(p->style,style2);
					strcpy(p->brand,brand1);
					p->count=count1;
					p->price=price1;
					break;
				} else
					p=p->next;
			}
			if(p==NULL)
				printf("\n未查询到该服装编号!\n");
		}
		if(p==NULL&&flag>1) { //查找到符合条件的信息不止一条
			printf("款式为 %s 的服装有 %d 件\n",style1,flag);
			printf("\n请输入您想修改的服装编号: ");
			scanf("%d",&id1);
			q=head;
			p=head->next;
			while(p!=NULL) {
				if(p->id==id1) {
					printf("\n请您重新录入(修改)服装信息:\n");
					printf("服装编号 服装颜色 服装性别 服装销量 服装价格 服装款式 服装品牌\n");
					scanf("%d %s %s %d %f %s %s",&id2,color1,sex1,&count1,&price1,style2,brand1);
					p->id=id2;
					strcpy(p->color,color1);//strcpy比较字符串
					strcpy(p->sex,sex1);
					strcpy(p->style,style2);
					strcpy(p->brand,brand1);
					p->count=count1;
					p->price=price1;
					break;
				} else
					p=p->next;
			}
			if(p==NULL)
				printf("\n未查询到该服装编号!\n");
		}
	}
	printf("\n修改后的服装信息为:\n");
	printf("----------------------------------------------------------------------------------------------------------\n");
	printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
	printf(head);
}

void search3(Cloth* head) {                      //查询服装--编号
	Cloth *p;
	p=head->next;
	int id1;
	printf("请输入你要查找的服装编号:");
	scanf("%d",&id1);
	while(p!=NULL) {
		if(p->id==id1) {
			printf("\n您所查找的服装信息如下:\n");
			printf("----------------------------------------------------------------------------------------------------------\n");
			printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
			printf("----------------------------------------------------------------------------------------------------------\n");
			printf("%d\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%s\t\t%s\n",p->id,p->color,p->sex,p->count,p->price,p->style,p->brand);
			break;
		} else
			p=p->next;
	}
	if(p==NULL)
		printf("未查询到该服装\n");
}

void search1(Cloth* head) {                      //服装查询--颜色
	Cloth *p;
	char color1[20];
	int flag=0;
	printf("请输入你要查询的服装颜色:");
	scanf("%s",color1);
	p=head->next;
	while(p!=NULL) {
		if(strcmp(p->color,color1)==0) {
			printf("----------------------------------------------------------------------------------------------------------\n");
			printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
			printf("----------------------------------------------------------------------------------------------------------\n");
			printf("%d\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%s\t\t%s\n",p->id,p->color,p->sex,p->count,p->price,p->style,p->brand);
			flag=1;
		}
		p=p->next;
	}
	if(p==NULL&&flag==0)
		printf("未查询到该服装\n");
}

void search2(Cloth* head) {                      //服装查询--颜色和性别
	Cloth *p;
	int flag=0;
	char color2[20],sex2[20];
	printf("输入你想要查询服装颜色和性别: ");
	scanf("%s %s",color2,sex2);
	p=head->next;
	while(p!=NULL) {
		if(strcmp(p->color,color2)==0&&strcmp(p->sex,sex2)==0) {
			printf("----------------------------------------------------------------------------------------------------------\n");
			printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
			printf("----------------------------------------------------------------------------------------------------------\n");
			printf("%d\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%s\t\t%s\n",p->id,p->color,p->sex,p->count,p->price,p->style,p->brand);
			flag=1;
		}
		p=p->next;
	}
	if(p==NULL&&flag==0)
		printf("未查询到该商品\n");
}

void stastistics_group(Cloth *head) {            //统计颜色和性别相同的服装个数
	char color2[20],sex2[20];
	printf("输入你想要查询服装颜色和性别:");
	scanf("%s %s",color2,sex2);

	int count=0;
	Cloth *p;
	p=head->next;
	while(p!=NULL) {
		if(strcmp(p->color,color2)==0&&strcmp(p->sex,sex2)==0) {
			count++;
		}
		p=p->next;
	}
	if(count !=0) {
		printf("颜色:%s 且 性别:%s 的数量为:%d \n",color2,sex2,count);
	} else {
		printf("未查询到该商品\n");
	}
}

void stastistics(Cloth *head) {                  //统计颜色相同的服装个数
	char color2[20];
	printf("输入你想要查询服装的颜色:");
	scanf("%s",color2);

	int count=0;
	Cloth *p;
	p=head->next;
	while(p!=NULL) {
		if(strcmp(p->color,color2)==0) {
			count++;
		}
		p=p->next;
	}
	if(count !=0) {
		printf("颜色:%s 的数量为:%d \n",color2,count);
	} else {
		printf("未查询到该商品\n");
	}
}

Cloth* read_file() {                             //读取文件
	Cloth *head, *q;
	head=(Cloth*)malloc(sizeof(Cloth));
	head->next=NULL;
	q=head;
	FILE *fp;//定义一个文件指针 
	char ch;
	fp = fopen("data.txt","r");//打开名字为tata.txt的文件
	if(fp==NULL) {
		printf("打开文件错误\n");
		return head;
	}
	while(!feof(fp)) //检查文件是否读取完毕,即文件指针到达末尾 
	{
		Cloth *node =(Cloth *)malloc(sizeof(Cloth));
		fscanf(fp,"%d %s %s %d %f %s %s",&node->id,node->color,node->sex,&node->count,&node->price,node->style,node->brand);
		//fscanf--格式化输入函数; gets--文本输入函数; fgets--字符输入函数 
		node->next = NULL;
		q->next=node;//node,q节点连接
		q=node;//q指针后移->next=node;
	}
	fclose(fp);//关闭文件
	//int fclose(FILE *fp); 
	printf("---读取文件完毕---\n");
	return head;
}

void write_file(Cloth *head) {                   //写入文件
	FILE *fp;
	if (!(fp = fopen("data.txt","a"))) {//打开文件
		printf("打开文件失败!");
	}
	Cloth *p;
	p=head->next;
	while(p!=NULL) {
		//将数据写入文件
		fprintf(fp,"\n");
		fprintf(fp,"%d %s %s %d %f %s %s",p->id,p->color,p->sex,p->count,p->price,p->style,p->brand);
		p=p->next;
	}
	fclose(fp);//写入完毕,关闭文件
	printf("---数据写入完毕---\n");
}

void write_file1(Cloth *head) {                   //覆写文件
	FILE *fp;
	if (!(fp = fopen("data.txt","w"))) {//打开文件并覆写
		printf("打开文件失败!");
	}
	Cloth *p;
	p=head->next;
	while(p!=NULL) {
		//将数据写入文件
		fprintf(fp,"\n");
		fprintf(fp,"%d %s %s %d %f %s %s",p->id,p->color,p->sex,p->count,p->price,p->style,p->brand);
		p=p->next;
	}
	fclose(fp);//写入完毕,关闭文件
	printf("---数据覆写完毕---\n");
}


 void pop_sortp_ace(Cloth *head) {                //冒泡排序--价格-正序
//排序中不改变头结点指针值,只修改指针内容head->next的值 
	Cloth *pre,*p,*tail,*t;
	tail=NULL;//置空尾节点 
	while((head->next)!=tail) //没有到达最后则一直循环 
	{
	    pre=head;//临时头结点 
		p=head->next;		
		t=p->next; 
		while(p->next!=tail)//头结点未赋值,所以从head->next开始 
		 {
			if((p->price)>(t->price)) {
				//交换节点 
				pre->next=t;
				p->next=t->next;
				t->next=p;
			}
			else{
			    p=p->next;
			}
			t=p->next;
			//p,t如果交换了节点,p已经后移了,否则p在else里后移,所以t赋值p->next就行了 
			pre=pre->next;
		}
		tail=p;
	}
	printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
	printf(head);
}

void pop_sortp_desc(Cloth *head) {               //冒泡排序--价格-倒序
	Cloth *pre,*p,*tail,*t;
	tail=NULL;//置空尾节点 
	while((head->next)!=tail) //没有到达最后则一直循环 
	{
	    pre=head;//临时头结点 
		p=head->next;		
		t=p->next; 
		while(p->next!=tail)//头结点未赋值,所以从head->next开始 
		 {
			if((p->price)<(t->price)) {
				//交换节点 
				pre->next=t;
				p->next=t->next;
				t->next=p;
			}
			else{
			    p=p->next;
			}
			t=p->next;
			//p,t如果交换了节点,p已经后移了,否则p在else里后移,所以t赋值p->next就行了 
			pre=pre->next;
		}
		tail=p;
	}
	printf("服装编号\t服装颜色\t服装适用性别\t服装销量\t服装价格\t服装款式\t服装品牌\n");
	printf(head);
}

结构体部分:

 //创建结构体及其成员
typedef struct Cloth {
	int id;
	char color[20];
	char sex[20];
	int count;
	float price;
	char style[20];
	char brand[20];
	struct Cloth *next;//指针域
} Cloth;//结构体定义为Cloth 

三部分之间彼此调用实现,我这个是在Dev C++上运行的。

我们要求实现存储数据,我存了51组,放在另一个文件夹里,如下:

1 red f 2000 199.000000 dress LILY
2 white m 3879 115.000000 hoodie Anta
3 blue m 4890 278.000000 hoodile Goldlion
5 white f 4030 130.000000 jacket NIKE
6 black m 5601 99.000000 shirt HLA
7 pink m 986 148.000000 sweater Loro
8 gray m 4729 78.000000 vest Goldlion
9 brown m 1000 200.000000 coat HLA
10 brown m 4598 188.000000 sweater Pringle
11 pink m 4465 210.000000 coat ROMON
12 pink f 2093 225.000000 dress ONLAY
13 white f 8799 300.000000 uniform HODO
15 white m 9820 220.000000 blouse LINING
16 gray m 8231 299.000000 uniform HODO
17 green f 2341 188.000000 blouse UNIQLO
18 orange f 998 100.000000 pants SEPTWOLVES
19 orange m 4022 209.000000 jeans HLA
20 black m 4387 400.000000 suit Goldlion
21 black m 8793 155.000000 vest SEPTWOLVES
22 pink f 1298 155.500000 jeans Loro
23 pink m 8928 240.000000 suit SEPTWOLVES
25 black f 3490 157.000000 hoodie ADIDAS
26 black f 5894 190.000000 blouse LEDIN
27 red f 1893 145.000000 hoodie Tonlion
28 gray f 1932 95.000000 skirt LINING
29 blue f 2840 175.000000 blouse ONLY
30 blue f 4893 204.000000 coat PEACEBIRD
31 red m 2938 66.000000 skirt FIRS
32 purple f 1278 88.500000 shirt Levis
33 ivory m 2784 140.000000 hoodie ADIDS
38 ivory f 4789 155.500000 pants BALLANTYNE
40 gray f 6668 199.000000 jeans ROMOM
41 red m 8886 213.000000 jacket ADIDAS
42 gray m 7901 130.000000 pants HLA
43 brown m 4099 399.000000 suit HLA
45 brown f 8003 286.000000 uniform ROMON
46 brown m 5566 245.000000 sweater BALLANTYNE
47 red m 3994 130.000000 shirt FIRS
48 white m 9994 128.000000 shirt ONLY
49 pink f 4990 80.000000 skirt ONLY
50 yellow m 5656 135.000000 pants Levis
51 orange m 4930 291.000000 uniform ROMON
52 gray m 3444 300.000000 jacket HLA
53 blue f 4803 239.000000 dress PEACEBIRD
55 orange f 9481 133.500000 skirt Versace
56 blue m 2399 300.000000 suit SEVEN
57 blue m 4545 200.000000 coat Goldlion
58 white f 5897 330.000000 dress ONLY
59 red f 2389 120.000000 coat HLA
60 orange m 2379 89.000000 shirt ROMON
120 red f 1000 220.000000 shirt HLA
121 white m 1200 100.000000 coat Firs
122 pink f 1300 230.000000 sweater LiNin

下面是代码的具体功能与使用详解(其实也就是我的实验报告部分复制粘贴,如果有哪里操作不对的可以问我哦):

1.从文件中读取数据

服装销售系统c++,c语言,算法,c++

 选择8 数据报表显示读取的数据,共51组,由于空间有限,只截取前面一部分

2.数据修改

  第一组测试数据和对应结果

服装销售系统c++,c语言,算法,c++

第二组测试数据和对应结果

服装销售系统c++,c语言,算法,c++ 服装销售系统c++,c语言,算法,c++

 第三组测试数据和对应结果

服装销售系统c++,c语言,算法,c++

3.数据删除

  第一组测试数据和运行结果

 服装销售系统c++,c语言,算法,c++

  第二组测试数据和运行结果

服装销售系统c++,c语言,算法,c++ 

 第三组测试数据和运行结果

 服装销售系统c++,c语言,算法,c++

 4. 数据插入

  第一组测试数据和运行结果

服装销售系统c++,c语言,算法,c++

第二组测试数据和运行结果

服装销售系统c++,c语言,算法,c++ 

服装销售系统c++,c语言,算法,c++ 

第三组测试数据和运行结果

服装销售系统c++,c语言,算法,c++ 服装销售系统c++,c语言,算法,c++

  1. 5.数据查询

  第一组测试数据和运行结果

 服装销售系统c++,c语言,算法,c++

第二组测试数据和运行结果


服装销售系统c++,c语言,算法,c++

第三组测试数据和运行结果

服装销售系统c++,c语言,算法,c++

 6.数据录入

  三组测试数据和运行结果

服装销售系统c++,c语言,算法,c++

服装销售系统c++,c语言,算法,c++ 

服装销售系统c++,c语言,算法,c++ 

服装销售系统c++,c语言,算法,c++ 

7.数据统计

  第一组测试数据和运行结果

 服装销售系统c++,c语言,算法,c++

第二组测试数据和运行结果

服装销售系统c++,c语言,算法,c++ 

 第三组测试数据和运行结果

服装销售系统c++,c语言,算法,c++

 文章来源地址https://www.toymoban.com/news/detail-812506.html

 

 

 

 

 

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

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

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

相关文章

  • asp毕业设计—— 基于asp+access的网上服装销售系统设计与实现(毕业论文+程序源码)——网上服装销售系统

    大家好,今天给大家介绍基于asp+access的网上服装销售系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦 文章目录: 服装销售系统是一

    2024年02月07日
    浏览(83)
  • 手机销售管理系统

    手机基本信息包括:手机编号(ID)、型号、品牌、进价、数量。 手机销售信息包括:手机编号(ID)、型号、品牌、售价、数量、销售日期(年.月.日)。 系统的主要功能包括: 1. 创建手机基本信息文件,根据提示输入若干手机的信息,并将这些信息保存至一个文件中。

    2024年02月15日
    浏览(38)
  • C#销售管理系统源码

    C#销售管理系统源码 框架版本: .net framework 4.8 UI控件库:CsKin 功能介绍: 1.登陆 2. 进销存管理:收银台、商品入库、商品浏览、退货 3. 数据统计分析: 销售统计、工资核算 4. 基础数据维护:商品分类管理、员工管理      

    2024年02月02日
    浏览(38)
  • 销售管理系统 | 数据库课设

    前言 为了期末的数据库课设,这是最初的目的。在进行这个项目之前,我已经完成了数据库的相应实验,对数据库的操作有一定的了解。整个项目时间:1月8日-1月13日,期间还去考了个科三。 前些日子分别用phpstudy和云服务器搭建了开源的web项目(PHP+MySQL+Apache),简单地熟悉了

    2024年02月11日
    浏览(53)
  • 【计算机毕业设计】鲜花销售管理系统

    随着科学技术的飞速发展, 社会的方方面面、 各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势, 鲜花销售管理系统 当然也不能排除在外。 鲜花销售管理系统 是 以实际运用为开发背景,运用软件工程开发方法,采用SSM技术构建的一个管理系统。整

    2024年02月06日
    浏览(41)
  • 数据库--汽车销售管理系统【课程设计】

    目录 1.设计任务 1.1系统开发的背景  1.2系统开发的意义  1.3系统所应用的模块 2.需求分析 2.1功能分析 2.2数据流图 2.3数据字典 3.概念结构设计 4.逻辑结构设计 5.物理结构设计 5.1基本表 5.2视图 6.数据库实施 6.1 建立数据库表 6.2建立视图 7.数据库操作 目录 1.1系统开发的背景 

    2023年04月08日
    浏览(55)
  • 基于微信小程序的服装童装商城+后台管理系统(SSM+mysql)-JAVA.VUE【毕业设计、论文、源码、开题报告】

    随着移动应用技术的发展,越来越多的用户借助于移动手机、电脑完成生活中的事务,许多的传统行业也更加重视与互联网的结合,由于城镇人口的增加,人们去商场购物总是排着长长的队伍,对于时间紧的人是一个非常头痛的事情,有的人可能就是排队也要用去半天时间,

    2024年02月10日
    浏览(61)
  • 数据结构与算法--疫苗预约管理系统(C语言)

    目录 前言 1·设计目的 2·设计内容与要求 2·1·课题要求 3·设计思路 3·1 关键问题描述 3·2 解决方法 4·具体实现 总结 这是之前在学习数据结构与算法的时候,写的疫苗预约管理系统;也可以作为参考供大家使用;当然很多功能都还没有加入,后面有时间会陆续更新; 通过疫

    2024年02月11日
    浏览(37)
  • 农产品销售|助农惠农|基于Springboot实现农产品销售管理系统

    作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路  关注作者有好处 文末获取源码   语言环境:Java: 

    2024年02月09日
    浏览(65)
  • 如何通过CRM销售系统精细化管理客户?

      粗放式的客户管理会使企业失去许多潜在客户,这是许多管理者头疼的问题。与之对应的精细化管理,关键在于提升品质、降低成本、优化流程, 接下来我们就来聊一聊,如何通过CRM销售管理系统精细化管理客户。 一、客户数据库管理 在销售管理系统的帮助下,员工可以

    2024年02月08日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包