1,MobilePhone.java

import java.util.*;
public class MobilePhone {public static void entrance() {Scanner sc=new Scanner(System.in);int act=sc.nextInt();   //输入的指令数字int s=sc.nextInt();      //矩阵大小sint a[][]=new int[s][s];for(int i=0;i<s;i++)  //初始化矩阵为0,不过好像java定义一个矩阵后自动赋值为0{for(int j=0;j<s;j++){a[i][j]=0;}}while(sc.hasNextInt()){int act2=sc.nextInt();if(act2==1)   //act2=1,更新位置上的值{int x=sc.nextInt();int y=sc.nextInt();int A=sc.nextInt();a[x][y]+=A;}else if(act2==2)//act2=2,查询活跃手机 数之和,并输出结果{int L=sc.nextInt();int B=sc.nextInt();int R=sc.nextInt();int T=sc.nextInt();int sum=0;for(int i=L;i<=R;i++){for(int j=B;j<=T;j++){sum+=a[i][j];}}System.out.println(sum);}else if(act2==3){break;}}}
}

2,MobilePhoneTest1.java

import static org.junit.Assert.*;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.PrintStream;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class MobilePhoneTest1 {String sep;MobilePhone mp;PrintStream console = null;ByteArrayInputStream in = null;ByteArrayOutputStream out = null;InputStream input = null;@Beforepublic void setUp() throws Exception {mp = new MobilePhone();out = new ByteArrayOutputStream();input = System.in;console = System.out;System.setOut(new PrintStream(out));sep = System.getProperty("line.separator");}@Afterpublic void tearDown() throws Exception {System.setIn(input);out.close();System.setOut(console);}@Test(timeout=4000)public void test1() {in = new ByteArrayInputStream(("0 4" + sep + "1 1 2 3" + sep +"2 0 0 2 2" + sep + "1 1 1 2" + sep + "1 1 2 -1" + sep + "2 1 1 2 3" + sep +"3").getBytes());System.setIn(in);mp.entrance();String ans = out.toString();assertEquals("3" + sep + "4"+sep, ans);}@Test(timeout=4000)public void test2() {in = new ByteArrayInputStream(("0 9" + sep + "1 2 5 55" + sep +"2 0 3 5 7"  + sep + "1 3 3 77" + sep + "2 0 0 6 5" + sep +"3").getBytes());System.setIn(in);mp.entrance();String ans = out.toString();assertEquals("55" + sep + "132"+sep, ans);}@Test(timeout=4000)public void test3() {in = new ByteArrayInputStream(("0 110" + sep + "1 77 66 233" + sep +"2 0 0 0 0" + sep + "1 11 22 112" + sep + "1 11 22 112" + sep + "1 3 5 -17" + sep + "2 21 34 5 9" + sep +"3").getBytes());System.setIn(in);mp.entrance();String ans = out.toString();assertEquals("0" + sep + "224"+sep, ans);}@Test(timeout=4000)public void test4() {in = new ByteArrayInputStream(("0 255" + sep + "1 128 64 196" + sep +"2 167 173 47 53" + sep + "2 133 247 150 232"  + sep + "2 152 167 201 37" + sep +"3").getBytes());System.setIn(in);mp.entrance();String ans = out.toString();assertEquals("196" + sep + "0" + sep+ "0" + sep, ans);}@Test(timeout=4000)public void test5() {in = new ByteArrayInputStream(("0 777" + sep + "1 7 7 77" + sep +"2 7 7 7 7" + sep + "1 6 6 -66" + sep + "1 111 111 111" + sep + "2 17 27 37 47" + sep + "2 57 67 77 87" + sep + "2 97 107 127 137" + sep +"3").getBytes());System.setIn(in);mp.entrance();String ans = out.toString();assertEquals("77" + sep + "0" + sep + "0" + sep + "111" + sep, ans);}
}

注:本来以为机试会和以上给的两道练习题(1.Bank, 2.MobilePhone)难度差不多,结果我错了,我以为的只是我以为。第一道面向对象题和给的系统练习题相比,复杂多了,细节也更多,例如判断小数点后面有没有超过两位数, 判断输入的是否为纯字母,如果输入的中文或者其他符号,需要抛出异常,使输出的数字为百分数的形式等等。

一共有四个类

1,商品Project.java,实现设置商品信息,设置商品价格、折扣、名称

2,订单子项OrderItem.java

2,订单Order.java,实现新增订单、打印全部销售记录、获取金额最大的订单

3,商店Shop.java,实现获取商品信息、上架、下架、出售、更新

4,商店老板ShopKeeper.java

Project.java—>Order.java(orders、items、orderitems)—>Shop.java—>ShopKeeper.java

其中有的测试样例一直不过,显示输出的name为null等,最后才明白问题出在哪,是因为在构造函数中为Product赋值商品名称、商品价格、商品折扣时(this.name=setName()),这个赋值用的是一个函数,所以在这个赋值函数setName里,最后一定要进行赋值,忘记加上则就是会一直提醒输出的结果为空,样例一直不会通过。。。。蠢啊蠢,做题时一定要一步步的仔细分析,一点都不能有遗漏。

java-练习2:MobilePhone相关推荐

