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

    +159

    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
    //Перевод в 2/10 систему
    BOOL
    CChannel::DecTo2Dec(UCHAR Dec,
    					CHAR *Dec2)
    {
    	TCHAR digitstring[10] = {0};
    	INT	Hi = 0;
    	INT	Lo = 0;
    
    	_stprintf_s(digitstring,TEXT("%d"),Dec);
    	INT digitstringLen = _tcslen(digitstring);
    	Lo = _ttoi(digitstring + 1);
    	*(digitstring + 1) = 0;
    	Hi = _ttoi(digitstring);
    	
    	if(digitstringLen>1)
    	{
    		*Dec2 = Lo + Hi * 0x10;
    	}
    	else
    		*Dec2 = Hi;
    	return TRUE;
    }

    Перевод в BCD через строку!

    azote, 27 Января 2012

    Комментарии (5)
  2. C++ / Говнокод #9238

    +1000

    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
    class set_ftp: public QObject
    {
    public:
        typedef class impl_set_ftp: QObject
        {
            QString url     ;
            QString login   ;
            QString password;
            QString siis    ;
            QString ssm     ;
            QString ssl     ;
            QString url_siis;
            QString url_ssm ;
            QString url_ssl ;
    
            friend class set_ftp;
            impl_set_ftp(QObject* p): QObject(p) {}
        } Impl;
    
        inline QString& url     () const {return impl->url     ;}
        inline QString& login   () const {return impl->login   ;}
        inline QString& password() const {return impl->password;}
        inline QString& siis    () const {return impl->siis    ;}
        inline QString& ssm     () const {return impl->ssm     ;}
        inline QString& ssl     () const {return impl->ssl     ;}
        inline QString& url_siis() const {return impl->url_siis;}
        inline QString& url_ssm () const {return impl->url_ssm ;}
        inline QString& url_ssl () const {return impl->url_ssl ;}
    
        inline void set_url     (const QString& _url     ) {impl->url      = _url     ;}
        inline void set_login   (const QString& _login   ) {impl->login    = _login   ;}
        inline void set_password(const QString& _password) {impl->password = _password;}
        inline void set_siis    (const QString& _siis    ) {impl->siis     = _siis    ;}
        inline void set_ssm     (const QString& _ssm     ) {impl->ssm      = _ssm     ;}
        inline void set_ssl     (const QString& _ssl     ) {impl->ssl      = _ssl     ;}
        inline void set_url_siis(const QString& _url_siis) {impl->url_siis = _url_siis;}
        inline void set_url_ssm (const QString& _url_ssm ) {impl->url_ssm  = _url_ssm ;}
        inline void set_url_ssl (const QString& _url_ssl ) {impl->url_ssl  = _url_ssl ;}
    
        set_ftp()          : QObject(0), impl(new Impl(this)) {}
        set_ftp(QObject* p): QObject(p), impl(new Impl(this)) {}
    private:
        Impl* impl;
    };

    Код написанный человеком, считающим себя "гуру разработки программирования", а так же "активным научным деятелем".
    Главная мысль глядя на это у меня - охренное тестовое задание с вопросом - укажите абсолютно все бредни в этом коде, но разумеется в более нормальной формулировке... а чО - неплохой тест...
    з.ы. этот же человек никогда не пишет cpp файлы все в хедерах собачит....

    LuCiFer, 27 Января 2012

    Комментарии (10)
  3. C++ / Говнокод #9223

    +148

    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
    #include <iostream.h>
    
    typedef short *(*bar2)(double);
    
    typedef char *(*bar3)();
    
    typedef long long int **(* bar5)();
    
    typedef bar5 (** bar4)(bar3);
    typedef bar4 (** bar1)(bar2);
    
    
    typedef long long int *(*(*(*(*(**bar0)(short *(*)(double ))))(char *(*)()))());
    
    
    long long int ** func5()
    {
    	static long long int  A = 42;
    	static long long int* B = &A;
    	return &B;
    }
    
    char* func3()
    {
    	return new char;
    }
    
    bar5 func4(bar3 A)
    {
    	return &func5;
    }
    
    short* fun2(double A)
    {
    	return new short;
    };
    
    bar4 fun1(bar2 A){
    	static void* p = &func4;
    	return (bar4)&p;
    }
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
    	void* p = &fun1;
    
    	bar0 foo0 = (bar1)&p;
    	bar1 foo1 = (bar1)&p;
    
    	long long int ** pr1 = (*(*(*foo1)(&fun2))(&func3))();
    	long long int ** pr0 = (*(*(*foo0)(&fun2))(&func3))();
    
    	std::cout<<**pr1<<std::endl;
    	std::cout<<**pr0<<std::endl;
    	std::cin.get();
    
    	return 0;
    }

    разбирался с указателями на функции

    sanchousf, 25 Января 2012

    Комментарии (8)
  4. C++ / Говнокод #9219

    +130

    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
    BOOL CMarkup::Search(CString OprName, CString strSQL, short nType)
    {
    
    ...
    	
    	sCommandLine = sPath.Left(nPos)+ _T("\\Getorder.exe search ")+OprName+_T(" ")+strSQL+_T(" ")+strType;
    	::wcscpy(cCommandLine, sCommandLine);
    
    	BOOL ret = CreateProcess(NULL, cCommandLine, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
    	if (ret) {
    		CloseHandle(pi.hThread );						//Close the thread handle as soon as it is no longer needed.
    		WaitForSingleObject(pi.hProcess, INFINITE);		//Suspend our execution until the child has terminated.
    		GetExitCodeProcess(pi.hProcess ,&dwExitCode);	//The child process terminated;get its exit code.
    		//if(dwExitCode == STILL_ACTIVE) TerminateProcess(pi.hProcess, 0);
    		CloseHandle(pi.hProcess);						//Close the process handle as soon as it is no longer needed.
    	}
    
    	CString ss,s;
    	ss = _T("s.txt");
    
    	CStdioFile in;
    	if(!in.Open (sPath+_T("\\")+ss,CFile::modeRead | CFile::typeBinary))
    		return TRUE;
    
    	while(in.ReadString(s))
    	{
    		s.TrimLeft();
    		s.TrimRight();
    		if(s != _T("**********")) continue;
    
    		ORDERTYPE m_OrderData;
    
    		in.ReadString(s);
    		s.TrimLeft();
    		s.TrimRight();
    		m_OrderData.OprName = s;
    
    		in.ReadString(s);
    		s.TrimLeft();
    		s.TrimRight();
    		m_OrderData.Language =s;
    
    		in.ReadString(s);
    		s.TrimLeft();
    		s.TrimRight();
    		m_OrderData.OrderNo =s;
    
    ...
    
    	}
    
    	in.Close();
    	DeleteFile(sPath+_T("\\")+ss);

    Прислали исходники приложения на C++ с MFC. Там просто один сплошной ГК от начала и до конца, но это место просто убило.

    Задача - найти заказ в базе данных MSSQL по SQL-запросу. Для этого они запускают отдельное приложение .NET, которое подключается к базе и дампит запись в текстовый файл, а приложение C++ из него читает.

    someone, 25 Января 2012

    Комментарии (13)
  5. C++ / Говнокод #9190

    +141

    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
    #include <iostream>
    using namespace std;
    int main()
    {
      for (int i=1; i<=5;i++)
      {
          for (int i2=1;i2<=5;i2++)
          {
              //Левый и правый фланг
              if ((i2==1) || (i2==5)) { cout << "+";}
              //Верхний и нижний
              if ((i==1) || (i==5))
              {cout << "+";} else {cout << "-";}
    
          }
          cout << "\n";
      }
      return 0;
    }

    По идее, программа должна генерировать сетку вида "Квадрат", где "+" покраям, а в середине "-".
    Есть рабочий вариант

    #include <iostream>
    using namespace std;
    int main()
    {
    for (int i=1; i<=5;i++)
    {
    for (int i2=1;i2<=5;i2++)
    {
    //Левый фланг
    if ((i2==1)) { cout << "+";}
    //Верхний и нижний
    if ((i==1) || (i==5)) {cout << "+";} else {cout << "-";}
    //Правый фланг
    if (i2==5) {cout << "+";}

    }
    cout << "\n";
    }
    return 0;
    }
    Но он не подходит, так как в самом квадрате будут генерировать опр. структуры.

    Splice, 21 Января 2012

    Комментарии (6)
  6. C++ / Говнокод #9183

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int MyNewClass::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
    {
        _id = QWidget::qt_metacall(_c, _id, _a);
        if (_id < 0)
            return _id;
        return _id;
    }

    Из Qt 4.8.0, генерится сие чудо и находится в файле moc_ИмяВашегоКласса.

    Glaciuse, 20 Января 2012

    Комментарии (7)
  7. C++ / Говнокод #9173

    +159

    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
    QSqlQueryModel model,model1,model2;
    ...
    model2.setQuery("SELECT * FROM cardInfoChange");
    while(model2.canFetchMore())
        model2.fetchMore();
    ...
     for(int i = 0; i < model2.rowCount(); i++)
            {
                QString t =  model2.record(i).value(1).toString().toUtf8()+
                        ";"+model2.record(i).value(2).toString().toUtf8()+";"+model2.record(i).value(3).toString().toUtf8()+
                        ";"+model2.record(i).value(4).toString().toUtf8()+
                        ";"+model2.record(i).value(5).toString().toUtf8()+
                        ";"+model2.record(i).value(6).toString().toUtf8()+
                        ";"+model2.record(i).value(7).toString().toUtf8()+
                        ";"+model2.record(i).value(8).toString().toUtf8()+
                        ";"+model2.record(i).value(9).toString().toUtf8()+
                        ";"+model2.record(i).value(10).toString().toUtf8()+
                        ";"+model2.record(i).value(11).toString().toUtf8()+
                        ";"+model2.record(i).value(12).toString().toUtf8()+
                        ";"+model2.record(i).value(13).toString().toUtf8()+
                        ";"+model2.record(i).value(14).toString().toUtf8()+
                        ";"+model2.record(i).value(15).toString().toUtf8()+
                        ";\n";
                f.write( t.toAscii());
            }

    Продолжаем стрелять по воробьям из пушки.

    Особое внимание на строки 4 и 5 так как QSqlQueryModel предназначена для вывода отображения в QTableView она не загружает все данные сразу а делает это постепенно.

    Ну и напоследок шедевральный способ записи полученных данных в файл.

    ir4y, 19 Января 2012

    Комментарии (9)
  8. C++ / Говнокод #9165

    +1001

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    bool IsDigit(char cKey, const char *cKeys) {
    	for (int i = 0; i < strlen(cKeys); i++)
    		if (cKeys[i] == cKey)
    			return true;
    	return false;
    }

    FalseCoder, 18 Января 2012

    Комментарии (89)
  9. C++ / Говнокод #9157

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class beer
        {public: beer(){beer::in();}
         private: void in();void chek(int);void out(int);};
    main(){beer yeeah;}
    void beer::in()
        {int N;std::cout << "Input N: ";std::cin>>N;int mValue[N];
         for(int i=0;i<N;i++){std::cout << "Input ["<<i+1<<"] = ";std::cin>>mValue[i];}
         for(int i=0;i<N;i++){beer::chek(mValue[i]);};}
    void beer::chek(int Value){for(int i=2;i<Value;i++){if(Value%i==0){return;};};beer::out(Value);}
    void beer::out(int Value){std::cout<<Value<<std::endl;}

    Задачка на 45-50 баллов(по 50 бальной шкале), 2 курс технического ВУЗа

    KesrOne, 18 Января 2012

    Комментарии (2)
  10. C++ / Говнокод #9153

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    string Delimiter(string Text, int Index, const char* Delimiter) {
    	int n = 0, find = 0;
    	for (int i = 0; i <= Index; i++) {
    		find = Text.find(Delimiter, n);
    		if (i == Index) {  
    			return Text.substr(n, find - n);
    		}
    		n = find + 1;
    	}
    	return "";
    }

    FalseCoder, 17 Января 2012

    Комментарии (6)