搜档网
当前位置:搜档网 › 用c语言编写商品管理系统

用c语言编写商品管理系统

用c语言编写商品管理系统
用c语言编写商品管理系统

#include

#include

#include

#include

#include

#define LEN sizeof(struct commdity)

#define FORMAT "%-8d%-15s%-12.11f%-12.11f%-12.11f\n"

#define DATA

comm[i].num,comm[i].name,comm[i].price,comm[i].count,comm[i].total /*定义商品的结构体*/

struct commdity

{

int num;

char name[15];

double count;

double total;

}comm[100000],t;

/*函数的声明*/

void in(); /*商品录入并保存*/

void show(); /*显示商品记录*/

void order(); /*商品记录排序*/

void del(); /*商品记录删除*/

void modify(); /*商品记录修改*/

void menu(); /*主菜单*/

void insert(); /*商品记录插入*/

void total(); /*商品统计*/

void search(); /*查看商品记录*/

void main()

{

int n;

menu();

scanf("%d",&n);

while(n)

{

switch(n)

{

case 0:break;

case 1:in();break;

case 2:search();break;

case 3:del();break;

case 4:modify();break;

case 5:insert();break;

case 6:order();break;

case 7:total();break;

default:printf("error! 操作错误.....\n");break;

}

getch();

menu();

scanf("%d",&n);

}

}

/**************************自定义主菜单函数************************/ void menu()

