首页 > 编程语言 >【C++】网上购书平台完善

【C++】网上购书平台完善

时间:2023-03-09 14:11:50浏览次数:32  
标签:功能 购书 取消 平台 C++ choice 订单

问题描述

收到了一份室友已经完成的网上购书平台程序,对其功能使用和熟悉后,进行了部分功能的添加,使其更加完善。

程序概况

书店登录界面

 

 部分功能展示

 

 

 

 

 

 信息储存文件

 

使用体验

由此可见软件完成度非常高,信息都显示明确,条理逻辑清晰,购买图书的每一步关键信息都有文件能够记录,翻找整理起来很方便。但使用时发现该平台购书订单一旦确认就无法再取消,必须要购买的情况,如若手滑点错无法更改,是这个平台的一个小小的漏洞,应当留出一个后悔更改的机会,毕竟总会有不当心点错的时候。

功能完善

在已有的使用体验基础上,我决定添加一个取消订单的功能,实现订单取消的功能,为手滑等失误增加一些容错的机会。

代码

复制代码
//取消订单函数定义
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;
         }
        }
        
    }
    
} 
复制代码

效果图

 

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

 

 

 总结

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

标签:功能,购书,取消,平台,C++,choice,订单
From: https://www.cnblogs.com/b0bxu/p/17198174.html

相关文章

  • c++移动构造函数
    一.介绍1.1 定义【源对象资源的控制权全部移交给目标对象】有些复制构造是必要的,我们确实需要另外一个副本;而有些复制构造是不必要的,我们可能只是希望这个对象换个地方,......
  • c++ 性能分析
    本文记录下日常工作中用到的性能分析工具。一、内存泄漏排查我的服务依赖了jemalloc,这个地方记录下使用jemalloc进行内存分析的方法。1编译jemalloc首先,依赖的je......
  • ArchKeeper (开篇):架构守护平台的问题与理念
    作者:京东科技倪新明在敏捷开发环境下,系统通过迭代增量的交付价值,系统架构也是如此。团队不可能在项目之初就建立完美的系统架构,系统架构应该随着系统迭代不断演进。架构......
  • JAVAScript 跨平台客户端脚本语言
    前端内容三大基础性技术  Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解......
  • 全球最大学习平台【b站和中文IT社区csdn】服务器相继崩溃,居然是测试没学好这套自动化
    简介前面虽然实现了参数的关联,但是那种只是记流水账的完成功能,不便于维护,也没什么可读性,随着水平和技能的提升,再返回头去看前边写的代码,简直是惨不忍睹那样的代码是初级......
  • 【C++】购书系统问题测试&功能补充
    代码来源:舍友大一的C++作业【代码存在的问题】在菜单界面选择对应序号时,若输入值非数字,而是字母等其它符号,会导致程序陷入循环,无法正常进入功能的下一步     ......
  • [Primer] 第 14 章 C++ 中的代码重用
    第14章C++中的代码重用14.1包含对象成员的类类初始化列表中有多个项目时,初始化的顺序为在类中的声明顺序而不是列表顺序。14.2私有继承使用私有继承,基类的所有公......
  • 搭建 Jenkins 自动化测试平台
     Jenkins自动化测试平台的作用自动化构建平台的执行流程(目标)是:我们将代码提交到代码托管工具上,如github、gitlab、gitee等。1、Jenkins要能够检测到我们的提交。2、Jen......
  • gcc 编译 C/C++ 文件
    gcc编译C/C++文件众所周知,C/C++程序想要得到执行,主要需要执行编译和链接两个过程,这个过程比较繁琐,尤其是程序使用到了其他的头文件的时候。gcc是常用的编译工具,其流程主要......
  • (P01)C++介绍
    文章目录​​1.需要掌握的重要练习​​​​2.为什么要学习C++​​​​3.C++为什么难学​​​​4.C++11值得学习的新特性​​​​5.几本推荐学习C++的书​​​​6.开发工具......