📜  存储员工详细信息的智能合约

📅  最后修改于: 2022-05-13 01:55:13.713000             🧑  作者: Mango

存储员工详细信息的智能合约

Solidity 是一种高级语言。 Solidity 中智能合约的结构与面向对象语言中的类结构非常相似。 solidity 文件的扩展名为 .sol。

什么是智能合约?

Solidity 的代码封装在合约中,这意味着 Solidity 中的合约是代码(其功能)和数据(其状态)的集合,位于以太坊区块链上的特定地址。合约是在以太坊上构建应用程序的基本块。

示例:在下面的示例中,我们旨在创建一个智能合约,以演示如何使用结构、数组和函数来存储和检索组织员工的详细信息。

解决方案:

  1. 创建一个智能合约 StructDemo,其结构为 Employee,数据成员为 empid、name、department、designation。将 Employee 的动态数组创建为 emps。
  2. 创建一个函数addEmployee(),它将员工的数据存储到一个名为 emps 的动态数组中。
  3. 创建一个 getEmployee()函数,该函数获取员工 ID,在 emps 数组中搜索记录,并返回姓名、部门和职务等详细信息。

执行:

第 1 步:打开 Remix-IDE。

第 2 步:从左侧图标中选择文件资源管理器,然后在环境中选择 Solidity。单击 Solidity 环境下方的新建选项。输入文件名 StructDemo.sol 并单击 OK 按钮。

创建一个新的 .sol 文件

第 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 的任何员工的详细信息。