{

system("cls"); /*清屏*/

printf("\n\n\n\n\n");

printf("\t\t--------欢迎将进入商品管理系统

----------------\n");

printf("\t\t|\t0.退出 |\n");

printf("\t\t|\t1.录入记录 |\n");

printf("\t\t|\t2.查找记录 |\n");

printf("\t\t|\t3.删除记录 |\n");

printf("\t\t|\t4.修改记录 |\n");

printf("\t\t|\t5.插入记录 |\n");

printf("\t\t|\t6.排序记录 |\n");

printf("\t\t|\t7.统计记录 |\n");

printf("\t\t|--------------------------------------------|\n");

printf("\t\t\t请输入您的操作类型【0-7】: \n"); }

/**************************自定义商品录入并保存函数

************************/

void in()

{ int i,m=0;

char ch[2];

FILE *fp;

if((fp=fopen("data.txt","ab+"))==NULL)

{ printf("不能打开文件!\n");

return; }

while(!feof(fp))

{ if(fread(&comm[m],LEN,1,fp)==1)

m++;

}

fclose(fp);

if(m==0)

printf("无商品记录........\n");

else

{ system("cls");

show();

}

if((fp=fopen("data.txt","wb"))==NULL)

{ printf("不能打开文件!\n");

return;}

for(i=0;i

fwrite(&comm[i],LEN,1,fp);

printf("是否输入?(y/n):\n");

scanf("%s",ch);

while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)

{ printf("编号:\n");

scanf("%d",&comm[m].num);

for(i=0;i

if(comm[m].num==comm[i].num)

{ printf("该记录已经存在,按任意键返回......\n");

getch();

fclose(fp);

return;

}

printf("商品名:\n");

scanf("%s",comm[m].name);

printf("单价:\n");

scanf("%lf",&comm[m].price);

printf("数量:\n");

scanf("%lf",&comm[m].num);

comm[m].total=comm[m].count*comm[m].price; if(fwrite(&comm[m],LEN,1,fp)!=1)

{ printf("不能保存!\n");

getch();

return;}

else{ printf("%s 已经保存!\n",comm[m].name); m++;

}

printf("是否继续?(y/n):\n");

scanf("%s",ch);

}

fclose(fp);

printf("OK!\n");

return;

}

/**************************自定义显示商品记录函数

************************/

void show()

{ int i,m=0;

FILE *fp;

if((fp=fopen("data.txt","ab+"))==NULL)

{printf("不能打开记录!\n");

return;}

while(!feof(fp))

{if(fread(&comm[m],LEN,1,fp)==1)

m++;}

fclose(fp);

if(m==0)

{printf("无商品记录........\n");}

else

{printf("编号商品名称单价数量总金额\t\n"); for(i=0;i

{printf(FORMAT,DATA);}

}

}

/**************************自定义商品查看函数

************************/

void search()

{ FILE *fp;

int snum,i,m=0;

char ch[2];

if((fp=fopen("data.txt","ab+"))==NULL)

{printf("不能打开文件!\n");

while(!feof(fp))

{ if(fread(&comm[m],LEN,1,fp)==1)

m++;}

fclose(fp);

if(m==0)

{ printf("无商品记录........\n");

return;}

printf("编号:\n");

scanf("%d",&snum);

for(i=0;i

if(snum==comm[i].num)

{printf("已经找到记录,是否显示?(y/n):\n"); scanf("%s",ch);

if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)

{printf("编号商品名称单价数量总金额\t\n");

printf(FORMAT,DATA);

break;}

else

return;

}

if(i==m)

{printf("没有找到相应的记录....\n");} }

/**************************自定义商品记录删除函数

************************/

void del()

{int i,m=0,j,snum;

char ch[2];

FILE *fp;

if((fp=fopen("data.txt","ab+"))==NULL)

{printf("不能打开文件!\n");

return;}

while(!feof(fp))

{if(fread(&comm[m],LEN,1,fp)==1)

m++;}

fclose(fp);

if(m==0)

{printf("无商品记录........\n");

printf("请输入编号:\n");

scanf("%d",&snum);

for(i=0;i

if(snum==comm[i].num)

break;

if(i==m)

{printf("没有找到.....\n");

getch();

return;}

printf("已经找到记录,是否删除?(y/n):\n"); scanf("%s",ch);

if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) {for(j=i;j

comm[j]=comm[j+1];

m--;

printf("删除成功....\n");}

if((fp=fopen("data.txt","wb"))==NULL)

{printf("不能打开文件!\n");

return;}

for(i=0;i

if(fwrite(&comm[j],LEN,1,fp)!=1)

{printf("不能保存!\n");

getch();}

fclose(fp);

}

/**************************自定义商品记录修改函数

************************/

void modify()

{int i,m=0,snum;

char ch[2];

FILE *fp;

if((fp=fopen("data.txt","ab+"))==NULL)

{printf("不能打开文件!\n");

return;}

while(!feof(fp))

{if(fread(&comm[m],LEN,1,fp)==1)

m++;}

fclose(fp);

if(m==0)

{printf("无商品记录........\n");

fclose(fp);

return;}

printf("请输入您要修改信息的编号:\n");

scanf("%d",&snum);

for(i=0;i

if(snum==comm[i].num)

break;

if(i

{printf("已经找到该记录,是否修改?(y/n):\n"); scanf("%s",ch);

if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)

{printf("商品名:\n");

scanf("%s",comm[i].name);

printf("单价:\n");

scanf("%lf",&comm[i].price);

printf("数量:\n");

scanf("%lf",&comm[i].num);

comm[i].total=comm[i].count*comm[i].price;

}

else

return;

}

else

{printf("没有找到......\n");

getchar();

return;}

if((fp=fopen("data.txt","wb"))==NULL)

{printf("不能打开文件!\n");

return;}

for(i=0;i

if(fwrite(&comm[i],LEN,1,fp)!=1)

{printf("不能保存!\n");

getch();}

fclose(fp);

}

/**************************自定义商品记录插入函数

************************/

void insert()

{ int i,m=0,j,k,snum;

FILE *fp;

if((fp=fopen("data.txt","ab+"))==NULL)

{printf("不能打开文件!\n");

return;}

while(!feof(fp))

{if(fread(&comm[m],LEN,1,fp)==1)

m++;}

if(m==0)

{printf("无商品记录........\n");

fclose(fp);

return;

}

printf("请输入要插入记录的位置【即编号】:\n"); scanf("%d",&snum);

for(i=0;i

if(snum==comm[i].num)

break;

for(j=m-1;j>i;j--)

comm[j+1]=comm[j];

printf("请输入您要插入的信息:\n");

printf("编号:\n");

scanf("%d",&comm[i+1].num);

for(k=0;k

if(comm[k].num==comm[i+1].num&&k!=i+1)

{ printf("该编号已经存在,按任意键继续......\n");

getch();

fclose(fp);

return;}

printf("商品名:\n");

scanf("%s",comm[i+1].name);

printf("单价:\n");

scanf("%lf",&comm[i+1].price);

printf("数量:\n");

scanf("%lf",&comm[i+1].num);

comm[i+1].total=comm[i+1].count*comm[i+1].price;

if((fp=fopen("data.txt","wb"))==NULL)

{printf("不能打开文件!\n");

return;}

for(k=0;k

if(fwrite(&comm[k],LEN,1,fp)!=1)

{printf("不能保存!\n");

getch();}

fclose(fp);

}

/**************************自定义商品记录统计函数

************************/

void total()

{ int i,m=0;

FILE *fp;

if((fp=fopen("data.txt","ab+"))==NULL)

{printf("不能打开记录!\n");

return;}

while(!feof(fp))

{if(fread(&comm[m],LEN,1,fp)==1)

m++;}

if(m==0)

{printf("无商品记录........\n");

fclose(fp);}

else

{printf("编号商品名称单价数量\t\n");

for(i=0;i

{printf("%-8d%-15s%-12.11f%-12.11f\n",comm[i].num,comm[i].name,comm[i].p rice,comm[i].count);}

printf("一共有%d条记录!\n",m);

fclose(fp);

}

}

/**************************自定义商品记录排序函数

************************/

void order()

{int i,j,m=0;

FILE *fp;

if((fp=fopen("data.txt","ab+"))==NULL)

{printf("不能打开记录!\n");

return;}

while(!feof(fp))

{if(fread(&comm[m],LEN,1,fp)==1)

m++;}

fclose(fp);

if(m==0)

{printf("无商品记录........\n");}

else

{for(i=0;i

for(j=i+1;j

{if(comm[i].total

{t=comm[i];

comm[i]=comm[j];

comm[j]=t;}

}

printf("编号商品名称单价数量总金额\t\n"); for(i=0;i

{printf(FORMAT,DATA);}

}

}

欢迎您的下载,

资料仅供参考!

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

相关主题