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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Задача на C

Featured Replies

Здравейте! Ще пусна една задача, който може нека ми помогне с нея моля!

Защото това C++ тепърва започвам да го уча, а задачата е много трудна:

ето го условието:

Да се състави програма на C за нуждите на фирма, която поддържа следната информация:

- трите имена на работник ;

- ЕГН ;

- дневна надница ;

- брой отработени дни ;

- месечна заплата,

и извършва следните операции:

- създава нов празен файл ;

- добавя нова информация за работник ;

- изтрива информация по зададено ЕГН ;

- извежда по зададено ЕГН наличната информация ;

- извежда списък на работниците, които имат месечна заплата по- голяма от зададена

мерси предварително :)

пс: задачата е на C !!!

Редактирано от hotsaucebg3 (преглед на промените)

Всичко се решава с няколко цикъла и просто логически операции.

Новия празен файл - това е елементарно.

Нова информация за работник - просто лепиш структурата към края на файла.

Изтрива информация по зададено ЕГН - превърташ през всички структури във файла и сравняваш ЕГНтата.

За извеждането на ЕГН е същото, но изкарваш на екрана получените резултати.

Работниците с по-голяма месечна заплата изкарваш като провериш дали rabothik.zaplata > dadena_zaplata(например).

Доста нагло от твоя страна. Почети малко за структури и класове, входно изходни библиотеки, опитай се сам и ако нещо не се получава тогава можем да помогнем.

По принцип като видя такива пишa по една цифра в лв. , но твойто е толкова елементарно че ме е срам да искам пари за него. biggrin.gif

Редактирано от Progres (преглед на промените)

  • Автор

Ами съжалявам, ама то ми трябва за утре а кой знае колко трябва да изчета за да разбера как става... sad.gif

  • Автор

Аре моля ви се бе! поне ми дайте нещо някъде да прочета за структури че да го схвана поне biggrin.gif

:)

Редактирано от hotsaucebg3 (преглед на промените)

Съвет, не се карай защото така никой няма да ти помогне... и извинявай ама едва ли цяла година си се занимавал с матлаб...

  • Автор
Съвет, не се карай защото така никой няма да ти помогне... и извинявай ама едва ли цяла година си се занимавал с матлаб...

ама и ти си прав :offtopic_s:

Редактирано от hotsaucebg3 (преглед на промените)

  • Автор

Ето я задачата на C++, ама незнам как да я преведа на C, ще може ли малко помощ?

#include <fstream.h> 

#include <string.h>  

#include <stdio.h>   

#include <stdlib.h>  

#include <iostream.h>

  class Rabotnik

  {

  public:

	char EGN[10];


	char Ime[50];

	float D_n,M_z;

	int brDni;

	void getDataR();

	void displayR(ostream&);


};

  void Rabotnik::getDataR()

  {

			cin.ignore();

	cout<<"Vavedete trite imena na rabotnika:";cin.getline(Ime,50);

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

	cout<<"Vavedete dnevnata nadnica:";cin>>D_n;

	cout<<"Vavedete mese4nata zaplata:";cin>>M_z;

	cout<<"Broi otraboteni dni:";cin>>brDni;

  }


  void Rabotnik::displayR(ostream& p=cout)

  {

	  p<<Ime<<", "<<EGN<<", "<<D_n<<", "<<M_z<<", "<<brDni<<endl;

}

  Rabotnik A;

  ofstream outf;

  ifstream inf; 

  fstream iof;


	void SzdPrz(){

 outf.open("f00.cpp",ios::out|ios::binary); outf.close();

 cout<<"\n\t Failat e sazdaden. \n\n";

}


	void Dobaviane() {

 outf.open("f00.cpp",ios::ate|ios::binary);

A.getDataR(); outf.write((char*) &A, sizeof(A));

 outf.close();

}

	void Iztrivane(){

 outf.open("f00a.cpp",ios::out|ios::binary);

 //"f00a.cpp" 

 char IztrEGN[10];

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

 inf.open("f00.cpp",ios::in|ios::binary);

 for (;;){

  inf.read((char*) &A, sizeof(A));

  if (inf.eof()) break;

  if (strcmp(A.EGN,IztrEGN)) 

	outf.write((char*) &A, sizeof(A));

  else 

   cout<<"Dannite na rabotnik s EGN"<<IztrEGN<<" sa iztriti.\n";

 }

 inf.close(); outf.close();

unlink("f00.cpp"); rename("f00a.cpp","f00.cpp");

   }

   void IzvEGN(){		char egn[10];

inf.open("f00.cpp",ios::in|ios::binary);

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

 for (;;) {

  inf.read((char*) &A, sizeof(A));

  if (inf.eof()) break;

  if (A.EGN==egn){					

   A.displayR();

  }

 }

 inf.close(); outf.close();

}

  void Spis(){int zapl;

 ifstream inf("f00.cpp",ios::in|ios::binary);

  cout<<"zadai zaplata za sravnenie: ";cin>>zapl;

for (;;){

  inf.read((char*) &A, sizeof(A));

  if (inf.eof()) break;


  if(A.M_z==zapl)

 A.displayR(outf); A.displayR();


 } inf.close();

}

  int main()

  {

	  system("chcp 1251");

int KodOp; 

do{

	cout<<"\n 1.Sazdavane na prazen fail:";

	cout<<"\n 2.Dobavqne na informaciq za nov rabotnik:";

	cout<<"\n 3.Iztrivane na informaciq na rabotnik po EGN:";

	cout<<"\n 4.Izvejdane po EGN nali4na informaciq:";

	cout<<"\n 5.izvejda spisak na rabotnicite,koito  ";

	cout<<"\n   imat mese4na zaplata po golqma ot zadadena :";

	cout<<"\n 6.Izhod:";

	cout<<"\n 7.Izberi ot /1-6/:";

cin >> KodOp;

switch(KodOp){

case 1:SzdPrz();break;

case 2:Dobaviane();break;

case 3:Iztrivane();break;

case 4:IzvEGN();break;

case 5:Spis();break;

}

}while(KodOp != 6);

return 0;

}

