问题描述
收到了一份室友已经完成的网上购书平台程序,对其功能使用和熟悉后,进行了部分功能的添加,使其更加完善。
程序概况
书店登录界面

部分功能展示


信息储存文件

使用体验
由此可见软件完成度非常高,信息都显示明确,条理逻辑清晰,购买图书的每一步关键信息都有文件能够记录,翻找整理起来很方便。但使用时发现该平台购书订单一旦确认就无法再取消,必须要购买的情况,如若手滑点错无法更改,是这个平台的一个小小的漏洞,应当留出一个后悔更改的机会,毕竟总会有不当心点错的时候。
功能完善
在已有的使用体验基础上,我决定添加一个取消订单的功能,实现订单取消的功能,为手滑等失误增加一些容错的机会。
代码
//取消订单函数定义
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;
}
}
}
}
效果图

查看订单界面也可以看到取消的订单

总结
经过对该购书平台代码的完整体验和分析,发现了其在订单处理方面存在部分缺陷,添加了订单取消的功能模块,并调整好了它的适配性。

浙公网安备 33010602011771号