Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Вывод даты по японскому колендарю, не могу разобраться, почему не работает! 
:(
    Опции темы
mobi_vic
Дата 6.6.2007, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



здраствуйте все!
у меня возникла проблема с курсовой работой, не получаеться, и все.. :((
я то ее сделал без функций, но преподователь сказала, что надо обьязательно с функциями, помогите кто может плиз...

задание: написать программу, которая при введении любого номера года нашей эры, и выводит его название за старым японским календарем. Окончание названий циклов, и подциклов подать в родительном падеже. Сделать понятный интерфейс.
для справки: в старом японском календаре был принят 60-летний цикл, который состоял из пяти 12-летних циклов. подциклы обозначались названиями цветов: зеленый, красный, желтый, белый, и черный. В средине каждого подцикла года носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи.
(Например: 1984 год - год зеленой крысы, был началом красного цикла.)

программа без функций:
Код
 #include<stdio.h>
 #include<conio.h>
 #include<math.h>
 void main (){
 clrscr();
 int rik, x, y, z,menu;
 menu=-1;
 while (menu!=0) {
 printf ("*****************************************\n");
 printf ("*      MENU:                         * \n*                                       *\n");
 printf ("*     1. Vvedit' rik dlya poshuku    *  \n");
 printf ("*     0. vuhid                       *\n");
 printf ("*****************************************");
 printf ("\n\n     zrobit' vybir:");
 scanf ("%d",&menu);
 if (menu==1) {
 clrscr ();
 printf ("vvedit rik dlya poshuku v kalendari: ");
 scanf ("%d", &rik);
 printf ("rik %d - rik ", rik);
 x=rik % 12;
 if (x==0){ printf ("mavpy, ");};
 if (x==1){ printf ("kurky, ");};
 if (x==2){ printf ("ssvuni, ");};
 if (x==3){ printf ("sobaky, ");};
 if (x==4){ printf ("shura, ");};
 if (x==5){ printf ("korovy, ");};
 if (x==6){ printf ("tygra, ");};
 if (x==7){ printf ("zajcya, ");};
 if (x==8){ printf ("drakona, ");};
 if (x==9){ printf ("zmiji, ");};
 if (x==10){ printf ("konya, ");};
 if (x==11){ printf ("vivci, ");};
 y=rik / 12;
 z=y%5;
 if (z==0){ printf ("chornogo ciklu\n");};
 if (z==1){ printf ("zelenogo ciklu\n");};
 if (z==2){ printf ("chervonogo ciklu\n");};
 if (z==3){ printf ("zhovtogo ciklu\n");};
 if (z==4){ printf ("bilogo ciklu\n");}; }
 getch ();
 clrscr();
 if (menu==0) { printf ("\n\n         this programm made by solnishko.\n    \n     press any key to Exit."); getch (); break;}}
 }

вот програмка:
скачать в формате  срр


это - с функциями, тока почему-то не работает :((
Код
 #include<stdio.h>
 #include<conio.h>
 #include<math.h>
 int rik;
 void menu ();
 void roku ();
 void main (){
 clrscr();
 void menu ();
 }

void menu () {
int menu=-1;
 while (menu!=0) {
 printf ("*****************************************\n");
 printf ("*      MENU:                         * \n*                                       *\n");
 printf ("*     1. Vvedit' rik dlya poshuku    *  \n");
 printf ("*     0. vuhid                       *\n");
 printf ("*****************************************");
 printf ("\n\n     zrobit' vybir:");
 scanf ("%d",&menu);
 if (menu==1) {
 clrscr ();
 printf ("vvedit rik dlya poshuku v kalendari: ");
 scanf ("%d", &rik);
 printf ("rik %d - rik ", rik);
 if (menu==0) { printf ("\n\n         this programm made by solnishko.\n    \n     press any key to Exit."); getch (); break;}}
 void roku ();
 return;
 }


void roku (int rik) {
int x,y,z;
 x=rik % 12;
 if (x==0){ printf ("mavpy, ");};
 if (x==1){ printf ("kurky, ");};
 if (x==2){ printf ("ssvuni, ");};
 if (x==3){ printf ("sobaky, ");};
 if (x==4){ printf ("shura, ");};
 if (x==5){ printf ("korovy, ");};
 if (x==6){ printf ("tygra, ");};
 if (x==7){ printf ("zajcya, ");};
 if (x==8){ printf ("drakona, ");};
 if (x==9){ printf ("zmiji, ");};
 if (x==10){ printf ("konya, ");};
 if (x==11){ printf ("vivci, ");};
 y=rik / 12;
 z=y%5;
 if (z==0){ printf ("chornogo ciklu\n");};
 if (z==1){ printf ("zelenogo ciklu\n");};
 if (z==2){ printf ("chervonogo ciklu\n");};
 if (z==3){ printf ("zhovtogo ciklu\n");};
 if (z==4){ printf ("bilogo ciklu\n");}; }
 getch ();
 return;
 }


вот програмка:
скачать в формате  срр


и последний вариант, который тоже не работает :(((:
Код
 #include<stdio.h>
 #include<conio.h>
 #include<math.h>
 int rik;
 void menu ();
 void roku ();

 void main (){
 clrscr();
 menu ();
 roku ();
 getch ();
 }

void menu () {
int menu=-1;
 while (menu!=0) {
 printf ("*****************************************\n");
 printf ("*      MENU:                         * \n*                                       *\n");
 printf ("*     1. Vvedit' rik dlya poshuku    *  \n");
 printf ("*     0. vuhid                       *\n");
 printf ("*****************************************");
 printf ("\n\n     zrobit' vybir:");
 scanf ("%d",&menu);
 if (menu==1) {
 clrscr ();
 printf ("vvedit rik dlya poshuku v kalendari: ");
 scanf ("%d", &rik);
 printf ("rik %d - rik ", rik);
 if (menu==0) { printf ("\n\n         this programm made by victor krushanovskij.\n    \n     press any key to Exit."); getch (); break;}}
 void roku ();
 return;
 }


void roki () {
int x,y,z;

 x=rik % 12;
 if (x==0){ printf ("mavpy, ");};
 if (x==1){ printf ("kurky, ");};
 if (x==2){ printf ("ssvuni, ");};
 if (x==3){ printf ("sobaky, ");};
 if (x==4){ printf ("shura, ");};
 if (x==5){ printf ("korovy, ");};
 if (x==6){ printf ("tygra, ");};
 if (x==7){ printf ("zajcya, ");};
 if (x==8){ printf ("drakona, ");};
 if (x==9){ printf ("zmiji, ");};
 if (x==10){ printf ("konya, ");};
 if (x==11){ printf ("vivci, ");};
 y=rik / 12;
 z=y%5;
 if (z==0){ printf ("chornogo ciklu\n");};
 if (z==1){ printf ("zelenogo ciklu\n");};
 if (z==2){ printf ("chervonogo ciklu\n");};
 if (z==3){ printf ("zhovtogo ciklu\n");};
 if (z==4){ printf ("bilogo ciklu\n");}; }  
 getch ();
 }
Код



Код




PM MAIL WWW ICQ Skype   Вверх
AndrRus
Дата 6.6.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 14.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Почитай литературу по работе с функциями. Исходя из того, что ты привел в примерах, видно, что ты не умеешь абсолютно с ними работать.

Вот разбитая на функции твоя программа:
Код

#include <stdio.h>
#include <conio.h>
#include <math.h>

void PrintMenu ();
void ReadAct (int &);
void Work (int, int, int, int);
void FExit ()

void main (){

    int rik = 0, x = 0, y = 0, z = 0, menu = -1;

    while (menu != 0) {
        PrintMenu ();
        ReadAct (menu);

    
        if (menu == 1) {
            Work  (rik, x, z, y);
        }
        getch ();
        if (menu == 0) {
            FExit ();
            break;
        }
    }
    return 0;
}

void PrintMenu () {
        printf ("*****************************************\n");
        printf ("*      MENU:                         * \n*                                       *\n");
        printf ("*     1. Vvedit' rik dlya poshuku    *  \n");
        printf ("*     0. vuhid                       *\n");
        printf ("*****************************************");
        printf ("\n\n     zrobit' vybir:");
}

void ReadAct (int &menu) {
    scanf ("%d", &menu);
}

void Work (int rik, int x, int z, int y) {
        printf ("vvedit rik dlya poshuku v kalendari: ");
        scanf ("%d", &rik);
        printf ("rik %d - rik ", rik);
        x = rik % 12;
        if (x==0){ printf ("mavpy, ");};
        if (x==1){ printf ("kurky, ");};
        if (x==2){ printf ("ssvuni, ");};
        if (x==3){ printf ("sobaky, ");};
        if (x==4){ printf ("shura, ");};
        if (x==5){ printf ("korovy, ");};
        if (x==6){ printf ("tygra, ");};
        if (x==7){ printf ("zajcya, ");};
        if (x==8){ printf ("drakona, ");};
        if (x==9){ printf ("zmiji, ");};
        if (x==10){ printf ("konya, ");};
        if (x==11){ printf ("vivci, ");};
        
        y = rik / 12;
        z = y % 5;

        if (z==0){ printf ("chornogo ciklu\n");};
        if (z==1){ printf ("zelenogo ciklu\n");};
        if (z==2){ printf ("chervonogo ciklu\n");};
        if (z==3){ printf ("zhovtogo ciklu\n");};
        if (z==4){ printf ("bilogo ciklu\n");};
}

void FExit () {
    printf ("\n\n         this programm made by solnishko.\n    \n     press any key to Exit."); 
    getch (); 
}

PM MAIL ICQ   Вверх
FiMa1
Дата 6.6.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: нет
Всего: 6



Имхо, вместо
Код
if (x==0){ printf ("mavpy, ");};
if (x==1){ printf ("kurky, ");};
if (x==2){ printf ("ssvuni, ");};
if (x==3){ printf ("sobaky, ");};
if (x==4){ printf ("shura, ");};
if (x==5){ printf ("korovy, ");};
if (x==6){ printf ("tygra, ");};
if (x==7){ printf ("zajcya, ");};
if (x==8){ printf ("drakona, ");};
if (x==9){ printf ("zmiji, ");};
if (x==10){ printf ("konya, ");};
if (x==11){ printf ("vivci, ");};

напрашивается использовать switch.
Код
switch( x )
{
    case 0:  printf("mavpy, ");   break;
    case 1:  printf("kurky, ");   break;
    case 2:  printf("ssvuni, ");  break;
    case 3:  printf("sobaky, ");  break;
    case 4:  printf("shura, ");   break;
    case 5:  printf("korovy, ");  break;
    case 6:  printf("tygra, ");   break;
    case 7:  printf("zajcya, ");  break;
    case 8:  printf("drakona, "); break;
    case 9:  printf("zmiji, ");   break;
    case 10: printf("konya, ");   break;
    case 11: printf("vivci, ");   break;
}

Аналогично для проверки z.

Это сообщение отредактировал(а) FiMa1 - 6.6.2007, 11:16
PM   Вверх
mobi_vic
Дата 6.6.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



вот переделал:

Код

#include<stdio.h>
#include<conio.h>
#include<math.h>
unsigned int rik;
void menu ();
void roku ();
void main (){
clrscr();
menu ();
getch(); }

void menu () {
int menu=-1;
while (menu!=0) {
printf ("*****************************************\n");
printf ("*        MENU:                         * \n*                                       *\n");
printf ("*     1. Vvedit' rik dlya poshuku    *  \n");
printf ("*     0. vuhid                       *\n");
printf ("*****************************************");
printf ("\n\n     zrobit' vybir:");
scanf ("%d",&menu);
if (menu==1) {
clrscr ();
printf ("vvedit rik dlya poshuku v kalendari: ");
scanf ("%d", &rik);
printf ("rik %d - rik ", rik);}
if (menu==0) { printf ("\n\n         this programm made by victor krushanovskij.\n    \n     press any key to Exit."); getch (); break;}}
void roku ();
return;
}


void roku () {
unsigned int x,y,z;

x=rik % 12;
if (x==0){ printf ("mavpy, ");}
if (x==1){ printf ("kurky, ");}
if (x==2){ printf ("ssvuni, ");}
if (x==3){ printf ("sobaky, ");}
if (x==4){ printf ("shura, ");}
if (x==5){ printf ("korovy, ");}
if (x==6){ printf ("tygra, ");}
if (x==7){ printf ("zajcya, ");}
if (x==8){ printf ("drakona, ");}
if (x==9){ printf ("zmiji, ");}
if (x==10){ printf ("konya, ");}
if (x==11){ printf ("vivci, ");}
y=rik / 12;
z=y%5;
if (z==0){ printf ("chornogo ciklu\n");}
if (z==1){ printf ("zelenogo ciklu\n");}
if (z==2){ printf ("chervonogo ciklu\n");}
if (z==3){ printf ("zhovtogo ciklu\n");}
if (z==4){ printf ("bilogo ciklu\n");}

getch ();
  }


понимаю, что для того чтоб она работала нужно еще что-то сделать, но что именно: - без понятия
после 
Код

printf ("rik %d - rik ", rik);}

он должен выводить названия животного, и цвет цикла, но из-за того что не компетентно написана прога... неглюки :((
(это прога на С, а не на С++), ЗЫ: я действительно в функциях не очень разбираюсь..

Добавлено через 9 минут и 58 секунд
ВСЕ!!!! СПАСИБО!!!! СДЕЛА!!!!
спасибо огромное всем, кто откликнулся, и не оставил в беде ;)

ВОТ код программы, и она работает так, как надо!:

Код

 #include<stdio.h>
 #include<conio.h>
 #include<math.h>
 unsigned int rik;
 void menu ();
 void roku ();
 void main (){
 clrscr();
 menu ();

 }

void menu () {
int menu=-1;
 while (menu!=0) {
 printf ("*****************************************\n");
 printf ("*      MENU:                         * \n*                                       *\n");
 printf ("*     1. Vvedit' rik dlya poshuku    *  \n");
 printf ("*     0. vuhid                       *\n");
 printf ("*****************************************");
 printf ("\n\n     zrobit' vybir:");
 scanf ("%d",&menu);
 if (menu==1) { clrscr (); printf ("vvedit rik dlya poshuku v kalendari: ");
 scanf ("%d", &rik);
 printf ("rik %d - rik ", rik); roku (); }
clrscr();
 if (menu==0) { printf ("\n\n         this programm made by victor krushanovskij.\n    \n     press any key to Exit."); getch (); break;}}
 void roku ();
 return;
 }


void roku () {
unsigned int x,y,z;

 x=rik % 12;
 if (x==0){ printf ("mavpy, ");}
 if (x==1){ printf ("kurky, ");}
 if (x==2){ printf ("ssvuni, ");}
 if (x==3){ printf ("sobaky, ");}
 if (x==4){ printf ("shura, ");}
 if (x==5){ printf ("korovy, ");}
 if (x==6){ printf ("tygra, ");}
 if (x==7){ printf ("zajcya, ");}
 if (x==8){ printf ("drakona, ");}
 if (x==9){ printf ("zmiji, ");}
 if (x==10){ printf ("konya, ");}
 if (x==11){ printf ("vivci, ");}
 y=rik / 12;
 z=y%5;
 if (z==0){ printf ("chornogo ciklu\n");}
 if (z==1){ printf ("zelenogo ciklu\n");}
 if (z==2){ printf ("chervonogo ciklu\n");}
 if (z==3){ printf ("zhovtogo ciklu\n");}
 if (z==4){ printf ("bilogo ciklu\n");}
 getch ();
  }



Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  1.jpg 67,77 Kb
PM MAIL WWW ICQ Skype   Вверх
mobi_vic
Дата 6.6.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



вот еще скрин ;)

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  4.jpg 59,10 Kb
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.