Редактирано от hotsaucebg3 (преглед на промените)

Никой тук не е длъжен да ти помага, а когато го обиждаш - съвсем.

  • Автор

Какво още трябва да се преправя?

ето докъде съм стигнал:

#include <fstream.h>

#include <string.h>

#include <stdio.h>  

#include <stdlib.h>  

#include <iostream.h>


struct Rabotnik

  {

	char EGN[10];


	char Ime[50];

	float D_n,M_z;

	int brDni;

	void getDataR();

	void displayR(ostream&);


}

  void Rabotnik::getDataR()

  {

			scanf(".ignore()");

	printf("Vavedete trite imena na rabotnika:"); getchar();

	printf("Vavedete EGN: "); getchar()

	printf("Vavedete dnevnata nadnica:");scanf("%f",&D_n);

	printf("Vavedete mese4nata zaplata:");scanf("%f",&M_z);

	printf("Broi otraboteni dni:");scanf("%d",&brDni);

  }


  void Rabotnik::displayR(ostream& p=cout)

  {

	  p<<Ime<<", "<<EGN<<", "<<D_n<<", "<<M_z<<", "<<brDni<<endl;

}



  Rabotnik A;

  ofstream outf;

  ifstream inf;

  fstream iof;




	void SzdPrz(){

outf.open("f00.cpp",ios::out|ios::binary); outf.close();

printf("\n\t Failat e sazdaden. \n\n");

}


	void Dobaviane() {

outf.open("f00.cpp",ios::ate|ios::binary);

A.getDataR(); outf.write((char*) &A, sizeof(A));

outf.close();

}

	void Iztrivane(){

outf.open("f00a.cpp",ios::out|ios::binary);


char IztrEGN[10];

printf("Vavedete EGN: ");scanf("IztrEGN");

inf.open("f00.cpp",ios::in|ios::binary);

for (;;){

  inf.read((char*) &A, sizeof(A));

  if (inf.eof()) break;

  if (strcmp(A.EGN,IztrEGN))

	outf.write((char*) &A, sizeof(A));

  else

   printf("Dannite na rabotnik s EGN IztrEGN sa iztriti.\n");

}

inf.close(); outf.close();

unlink("f00.cpp"); rename("f00a.cpp","f00.cpp");

   }

   void IzvEGN(){		char egn[10];

inf.open("f00.cpp",ios::in|ios::binary);

printf("Vavedete EGN: "); scanf(egn);

for (;;) {

  inf.read((char*) &A, sizeof(A));

  if (inf.eof()) break;

  if (A.EGN==egn){					

   A.displayR();

  }

}

inf.close(); outf.close();

}

  void Spis(){int zapl;

ifstream inf("f00.cpp",ios::in|ios::binary);

  printf("zadai zaplata za sravnenie: ");scanf("zapl");

for (;;){

  inf.read((char*) &A, sizeof(A));

  if (inf.eof()) break;


  if(A.M_z==zapl)

A.displayR(outf); A.displayR();


} inf.close();

}

  int main()

  {

	  system("chcp 1251");

int KodOp;

do{

	printf("\n 1.Sazdavane na prazen fail:");

	printf("\n 2.Dobavqne na informaciq za nov rabotnik:");

	printf("\n 3.Iztrivane na informaciq na rabotnik po EGN:");

	printf("\n 4.Izvejdane po EGN nali4na informaciq:");

	printf("\n 5.izvejda spisak na rabotnicite,koito  ");

	printf("\n   imat mese4na zaplata po golqma ot zadadena :");

	printf("\n 6.Izhod:");

	printf("\n 7.Izberi ot /1-6/:");

scanf("KodOp");

switch(KodOp){

case 1:SzdPrz();break;

case 2:Dobaviane();break;

case 3:Iztrivane();break;

case 4:IzvEGN();break;

case 5:Spis();break;

}

}while(KodOp != 6);

return 0;

}

Редактирано от hotsaucebg3 (преглед на промените)

Регистрирайте се или влезете в профила си за да коментирате

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

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

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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