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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Курсова работа C++ моля за помощ

Featured Replies

Трябва да се получи нещо подобно https://attachment.fbsbx.com/file_download.php?id=839129649467111&eid=ASsLkzkqE3DiZ8Y4xoUgWaSAo_yiLNFsHOB53hguXPU6_XAduz2bUF79B1z4XmZPtw4&inline=1&ext=1427559412&hash=AStZtubrzbUtqNae

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

post-358173-0-04625200-1427559172_thumb.

#include <stdio.h>
#include <stdlib.h>

struct iitem
{
	int   inumber;
	char  iname[24];
	int   icount;
	float iprice;
}iiitem;

void menu()
{
	printf("\n\nmain menu:\n\n");
	printf("add new item              - 1\n");
	printf("correct item              - 2\n");
	printf("delete item               - 3\n");
	printf("print all items           - 4\n");
	printf("output less than 10       - 5\n");
	printf("exit                      - 6\n\n");
}


int filesize(char* filename)
{
	FILE* d;
	int filesize;
	d = fopen(filename,"rb");
	if (d == 0) return 0;
	fseek(d,0,SEEK_END);
	filesize = ftell(d);
	fclose(d);
	return filesize;
}


void addnewitem()
{
	FILE* d;
	int fsize;
	printf("input item name - ");
	scanf("%15s",iiitem.iname);
	fflush(stdin);
	printf("\ninput item count - ");
        scanf("%d",&(iiitem.icount));
        fflush(stdin);
        printf("\ninput item price - ");
        scanf("%f",&(iiitem.iprice)); 
        fflush(stdin);
        fsize = filesize("itemlist.lsf");  	
	d = fopen("itemlist.lsf","ab");
	iiitem.inumber = fsize / sizeof(iitem) + 1;
	fwrite(&iiitem,sizeof(iiitem),1,d);
	fclose(d);
}

void printallitems()
{
	FILE* d;
	d = fopen("itemlist.lsf","rb");
	if (d == 0) return;
	while (true)
	{	
	  fread(&iiitem,sizeof(iiitem),1,d);
	  if (feof(d) != 0) break;
	  printf("\n%d\t\t%s\t\t%d\t\t%f",iiitem.inumber,iiitem.iname,iiitem.icount,iiitem.iprice);
	}
	fclose(d);
}


void correctitem()
{
	int nr;
	int fsize;
	FILE* d;
	printf("input item number - ");
	scanf("%d",&nr);
	fflush(stdin);
	fsize = filesize("itemlist.lsf");
	fsize = fsize/sizeof(iitem);
	if ((fsize < nr)||(nr < 1))
	{
            printf("\n\nthere is no such item number\n\n");
		return;
	}
	else
	{
                d = fopen("itemlist.lsf", "rb+");
		nr--;
		fseek(d,nr*sizeof(iitem),SEEK_SET);
		fread(&iiitem,sizeof(iitem),1,d);
		printf("\n%d\t\t%s\t\t%d\t\t%f",iiitem.inumber,iiitem.iname,iiitem.icount,iiitem.iprice);
		printf("\ninput correct name - ");
		scanf("%15s",iiitem.iname);
		fflush(stdin);
		printf("\ninput correct count - ");
		scanf("%d",&(iiitem.icount));
		fflush(stdin);
		printf("\ninput correct price - ");
		scanf("%f",&(iiitem.iprice));
		fflush(stdin);
		fseek(d,nr*sizeof(iitem),SEEK_SET);
		fwrite(&iiitem,sizeof(iitem),1,d);
		fclose(d);
	}
	
}


void deleteitem()
{
	int i;
	int nr;
	int fsize;
	FILE* d;
	FILE* f;
	printf("input item number - ");
	scanf("%d",&nr);
	fflush(stdin);
	fsize = filesize("itemlist.lsf");
	fsize = fsize/sizeof(iitem);
	if ((fsize < nr)||(nr < 1))
	{
            printf("\n\nthere is no such item number\n\n");
		return;
	}
	else
	{
		nr--;
		d = fopen("itemlist.lsf", "rb+");
		f = fopen("itemlist1.lsf", "wb");
		for (i = 0; i < nr; i++)
		{
                        fread(&iiitem,sizeof(iitem),1,d);
			fwrite(&iiitem,sizeof(iitem),1,f);
		}
		fseek(d,sizeof(iitem),SEEK_CUR);
                while (true)
                {
			fread(&iiitem,sizeof(iitem),1,d);
			if (feof(d) != 0) break;
                        iiitem.inumber = i+1;
			fwrite(&iiitem,sizeof(iitem),1,f);
			i++;
		}
        fclose(d);
        fclose(f);
        system("del itemlist.lsf");
        system("ren itemlist1.lsf itemlist.lsf"); 		
	}
}


void lessthan10()
{
	FILE* d;
	d = fopen("itemlist.lsf","rb");
	if (d == 0) return;
	while (true)
	{	
	    fread(&iiitem,sizeof(iiitem),1,d);
	    if (feof(d) != 0) break;
	    if (iiitem.icount < 10)
	    printf("\n%d\t\t%s\t\t%d\t\t%f",iiitem.inumber,iiitem.iname,iiitem.icount,iiitem.iprice);
	}
	fclose(d);
}


int main()
{
	int varmenu;
	do
	{
		menu();
		varmenu = getchar();
		fflush(stdin);
		if (varmenu == '1') addnewitem();
		else if (varmenu == '2') correctitem();
		else if (varmenu == '3') deleteitem();
		else if (varmenu == '4') printallitems();
		else if (varmenu == '5') lessthan10();
	}while (varmenu != '6');
	return 0;
}

1. Не съм правил проверки на въвежданите данни от потребителя

2. Не съм правил подменюта или подсказки, трябва сам да си направиш, ако не ти харесва след всяка операция да се разпечатва главното меню

3. Ако не ви разрешават да използвате функцията system() намери друг начин. Може например да прочетеш файла в паметта, да го коригираш там и да го запишеш обратно.

1. Не съм правил проверки на въвежданите данни от потребителя

2. Не съм правил подменюта или подсказки, трябва сам да си направиш, ако не ти харесва след всяка операция да се разпечатва главното меню

3. Ако не ви разрешават да използвате функцията system() намери друг начин. Може например да прочетеш файла в паметта, да го коригираш там и да го запишеш обратно.

4. Това не е C++

5. Изчистването на входен стрийм не е дефинирано в стандарта, възможно е да не се подържа от компилатора и употребата не се препоръчва. :P

6. Не е С++ и е С++  :)  :)  :)

щото е гадно написано съвсем чисто C - ако визираш типа и константата true. :P

щото е гадно написано съвсем чисто C - ако визираш типа и константата true. :P

 

Гадно е щото съм самоук. Не знам какви са правилата за четливо писане и карам по интуиция.

 

Обаче, когато става въпрос за философско и религиозно познание, подхода ми е перфектен.

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

Гадно е щото съм самоук. Не знам какви са правилата за четливо писане и карам по интуиция.

Нямах предвид като цяло, а че ако промениш два реда и ще се компилира на C. И по-свободните правила на C++ не са достатъчно основание да кажеш че програмата е на него.

Нямах предвид като цяло, а че ако промениш два реда и ще се компилира на C. И по-свободните правила на C++ не са достатъчно основание да кажеш че програмата е на него.

 

Е, има контекст, в който, дори и да се компилира на С, пак мога да кажа, че е на С++.

Например С се съдържа в С++. Всъщност това ми беше идеята, когато се пошегувах. Не защото в С няма true.

Или например - щом може да се компилира с компилатора на С++, значи е на С++.

 

Що не мога да спра да се заяждам не знам.

 

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

Е, има контекст, в който, дори и да се компилира на С, пак мога да кажа, че е на С++.

Например С се съдържа в С++. Всъщност това ми беше идеята, когато се пошегувах. Не защото в С няма true.

Или например - щом може да се компилира с компилатора на С++, значи е на С++.

 

Що не мога да спра да се заяждам не знам.

 

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

Остай контекстите и философията.

1. ако аз съм преподавател на автора и ми поднесе такава програма ако условието е да е С++ ще получи двойка, без изобщо да се загледам в кода.

2. ако приемем, че не иска да отбие номера с ученето и иска да работи като C++ разработчик, шефовете му ще искат да пише на C++, не на C, и на "ама това се компилира" най-много да му се изсмеят.

Остай контекстите и философията.

1. ако аз съм преподавател на автора и ми поднесе такава програма ако условието е да е С++ ще получи двойка, без изобщо да се загледам в кода.

2. ако приемем, че не иска да отбие номера с ученето и иска да работи като C++ разработчик, шефовете му ще искат да пише на C++, не на C, и на "ама това се компилира" най-много да му се изсмеят.

 

