|
发表于 2017-7-9 15:22:02
|
显示全部楼层
- #include<stdio.h>
- #include<stdlib.h>
- #include<conio.h>
- #include<string.h>
- #define LEN sizeof(struct commdity)
- #define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf\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 price;
- double count;
- double total;
- };
- struct commdity comm[50];
- void in();
- void show();
- void order();
- void del();
- void modify();
- void menu();
- void name();
- void insert();
- void total();
- void search();
- void printLogo();
- int main()
- {
- int n;
- printLogo();
- menu();
- scanf("%d",&n);
- while(n)
- {
- switch(n)
- {
- 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:break;
- }
- getch();
-
- menu();
- scanf("%d",&n);
- }
- }
- void in()
- {
- int i,m=0;
- char ch[2];
- FILE *fp;
- if((fp=fopen("data","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","wb"))==NULL)
- {
- printf("不能打开文件!\n");
- return;
- }
- for(i=0;i<m;i++)
- fwrite(&comm[i] ,LEN,1,fp);
- printf("是否输入?(y/n):");
- scanf("%s",ch);
- while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
- {
- printf("编号:");
- scanf("%d",&comm[m].num);
- for(i=0;i<m;i++)
- if(comm[i].num == comm[m].num)
- {
- printf("该记录已经存在,按任意键继续!");
- getch();
- fclose(fp);
- return;
- }
- printf("商品名:");
- scanf("%s",comm[m].name);
- printf("单价:");
- scanf("%lf",&comm[m].price);
- printf("数量:");
- scanf("%lf",&comm[m].count);
- comm[m].total=comm[m].price * comm[m].count;
- if(fwrite(&comm[m],LEN,1,fp)!=1)
- {
- printf("不能保存!");
- getch();
- }
- else
- {
- printf("%s 已经保存!\n",comm[m].name);
- m++;
- }
- printf("是否继续?(y/n):");
- scanf("%s",ch);
- }
- fclose(fp);
- printf("OK!\n");
- }
- void show()
- {
- FILE *fp;
- int i,m=0;
- fp=fopen("data","ab+");
- while(!feof(fp))
- {
- if(fread(&comm[m] ,LEN,1,fp)==1)
- m++;
- }
- fclose(fp);
- printf("编号 商品名称 单价 数量 总金额\t\n");
- for(i=0;i<m;i++)
- {
- printf(FORMAT,DATA);
- }
- }
-
- void menu()
- {
- system("cls");
- printf("\n\n\n\n\n");
- printf("\t\t|-------------------商品管理系统-----------------|\n");
- printf("\t\t|\t 0. 退出 |\n");
- printf("\t\t|\t 1. 录入记录 |\n");
- printf("\t\t|\t 2. 查找记录 |\n");
- printf("\t\t|\t 3. 删除记录 |\n");
- printf("\t\t|\t 4. 修改记录 |\n");
- printf("\t\t|\t 5. 插入记录 |\n");
- printf("\t\t|\t 6. 排序记录 |\n");
- printf("\t\t|\t 7. 统计记录 |\n");
- printf("\t\t|------------------------------------------------|\n\n");
- printf("\t\t\t选择(0-7):");
- }
- void order()
- {
- FILE *fp;
- struct commdity t;
- int i=0,j=0,m=0;
- if((fp=fopen("data","ab+"))==NULL)
- {
- printf("不能打开文件!\n");
- return;
- }
- while(!feof(fp))
- if(fread(&comm[m] ,LEN,1,fp)==1)
- m++;
- fclose(fp);
- if(m==0)
- {
- printf("没有记录!\n");
- return;
- }
- for(i=0;i<m-1;i++)
- for(j=i+1;j<m;j++)
- if(comm[i].total<comm[j].total)
- {
- t=comm[i];
- comm[j]=t;
- }
- if((fp=fopen("data","wb"))==NULL)
- {
- printf("不能打开\n");
- return;
- }
- for(i=0;i<m;i++)
- if(fwrite(&comm[i],LEN,1,fp)!=1)
- {
- printf("%s 不能保存!\n");
- getch();
- }
- fclose(fp);
- printf("保存成功\n");
- }
- void del()
- {
- FILE *fp;
- int snum ,i,j,m=0;
- char ch[2];
- if((fp=fopen("data","ab+"))==NULL)
- {
- printf("不能打开文件\n");
- return;
- }
- while(!feof(fp))
- if(fread(&comm[m],LEN,1,fp)==1)
- m++;
- fclose(fp);
- if(m==0)
- {
- printf("没有记录!\n");
- return;
- }
- printf("请输入编号:");
- scanf("%d",&snum);
- for(i=0;i<m;i++)
- if(snum==comm[i].num)
- break;
- if(i==m)
- {
- printf("没有找到!");
- getchar();
- return;
- }
- printf("已经找到该记录,是否删除?(y/n)");
- scanf("%s",ch);
- if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
- {
- for(j=i;j<m;j++)
- comm[j]=comm[j+1];
- m--;
- printf("成功删除!\n");
- }
- if((fp=fopen("data","wb"))==NULL)
- {
- printf("不能打开!\n");
- return;
- }
- for(j=0;j<m;j++)
- if(fwrite(&comm[m],LEN,1,fp)!=1)
- {
- printf("不能保存!\n");
- getch();
- }
- fclose(fp);
- }
- void search()
- {
- FILE *fp;
- int snum,i,m=0;
- char ch[2];
- if((fp=fopen("data","ab+"))==NULL)
- {
- printf("不能打开文件\n");
- return;
- }
- while(!feof(fp))
- if(fread(&comm[m],LEN,1,fp)==1)
- m++;
- fclose(fp);
- if(m==0)
- {
- printf("没有记录!\n");
- return;
- }
- printf("请输入编号:");
- scanf("%d",&snum);
- for(i=0;i<m;i++)
- if(snum == comm[i].num)
- {
- printf("已经找到该记录,是否显示?(y/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 modify()
- {
- FILE *fp;
- int i,j,m=0,snum;
- char ch[2];
- if((fp=fopen("data","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<m;i++)
- if(snum==comm[i].num)
- break;
- if(i<m)
- {
- 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].count);
- comm[i].total = comm[i].price * comm[i].count;
- printf("保存成功!");
- }
- else
- return;
-
- }
- else
- {
- printf("没有找到!");
- getchar();
- return;
- }
- if((fp=fopen("data","wb"))==NULL)
- {
- printf("不能打开文件!\n");
- return;
- }
- for(j=0;j<m;j++)
- if(fwrite(&comm[j] ,LEN,1,fp)!=1)
- {
- printf("不能保存!");
- getch();
- }
- fclose(fp);
- }
- void insert()
- {
- FILE *fp;
- int i,j,k,m=0,snum;
- if((fp=fopen("data","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<m;i++)
- if(snum == comm[i].num)
- break;
- for(j=m-1;j>i;j--)
- comm[j+1] = comm[j];
- printf("现在输入新的信息.\n");
- printf("编号:");
- scanf("%d",&comm[i+1].num);
- for(k=0;k<m;k++)
- if(comm[k].num==comm[i+1].num && k!=i+1)
- {
- printf("已经存在该编号,按任意键继续!");
- getch();
- fclose(fp);
- return;
- }
-
- printf("商品名:");
- scanf("%s",comm[i+1].name);
- printf("单价:");
- scanf("%lf",&comm[i+1].price);
- printf("数量:");
- scanf("%lf",&comm[i+1].count);
- comm[i+1].total = comm[i+1].price * comm[i+1].count;
- if((fp=fopen("data","wb"))==NULL)
- {
- printf("不能打开文件\n");
- return;
- }
- for(k=0;k<=m;k++)
- if(fwrite(&comm[k] ,LEN,1,fp)!=1)
- {
- printf("不能保存!");
- getch();
- }
- fclose(fp);
- }
- void total()
- {
- FILE *fp;
- int m=0;
- if((fp=fopen("data","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("一共有 %d 条记录!\n",m);
- fclose(fp);
- }
- void printLogo()
- {
- printf(" . ☆∵ ∴∵ ∴∵∴ ∵╭ ∵╭ ∴╭ ☆╭ ∴ ★∵∴\n");
- printf(" . . ∵ ∴★. ∴∵∴ ╭ ╯ ╭ ╯ ╭ ╯ ╭ ╯ ∴∵∴∵∴\n");
- printf(" . ☆. ☆∴∵. ∴∵∴▍▍ ▍▍ ▍▍ ▍▍ ☆ ★∵∴\n");
- printf(" ▍. ∴∵∴∵. ∴▄███████████☆ ★ ∵\n");
- printf(" ◥█▆▆▆▆███▆█▆█▆█▆█▆█▆███◤\n");
- printf(" ◥████████☆ C P P ☆█████◤\n");
- printf(" .. .. ◥█████████████████◤\n");
- printf("\n");
- printf(" ╭───────────────────────────────╮\n");
- printf(" │ ╔═╦═╗╔═╦═╗╔═╦═╗╔═╦═╗╔═╦═╗╔═╦═╗ │\n");
- printf(" │ ║ ║║ ║║ ║║ ║║ ║ ║║ ║ │\n");
- printf(" │ ╠ 图 ╣╠ 书 ╣╠ 管 ╣╠ 理 ╣╠ 系 ╣╠ 统 ╣ │\n");
- printf(" │ ║ ║║ ║║ ║║ ║║ ║║ ║ │\n");
- printf(" │ ╚═╩═╝╚═╩═╝╚═╩═╝╚═╩═╝╚═╩═╝╚═╩═╝ │\n");
- printf(" └───-◎◎─────────────◎◎───────────┘\n");
- printf("\n");
- printf(" ████████████████████████ \n");
- printf(" * * \n");
- printf(" * ┏╮╱╱ 作者: * \n");
- printf(" * ╰★╮ * \n");
- printf(" * ╱╱╰┛ 【ba21】 * \n");
- printf(" * * \n");
- printf(" * 【还是ba21】 * \n");
- printf(" * * \n");
- printf(" * 鱼C工作室 * \n");
- printf(" * * \n");
- printf(" * C语言入门2017 * \n");
- printf(" * * \n");
- printf(" * ☆版权所有,盗版必究。☆ * \n");
- printf(" * * \n");
- printf(" * ☆如果雷同,纯属巧合。☆ * \n");
- printf(" * * \n");
- printf(" ████████████████████████ \n");
- system("pause");
- }
复制代码 |
评分
-
查看全部评分
|