超市管理系统的理解、分析与运行

时间:2022-11-13 23:00:41

       软件工程综合实践专题第一次作业,作业题目为阅读、分析、运行别人开发的一个软件或一段程序,简单运行一下它的功能,并把这个过程的心得体会,遇到的问题和解决办法写出来,我从杨雨婷同学那拿到了她小学期编写的程序。

       她编写了一个超市系统,整个系统包含四个功能:建立库存信息 、输出所有商品、建立购物车信息以及购物车结算,采用了结构体、链表、指针。运行后我发现她建立库存信息以及购物车结算存在一些问题,结算功能无法运行并且在建立库存信息的时候输入一次就要*返回菜单再次选择建立数据库才能继续录入商品信息,这一点很不人性化,于是我在其程序上做了些改动,我加入了do while循环限制它在输入一次后直接跳转到菜单,判断条件为“是否继续输入商品信息?y/n”,其次是购物车结算,我以为能很快的帮她将第四个功能修改并运行出来,然而涉及到要调用商品的价格,数量,并且再结算后还要减少商品的数量,我没能改好这一个bug,但既然不能结算,我想就索性舍弃这个功能,直接变成超市商品管理系统,只负责管理信息,于是我又编写了删除商品和智能查找功能,完善了它的功能。下面附上我修改的部分代码。

 

void build_inventory() //建立库存信息

{

system("cls");

       printf("\n\t\t新建超市库存信息          \n\n");

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

       printf("\n\n\t***********建立库存信息*************\n\n\n");

       {

              p2=p1;

              p1=(struct inventory*)malloc(N);

              p1->number=n;

              p1->next=NULL;

           system("cls");

              do

              {

                     printf("\t\t请输入商品的名称:");

                     scanf("%s",p1->name);

                     printf("\n");

                     printf("\t\t请输入商品的价格:");

                     scanf("%f",&p1->price);

                     printf("\n");

                     printf("\t\t请输入商品的数量:");

                     scanf("%d",&p1->count);

                     printf("\n");

                     p2=p1;

                  p1->next=NULL;

                     printf("\n\t\t您还要继续添加吗?<y\\n>\n");

                     scanf("%c",&sh);

 

              }

              while(sh=='y'||sh=='Y');

      

       }

       printf("\t\t录入成功!\n\t\t商品编号为%d\n",n);

       n++;

       cnt1++;

       stop=getchar();

       stop=getchar();

}