Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Къде е грешката?

Featured Replies

Може ли някой да ми помогне? Проблема е следният: след като въведа данните за служителите, при извеждането ми изкарва винаги едно и също число вместо ЕГН-то което съм въвел предварително, а ако въведа за ЕГН 9-цифрено число всичко е наред. При десет въведени числа ми изкарва съвсем друго ЕГН. Някакви идеи?

Благодаря предварително!!!

Ето и сроса на програмата:

#include<iostream.h>

#include <math.h>

#include<stdlib.h>

#include<string.h>

#include<fstream.h>

class slujitel{

char *ime;

char *prezime;

char *familiq;

char *dlajnost;

char *adres;

float brutnamzaplata;

int egn;

public:

slujitel(){ime=prezime=familiq=adres=dlajnost=NULL,brutnamzaplata=0,egn=0;}

slujitel(char *i,char *p,char *f,char *d, char *a, float b,int m,int z, int e, float brut, int eg )

{

int l=strlen(i);

ime=new char[l+1];strcpy(ime,i);

int v=strlen(p);

prezime=new char[m+1];strcpy(prezime,p);

int h=strlen(f);

familiq=new char[h+1];strcpy(familiq,f);

int c=strlen(d);

dlajnost=new char[z+1];strcpy(dlajnost,d);

int q=strlen(a);

adres=new char[q+1];strcpy(adres,a);

brutnamzaplata=brut;

egn=eg;

}

~slujitel()

{

if(ime) delete[]ime;

if(prezime) delete[]prezime;

if(familiq) delete[]familiq;

if(dlajnost) delete[]dlajnost;

if(adres) delete[]adres;

}

char* get_ime(){return ime;}

char* get_prezime(){return prezime;}

char* get_familiq(){return familiq;}

char* get_adres(){return adres;}

char* get_dlajnost(){return dlajnost;}

float get_brutnamzaplata(){return brutnamzaplata;}

int get_egn(){return egn;}

void set_ime(char *i)

{int l=strlen(i);

ime=new char[];

strcpy(ime,i);

}

void set_prezime(char *p)

{int m=strlen(p);

prezime=new char[];

strcpy(prezime,p);

}

void set_familiq(char *f)

{int h=strlen(f);

familiq=new char[];

strcpy(familiq,f);

}

void set_dlajnost(char *d)

{int z=strlen(d);

dlajnost=new char[];

strcpy(dlajnost,d);

}

void set_adres(char *a)

{int q=strlen(a);

adres=new char[];

strcpy(adres,a);

}

void set_brutnamzaplata(float brut){brutnamzaplata=brut;}

void set_egn(int eg){egn=eg;}

void save(ofstream fp)

{

fp<<ime<<'\n'<<prezime<<'\n'<<familiq<<'\n'<<adres<<'\n'<<dlajnost<<'\n'<<brutnamzaplata<<'\n'<<egn<<'\n';

}

void open(ifstream fp)

{

fp>>ime>>prezime>>familiq>>adres>>dlajnost>>brutnamzaplata>>egn;

}

};

int input(slujitel a[])

{

int n;

char ime[20];

char prezime[20];

char familiq[20];

char dlajnost[40];

char adres[40];

float brutnamzaplata;

int egn;

do{

cout<<"n="; cin>>n;

}while(n<0 || n>100);

for(int i=0;i<n;i++)

{

cout<<"Vavedete ime: "; cin>>ime;

cout<<"Vavedete prezime: "; cin>>prezime;

cout<<"Vavedete familiq: "; cin>>familiq;

cout<<"Vavedete adres: "; cin>>adres;

cout<<"Vavedete dlajnost: "; cin>>dlajnost;

cout<<"Vavedete brutna mesechna zaplata: "; cin>>brutnamzaplata;

cout<<"Vavedete EGN: "; cin>>egn;

a.set_ime(ime);

a.set_prezime(prezime);

a.set_familiq(familiq);

a.set_adres(adres);

a.set_dlajnost(dlajnost);

a.set_brutnamzaplata(brutnamzaplata);

a.set_egn(egn);

}

return n;

}

void output(slujitel a[],int n)

{

for(int i=0;i<n;i++)

{

cout<<a.get_ime()<<'\n';

cout<<a.get_prezime()<<'\n';

cout<<a.get_familiq()<<'\n';

cout<<a.get_adres()<<'\n';

cout<<a.get_dlajnost()<<'\n';

cout<<a.get_brutnamzaplata()<<'\n';

cout<<a.get_egn()<<'\n';

}

}

void save(slujitel a[],int n)

{

ofstream fp;

fp.open("slujitel.txt",ios::out);

if(!fp){cout<<"file not open\n";return;}

fp<<n<<'\n';

for(int i=0;i<n;i++)

{

a.save(fp);

}

}

void open(slujitel a[],int n)

{

ifstream fp;

fp.open("slujitel.txt",ios::out);

if(!fp){cout<<"file not open\n";return;}

fp>>n;

for(int i=0;i<n;i++)

{

a.open(fp);

}

}

void main()

{

int k;int n=0;

slujitel a[100];

for(;:yanim:

{

cout<<"1.input\n";

cout<<"2.output\n";

cout<<"3.save\n";

cout<<"4.open\n";

cout<<"5.exit\n";

cout<<"k=\n"; cin>>k;

switch(k)

{

case 1:n=input(a);break;

case 2:output(a,n);break;

case 3:save(a,n);break;

case 4:open(a,n);break;

case 5:exit(0);break;

}

}

}

  • Администратор

Проблема вероятно е в размерността на данните - int-а не може да побере число няколко милиарда...

Ако ЕГН-то ти започва с 1ца сигурно обаче ще стане :rolleyes:

Така че трябва да използваш по-голям тип данни - __int64 примерно ако се поддържа или long long

Другия вариант е да го направиш и него с char*

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    26%
    Дарени 256.00 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.