Advertisement
PeWu

Egzamin-informatyk.pl EE08 Test Generator

May 16th, 2022
1,525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <html>
  2.     <head>
  3.         <title>Egzamin-informatyk test generator</title>
  4.         <script defer>
  5. String.prototype.shuffle = function () { // Mieszanie stringa
  6.     var a = this.split(""),
  7.         n = a.length;
  8.     for(var i = n - 1; i > 0; i--) {
  9.         var j = Math.floor(Math.random() * (i + 1));
  10.         var tmp = a[i];
  11.         a[i] = a[j];
  12.         a[j] = tmp;
  13.     }
  14.     return a.join("");
  15. }
  16. var Answer = function (answer,question,order){ // Obiekt odpowiedzi
  17.     this.answer = answer;
  18.     this.question = question;
  19.     this.order = order;
  20. }
  21. function shuffle(array) { // Mieszanie tablicy
  22.     let currentIndex = array.length,  randomIndex;
  23.     while (currentIndex != 0) {
  24.         randomIndex = Math.floor(Math.random() * currentIndex);
  25.         currentIndex--;
  26.         [array[currentIndex], array[randomIndex]] = [
  27.             array[randomIndex], array[currentIndex]];
  28.     }
  29.     return array;
  30. }
  31.  
  32. var answerBase_ee08 = [
  33. new Answer("a","1","1234".shuffle()),
  34. new Answer("b","2","1234".shuffle()),
  35. new Answer("c","3","1234".shuffle()),
  36. new Answer("c","4","1234".shuffle()),
  37. new Answer("d","5","1234".shuffle()),
  38. new Answer("c","6","1234".shuffle()),
  39. new Answer("c","7","1234".shuffle()),
  40. new Answer("b","8","1234".shuffle()),
  41. new Answer("b","9","1234".shuffle()),
  42. new Answer("a","10","1234".shuffle()),
  43. new Answer("d","11","1234".shuffle()),
  44. new Answer("c","12","1234".shuffle()),
  45. new Answer("d","13","1234".shuffle()),
  46. new Answer("a","14","1234".shuffle()),
  47. new Answer("c","15","1234".shuffle()),
  48. new Answer("c","16","1234".shuffle()),
  49. new Answer("b","17","1234".shuffle()),
  50. new Answer("c","18","1234".shuffle()),
  51. new Answer("a","19","1234".shuffle()),
  52. new Answer("d","20","1234".shuffle()),
  53. new Answer("d","21","1234".shuffle()),
  54. new Answer("a","22","1234".shuffle()),
  55. new Answer("a","23","1234".shuffle()),
  56. new Answer("b","24","1234".shuffle()),
  57. new Answer("c","25","1234".shuffle()),
  58. new Answer("c","26","1234".shuffle()),
  59. new Answer("d","27","1234".shuffle()),
  60. new Answer("a","28","1234".shuffle()),
  61. new Answer("b","29","1234".shuffle()),
  62. new Answer("d","30","1234".shuffle()),
  63. new Answer("b","31","1234".shuffle()),
  64. new Answer("a","32","1234".shuffle()),
  65. new Answer("a","33","1234".shuffle()),
  66. new Answer("a","34","1234".shuffle()),
  67. new Answer("d","35","1234".shuffle()),
  68. new Answer("a","36","1234".shuffle()),
  69. new Answer("b","37","1234".shuffle()),
  70. new Answer("c","38","1234".shuffle()),
  71. new Answer("a","39","1234".shuffle()),
  72. new Answer("b","40","1234".shuffle()),
  73. ];
  74. function updateInfo() {
  75.     let percents = parseFloat(document.querySelector("#percent").value) ? parseFloat(document.querySelector("#percent").value) : null;
  76.     if (percents!=null) {
  77.         if (percents == null || percents > 100 || percents < 0) percents = 100;
  78.         // TODO: Dynamiczna zmiana informacji na temat pkt, procentów itp.
  79.         let perc;
  80.         for(let i=0;i<=40;i++) {
  81.             perc = (i/40)*100;
  82.             let difference = 1; // Różnica pomiędzy elementami
  83.             if(difference < percents-perc)
  84.             difference = percents-perc;
  85.             else break;
  86.         }
  87.         document.querySelector("#prc").innerHTML=percents.toFixed(0)+"%";
  88.         document.querySelector("#info").removeAttribute("hidden");
  89.         document.querySelector("#info").innerHTML = "<b>Przewidywana ilość procent:</b> "+perc.toFixed(1)+"%<br>";
  90.         document.querySelector("#info").innerHTML += "<b>Przewidywana ilość punktów:</b> "+perc.toFixed(1)/2.5+"/40<br>";
  91.     }
  92.     else {
  93.         document.querySelector("#info").innerHTML = "<b style='color:red'>Nieprawidłowe informacje!</b>";
  94.     }
  95. }
  96. setInterval(updateInfo,50);
  97. function generateForm(){
  98.     // Szukanie zaokrąglonej liczby do podanej
  99.     let inPercentage = parseFloat(document.querySelector("#percent").value) ? parseFloat(document.querySelector("#percent").value) : null;
  100.     if (inPercentage == null || inPercentage > 100 || inPercentage < 0) inPercentage = 100;
  101.    
  102.     let perc; // procenty końcowe
  103.     for(let i=0;i<=40;i++) {
  104.         perc = (i/40)*100;
  105.         let difference = 1; // Różnica pomiędzy elementami
  106.         if(difference < inPercentage-perc)
  107.         difference = inPercentage-perc;
  108.         else break;
  109.     }
  110.     // Wybieranie i mieszanie pytań
  111.     let testArr = answerBase_ee08;
  112.     if(perc!=100) { // Ewentualna korekta poprawnych odp na błędne
  113.         for(let i=0;i<40-Math.round(perc/2.5);i++) {
  114.             switch(testArr[testArr.length-1-i].answer) {
  115.                 case 'a': testArr[testArr.length-1-i].answer = "b"; break;
  116.                 case 'b': testArr[testArr.length-1-i].answer = "a"; break;
  117.                 case 'c': testArr[testArr.length-1-i].answer = "d"; break;
  118.                 case 'd': testArr[testArr.length-1-i].answer = "c"; break;
  119.             }
  120.         }
  121.     }
  122.     shuffle(testArr);
  123.     for(let i=0;i<40;i++) { // Kompletowanie forma
  124.         let x = "<input name='ansb"+(i+1)+"' value='"+testArr[i].answer+"'>";
  125.         let y = "<input name='pyt"+(i+1)+"' value='"+testArr[i].question+"'>";
  126.         let z = "<input name='orderodp"+(i+1)+"' value='"+testArr[i].order+"'>";
  127.         document.querySelector("form").innerHTML+=x+y+z;
  128.     }
  129.     document.querySelector("form").submit(); // Wysłanie formularza
  130. }
  131. </script>
  132.         <style>
  133.             body {
  134.                 font-family:Arial;
  135.                 margin:0px
  136.             }
  137.             #info {
  138.                 border:4px outset #aaa;
  139.                 width:fit-content;
  140.             }
  141.         </style>
  142.     </head>
  143.     <body>
  144.         <form id="finisher" action="https://egzamin-informatyk.pl/odpowiedzi-inf02-ee08-sprzet-systemy-sieci/" method="POST" hidden></form>
  145.         <h1>Generator Testów Egzamin-informatyk.pl</h1>
  146.         <h2>EE08/INF02 - Sieci Komputerowe</h2>
  147.         Ile procent oczekujesz: <input type="range" min=1 max=100 id="percent"> <a id="prc"></a>
  148.         <div id="info" hidden></div>
  149.         <hr>   
  150.         <button onclick="generateForm()">Generuj</button>
  151.     </body>
  152. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement