存储员工详细信息的智能合约
Solidity 是一种高级语言。 Solidity 中智能合约的结构与面向对象语言中的类结构非常相似。 solidity 文件的扩展名为 .sol。
什么是智能合约?
Solidity 的代码封装在合约中,这意味着 Solidity 中的合约是代码(其功能)和数据(其状态)的集合,位于以太坊区块链上的特定地址。合约是在以太坊上构建应用程序的基本块。
示例:在下面的示例中,我们旨在创建一个智能合约,以演示如何使用结构、数组和函数来存储和检索组织员工的详细信息。
解决方案:
- 创建一个智能合约 StructDemo,其结构为 Employee,数据成员为 empid、name、department、designation。将 Employee 的动态数组创建为 emps。
- 创建一个函数addEmployee(),它将员工的数据存储到一个名为 emps 的动态数组中。
- 创建一个 getEmployee()函数,该函数获取员工 ID,在 emps 数组中搜索记录,并返回姓名、部门和职务等详细信息。
执行:
第 1 步:打开 Remix-IDE。
第 2 步:从左侧图标中选择文件资源管理器,然后在环境中选择 Solidity。单击 Solidity 环境下方的新建选项。输入文件名 StructDemo.sol 并单击 OK 按钮。
第 3 步:输入以下 Solidity 代码。选择与您的代码中相同的solidity 版本。
Solidity
// Solidity program
// to store
// Employee Details
pragma solidity ^0.6.8;
// Creating a Smart Contract
contract StructDemo{
// Structure of employee
struct Employee{
// State variables
int empid;
string name;
string department;
string designation;
}
Employee []emps;
// Function to add
// employee details
function addEmployee(
int empid, string memory name,
string memory department,
string memory designation
) public{
Employee memory e
=Employee(empid,
name,
department,
designation);
emps.push(e);
}
// Function to get
// details of employee
function getEmployee(
int empid
) public view returns(
string memory,
string memory,
string memory){
uint i;
for(i=0;i
第 4 步:从 Solidity Compiler 选项卡中编译文件 StructDemo.sol。
第 5 步:从 Deploy and Run Transaction 选项卡部署智能合约。
第 6 步:然后通过addEmployee()添加员工详细信息,之后,您可以通过getEmployee() 查看使用员工 ID 的任何员工的详细信息。