Advertisement
GeorgePashev_88

Web3 and Crypto Full Stack - Solidity Code

Dec 15th, 2023
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.87 KB | None | 0 0
  1. pragma solidity >=0.7.0 <0.9.0;
  2.  
  3. /**
  4. * @title Ballot
  5. * @dev Implements voting process along with vote delegation
  6. */
  7. contract Student {
  8. string public facNum;
  9. string public firstName;
  10. string public lastName;
  11. string public age;
  12. constructor( string memory _facNum, string memory _firstName, string memory _lastName, string memory _age){
  13. facNum = _facNum;
  14. firstName = _firstName;
  15. lastName = _lastName;
  16. age = _age;
  17.  
  18.  
  19. }
  20.  
  21. function getFirstName() public view returns( string memory _firstName){
  22. _firstName = firstName;
  23. }
  24. function getLastName() public view returns(string memory _lastName){
  25. _lastName = lastName;
  26. }
  27. function getAge() public view returns(string memory _age){
  28. _age = age;
  29.  
  30. }
  31. function getFacNum() public view returns(string memory _facNum){
  32. _facNum = facNum;
  33. }
  34.  
  35. }
  36.  
  37. contract Studenti {
  38. mapping (string => Student) public students;
  39. string[] public facNums;
  40. uint public num ;
  41.  
  42. constructor(){
  43. facNums = new string[](100);
  44. num = 0;
  45.  
  46. }
  47.  
  48. function addStudent(string memory _facNum, string memory _firstName, string memory _lastName, string memory _age) public {
  49.  
  50. Student s = new Student(_facNum, _firstName, _lastName, _age);
  51. students[_facNum] = s;
  52. //facNums.push(_facNum);
  53. facNums[num] = _facNum;
  54. num = num + 1;
  55. }
  56. function concat(string memory s1, string memory s2) public pure returns (string memory) {
  57. return string(abi.encodePacked(s1, s2));
  58. }
  59.  
  60. function concatenate(string memory s1, string memory s2, string memory s3, string memory s4, string memory s5, string memory s6, string memory s7, string memory s8, string memory s9) public pure returns (string memory res) {
  61. res = concat(s1, s2);
  62. res = concat(res, s3);
  63. res =concat(res, s4);
  64. res =concat(res, s5);
  65. res = concat(res, s6);
  66. res = concat(res, s7);
  67. res = concat(res, s8);
  68. res = concat(res, s9);
  69. return res;
  70. }
  71.  
  72.  
  73.  
  74.  
  75. function getStudentsJSON() public view returns (string memory jsonArray){
  76. jsonArray = concat(jsonArray , "[");
  77. for(uint i=0; i< num; i++){
  78. //jsonArray = concat(jsonArray, (students[facNums[i]].getFirstName()));
  79.  
  80. string memory jsonArray1 = concatenate( "{\"firstName\" : \"", students[facNums[i]].getFirstName(), "\", \"lastName\": \"", students[facNums[i]].getLastName(), "\", \"age\": \"", string(students[facNums[i]].getAge()), "\", \"facNum\": \"", students[facNums[i]].getFacNum(), "\"} ") ;
  81. jsonArray = concat(jsonArray, jsonArray1);
  82. if(i<num - 1){
  83. jsonArray = concat(jsonArray , ", ");
  84.  
  85. }
  86. }
  87. jsonArray = concat(jsonArray , "]");
  88. return jsonArray;
  89. }
  90.  
  91. function getStudentByFacNum(string memory facNum) public view returns (string memory firstName, string memory lastName){
  92.  
  93. return (students[facNum].getFirstName(), students[facNum].getLastName());
  94.  
  95. }
  96.  
  97. function getStudents() public view returns (string memory studenti){
  98. studenti = "";
  99.  
  100. for(uint i=0; i< num; i++){
  101. studenti=concat(studenti,
  102. concat(
  103. concat(students[facNums[i]].getFirstName(), " "), students[facNums[i]].getLastName()
  104. )
  105. );
  106.  
  107. }
  108. return studenti;
  109.  
  110. }
  111.  
  112. function getFacNums() public view returns(string[] memory _facNums, uint _num){
  113. _facNums = new string[](num);
  114. for(uint i=0; i<num; i++){
  115. _facNums[i] = facNums[i];
  116. }
  117. _num = num;
  118. return (_facNums, _num);
  119. }
  120.  
  121.  
  122.  
  123.  
  124.  
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement