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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2010, 12:58   #1
Totenkopf
 
Регистрация: 14.06.2010
Сообщений: 6
По умолчанию дайте мудрый совет

есть код
Код:
#include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;

const int N=5; //Число сотрудников института

struct Sotrudnik
{ //Далее прототип структуры:
char Surname [30]; //Фамилия
char Otdel [30]; //Название отдела
int Staj; //Стаж
char Doljnost [50]; //Должность
int Oklad; //Оклад
int GodR; //Год рождения

Sotrudnik();
~Sotrudnik ();

Sotrudnik (char *SurTmp, char *OtdTmp, int StTmp, char *DolTmp, int OklTmp, int GodTmp);
};

Sotrudnik::Sotrudnik() //Конструктор объекта с временными переменными
{
strcpy (Surname,"Undefined");
strcpy (Otdel,"Undefined");
Staj=0;
strcpy (Doljnost,"Undefined");
Oklad=0;
GodR=0;
}

Sotrudnik::~Sotrudnik()
{
strcpy (Surname,"Undefined");
strcpy (Otdel,"Undefined");
Staj=0;
strcpy (Doljnost,"Undefined");
Oklad=0;
GodR=0;
}

Sotrudnik::Sotrudnik (char *SurTmp, char *OtdTmp, int StTmp, char *DolTmp, int OklTmp, int GodTmp)
{
strcpy (Surname,SurTmp);
strcpy (Otdel,OtdTmp);
Staj=StTmp;
strcpy (Doljnost,DolTmp);
Oklad=OklTmp;
GodR=GodTmp;
};

void Out (Sotrudnik *base)
{
int Vozrast;

for (int i=0;i<N;i++) {
Vozrast=2010-base[i].GodR;
if (Vozrast>=55) {
cout <<"Familia: " <<base[i].Surname <<endl;
cout <<"Otdel: " <<base[i].Otdel <<endl;
cout <<"God rojdenia: " <<base[i].GodR <<endl;
cout <<"Doljnost: " <<base[i].Doljnost <<endl;
cout <<"Oklad: " <<base[i].Oklad <<" rublei" <<endl;
cout <<"Staj: " <<base[i].Staj <<" let" <<endl;
}
cout <<endl;
}
}

int main ()
{
Sotrudnik *base = new Sotrudnik[N];

base[0]=Sotrudnik("Vladimirov","Fiziki",8, "Prepodavatel",10000,1975);
base[1]=Sotrudnik("Anisimov","Mexaniki",20 ,"Professor",15000,1955);
base[2]=Sotrudnik("Ivanov","Algebri",30,"P rofessor",15000,1950);
base[3]=Sotrudnik("Grigorenko","Geometrii" ,7,"Prepodavatel",10000,1977);
base[4]=Sotrudnik("Radevich","Chislennix metodov",1,"Aspirant",5000,1985);

int j=-1;

for (;j!=0 {
switch (j) {
case 1:
Out (base);
j=-1;
break;

default:
cout <<"________________________________ ______________________" <<endl;
cout <<"||1-Pokazat' sotrudnikov pensionnogo vozrasta, 0-exit||" <<endl;
cout <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~" <<endl;
cout <<"Viberite deistvie: ";
cin >>j;
break;
}
}

cout <<"\n";
delete []base;
system("pause");
return 0;
}
в коде в базе указано Sotrudnik *base = new Sotrudnik[N];
как зделать без new

Последний раз редактировалось Stilet; 15.06.2010 в 13:17.
Totenkopf вне форума Ответить с цитированием
Старый 15.06.2010, 13:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Оно конечно не есть гут, но попробуй просто написать
Код:
Sotrudnik base[n];
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2010, 13:20   #3
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Очевидно же
Код:
#define N 10
Sotrudnik base[N];
MaTBeu вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дайте совет Михаил70 Свободное общение 17 14.09.2009 20:52
Дайте совет по процессорам microlab Компьютерное железо 3 23.11.2008 14:02
Дайте совет! Arch100 Помощь студентам 2 11.10.2008 01:40
Мне нужен мудрый совет по EXCEL. Anna Batalina Microsoft Office Excel 7 13.02.2008 17:28