Solidity — разверните смарт-контракт для системы управления оценками

Опубликовано: 8 Октября, 2022

Solidity — это язык высокого уровня. Структура смарт-контрактов в солидности очень похожа на структуру классов в объектно-ориентированных языках. Файл солидности имеет расширение .sol.

Что такое смарт-контракты?

Код Solidity инкапсулирован в контракты, что означает, что контракт в Solidity представляет собой набор кода (его функций) и данных (его состояния), который находится по определенному адресу в блокчейне Ethereum. Контракт — это фундаментальный блок создания приложения на Ethereum.

Пример: В приведенном ниже примере цель состоит в том, чтобы развернуть смарт-контракт для системы управления метками с помощью Solidity. В этом контракте могут быть добавлены сведения о каждом студенте, такие как идентификатор студента, имя, оценки и т. Д., И если кто-то хочет дать студентам дополнительные оценки, их также можно добавить. После составления контракта можно получить все данные о каждом студенте.

Подход:

  1. Первый шаг — развернуть смарт-контракт с помощью Remix IDE. После написания кода скомпилируйте код. Когда он успешно скомпилирован, разверните его. После развертывания контракта получается развернутый контракт, а затем по одному добавляются сведения о студенте.
  2. Если необходимо добавить бонусные баллы, добавьте их в раздел BonusMarks, после чего щелкните stdCount и получите сведения о студенте, чтобы вызвать stdRecords.
  3. Добавьте в этот смарт-контракт информацию об одном или нескольких новых студентах с шагом stdCount.

Реализация

Шаг 1: Откройте Remix IDE.

Шаг 2: Нажмите «Проводники», выберите «Солидность» в среде и создайте новый файл StudentMarksMangmtSys.sol, щелкнув раздел «Новый файл».

Шаг 3: Создайте смарт-контракт, содержащий все данные об ученике, с помощью Remix IDE, щелкнув имя файла.

Solidity




// Solidity program to implement
// the above approach
pragma solidity >= 0.7.0<0.8.0;
  
// Build the Contract
contract MarksManagmtSys
{
    // Create a structure for 
    // student details
    struct Student
    {
        int ID;
        string fName;
        string lName;
        int marks;
    }
  
    address owner;
    int public stdCount = 0;
    mapping(int => Student) public stdRecords;
  
    modifier onlyOwner
    {
        require(owner == msg.sender);
        _;
    }
    constructor()
    {
        owner=msg.sender;
    }
  
    // Create a function to add 
    // the new records
    function addNewRecords(int _ID, 
                           string memory _fName,
                           string memory _lName,
                           int _marks) public onlyOwner
    {
        // Increase the count by 1
        stdCount = stdCount + 1;
  
        // Fetch the student details 
        // with the help of stdCount
        stdRecords[stdCount] = Student(_ID, _fName, 
                                       _lName, _marks);
    }
  
    // Create a function to add bonus marks 
    function bonusMarks(int _bonus) public onlyOwner
    {
         stdRecords[stdCount].marks = 
                    stdRecords[stdCount].marks + _bonus;
    }
}

Шаг 4: После создания контракта скомпилируйте его. Выберите версию компилятора перед нажатием кнопки Compile.

Шаг 5. После успешной компиляции для развертывания контракта выберите виртуальную машину JavaScript среды (Берлин), прежде чем нажать кнопку «Развернуть».

Шаг 6: Если контракт успешно развернут, будет получен развернутый контракт. Откройте развернутый контракт, добавьте данные учащегося и выполните его.

Шаг 7: Добавьте бонусные оценки, если вы хотите дать их ученику, и проведите операцию после этого, нажав на stdCount. Можно просмотреть сведения об ученике после вызова stdRecords, введя stdCount.

РЕКОМЕНДУЕМЫЕ СТАТЬИ