商品销售管理系统设计说明.docx

上传人:b****6 文档编号:6973710 上传时间:2023-01-13 格式:DOCX 页数:20 大小:23.42KB
下载 相关 举报
商品销售管理系统设计说明.docx_第1页
第1页 / 共20页
商品销售管理系统设计说明.docx_第2页
第2页 / 共20页
商品销售管理系统设计说明.docx_第3页
第3页 / 共20页
商品销售管理系统设计说明.docx_第4页
第4页 / 共20页
商品销售管理系统设计说明.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

商品销售管理系统设计说明.docx

《商品销售管理系统设计说明.docx》由会员分享,可在线阅读,更多相关《商品销售管理系统设计说明.docx(20页珍藏版)》请在冰豆网上搜索。

商品销售管理系统设计说明.docx

商品销售管理系统设计说明

 

、商品销售管理

问题描述:

一公司有10种产品〔产品编号,产品名称,产品价格,产品产地,库存数量〔最开始为1000个〕〕,设计一程序,完成以下功能:

1)1)销售:

从键盘输入顾客某某,销售数量、销售日期,实现销售功能。

需要判断产品是否存在,销售数量是否小于库存数量,销售日期格式是否合法〔格式为:

YYYY-MM-DD,如2009-01-02〕〕

2)2)能根据产品编号查询产品的销售历史

3)3)计算时间段内各个产品的销售总额

4)4)能根据顾客某某,查询购置历史

5)5)能显示所有顾客的某某

提示:

●定义一个日期结构体保存日期,具体信息为:

年、月、日

●判断存款日期和取款日期的格式是否合法时,需要判断长度是否为10,第5位和第8位是否为’-’,字符,将1-4位表示的年份,6-7位表示的月份,9-10位表示的日期分别转换成整数。

判断是否满足构成日期的条件闰年月份只能是1-12之间的数,如果是闰年,二月可以是29天否如此不能大于28,1,3,5,7,8,10,12月可以是31天,其余只能小于等于30〔建议写成函数〕。

●定义一个结构体数组保存10种产品信息,具体信息为:

产品编号,产品名称,产品价格,产品产地,库存数量〔最开始为1000个〕

●定义一个链表,保存销售信息,具体为:

顾客代码,销售数量、销售日期。

●定义一个链表保存顾客信息,具体为:

顾客代码,顾客某某

●当输入销售信息时查询顾客链表,如果在链表中存在该某某的顾客记录,如此将其代码在该销售链表中插入一条记录,如果不存在,如此在顾客链表中插入一条记录,〔顾客代码需要自动生成〕。

 #include"stdio.h" /*I/O函数*/

#include"stdlib.h"/*标准库函数*/

#include"string.h"/*字符串函数*/

#include"ctype.h"/*字符操作函数*/

#include"time.h"/*时钟函数*/

#include"cstdlib"

#include"conio.h"

intx,k;/*定义全局变量用于保存当前商品种类*/

structproduct/*定义商品数据结构*/

{

  intnum;/*商品编号*/

  charname[20];/*商品名称*/

  floatprice; /*商品售价*/

  charplace[10];/*商品名称*/

  intstorage; /*商品库存*/

 }_product[10],product1[10];//定义主结构体数组和备用结构体数组

 

 structdata//定义日期结构体

 {intyear,month,day;

 };

 

 structsell/*定义销售数据结构*/

{

  intcus;/*顾客代码*/

  intnum;/*商品编号*/

  floatsells;/*销售数量*/

 chardata1[12];/*日期*/

  structsell*next;

 }*head_s,*pp,*tail_s;//定义头指针操、作指针以与尾指针

 

 structcustomer/*定义销售数据结构*/

{

  intcus;/*顾客代码*/

  charname[10];/*顾客某某*/

  structcustomer*next;

}*head_c,*,*tail_c;//定义头指针操、作指针以与尾指针

 

voidload();//读取文件函数

voidadd();//添加销售信息函数

intsearch_num();//根据商品编号查询商品的销售历史

voidcal();//计算时间段内各个商品的销售总额

intsearch_name();//根据顾客某某,查询购置历史

voidlist_name();//显示所有顾客的某某

voidmain();//主函数

intjudge();//主体判断函数

intjudge_data(char*data1);//细节判断函数,用于判断日期是否合法

voiddownload_s();//写入销售信息(顾客代码,销售数量、销售日期)文件

voiddownload_c();//导出顾客购置记录

voiddisplay();//显示现在的商品信息

 

//主函数

 voidmain()

