Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2013, 17:34   #1
V_I_P
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 19
По умолчанию Помогите исправить ошибки

class1.h
Код:
#pragma once
class class1
{
public:
	class1(void);
	~class1(void);
	char* code_atbash(char* src);
	char* decode_atbash(char* src);
};


class1.cpp*
Код:
#include "stdafx.h"
#include "class1.h"
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#define  CODE_ATBASH       "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define  DECODE_ATBASH    "ZYXWVUTSRQPONMLKJIHGFEDCBA"
using namespace std;
class1::class1(void)
{
	int coding();
	{
		char* code_atbash(char* src)
		{	
   char* dst = src;
   const char* cch, *dch;
 
   while( *src ) {
        if(isalpha(*src)) {
                  for(dch = DECODE_ATBASH, cch = CODE_ATBASH; *cch; *cch++, *dch++) {
                       if( *cch == toupper(*src) ) {
                            *src = (isupper(*src)) ?  *dch : tolower(*dch);
                             break;
                       }
                  }
         }
         *src++;
   }
   return dst;
	}

}
	
	int decoding();
}


class1::~class1(void)
{
	char* decode_atbash(char* src) {
   char* dst = src;
   const char* cch, *dch;
 
   while( *src ) {
         if(isalpha(*src)) {
               for(dch = DECODE_ATBASH, cch = CODE_ATBASH; *cch; *cch++, *dch++) {
                    if( *dch == toupper(*src) ) {
                          *src = (isupper(*src)) ?  *cch : tolower(*cch);
                            break;
                     }
                }
         }
         *src++;
   }
   return dst;
}
 
}


Лаба3_1.cpp
Код:
#include "stdafx.h" 
//#include "Cryptosystem.h"
#include "class1.h"
#include <iostream>
 void code( const char* text, char* newtext)
{
  do {
     if ( *text > 64 && *text < 91) *newtext = 155 - *text;
     else if ( *text > 96 && *text < 123) *newtext = 219 - *text;
     else *newtext = *text;
  } while ( newtext++, *text++);
  *newtext =0;
}
 
int main() {
   setlocale( LC_ALL, "Rus");
   char s1[100], s2[100];
   std::cout << "Введите исходную строку: ";
   std::cin >> s1;
   code( s1, s2);
   std::cout << "Закодированная/раскодированная строка: " << s2 << std::endl;
   return 0;
}


Цитата:
Помогите исправить ошибки и просмотрите плиз правильно ли я написал программу.
Ошибка 1 error C2601: code_atbash: недопустимые локальные определения функций c:\users\вова\desktop\ооп 3 лаба\лаба3_1\лаба3_1\class1.cpp 15
Ошибка 2 error C2601: decode_atbash: недопустимые локальные определения функций c:\users\вова\desktop\ооп 3 лаба\лаба3_1\лаба3_1\class1.cpp 41
3 IntelliSense: требуется точка с запятой ";" c:\Users\Вова\Desktop\ООП 3 Лаба\Лаба3_1\Лаба3_1\class1.cpp 15
4 IntelliSense: требуется точка с запятой ";" c:\Users\Вова\Desktop\ООП 3 Лаба\Лаба3_1\Лаба3_1\class1.cpp 41
Вот задание.
Создать класс «Симметричная криптосистема», выполняющий кодирование/декодирование текстовой информации. Алгоритмы шифрования выбираются согласно варианту (табл. 1). В классе «Симметричная криптосистема» обязательно должны быть реализованы методы «Шифрование» и «Дешифрование», в явном виде определены конструктор и деструктор.
Метод Атбаш

Последний раз редактировалось Stilet; 19.11.2013 в 17:44.
V_I_P вне форума Ответить с цитированием
Старый 19.11.2013, 19:09   #2
nikmoon
Форумчанин
 
Регистрация: 13.11.2013
Сообщений: 149
По умолчанию

Тебе компилятор на чистом русском языке написал, что локальные функции ему ну очень не нравятся, прям ну очень! На твоем месте я бы сделал как просит компилятор.
nikmoon вне форума Ответить с цитированием
Старый 19.11.2013, 20:13   #3
V_I_P
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 19
По умолчанию

