问题描述
收到了一份室友已经完成的网上购书平台程序,对其功能使用和熟悉后,进行了部分功能的添加,使其更加完善。
程序概况
书店登录界面
部分功能展示
信息储存文件
使用体验
由此可见软件完成度非常高,信息都显示明确,条理逻辑清晰,购买图书的每一步关键信息都有文件能够记录,翻找整理起来很方便。但使用时发现该平台购书订单一旦确认就无法再取消,必须要购买的情况,如若手滑点错无法更改,是这个平台的一个小小的漏洞,应当留出一个后悔更改的机会,毕竟总会有不当心点错的时候。
功能完善
在已有的使用体验基础上,我决定添加一个取消订单的功能,实现订单取消的功能,为手滑等失误增加一些容错的机会。
代码
//取消订单函数定义 void Function::cancel(){ vector<int> v; //存放在大容器中的下标编号 orderVector(); //从文件中获取信息到容器中 int i=0; //统计用户个人订单数量 int j, m=0, choice; for(vector<Buyer>::iterator it = V_Order.begin();it!=V_Order.end();it++){ if(it->Acc==G_zh){ i++; } } if(i==0){ //判断订单数量是否为0 cout<<endl<<"您目前没有订单!"<<endl<<endl; system("pause"); system("cls"); return menu(); //订单数量为0时返回菜单界面 } else{ for(j = 0; j<V_Order.size(); j++){ if(G_zh==V_Order[j].Acc){ v.push_back(j); //将对应的用户账单在大容器下的序号放进小容器中 m++; cout<<endl<<"序号:"<<m<<" 账号:"<<V_Order[j].Acc<<" 姓名:"<<V_Order[j].Name<<" 图书号:"<<V_Order[j].Num<<" 书名:" <<V_Order[j].B_Name<<" 作者:" <<V_Order[j].Author <<endl<<"出版社:"<<V_Order[j].Press<<" 定价:"<<V_Order[j].Price<<" 地址:"<<V_Order[j].Address<<" 数量:"<<V_Order[j].amount; if(V_Order[j].judge==1){ cout<<" 订单状态 :待结算"<<endl<<endl; } else if(V_Order[j].judge==0){ cout<<" 订单状态 :已取消"<<endl<<endl; } else if(V_Order[j].judge==2){ cout<<" 订单状态 :已付款"<<endl<<endl; } } } cout<<endl<<"请谨慎选择你要取消的订单,选择0可返回:"; cin>>choice; while(1){ if(choice>=0&&choice<=v.size()){ if(choice==0){ cout<<endl<<"返回菜单界面"<<endl<<endl; system("pause"); system("cls"); return menu(); //选择为0时返回菜单界面 } else{ V_Order[v[choice-1]].judge = 0; //更改大容器中对应的订单状态信息 update(); //更改完容器中订单状态后将文件信息进行更新 cout<<endl<<"该订单已取消!"<<endl<<endl; system("pause"); system("cls"); return menu(); //选择为0时返回菜单界面 } } else{ cout<<endl<<"您的输入超出范围,请重新输入订单号!"<<endl; } } } }
效果图
查看订单界面也可以看到取消的订单
总结
经过对该购书平台代码的完整体验和分析,发现了其在订单处理方面存在部分缺陷,添加了订单取消的功能模块,并调整好了它的适配性。