1. C++ / Говнокод #6348

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    //main.cpp
    #include "head.h"
    int main()
    {
    //fcii.cpp
    #include "head.h"
    void odin (vector<Zapis> &mas)
    {
    Zapis buf;
    cout<<"Введите номер УДК: ";
    cin>>buf.id;
    cout<<"Введите фамилию и инициалы автора: ";
    cin>>buf.fio;
    cout<<"Введите название книги: ";
    cin>>buf.nazv;
    cout<<"Введите год издания: ";
    cin>>buf.god;
    cout<<"Введите количество экземпляров: ";
    cin>>buf.kol;
    mas.resize(mas.size()+1,buf);
    vivod (mas);
    }
    void dva (vector<Zapis> &mas)
    {
    char udk[4];
    cout<<"Введите УДК книги, которую необходимо удалить: ";
    cin>>udk;
    int flag=1;
    int k=0;
    for (vector<Zapis>::iterator i=mas.begin();i!=mas.end();i++)
    {
    flag=1;
    if (strlen(udk)==strlen(mas[k].id))
    for (int j=0;udk[j]!=0;j++)
    if (udk[j]!=mas[k].id[j])
    flag=0;
    if (flag==1)
    {
    mas.erase(i);
    flag=-1;
    break;
    }
    k++;
    }
    
    if (flag!=-1)
    {
    cout<<endl<<"Книги с данным УДК не существует"<<endl;
    }
    else vivod(mas);
    }
    void tri(vector<Zapis> &mas)
    {
    vector<int> mas_buf(mas.size());
    for (int i=0;i<mas.size();i++)
    mas_buf[i]=mas[i].god;
    sort(mas_buf.begin(),mas_buf.end()) ;
    for (int i=0;i<mas.size();i++)
    mas[i].god=mas_buf[i];
    vivod(mas);
    }
    int zapros (vector<Zapis> &mas)
    {
    int otvet;
    cout<<endl<<"Если вы хотите добавить данные о книгах - нажмите 1;"<<endl;
    cout<<"Если вы хотите удалить данные о списываемых книгах - нажмите 2;"<<endl;
    cout<<"Если вы хотите упорядочить книги по годам издания - нажмите 3;"<<endl;
    cout<<"Если вы хотите завершить работу программы - нажмите 0."<<endl;
    cin>>otvet;
    
    switch (otvet)
    {
    case 0: {return 0;}
    case 1: {
    odin(mas);
    zapros(mas);break;
    }

    Взято отсюда: http://programmersforum.ru/forumdisplay.php?f=14

    Запостил: elenbert, 14 Апреля 2011

    Комментарии (14) RSS

    • наверное, в каком-нибудь НИИ писали.
      классический совок-стайл: имена переменных транслитом (знание английского хромает), тотальная экономия пробелов и феерический пиздец с выравниванием. нехватает ещё дополнительных переменных ii, jj, kk, iii, jjj, ... =)
      Ответить
      • обычная лаба
        Ответить
      • Не видел ты НИИ-код!
        Мне принесли турбопасовскую программу и сказали, чтобы я заставил её работать. Я вставил директву консоли, обработку исключения (чтоб знать, почему падает) и readln в конце, и отдал это как есть, ибо ковыряться дальше не хотелось. Всё остальное я через неделю переписал нафиг, сделал удобную оконную программу.
        Вот фрагмент:
        GOTO 100;
        100: N1:=N-1;FOR K:=1 TO N1 DO BEGIN
          IF ABS(A[K,K])>0 THEN GOTO 200;K1:=K+1;
          FOR M:=K1 TO N DO BEGIN
          IF ABS(A[M,K])>0 THEN GOTO 150;GOTO 165;
        150: FOR L:=1 TO N DO BEGIN;V:=A[K,L];A[K,L]:=A[M,L];
          A[M,L]:=V;END;165:END;V:=B[K];B[K]:=B[M];B[M]:=V;
        200: G[K]:=B[K]/A[K,K];K1:=K+1;
          FOR I:=K1 TO N DO BEGIN B[i]:=B[i]-A[I,K]*G[K];
          FOR J1:=K TO N DO BEGIN J:=N-J1+K;C[K,J]:=A[K,J]/A[K,K];
          A[I,J]:=A[I,J]-A[I,K]*C[K,J];END;END;END;
          M:=N;X[M]:=B[M]/A[M,M];
        250: M:=M-1;S:=0; FOR L:=M TO N1 DO BEGIN
          S:=S+C[M,L+1]*X[L+1];END;
          X[M]:=G[M]-S;IF M>1 THEN GOTO 250;{WRITELN('     ЉЋќ””€–€…Ќ’› ЏЋ‹€ЌЋЊЂ')};
        Ответить
    • odinodin!!!!11
      Ответить
    • |odin Zapis dva vivod tri zapros otvet
      1С такой 1С
      Ответить
    • Одна голова хорошо, а две лучше?
      Ответить
    • int zapros (vector<Zapis> &mas)
      {
      ...
      switch (otvet)
      {
      ...
      zapros(mas);break;
      }


      Сурово :)
      Ответить

    Добавить комментарий