1. 根据下面的商品购入流程图来回答问题。
 
  1.请为流程图里的 A~C各项选择一个合适的选项。
     1.有零钱吗?
     2.选择商品
     3.得到返回的零钱
     4.得到商品
     5.把商品交给店员
     6.付钱<答>
     A.        B.        C.        D.        2.请从 a~c中选出正确一个选项作为分岐1。
 <答> 
            
            
3.请从d~f中选出正确一个选项作为分岐2。
 <答> 
            
            
2.请说明什么是封装及有何好处?
  <说明>       
  <好处>
      
      
3.请选出关于多态性的说明正确的是哪一个? 
A.可以使对象间拥有总括关系。
  B.可以使程序快速执行。
  C.可以提高程序的柔软性和再利用性
  D.可以使一个类特殊化,防止定义其他的类
    <答>
   
      
      
      
      
      
      
      
      
      
      
 
4.请说明什么是MVC模式及有何好处,。
  <说明>
   
      
      
  <好处>
      
      
      
      
5.请说明RDB的特点(至少3点)。
  <説明>
      
      
      
      
      
6.参照下面的Venn diagram图例,请涂出XOR的定义图示。
   <例> OR的情况
<答>
 
7. 关于Unicode的说明正确的是哪一个?
<说明>
1.IBM公司规定的一般的个人电脑使用的编码、用8比特来表示一个文字。
 2.ANSI(American National Standards Institute) 规定的7比特的编码,被应用在个人电脑方面。
3.是为了世界各国的文字都用统一的编码来而规定的,所有国家的单个文字都用2字节来表现。
   4.被应用于个人电脑在转换JIS汉字编码时,有可能与ASCII混淆的情况。
<答>
   
      
      
8. 请分别说明,单体测试,综合测试是什么样的测试。
<说明>
   
      
      
      
      
      
      
      
9. 下面有一个订货数据表,请你把它优化(正规化)。
订货No 行No 订货日 客户CD 客户名 商品CD 商品名 数量 单价 金额 合计金额
0001 1 2006/02/03 0001 A公司 0001 铅笔 10 30 300 300
0002 1 2006/02/05 0002 B公司 0001 铅笔 15 30 450 3,450
0002 2 2006/02/05 0002 B公司 0002 红钢笔 30 100 3,000 3,450
0003 1 2006/02/08 0003 C公司 0003 黑钢笔 15 100 1,500 3,500
0003 2 2006/02/08 0003 C公司 0003 黑钢笔 10 100 1,000 3,500
0003 3 2006/02/08 0003 C公司 0004 橡皮 20 50 1,000 3,500
<答>
      
      
      
      
      
10. 请写出快速排序(Quick sort)的特点。
<说明>
      
      
      
      
      
      
      
      
      
11.现在想要显示「员工」数据表里的记录,但是「职务」为NULL的记录不要显示,并且要按照「员工编号」的降序来显示。请你按照上述要求写出SQL语句。
   ・员工表
员工CD 员工名 职务
0001 李一 经理
0002 张二 NULL
0003 赵四 NULL
0004 钱五 科长
<答>
       
      
12.请做出,业者购入资材的数据库ER图(EntityRelationDiagram)。
并且只有「」 内的内容才可以当做实体(Entity)。
(1)对于「银行」来说、有多个「银行分店」存在。
   (2)「业者」可以在多个「银行分店」里拥有帐户。
   (3)「部品」可以从多个「业者」处购买到。
   (4)「产品」是由多个「部品」经过加工制造生产出来的。
   (5)与每个「业者」的联系,都由固定的一名员工来负责
      而一名「员工」可以同时负责与多个「业者」进行联系。

  提示 1对1:
     1对多(从属):
     多对多: 
  <答>
            
13.团队开发时需要注意哪些事项?请至少说出3项。并说出理由。
   <答>
  
       
       
       
       
       
       
       
       
14.如果让你用JAVA作一个系统,你会用它来做个什么系统?说出你的理由。
<答>

解决方案 »

  1.   

    2.<说明>封装有数据和实现方法,因此用户就可以将其视为一个提供服务的黑匣子,可向其中添加实例变量和方法,也可删除或改变其中的实例变量和方法。但只要提供的服务保持不变,使用该程序代码的就还可以继续使用它而不必被重写。封装对象,并非是将整个对象完全包裹起来,而是根据具体的需要,设置使用者访问的权限。
    <好处>主要是为了数据的安全。即只让允许访问及控制它的对象去访问及控制它,实际上实现的是程序的可控制性。
      

  2.   

    4.MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
    好处:
    1)多个视图能共享一个模型。 由于业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。
    2)模型是自包含的,与控制器和视图保持相对独立,所以可以方便地改变应用程序的数据层和业务规则,能构造良好的松耦合构件。
    3)控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同的模型和视图去完成用户的需求,也可以为构造应用程序提供强有力的手段。
      

  3.   

    10。快速排序算法,它在平均情况下需要O(nlogn)时间。这个算法是由C.A.R.Hoare发明的。算法的基本思想
    快速排序的基本思想是基于分治策略的。对于输入的子序列L[p..r],如果规模足够小则直接进行排序,否则分三步处理:分解(Divide):将输入的序列L[p..r]划分成两个非空子序列L[p..q]和L[q+1..r],使L[p..q]中任一元素的值不大于L[q+1..r]中任一元素的值。 
    递归求解(Conquer):通过递归调用快速排序算法分别对L[p..q]和L[q+1..r]进行排序。 
    合并(Merge):由于对分解出的两个子序列的排序是就地进行的,所以在L[p..q]和L[q+1..r]都排好序后不需要执行任何计算L[p..r]就已排好序。 
    这个解决流程是符合分治法的基本步骤的。因此,快速排序法是分治法的经典应用实例之一。
      

  4.   

    select 员工CD,员工职务 from 员工
    where  not 员工职务 is null
    order by 员工CD DESC;