软件工程综合实践专题第一次作业,作业题目为阅读、分析、运行别人开发的一个软件或一段程序,简单运行一下它的功能,并把这个过程的心得体会,遇到的问题和解决办法写出来,我从杨雨婷同学那拿到了她小学期编写的程序。
她编写了一个超市系统,整个系统包含四个功能:建立库存信息 、输出所有商品、建立购物车信息以及购物车结算,采用了结构体、链表、指针。运行后我发现她建立库存信息以及购物车结算存在一些问题,结算功能无法运行并且在建立库存信息的时候输入一次就要*返回菜单再次选择建立数据库才能继续录入商品信息,这一点很不人性化,于是我在其程序上做了些改动,我加入了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();
}