以一个小小简单的律师事务所收费工程为例子,完成实验:
程序代码:
bill.java
/**
* @工 程 名:DemoPrj-20180519
* @文 件 名:Bill.java
* @工具包名:edu.funu.soft.training
* @功能描述:TODO
* @创 建 人:周开伦
* @创建时间:2018年5月19日 下午2:31:20
* @版本信息:V1.0
*/
package edu.funu.soft.training;
/**
* @类名:Bill
* @功能描述:消费账单类
* @作者信息:Zhou kailun
* @创建日期:2018年5月19日 下午2:31:20
* @修改备注:
*/
public class Bill {
/** 计费标准:(每刻钟) */
private static final int FEE_PER_QUARTER=150;
/** 咨询小时数 */
private int hours;
/** 咨询分钟数 */
private int mins;
/**
* @方法名:calc
* @功能描述:计算账单
* @throws:
* @see :
*/
private int calcFee()
{
return this.getCostTime()/15*FEE_PER_QUARTER;
}
/**
* @方法名:getCostTime
* @功能描述:获得计费分钟数
* @return
* @throws:
* @see :
*/
private int getCostTime()
{
int actualTime=this.hours*60+this.mins;//实际时间
if(actualTime<0)//如果输入实际实际分钟数出现负数,则按照0处理;
{
actualTime=0;
}
return (actualTime>0 && actualTime<15)?15:(actualTime/15)*15;
}
/**
* @方法名:获得免费时间
* @功能描述: dfsasdfasdfasd
* @return
* @throws:
* @see :
*/
private int getFreeTime()
{
int actualTime=this.hours*60+this.mins;
return actualTime-this.getCostTime()>0?(actualTime-this.getCostTime()):0;
}
/**
* @方法名:打印账单
* @功能描述: fasdfasdfasd
* @throws:
* @see :
*/
public void print()
{
StringBuilder sb=new StringBuilder();
sb.append(
String.format("您总共咨询话费%d小时%d分钟,先按照%d小时%d分钟计费,最后%d分钟免费\n",
this.hours,this.mins,
this.getCostTime()/60,
this.getCostTime()%60,
this.getFreeTime())
);
sb.append(">>>> 天津律师事务所-收费单 <<<<\n");
sb.append("收费标准:").append(this.FEE_PER_QUARTER).append("元/一刻钟\n");
sb.append("消费时间:").append(this.getCostTime()).append("分钟,共").append(this.getCostTime()/15).append("刻钟");
sb.append("缴费金额:").append(this.calcFee()).append("元。\n\n");
sb.append("感谢你的支持!");
System.out.println(sb.toString());
}
/**
* <p>Title:</p>
* <p>Description:无参构造函数</p>
*/
public Bill() {
// TODO Auto-generated constructor stub
}
/**
* <p>Title:</p>
* <p>Description:有参构造函数</p>
* @param hours:小时数
* @param mins:分钟数
*/
public Bill(int hours,int mins)
{
super();
this.hours=hours;
this.mins=mins;
}
}
BillTest.java 测试代码:
/**
* @工 程 名:DemoPrj-20180519
* @文 件 名:BillTester.java
* @工具包名:edu.funu.soft.training
* @功能描述:TODO
* @创 建 人:周开伦
* @创建时间:2018年5月19日 下午2:34:34
* @版本信息:V1.0
*/
package edu.funu.soft.training;
import java.util.Scanner;
/**
* @类名:BillTester
* @功能描述:测试类
* @作者信息:Zhou kailun
* @创建日期:2018年5月19日 下午2:34:34
* @修改备注:
*/
public class BillTester {
/**
* <p>Title:</p>
* <p>Description:</p>
*/
public BillTester() {
// TODO Auto-generated constructor stub
}
/**@方法名:main
* @功能描述:TODO
* @param args
* @throws:
* @see :
*/
public static void main(String[] args) {
int hour,min;
Scanner scanner=new Scanner(System.in);
System.out.println("==========欢迎来到天津律师事务所=========");
System.out.println("请输入咨询时间:");
hour=scanner.nextInt();
System.out.println("分钟:");
min=scanner.nextInt();
Bill bill=new Bill(hour,min);
bill.print();
}
}
HTML DOM的一些操作:
setLength.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Set Length</title>
<script type="text/javascript">
// 增加文本输入框的长度方法
function increaseLength(){
var stuname=document.getElementById("stuname");
// alert(stuname);
stuname.size+=2;
};
</script>
</head>
<body>
<input type="text" id="stuname" size="20">
<br>
<button onclick="increaseLength();">增加文本输入框长度</button>
</body>
</html>
createBtn.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>create Button</title>
<style>
button{
margin-right:10px;
}
</style>
<script type="text/javascript">
var i=1;
function createBtn(){
var btnObj=document.createElement("BUTTON");
btnObj.innerHTML="按钮"+(i++);
btnObj.onclick=function(){
alert(this.innerHTML);
};
document.body.appendChild(btnObj);
}
</script>
</head>
<body>
<button onclick="createBtn();">创建按钮</button>
<hr>
</body>
</html>
calcFee.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>calc Fee</title>
<style type="text/css">
.resultStyle{
color:blue;
font-size:26px;
}
.priceStyle{
color:pink;
font-size:30px;
}
div{
}
</style>
<script type="text/javascript">
function calc(){
//1.定位
var select=document.getElementsByTagName("SELECT")[0];
var goodsInfo="";
var totalPrice=0.0;
// alert(select.options.length);
for(var i=0;i<select.options.length;i++){
// alert(select.options[i].text+"->"+select.options[i].value);
goodsInfo+=select.options[i].text+","
totalPrice+=parseFloat(select.options[i].value);
}
// alert(goodsInfo);
var resultObj=document.createElement("DIV");
var totalPriceObj=document.createElement("DIV");
resultObj.innerHTML=goodsInfo;
totalPriceObj.innerHTML="<br>总价格是:"+String(totalPrice);
resultObj.className="resultStyle";
totalPriceObj.className="priceStyle";
document.body.appendChild(resultObj);
document.body.appendChild(totalPriceObj);
}
</script>
</head>
<body>
<DIV>购物清单</DIV>
<select id="goodList">
<option value="1.2">土豆1.2</option>
<option value="2.2">西红柿2.2</option>
<option value="3.2">西红柿3.2</option>
<option value="4.2">土豆片5.2</option>
</select>
<button onclick="calc();">计算商品个数和费用</button>
<hr>
</body>
</html>
HTML BOM的一些操作:
windows-work.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>WIndows boms</title>
<style type="text/css">
</style>
<script>
var myWindow;
function openWin()
{
// window.open("http://163.com");
myWindow=window.open("","myWindow","width=200,height=100");
myWindow.document.write("<p>this is 'myWindow'</p>");
}
//关闭新窗口
function closeWin(){
myWindow.close();
}
</script>
</head>
<body>
<button onclick="openWin();">开启新窗口</button>
</body>
</html>
visit-websit.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>visit website</title>
<script type="text/javascript">
function visit(){
var newUrl=document.getElementsByName("website")[0].value;
alert(newUrl);
location.href=newUrl;
}
</script>
</head>
<body>
<label>Please input the websit you hope th visit:</label>
<input type="text" name="website" value="www.baidu.com">
<button onclick="visit();">Visit</button>
</body>
</html>
图解JS-HTML-内存对象: