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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Курсова на C++ (файлове)

Featured Replies

Здравейте колеги. Трябва да напиша задача на C++, ако може някой да хвърли едно око:

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

- име на машина;

- цена на закупуване (в лв.);

- година на закупуване;

- фирма-производител;

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

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

- Добавя нова информация за закупени машини и изтрива ненужната информация за бракувани машини;

- Извежда списък на машините, закупени през последните 5 години, чиято цена е била над 100 000 лв;

- Прехвърля в текстов файл всички машини, произведени от дадена фирма.

Преди бях срещнал случайно подобни задачи с подобни условия, но сега не мога да ги открия. Моля ако някой има някакви source кодове на подобни задачи да ги постне тук или на ЛС. Благодаря предварително.

  • Автор

Здравейте отново. Написах програмата почти до края, като последната функция не мога да я направя (тази с прехвърлянето в текстов файл всички машини, произведени от дадена фирма.) Може ли малко помощ с нея функция? А иначе ето го и кода

#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
using namespace std;
struct Zavod
{
	char Ime [40];
	float Cena;
	int Godina;
	char Proizvoditel [30];
};
FILE *fl;
char imefl[30];
Zavod zavod;
void readZavod (Zavod *lc)
{
	printf("Vavedete ime na mashina: "); gets(lc->Ime);
	printf("Vavedete cena na zakupuvane: "); scanf("%f", &lc->Cena);
	printf("Vavedete godina na zakupuvane: "); scanf("%d", &lc->Godina);
	printf("Vavedete firma-proizvoditel: "); gets(lc->Proizvoditel);
}
void writeZavod(Zavod lc)
{
	printf("Ime: %s\n Cena na zakupuvane: %.2f\n Godina na zakupuvane: %d\n Firma-proizvoditel: %s\n", 
		lc.Ime,lc.Cena,lc.Godina,lc.Proizvoditel);
}
int exist(char *ime)
{
	FILE *f = fopen(ime,"r");fclose(f);
	return f!=NULL;
}
void szdPrz(){
char ch;
if (exist(imefl)) {
printf("failat sashtestvuva! ");
printf("da go prezapisha li?");
ch=getchar();
if (ch == 'n') return;
}
fl=fopen(imefl,"w");
fclose(fl);
printf("\n Failat e sazdaden.\n");
}
void dobaviane(){
char ch;
if (!exist(imefl)) {
printf("Failat ne e sazdaden!\n");
return;
}
fl=fopen(imefl,"a+b");
do{
readZavod(&zavod);
fwrite(&zavod,sizeof(zavod),1,fl);
printf("shte prodaljite li vavejdaneto? ");
ch=getchar();getchar();
}while (ch != 'n');
fclose(fl);
}
void iztrivane(){
 FILE *delfl;
 char brakuvani[40];
 if (!exist (imefl)){
        printf("Failat ne e sazdaden!\n");return;
        }
 printf("Vavedete ime: ");gets(imefl);
 fl=fopen(imefl,"rb");delfl=fopen("Del","wb");
 fread(&zavod,sizeof(zavod),1,fl);
 while (!feof(fl)){
  if (strcmp(zavod.Ime,brakuvani)!=0)
          fwrite(&zavod,sizeof(zavod),1,delfl);
  else printf("Danni s ime %s sa iztriti.n",brakuvani);
  fread(&zavod,sizeof(zavod),1,fl);
 }
 fclose(fl); fclose(delfl);
 remove(imefl); rename("Del",imefl);
}
void spisGod(){
     int k;
     int tekgod;
     float cena100k=100000;
 if (!exist(imefl))
 { printf("Failat ne e sazdaden!\n"); return; }
 printf("Vavedete tekushta godina: "); scanf("%d", &tekgod);
                  getchar();
 fl=fopen(imefl,"rb"); k=0;
 fread(&zavod,sizeof(zavod),1,fl);
 while(!feof(fl)){
                  if (zavod.Godina>tekgod-5)
                  if (zavod.Cena>cena100k)
                  {k++;writeZavod(zavod);}
                  fread(&zavod,sizeof(zavod),1,fl);
  if (k==0)
  printf("Nqma mashini, zakupeni prez poslednite 5 godini, chiqto cena e bila nad 100 000 lv\n");
  fclose(fl);
}
}
int main(){
 int c;
   printf("Ime na fail: ");gets(imefl);
   do {
        printf("%20s\nMenu:\n\n","");
        printf("1. Sazdavane na nov fail\n","");
        printf("2. Dobavqne na informaciq za zakupeni mashini\n","");
        printf("3. Iztrivane na nenujna informaciq za brakuvani mashini\n","");
        printf("4. Izvejdane na spisak na mshinite, zakupeni prez poslednite 5 godini, chiqto cena e bila nad 100 000lv\n","");
        printf("5. Prehvarlqne v tekstov fail vsichki mashini, proizvedeni ot dadena firma\n","");
        printf("\nPosochete operaciq ili 0 za krai.\n");
        scanf("%d",&c);getchar();
        switch (c){
          case 1:szdPrz();break;
          case 2:dobaviane();break;
          case 3:iztrivane();break;
          case 4:spisGod();break;
        }
  }while (c!=0);
  system ("pause");
}

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

void prehvarli(){
int k=0;FILE *txt;
char ime_m[31];
printf("Въведете име на фирма: ");gets(ime_m);
fp=fopen(Fname,"rb");
txt=fopen("ma6ini.txt","wt");
fread(&stud,sizeof(stud),1,fp);
while (!feof(fp)){
if (strcmp(stud.firma_proizvoditel,ime_m)==0){
fprintf(txt,"%-21s %s\n",stud.firma_proizvoditel,stud.ime_mashina);k++;
printf("Данните са прехвърлени\n");
}
fread(&stud,sizeof(stud),1,fp);
}
fclose(fp);fclose(txt);
if (k==0)
	printf("Не е намерена информация\n");
}
Ето ти последната структура.Вместо "stud.firma_proizvoditel,stud.ime_mashina" напиши своите променливи.

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

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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