这个是我大一下刚开学在哥哥的帮助下完成的服装销售管理,系统,基本包括:登录界面,管理菜单,其中管理菜单又包括:数据的录入,查询,修改,插入,删除,统计,排序,报表,存储以及退出系统,而各个内容还有一些细化,此处暂不详说,后面会有解释。
话不多说,先上代码,我这个主要分为三部分:
主函数
#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.从文件中读取数据
选择8 数据报表显示读取的数据,共51组,由于空间有限,只截取前面一部分
2.数据修改
第一组测试数据和对应结果
第二组测试数据和对应结果
第三组测试数据和对应结果
3.数据删除
第一组测试数据和运行结果
第二组测试数据和运行结果
第三组测试数据和运行结果
4. 数据插入
第一组测试数据和运行结果
第二组测试数据和运行结果
第三组测试数据和运行结果
- 5.数据查询
第一组测试数据和运行结果
第二组测试数据和运行结果
第三组测试数据和运行结果
6.数据录入
三组测试数据和运行结果
7.数据统计
第一组测试数据和运行结果
第二组测试数据和运行结果
第三组测试数据和运行结果