  1. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用...

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  2. Java调用WebService接口实现发送手机短信验证码功能

    为什么80%的码农都做不了架构师?>>>    一.样式示例: 二.前台的注册页面的代码:reg.jsp <%@ page language="java" ...

  3. java调接口实现发送手机短信验证码功能,手机验证码,接口调用

    原文地址:  http://blog.csdn.net/sxdtzhaoxinguo/article/details/34437591 近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用 ...

  4. Java期末复习题目合集

    题目列表 7-1 一个整数各个位上的最大数字 7-2 十进制转二进制 7-3 判断回文 7-4 学投资 7-5 打印所有的水仙花数 ​7-6 逆序输出整数 7-7 1!+2!+--+N! 7-8 完数 ...

  5. 短信发送:webservice调用第三方接口发送短信

    1 原博客地址:http://blog.csdn.net/sxdtzhaoxinguo/article/details/34437591 2 demo地址:http://download.csdn.n ...

  6. CH4-面向对象下 (8个案例实现)

    [案例4-1]打印不同的图形 [案例介绍] 1. 案例描述 ​ 本案例要求编写一个程序,可以根据用户要求在控制台打印出不同的图形.例如,用户自定义半径的圆形和用户自定义边长的正方形. 2. 运行结果 ...

  7. android日程管理的论文,毕业论文-基于安卓的手机日程管理系统.pdf

    2012 届毕业设计 (论文) 题 目 基于安卓的手机日程管理系统 姓 名 学 号 专 业 计算机科学与 班 级 技术 指 导 教 师 2012 年 6 月 基于安卓的手机日程管理系统 摘 要 随着生 ...

  8. JSP 注册手机验证码

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  9. java 无符号转有符号_java有符号无符号的转换

    数据处理中常常遇到基本数据类型的操作,java都是有符号的数据,而与下位机通信中常常遇到无符号的比如uint8, uint16,uint32等等 1.为了完成这个功能还专门采用ByteBuffer的方 ...

  10. 回顾Java课本容易遗忘的知识(一)

    Java知识回顾 1.命名惯例和约定 1.1.包 1.2.类 1.3.接口 1.4.方法 1.5.字段和局部变量 1.6.常量 2.final常量 3.自动转换(隐式转换) 4.基本类型的包装类 4. ...

最新文章

  1. App自动化元素定位不到?别慌,3大工具帮你解决
  2. 数据蒋堂 | 数据分布背后的逻辑
  3. python好学吗 老程序员-为什么会有程序员不喜欢 Python?
  4. html年月日下拉联动菜单 年月日三下拉框联动
  5. 处理selinux方法
  6. 小米线刷包需要解压么_【连载】刷机教程之小米手机通用线刷教程
  7. 服务器运维监控指标,运维体系~指标监控~Prometheus监控告警与日志
  8. 7-2 旅行售货员 (10 分)(TSP问题思路加详解)
  9. ubuntu 启动图形界面命令_Windows 10 远程连接 Ubuntu 18.04 Server图形界面
  10. 多级队列调度算法可视化界面_进程调度功能由操作系统内核的进程调度程序完成...
  11. java抽奖_Java实现抽奖功能
  12. 什么是私有ip 、A类地址、B类地址和C类地址?
  13. 爬取搜狗微信文章笔记2
  14. 应聘阿里的前车之鉴:从被回绝的系列原因出发,解读应聘阿里注意事项
  15. 奇安信天擎的退出以及卸载
  16. MyBatis框架总结
  17. 网页audio标签中autoplay自动播放音乐失败解决方案
  18. mac地址修改_全球首款支持电脑名称和MAC地址修改的浏览器 VMLogin超级防关联指纹浏览器 同时支持模拟真人输入,支持自定义经纬度...
  19. (转载)Bro:一个开放源码的高级NIDS系统
  20. 485之modbus通讯协议学习笔记

热门文章

  1. 数据源Display方法
  2. 一道简单的但是经典的动态规划题目
  3. javascript中replace()
  4. 玩转 Python 3.5 的 await/async
  5. Mxne入门--第2篇
  6. 20191223每日一句
  7. 20191026每日一句
  8. 电子书的下载与查阅书的源码
  9. Atitit 知识与数据 信息 加工方法总结 目录 1.1. 信息加工是指通过判别、筛选、分类、排序、分析和研究等一系列过程 1 1.2. 首先通过聚类信息 专题化 分组聚合 1 1.3. 多种聚
  10. atitit.跨平台gui 概览