标题:求助:小型商店收费系统,求助一个问题
只看楼主
晴天丶Only
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-6-25
结帖率:100%
已结贴  问题点数:20 回复次数:1 
求助:小型商店收费系统,求助一个问题
题目如下要求如下:
用文件系统设计实现一个小型商店收费系统。实现商品列表建立,费用收取及收费信息汇总统计等功能。
1:建立商品列表(含商品价格,条码,库存量等);
2:实现收费功能;
3:可按多种方式对商品列表进行查询(如品名,条码);
4:实现收费信息汇总功能;
5:对热销商品进行统计;
遇到问题:前面我都完成了,问题在于第四个对收费信息汇总。因为每次收费时购买商品不同,价格数量不同,因而统计也不一样
,而且保存也是难题,我想不到思路如何处理这个问题。附上前三个功能函数,只发主要部分,无注释:
struct substance{

      char name[11];

      int  price;

      char key[13];

      int  p;

}sub[9];     定义结构体

第一项功能:
void add()

{

      system("cls");

      char ch;

      int i;

      FILE *fp;

      fp=fopen("E:\\课程设计\\商品","w+");

      for(i=0;   ;i++)

      {

            printf("请输入商品名称:\n");
         
            scanf("%s",sub[i].name);

            printf("请输入商品价格:\n");
         
            scanf("%d",&sub[i].price);

            printf("请输入条码:\n");

            scanf("%s",sub[i].key);

            printf("请输入储存量:\n");

            scanf("%d",&sub[i].p);

            fwrite(&sub[i],sizeof(struct substance),1,fp);

            printf("是否继续添加商品:选择N退出,按任意键继续\n");

            getchar();

            ch=getchar();

            if(ch=='N')  break;

      }
      fclose(fp);

}
第二项功能:
void input()

{
     system("cls");
    int amount,fee,change,i,j,n,sum=0;

    char key[13];

    char ch;

    FILE *fp;

    fp=fopen("E:\\课程设计\\商品","r");

    for(i=0;fread(&sub[i], sizeof(struct substance),1,fp)!=0 ;i++)

            n=i+1;

       fclose(fp);

    fp=fopen("E:\\课程设计\\商品","w");

    for(i=0;  ;i++){

    printf("请输入条码:");

    scanf("%s",key);

    for(j=0;j<n;j++)

    if(strcmp(sub[j].key,key)==0)

                  break;

    printf("请输入数量:");

    scanf("%d",&amount);

    sub[j].p=sub[j].p-amount;

    sum+=amount*sub[j].price;
   
    fwrite(&sub[j],sizeof(struct substance),1,fp);

    printf("是否继续购买商品:选择N退出,任意键继续\n");

    getchar ();

    ch=getchar();

    if(ch=='N') break;

    }

    fclose(fp);
   
    printf("收费:");

    scanf("%d",&fee);

    printf("合计:%d\n",sum);

    change=fee-sum;
   
    printf("找零:%d\n",change);


}
第三项功能:
void search()
{

      system("cls");

      int i,j,n,m;

      char name[20];

      FILE *fp;

      fp=fopen("E:\\课程设计\\商品","r");

      for(i=0;fread(&sub[i], sizeof(struct substance),1,fp)!=0 ;i++)

            n=i+1;

            fclose(fp);

            printf("按品名查找:1\n");

            printf("按条码查找:2\n");

            printf("请输入选项:");

            scanf("%d",&m);

            if(m==1){

                  printf("请输入品名:");

            scanf("%s",name);

      for(j=0;j<n;j++)

            if(strcmp(sub[j].name,name)==0)

                  break;

            printf("%s %d %s %d\n",sub[j].name,sub[j].price,sub[j].key,sub[j].p);

                  fclose (fp);

            }

            if(m==2){

            printf(      "请输入条码:");

      scanf("%s",name);

      for(j=0;j<n;j++)

            if(strcmp(sub[j].key,name)==0)

                  break;

            printf("%s %d %s %d\n",sub[j].name,sub[j].price,sub[j].key,sub[j].p);


                  fclose (fp);

            }

}
搜索更多相关主题的帖子: 热销商品 库存量 而且 品名 如何 
2015-06-25 16:39
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
得分:14 
去吃个饭再回来看自己贴的代码,发现:哎哟,自己也看不懂了。 呵呵
附上前三个功能函数,只发主要部分,无注释:

人有多懒,编程就有多难。
2015-06-25 17:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-454715-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.517511 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved