solidity IDE下载地址 https://pan.baidu.com/s/1cY8VgDqB9Wt9VzK-Nocbyw

代码案例:

pragma solidity ^0.4.0;
//创建合约的时候,点的那个地址就是合约本身的地址
contract TollStation{ //构造器 存储车库车辆信息
struct CarInfo{
address _carAddr;//车主账户地址
string _lisencePlateNumber;//车牌号
uint _intime;//车辆进入时间
} //定义数组
CarInfo[] public car;
address addre;//合约地址 //合约的创建(构造器): payable(收钱)
function TollStation() public {
addre = msg.sender;
} //添加数据
function addData() payable{
car.push(CarInfo(msg.sender,"云A1123", now));
} //判断用户是否存在
modifier carExist{ bool contain;
for(uint i = 0;i<=car.length-1;i++)
{
if(msg.sender == car[i]._carAddr){
contain = true ;
} }
require(contain);//判断contain的值,如果不存在,则不继续执行
_;
} function account() public payable carExist returns (uint adr) { uint beforeTime; //取出当前账户的时间,然后用系统当前时间减去原来的时间 就可以计算需要扣除的金额
for(uint i = 0;i<=car.length-1;i++)
{
if(msg.sender == car[i]._carAddr){
beforeTime = car[i]._intime;
}
}
uint nowTime = now;
uint bal = nowTime - beforeTime;
if(bal<100000000){//小于1小时 扣除6wei
require(msg.value>0);
addre.transfer(6 ether);
emit Sent(msg.sender,"转账成功",msg.value);
}
else{
require(msg.value>0);
addre.transfer(10 ether);
emit Sent(msg.sender,"转账成功",msg.value);
}
return addre.balance;
} //事件 定义事件的作用就是可以在控制台输出和发送消息给客户端
event Sent(address addr,string msg,uint count); //查询数组
function queryCarData() returns(address addr,string str,uint time,uint size){
if(car.length<1){
return(0x323,"s",0,0);
}
else{
addr =car[car.length-1]._carAddr;
str = car[car.length-1]._lisencePlateNumber;
time = car[car.length-1]._intime;
size = car.length;
}
} function getLocalAddress() returns (address addr){
return this;
} function getTime() returns (uint now11){
now11 = now; return now11;//h获取系统时间 时间格式为12524208878 1524295087
}
}

(注意:require代码需要注释掉才可以)

下载了IDE后操作步骤如下:

1、解压后打开index.html,进入页面,复制代码,点击右侧的create,账户选择第一个。

2、切换账户,value值必须写,它主要是用于后面操作,就是车主进入车库多长时间,然后需要扣费多少,就是从value里面扣得,如果钱不够,交易失败。单位选择ether。

3、转账成功:

solidity 小案例 收费站的更多相关文章

  1. 机械表小案例之transform的应用

    这个小案例主要是对transform的应用. 时钟的3个表针分别是3个png图片,通过setInterval来让图片转动.时,分,秒的转动角度分别是30,6,6度. 首先,通过new Date函数获取 ...

  2. shell讲解-小案例

    shell讲解-小案例 一.文件拷贝输出检查 下面测试文件拷贝是否正常,如果cp命令并没有拷贝文件myfile到myfile.bak,则打印错误信息.注意错误信息中basename $0打印脚本名.如 ...

  3. [jQuery学习系列六]6-jQuery实际操作小案例

    前言最后在这里po上jQuery的几个小案例. Jquery例子1_占位符使用需求: 点击第一个按钮后 自动去check 后面是否有按钮没有选中, 如有则提示错误消息. <html> &l ...

  4. 02SpringMvc_springmvc快速入门小案例(XML版本)

    这篇文章中,我们要写一个入门案例,去整体了解整个SpringMVC. 先给出整个项目的结构图:

  5. React.js入门小案例

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...

  6. SqlDependency缓存数据库表小案例

    SqlDependency的简介: SqlDependency是outputcache网页缓存的一个参数,它的作用是指定缓存失效的数据库依赖项,可以具体到数据库和表. SqlDependency能解决 ...

  7. JavaScript apply函数小案例

    //回调函数1 function callback(a,b,c) { alert(a+b+c); } //回调函数2 function callback2(a,b) { alert(a+b); } / ...

  8. Session小案例------完成用户登录

    Session小案例------完成用户登录     在项目开发中,用户登陆功能再平常只是啦,当用户完毕username和password校验后.进入主界面,须要在主界面中显示用户的信息,此时用ses ...

  9. ch1-vuejs基础入门(hw v-bind v-if v-for v-on v-model 应用组件简介 小案例)

    1 hello world 引入vue.min.js 代码: ----2.0+版本 <div id="test"> {{str}} </div> <s ...

随机推荐

  1. 【转载】复制文件到已存在的Jar

    复制文件到已存在的Jar 技术标签: Ant  OSGI  Eclipse  脚本  配置管理   问题 这两天在写一个小东西.这个小东西是一个大东西的一部分.其实也就是其中的一两个类.而这个大东西需 ...

  2. 【转载】Linux踢出其他正在SSH登陆用户

    Linux踢出其他正在SSH登陆用户     在一些生产平台或者做安全审计的时候往往看到一大堆的用户SSH连接到同一台服务器,或者连接后没有正常关闭进程还驻留在系统内.限制SSH连接数与手动断开空闲连 ...

  3. Linux Centos7设置UTF-8编码,防止中文乱码

    Linux Centos7设置UTF-8编码,防止中文乱码 # localeLANG=zh_CN.gb2312LC_CTYPE="zh_CN.gb2312"LC_NUMERIC=& ...

  4. Ansible_使用Ansible galaxy部署角色

    一.介绍Anisble galaxy 1.介绍Ansibleu galaxy 1️⃣:Ansible Galaxy (官网:https://galaxy.ansible.com)是一个Ansible内 ...

  5. Linux——CentOS7添加/删除用户和用户组1

    Linux--CentOS7添加/删除用户和用户组 2017.05.02 19:58 23012浏览   前言 今天又重新装了centos7突然有关用户和用户组有关的命令记不清了,所以记一下,也方便你 ...

  6. cnetos 网卡绑定 eth0+eth1做双网卡绑定到bond0

    1.网卡绑定:eth0+eth1做双网卡绑定到bond0 二.网络配置 网卡绑定1./etc/sysconfig/network-scripts/目录下建立ifcfg-bond0文件,内容如下DEVI ...

  7. STM32 SWD下载口无法下载的原因和解决办法

    1.SWD的下载口在程序中被禁用,IO口被设置为普通IO口 2.芯片被锁,原因有可能是程序执行了不正确的访问导致芯片被锁 3.供电不正常 4.SWD烧了 解锁原因: 在下载程序的时候有时候会发生错误导 ...

  8. JavaScript正则表达式(深度)(Day_14)

    忘不掉的是回忆,继续的是生活,错过的,就当是路过. 简介 正则表达式是用于匹配字符串中字符组合的模式.在 JavaScript中,正则表达式也是对象. 这些模式被用于 RegExp 的 exec 和  ...

  9. Java基础语法,常用知识复习

    1.开发环境搭建 1.1JDK.JRE.JVM.的关系 JDK = JRE + 开发工具集(例如javac编译工具集等) JRE = JVM + Java SE 标准类库 2.基本语法 2.1.jav ...

  10. Go语言协程并发---timer秒表与定时器

    秒表 package main import ( "fmt" "time" ) /*每秒大喊我要去浪,共9次,然后退出计时*/ func main() { va ...