#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);} } } 欢迎您的下载, 资料仅供参考! 致力为企业和个人提供合同协议,策划案计划书,学习资料等等 打造全网一站式需求