Опять двойка. Не знам как е на украински.

 

Така е. Не споря.

Даскалката е мн гадна няма да го приеме така но все пак мерси :(

Не чувствате ли че сте нахален/лна? Не стига че ви написаха кода ами и се оплаквате. Напишете си го сам/а

  • 5 месеца по-късно...

здравейте колеги може ли някой да ми направи на Microsoft Visual C++ 6.0 тази програма,защото е правена на и 13 г и ми дава грешка в ехе.

#include <iostream>

void main()
{
        int i; 
int m = 0;
static bool warning = false;
do
{
if (warning)
std::cout << "You entered a bad value. Give it another go." << std::endl;
std::cout << "Enter a value for m, where 10 < m < 50. " << std::endl;
std::cout << "m = ";
std::cin >> m;
warning = true;
} while ( !(m > 10 && m < 50) );


double * values = new double[m];


std::cout << "Your array of " << m << " elements is created. Please enter a value for each element:" << std::endl;


int imin = -1, imax = -1;
for ( i = 0; i < m; i++)
{
std::cout << "Element " << i << " = ";
std::cin >> values[i];


if (imin >= 0)
{
if (values[i] < values[imin]) imin = i;
} 
else imin = i;


if (imax >= 0)
{
if (values[i] > values[imax]) imax = i;
}
else imax = i;
}


if (imin < imax)
{
double average = (values[imin] + values[imax]) / 2;
std::cout << "The average of " << values[imin] << " and " << values[imax] << " is " << average << std::endl;
}
else if (imin > imax)
{
double ssum = values[imin] * values[imin] + values[imax] * values[imax];
std::cout << "The sum of the squares of " << values[imin] << " and " << values[imax] << " is " << ssum << std::endl;
}


double * pol = new double[m / 2 + 1];
int polsize = 0;
for ( i = 1; i < m; i += 2)
{
if (values[i] > 0)
{
pol[polsize] = values[i];
polsize++;
}
}


std::cout << "AL:" << std::endl;
for ( i = 0; i < m; i++)
{
std::cout << "Element " << i << ": " << values[i] << std::endl;
}


std::cout << "POL:" << std::endl;
for ( i = 0; i < polsize; i++)
{
std::cout << "Element " << i << ": " << pol[i] << std::endl;
}


delete values, pol;
}здравейте колеги може ли някой да ми направи на Microsoft Visual C++ 6.0 тази програма,защото е правена на и 13 г и ми дава грешка в ехе.


#include <iostream>

void main()
{
        int i; 
int m = 0;
static bool warning = false;
do
{
if (warning)
std::cout << "You entered a bad value. Give it another go." << std::endl;
std::cout << "Enter a value for m, where 10 < m < 50. " << std::endl;
std::cout << "m = ";
std::cin >> m;
warning = true;
} while ( !(m > 10 && m < 50) );


double * values = new double[m];


std::cout << "Your array of " << m << " elements is created. Please enter a value for each element:" << std::endl;


int imin = -1, imax = -1;
for ( i = 0; i < m; i++)
{
std::cout << "Element " << i << " = ";
std::cin >> values[i];


if (imin >= 0)
{
if (values[i] < values[imin]) imin = i;
} 
else imin = i;


if (imax >= 0)
{
if (values[i] > values[imax]) imax = i;
}
else imax = i;
}


if (imin < imax)
{
double average = (values[imin] + values[imax]) / 2;
std::cout << "The average of " << values[imin] << " and " << values[imax] << " is " << average << std::endl;
}
else if (imin > imax)
{
double ssum = values[imin] * values[imin] + values[imax] * values[imax];
std::cout << "The sum of the squares of " << values[imin] << " and " << values[imax] << " is " << ssum << std::endl;
}


double * pol = new double[m / 2 + 1];
int polsize = 0;
for ( i = 1; i < m; i += 2)
{
if (values[i] > 0)
{
pol[polsize] = values[i];
polsize++;
}
}


std::cout << "AL:" << std::endl;
for ( i = 0; i < m; i++)
{
std::cout << "Element " << i << ": " << values[i] << std::endl;
}


std::cout << "POL:" << std::endl;
for ( i = 0; i < polsize; i++)
{
std::cout << "Element " << i << ": " << pol[i] << std::endl;
}


delete values, pol;
}

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

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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