免费智能真题库 > 历年试卷 > 程序员 > 2017年下半年 程序员 下午试卷 案例
  第6题      
  知识点:   C++   ping   代码实现   类图

 
【说明】
以下C++代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物品(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账,设计如图6-1所示类图

                                                                                   图6-1 类图
 
问题:6.1   【C++代码】
using namespace std;
class Book;
class Visitor {
public:
       virtual void visit(Book* book)=0;
       //其它物品的visit方法
};

class Item {
public:virtual void accept(Visitor* visitor)=0;
         virtual double getPrice()=0;
};

class Book (1){
private: double price;
public:
       Book (double price){ //访问本元素
                     (2);
       }
       void accept(Visitor* visitor) {
                     (3);
       }
      double getPrice() { return price; }
};
class Cashier(4){
private;
          double totalForCart;
public:
        //访问Book类型对象的价格并累加
      (5){
          //假设Book类型的物品价格超过10元打8折
          if(book->getPrice()<10.0) {
               totalForCart+=book->getPrice();
          } else
               totalForCart+=book->getPrice()*0.8;
        }
        //其它visit方法和折扣策略类似,此处略
        double getTotal() {
               return totalForCart;
        }
};

class ShoppingCart {
private:
       vector<item*>items;
public:
       double calculatePrice() {
              Cashier* visitor=new Cashier();

              for(int i=0;i <items.size();i++)
                       (6);
              }
              double total=visitor->getTotal();
              return total;
        }

        void add(Item*e) {
                items.push_back(e);
        }
};
 
 
 

   知识点讲解    
   · C++    · ping    · 代码实现    · 类图
 
       C++
        C++语言是一种面向对象的强类型语言,由AT&T的Bell实验室于1980年推出。
        C++语言是C语言的一个向上兼容的扩充,而不是一种新语言。C++是一种支持多范型的程序设计语言,它既支持面向对象的程序设计,也支持面向过程的程序设计。
        C++支持基本的面向对象概念,包括对象、类、方法、消息、子类和继承。C++完全支持多继承,并且通过使用try/throw/catch模式提供了一个完整的异常处理机制。它同时支持静态类型和动态类型,也完全支持多继承,不提供自动的无用存储单元收集,这必须通过程序员来实现,或者通过编程环境提供合适的代码库来予以支持。
 
       ping
        ping通过发送"Internet控制报文协议(ICMP)"回送请求/应答报文来验证与另一台TCP/IP计算机的IP级连接。回送请求/应答报文的接收情况将和往返过程的次数一起显示出来。ping是用于检测网络连接性、可到达性和名称解析的疑难问题的主要TCP/IP命令。如果不带参数,ping将显示帮助。
        1)语法格式
        
        2)参数说明
        参数如下表所示。
        
        ping的选项
        
 
       代码实现
        移动端界面的代码实现由于采用的编程方式各不相同,实现的过程差异很大,这里通过HTML、CSS和JSP+MySQL数据库设计一个简单的手机验证登录界面,如下图所示。当用户单击“获取验证码”按钮时,获取验证码设置点击事件,并将值发送到send()方法,然后判断是否传输成功。如果成功,为数据库中添加字段,由前端控制器方法实现添加成功后,服务器端JSON返回信息,随后前台进行登录验证。
        
        一个简单的手机注册登录界面
        主要代码如下:
        
        
 
       类图
        类图(class diagram)展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。
        类图中通常包括下述内容:类;接口;协作;依赖、泛化和关联关系,如下图所示。
        
        UML类图
        类图中也可以包含注解和约束。类图还可以含有包或子系统,二者都用于把模型元素聚集成更大的组块。
        类图用于对系统的静态设计视图建模。这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。当对系统的静态设计视图建模时,通常以下述三种方式之一使用类图。
        (1)对系统的词汇建模。
        对系统的词汇建模涉及做出这样的决定:哪些抽象是考虑中的系统的一部分,哪些抽象处于系统边界之外。用类图详细描述这些抽象和它们的职责。
        (2)对简单的协作建模。
        协作是一些共同工作的类、接口和其他元素的群体,该群体提供的一些合作行为强于所有这些元素的行为之和。例如当对分布式系统的事务语义建模时,不能仅仅盯着一个单独的类来推断要发生什么,而要有相互协作的一组类来实现这些语义。用类图对这组类以及它们之间的关系进行可视化和详述。
        (3)对逻辑数据库模式建模。
        将模式看作为数据库的概念设计的蓝图。在很多领域中,要在关系数据库或面向对象数据库中存储永久信息。可以用类图对这些数据库的模式建模。
   题号导航      2017年下半年 程序员 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
 
第6题    在手机中做本题