не могу закончить курсовую, может кто подскажет?

  • Автор темы mobi_vic
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

mobi_vic

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

задание: написать программу, которая при введении любого номера года нашей эры, и выводит его название за старым японским календарем. Окончание названий циклов, и подциклов подать в родительном падеже. Сделать понятный интерфейс.
для справки: в старом японском календаре был принят 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;
}
вот програмка:
скачать в формате срр
 
M

mms

Гость
#2
В конце функции return; не обязательно.

При вызове функции надо писать не void roku(); а просто roku();
 
M

mobi_vic

Гость
#3
В конце функции return; не обязательно.

При вызове функции надо писать не void roku(); а просто roku();
спасибо, но: return; - для того чтоб программа шла по циклу..
я пробовал и просто roku(); , не получаеться :)
 
M

mms

Гость
#4
Что значит не получается, пишите ошибки компилятора хотя бы что-ли ...

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

mobi_vic

Гость
#5
вот кое-что переделал, но работает не корректно :)

Код:
 #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 ();
}
 
M

mobi_vic

Гость
#6
СПАСИБО!
разобрался!

вот правильный код:

Код:
 #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 ();
}
 
Статус
Закрыто для дальнейших ответов.