银行数据库笔试编程题

发表于:2013-9-17 10:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:qianquan3    来源:51Testing软件测试网采编

  一、写一个算法对1,8,5,2,4,9,7进行顺序排列并给出所使用方法。

  我所用的方法:

int[] a={1,8,5,2,4,9,7};
  for(int i=0;i<a.length;i++){
   for(int j=i+1;j<a.length;j++){
    if(a[i]>a[j]){
     //通过交换位置进行排序
     int k=a[i];
     a[i]=a[j];
     a[j]=k;
    }
   }
   System.out.print(a[i]+",");
  }

  编程思想:看到题目上的数字,首先应该想到循环输出,自然想到for循环了,接下来就要思考输出的顺序了。对于新手来说顺序输出应该有点难度,通过比较数字大小来排序输出,利用数组顺序输出并在控制台打印出。

  在网上搜集到的方法:

//用连性表的 形式 这样可以做到释放内存 同时高速排序数量小的情况 用楼上的 数量多 用这种 高速高效
  TreeMap demo = new  TreeMap();
     demo.put("1",null);
     demo.put("8",null);
     demo.put("5",null);
     demo.put("2",null);
     demo.put("4",null);
     demo.put("9",null);
     demo.put("7",null);
     Iterator it= demo.keySet().iterator();
     while(it.hasNext()){
       System.out.print(it.next()+",");
     }
     it.remove();
     demo.clear();

  二、一个简单的银行账务系统,其数据大致涉及:

  客户(客户名、身份证号,年龄,性别,住址,电话);

  存款账户(账号,类别,余额);

  存款帐分录(交易日期,借贷标志,金额)。

  1.采用任一主流数据库(oracle,DB2,MS SQL Server,Mysql)等DDL写出表的定义。

  2.列出某客户(张三)之所有账户号;

  3.李四是一位新开户的客户,添加所涉及的数据库表;

  4.列出客户(李四)在2012/3/1到2012/3/7期间发生的交易金额记录。

  如果是去涉及到银行开发的公司第二题这种类型的数据库题目是必考的,迄今为止,本人还没能全部写出,希望IT大神不吝赐教,写出您的思考方法,好让以后面试此类题的人能得心应手。

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • julyhe
    2013-9-26 17:46:48

    --1、建表
    CREATE TABLE Customer
    (
            CID INT IDENTITY(1,1) NOT NULL,
            CustomerName NVARCHAR(100) NOT NULL,--客户名
            IDCard NVARCHAR(18) NULL,--身份证号
            Age INT NULL,--年龄
            Gender SMALLINT NULL,--性别
            ADDRESS NVARCHAR(200) NULL,--住址
            PhoneNum NVARCHAR(50) NULL--电话号码
    )
    CREATE TABLE Account(
            AID INT IDENTITY(1,1) NOT NULL,
            AccountNum NVARCHAR(30) NOT NULL,--账号
            CID INT NOT NULL,
            TYPE INT NULL,--类别
            Balance FLOAT--余额
    )

    CREATE TABLE DepositEntries(
            DID INT IDENTITY(1,1) NOT NULL,
            AID INT,
            CreateDate DATETIME NULL,--交易日期
            TYPE INT NULL,--借贷标志
            Money FLOAT--金额
    )
    --2、列出某客户(张三)之所有账户号
    SELECT AccountNum FROM dbo.Customer c
    JOIN dbo.Account a ON c.CID = a.CID  
    WHERE CustomerName='张三'
    --3、李四是一位新开户的客户,添加所涉及的数据库表(Customer和Account)
    --4、列出客户(李四)在2012/3/1到2012/3/7期间发生的交易金额记录。
    ;WITH temp AS(SELECT AID,AccountNum FROM dbo.Customer c
    JOIN dbo.Account a ON c.CID = a.CID  
    WHERE CustomerName='李四')
    SELECT * FROM dbo.DepositEntries d JOIN temp ON d.AID = temp.AID
    WHERE CreateDate BETWEEN '2012-03-01' AND '2012-03-07'

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号