{

     intchoice;

     structcustomer*head;//定义结构指针

     head=malloc(sizeof(structcustomer));//申请动态存储空间

     head->next=NULL;

 do

    {

        printf("***********************欢迎使用商品销售管理系统!

!

!

*******************\n\n");

        printf("             1.导入商品信息\n");

        printf("             2.显示商品信息\n");

        printf("             3.输入销售记录记录\n");

        printf("             4.按编号查寻商品销售历史\n");

        printf("             5.计算时间段内各个销售总额\n");

        printf("             6.按顾客某某查找购置历史\n");

        printf("             7.显示顾客某某\n");

        printf("             8.导出销售信息(顾客代码,销售数量、销售日期)文件\n");

        printf("             9.导出顾客信息文件\n");

        printf("             0.退出\n");

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

        printf("请选择不同功能输入0----9的数字\n假如输入其它值会提前退出\n");

        scanf("%d",&choice);

        system("cls"); 

        switch(choice)

        {

        case1:

            load();

            system("cls");

            break;

        case2:

            display();

            break;

 

        case3:

            add();

            break;

        case4:

            search_num();

            break;

        case5:

            cal();

            break;

        case6:

            search_name();

            break;

        case7:

            list_name(head);

            break;

      case8:

            download_s();

            break;

        case9:

            download_c();

            break;

        case0:

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

            printf("*************谢谢使用************\n\n\n\n");

            break;

        }

    }while(choice>0&&choice<=9);

}

 

voiddisplay()

 

{

 

  intcode,i=0;

  pp=(structsell*)malloc(sizeof(structsell));//申请动态存储空间并将指针转变为结构类型

  =(structcustomer*)malloc(sizeof(structcustomer));//申请动态存储空间并将指针转变为结构类型

 

  pp->next=NULL;

  ->next=NULL;

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

  printf("**************************商品信息**************************\n\n\n");

  printf(" 商品编号  商品名称  商品价格  商品产地  库存数量\n");

  while(i<10) 

    { //输出商品记录

        printf("%8d%12s %%10s%14d\n",_product[i].num,_product[i].name,_product[i].price,

            _product[i].place,_product[i].storage);

        i++;

    }

  printf("\n\n查询完毕,请按任意键继续......");

        getch();

        system("cls");

}

 

voidload(){//读取文件函数

     inti=0,n=0,a,b,j;

     FILE*fp;//指向文件的指针

     do{

     printf("请选择导入商品信息的方法\n1:

通过键盘输入\n2:

通过文件导入\n");

     scanf("%d",&a);

     if(a==2){

     

  

  if((fp=fopen("商品信息.txt","rb"))==NULL)//打开文件

  {

   printf("不能打开文件,请检查文件路径\n"); //不能打开

   exit(0); //退出*/

  }printf("*****************88商品信息88*******************\n");

    printf("编号  名称   价格   产地   库存数量\n");

    while(!

feof(fp))    

    { //读入文件

        fscanf(fp,"%d%s%f%s%d",&_product[i].num,_product[i].name,&_product[i].price,_product[i].place,&_product[i].storage);

        printf("%-10d%-10s%%-12s%-12d\n",_product[i].num,_product[i].name,_product[i].price,_product[i].place,_product[i].storage);

        i++;

    }

        for(i=0;i<10;i++)

            product1[i]=_product[i]; //对备用结构体数组赋值

        fclose(fp);//关闭文件

        printf("\t\t数据读入成功!

按任意键继续......\n");

        }

     if(a==1)

     {if((fp=fopen("商品信息1.txt","w"))==NULL)//打开文件

  {

   printf("不能打开文件,请检查文件路径\n"); //不能打开

   exit(0); //退出*/

  }

     printf("请输入商品种数");

     scanf("%d",&b);

     printf("*************商品信息***************\n");

     printf("编号 名称 价格 产地 库存数量\n");

     for(j=1;j<=b;j++){

    

     scanf("%d%s%f%s%d",&_product[i].num,_product[i].name,&_product[i].price,_product[i].place,&_product[i].storage);

     fprintf(fp,"%-6d%-6s%%-6s%-6d\n",_product[i].num,_product[i].name,_product[i].price,_product[i].place,_product[i].storage);

     }

     fclose(fp);//关闭文件

        printf("\t\t数据读入成功!

按任意键继续......\n");

        }

     

}while(a!

=1&&a!

=2);}

 

//细节判断函数,用于判断日期是否合法

 intjudge_data(char*data1)

{

    intn=1,m,year=(data1[0]-48)*1000+(data1[1]-48)*100+(data1[2]-48)*10+(data1[3]-48),

        month=(data1[5]-48)*10+(data1[6]-48),day=(data1[8]-48)*10+(data1[9]-48);

    m=strlen(data1);

    if(m!

=10)

        n=0;

    if(data1[4]!

='-'||data1[7]!

='-')

        n=0;

 

    if(year>10000||year<1000||month>12||month<1||day>31||day<1)n=0;

    if(((year%4==0&&year%100!

=0)||(year%400==0))&&month==2)

        if(day>30)n=0;

    if(month==2&&day>=29)n=0;

    if(month==4||month==6||month==9||month==11)

        if(day>30)n=0;

        returnn;

 }

 

 

 //判断函数

 intjudge()//判断商品编号数量日期是否正确

{

    inti,j=0,k,temp;

    for(i=0;i<10;i++)

        if(pp->num==_product[i].num)

        {

            j++;

            x=k=i;

            temp=_product[k].storage;

            if((_product[k].storage-(int)pp->sells)>=0)

                _product[k].storage-=(int)pp->sells;//判断计算剩余量

            break;

        }

        if(j==0)return3;//判断是否存在输入编号的商品

        elseif(temp-(int)pp->sells<0)return2;//判断输入量是否大于剩余库存量

             elseif(pp->sells-(int)pp->sells>=1e-6)return4;//商品量

                 elseif(judge_data(pp->data1)==0)return0;//判断日期

                      elsereturn1;//完全正确

}

//添加销售信息函数

 voidadd()

{

  intcode,i=0,n,m;

  pp=(structsell*)malloc(sizeof(structsell));//申请动态存储空间并将指针转变为结构类型

  =(structcustomer*)malloc(sizeof(structcustomer));//申请动态存储空间并将指针转变为结构类型

  srand(time(0));

  code=rand();        

  pp->next=NULL;

  ->next=NULL;

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

  printf("请输入销售记录\n\n\n");/*提示输入记录*/

  printf("顾客某某    商品编号    销售数量     销售日期\n");

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

  scanf("%s%d%f%s",->name,&pp->num,&pp->sells,pp->data1); /*输入记录*/

  n=(int)pp->sells;

  if(n<=0)

  {

      printf("商品数量有误!

!

!

请从新输入");

      scanf("%f",&pp->sells);

  }

  

  while

(1)

  {

      m=judge();//判断商品编号数量日期是否正确

      if(m==1){ 

         //pp=(structsell*)malloc(sizeof(structsell));//申请动态存储空间并将指针转变为结构类型

     //=(structcustomer*)malloc(sizeof(structcustomer));

            pp->cus=->cus=code;//随机数

        if(head_s==NULL)

            head_s=pp;

            else

                tail_s->next=pp;

                tail_s=pp;

                if(head_c==NULL)head_c=;

                elsetail_c->next=;

                tail_c=;

            

                printf("\t\t销售信息输入成功!

按任意键继续......\n");

                getch();

                system("cls");

                break;

      }

 

      elseif(m==2)

      { 

                system("cls");

                printf("销售数量已大于库存数量,请重新输入:

\n\n\n");

                printf("请输入销售数量\n\n\n");/*提示输入记录*/

            printf("销售数量\n");

                scanf("%f",&pp->sells); /*输入记录*/

                continue;

      }

 

      elseif(m==3){     

                system("cls");

                printf("无此商品,请重新输入:

\n\n\n");

                printf("请输入销售记录\n\n\n");/*提示输入记录*/

                printf("商品编号 \n");

                scanf("%d",&pp->num); /*输入记录*/

                continue;

      }

      elseif(m==4){       

                system("cls");

                printf("商品数量输入错误,请重新输入商品数量:

\n\n\n");

                printf("请输入销售记录\n\n\n");/*提示输入记录*/

                printf("销售数量:

\n");

                scanf("%f",&pp->sells); /*输入记录*/

                continue;

                            }   

 

            elseif(m==0){ 

                system("cls");

                printf("销售日期不合法,请重新输入销售日期:

\n\n\n");/*提示输入记录*/

                printf("销售日期\n");

                scanf("%s",pp->data1); /*输入记录*/

                continue;}

  k++;}

                                

      

  }

 

 //根据商品编号查询商品的销售历史

search_num()

 {

     inti,num,k=0,flag=1,n=0;

     structsell*ptr;

     system("cls");

     printf("请输入商品编号:

\n");

     scanf("%d",&num);

     for(i=0;i<10;i++)

         if(num==_product[i].num){flag=0;break;}

     if(flag==1)

     { system("cls");  

     printf("无此商品,请

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1