я не понимаю этого
V_I_P вне форума Ответить с цитированием
Старый 19.11.2013, 20:17   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
int coding();
{
Это что? Тут действительно нужна {
?

Ты похоже описал функцию в функции (да еще и не правильно)
char* code_atbash(char* src) вынеси за пределы coding(), это тебе не паскаль.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2013, 20:44   #5
nikmoon
Форумчанин
 
Регистрация: 13.11.2013
Сообщений: 149
По умолчанию

Вот именно, это не паскаль
Функции только глобальные.
nikmoon вне форума Ответить с цитированием
Старый 19.11.2013, 22:17   #6
V_I_P
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 19
По умолчанию

А можете исправить программу?
V_I_P вне форума Ответить с цитированием
Старый 20.11.2013, 06:07   #7
nikmoon
Форумчанин
 
Регистрация: 13.11.2013
Сообщений: 149
По умолчанию

Легко.
Удали файлы class1.h и class1.cpp и будет тебе счастье.
Один фиг свой кривой класс ты нигде в программе не используешь.
Сюда ходи: Литература по C++
nikmoon вне форума Ответить с цитированием
Старый 20.11.2013, 12:09   #8
V_I_P
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 19
По умолчанию

а заем удалять если мне с ними надо
V_I_P вне форума Ответить с цитированием
Старый 20.11.2013, 12:43   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
#include "stdafx.h" 
#include <iostream>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#define  CODE_ATBASH       "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define  DECODE_ATBASH    "ZYXWVUTSRQPONMLKJIHGFEDCBA"

class class1
{
public:
	class1(void);
	~class1(void);

		char* code_atbash(char* src)
		{	
   char* dst = src;
   const char* cch, *dch;
 
   while( *src ) {
        if(isalpha(*src)) {
                  for(dch = DECODE_ATBASH, cch = CODE_ATBASH; *cch; *cch++, *dch++) {
                       if( *cch == toupper(*src) ) {
                            *src = (isupper(*src)) ?  *dch : tolower(*dch);
                             break;
                       }
                  }
         }
         *src++;
   }
   return dst;
	}


char* decode_atbash(char* src) {
   char* dst = src;
   const char* cch, *dch;
 
   while( *src ) {
         if(isalpha(*src)) {
               for(dch = DECODE_ATBASH, cch = CODE_ATBASH; *cch; *cch++, *dch++) {
                    if( *dch == toupper(*src) ) {
                          *src = (isupper(*src)) ?  *cch : tolower(*cch);
                            break;
                     }
                }
         }
         *src++;
   }
   return dst;
}
}

};


 void code( const char* text, char* newtext)
{
  do {
     if ( *text > 64 && *text < 91) *newtext = 155 - *text;
     else if ( *text > 96 && *text < 123) *newtext = 219 - *text;
     else *newtext = *text;
  } while ( newtext++, *text++);
  *newtext =0;
}
 
int main() {
   setlocale( LC_ALL, "Rus");
   char s1[100], s2[100],*s3="1234567890";
   std::cout << "Введите исходную строку: ";
   std::cin >> s1;
   code( s1, s2);
   std::cout << "Закодированная/раскодированная строка: " << s2 << std::endl;

class1 c;
s3=c.code_atbash(&s3);
   std::cout << "Закодированная: " << *s3 << std::endl;
s3=c.decode_atbash(&s3);
   std::cout << Раскодированная: " << *s3 << std::endl;
   return 0;
}
Это с потолка.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2013, 17:40   #10
V_I_P
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 19
По умолчанию

ЭТО ПОЛНАЯ ПРОГА?
V_I_P вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки Vania96 Паскаль, Turbo Pascal, PascalABC.NET 7 14.11.2013 23:11
Помогите исправить ошибки Каталина Visual C++ 8 22.10.2013 12:55
Помогите исправить ошибки kristi5570 Помощь студентам 0 08.10.2013 22:08
помогите исправить ошибки Euforia_PZAS09_1 Паскаль, Turbo Pascal, PascalABC.NET 0 19.10.2009 21:41
Помогите исправить ошибки Satorin Общие вопросы Delphi 4 25.12.2008 21:35