Премини към съдържанието
lullabies

Помощ със задача по програмиране в C++

Препоръчан отговор


Съставете програма с меню за избор на функция за:

a)       Въвеждане от клавиатурата в масив и файл /чрез допълване/ данните за К  вложители в банка /К<=50/: име BLV USD EURO. Извеждане текущото съдържание на масива /файла/ на екран

b)      Извеждане на справки за

-          Вложител по въведено име /със запитване на нова справка – диалогова процедура/

-          Всичко вложители с обща сума на влогове /в лева/ над зададена и според текущите курсове на валутата

c)       Пренареждане на данните за вложители във възходящ ред според влоговете в USB /или  EURO или BLV – по избор/ и извеждането им на екрана

Главната функция main – с меню за избор на функция задължително да се използва. Използване на главни променливи или функции с предаване на параметри – по избор.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Пише се BGN,  а не BLV

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
#include <iostream>
#include <fstream> 
#include <string>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
const int N = 50;
const char Name[] = "vlojiteli.dat";
fstream fp;
int v;            //broi vlojiteli

struct vlojiteli
{
	char imena [30];
	double Vlog_BLV;
	double Vlog_USD;
	double Vlog_EURO;
};

void suzdavane(vlojiteli st[]);
void izvejdane(vlojiteli st[]);
void search(vlojiteli st[]);
void spravka(vlojiteli st[]);


int main()
{
	struct vlojiteli st[N];
	int izbor;
	do
	{
		do
		{
			cout << endl << "************MENU**************" << endl;
			cout << "1. Suzdavane na fail za grupa ot vlojiteli." << endl;
			cout << "2. Izvejdane na dannite za vlojiteli." << endl;
			cout << "3. Spravka za vlojitelite po imena." << endl;
			cout << "4. Spravka za vlojitelite s obshta suma nad zadadenata spored valutniq kurs." << endl;
			cout << "5. Exit" << endl;
			cout << "Izbor:  ";
			cin >> izbor;
		} while (izbor < 1 || izbor> 5);
		switch (izbor) {
		case 1:suzdavane(st); break;
		case 2:izvejdane(st); break;
		case 3:search(st); break;
		default: cout << endl << "*********Krai**********" << endl;
		}
	} while (izbor != 5);
	return 0;
}

void suzdavane(vlojiteli st[])
{
	int i;

	while (true) {
		cout << "Broi vlojiteli (max broi e 50): ";
		cin >> v;
		if ((v > N) || (v < 1))
			cout << endl << "Vavedete chislo ot 1 do 50!" << endl;
		else break;
	}

	fp.open(Name, ios::binary | ios::out);
	if (!fp) { cout << endl << "Ne moje da se raboti s faila!"; exit(1); }
	for (i = 0; i < v; i++)
	{
		fflush(stdin);
		cout << "\n Ime na vlojitel: "; cin >> st[i].imena;
		cout << "\n Vlog v BLV: "; cin >> st[i].Vlog_BLV;
		cout << "\n Vlog v USD: "; cin >> st[i].Vlog_USD;
		cout << "\ Vlog v EURO: "; cin >> st[i].Vlog_EURO;

	}
	fp.write((char*)st, v * sizeof(vlojiteli));
	fp.close();
}

void izvejdane(vlojiteli st[])
{
	long pos;
	int i;
	vlojiteli s;
	cout << "\n Izvejdane  na vuvedenite vlojiteli\n";
	fp.open(Name, ios::binary | ios::in);
	if (!fp) { cout << endl << "Ne moje da se raboti s faila!"; exit(1); }
	fp.seekg(0L, ios::end);
	pos = fp.tellg();
	fp.close();
	fp.open(Name, ios::binary | ios::in);
	if (!fp) { cout << endl << "Error"; exit(1); }
	for (i = 0; i < pos / (sizeof(vlojiteli)); i++)
	{
		fp.read((char*)&s, sizeof(vlojiteli));
		st[i] = s;
		cout << "\n Ime na vlojitel: "; cin >> st[i].imena;
		cout << "\n Vlog v BLV: "; cin >> st[i].Vlog_BLV;
		cout << "\n Vlog v USD: "; cin >> st[i].Vlog_USD;
		cout << "\n Vlog v EURO: "; cin >> st[i].Vlog_EURO;
	}
	fp.close();
}

void search(vlojiteli st[])
{
	char imena[30];
	long pos;
	int i;
	int k = 0;
	vlojiteli s;
	cout << "\n Spravka po ime na vlojitelq:";
	cin >> imena;
	fp.open(Name, ios::binary | ios::in);
	if (!fp) { cout << endl << "Ne moje da se raboti s faila!"; exit(1); }
	fp.seekg(0L, ios::end);                        //premestva ukazatelq na faila v kraq na poziciqta
	pos = fp.tellg();                              // opredelq duljinata na faila v baitove
	fp.close();
	fp.open(Name, ios::binary | ios::in);
	if (!fp) { cout << endl << "Ne moje da se raboti s faila!"; exit(1); }
	for (i = 0; i < pos / (sizeof(vlojiteli)); i++)
	{
		fp.read((char*)&s, sizeof(vlojiteli));
		st[i] = s;
		if (strcmp(st[i].imena, imena) == 0)
		{
			cout << "\n Ime na vlojitel: "; cin >> st[i].imena;
			cout << "\n Vlog v BLV "; cin >> st[i].Vlog_BLV;
			cout << "\n Vlog v USD"; cin >> st[i].Vlog_USD;
			cout << "\ Vlog v EURO"; cin >> st[i].Vlog_EURO;
			k++;
		}
	}
	if (k == 0) {
		cout << "\n Ne e nameren vlojitel. \n"; exit(1);
	}
	fp.close();
	
	void spravka(vlojiteli st[]);
	{
		int num = 0;
		if (num)
		{
			vlojiteli temp;
			for (int i = 0; i < num; i++)
			{
				for (int j = 0; j < num - i - 1; j++)
				{
					if (st[j].Vlog_USD > st[j + 1].Vlog_BLV)
					{
						temp = st[j];
						st[j] = st[j + 1];
						st[j + 1] = temp;
					}
				}
			}
			cout << "\n Spisuk na vlojiteli vuv vuzhodqsht red sprqmo vloga im: " << endl << endl;
			for (int i = 0; i < num; i++)
			{
				cout << " Ime: " << st[i].imena << endl;
				cout << " Vlog v BLV " << st[i].Vlog_BLV << endl;
			}
		}
		else
			cout << "\n Nqma vuvedeni studenti!" << endl;
	}
}

Имам нещо направено, но не работи както трябва.


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Защо сте напъхал два цикъла за менюто?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

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

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

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

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

  • Горещи теми в момента

  • Подобни теми

    • от m.dimitrov98
      Здравейте, имам ето това задание:
      Големи числа се наричат цели положителни числа с К цифри. Големите цели числа могат да се представят с помощта на линеен едносвързан списък, всеки елемент на който съдържа точно една цифра от числото. Дадени са две големи цели числа N1 и N2 (до 100 цифри). Да се напишат програмни фрагменти за :
                a. Представяне на числата чрез списъци;
                b. Сумиране на две големи цели числа.
      Бях го направил с две функции create1 и create2 и две променливи N1 и N2, но професорката иска да е само един и колкото числа искам да въведа толкова пъти да извикам един и същ create. Опитах по този начин но при започване на въвеждането на второто число програмата блокира. Бих бил благодарен ако някой помогне.
      Ето и до къде съм стигнал.
       
       
      #include <iostream> using namespace std; struct chislo{ int N; chislo* next; }; typedef chislo* Point; Point Head; void Create(Point &Head) { Point Last, P; Last=NULL; int brc=0; int br=0; cout<<"Колко цифри ще е числото?: "; cin>>br; while (brc != br) { P = new chislo; brc++; cout << brc <<" цифра на числото: "; cin >> P->N; P->next=NULL; if (Head == NULL) Head = P; else Last->next = P; Last = P; } } void Traverse(Point P){ cout<<"Числото е:"; while (P !=NULL) { cout<<P->N; P = P->next; } cout<<endl; } int main() { system("chcp 1251"); Point Head = NULL; Create(Head); Create(Head); Traverse(Head); Traverse(Head); }  
    • от Georgi Kirchev
      Здравейте , дадоха ми да правя курсова задача по Визуално програмиране , но не мога да я направя , а имам срок до четвъртък - 10.01.2019 
      програмираме със Visual Studio 2010/13 на MFC Standart , Single Document 
      Ще съм изключително благодарен , ако някой успее да ми помогне. 

      Условието е следното: 
      Да се състави еднодокументно приложение с архитектура документ - изглед.
       - Добавете бутон който трябва да активира функцията , както и елемента Hello от менюто 
       - Добавете контекстно-ориентирано меню към програмата , което използва падащо меню Help като скрито

      Във файл да се съхраняват и четат данни, които да се въвеждат чрез диалогова кутия , която се вика чрез 
       - ляв бутон на мишката.
       - опция от менюто .
       - клавишни ускорители.
       - бутон от инструменталната лента.
      В диалоговата кутия да има:
       - текстово поле за въвеждане на текст.
       - рамка със списък за шрифтове.
       - групова рамка.
       - бутон за приключване.

      Предварително благодаря , ако някой се захване да ми окаже помощ. 
       
    • от Alexandar Jelev
      Здравейте, искам  да попитам някой може ли да ми помогне за курсовата задача, ще му бъда изключително благодарен? :)
      Задачата е следната:
      Съставете програма с функции за:
      а) Въвеждане от клавиатура във файл и в масив ( чрез добавяне) данни за автобусни превози ( до 35 ) - Автогара Варна: маршрут, дата (1 до 31), номер на автобуса, фамилия на водача, брой пътници, цена на съответните билети, обща сума на билетите - през месец юли. Извеждане текущото съдържание на масива (файла) на екран;
      б) Извеждане на екран справка за всички превози през избран ден от месеца ( със запитване за нова справка);
      в) Извеждане на екран номерата на автобусите и общата сума на билетите от превозите, извършени с тях, подредени в низходящ ред по сумата.
                   Главна функция main() -с меню  за избор на функции и проврка за състоянието на данните.  Използване на функции с предаване на параметри.
       
    • от Plamy Gerova
      Здравейте, може ли помощ за курсовата ми задача?
      съставете програма с функции за:
      а) въвеждане от клавиатурата във файл и в масив( чрез добавяне) данни за морски пътувания (до 25)- Морска гара Варна: маршрут, кораб-име, име на капитан, цени на билетите- I,II класа, брой пасажери в съответната класа, обща сума на продадените билети- през избран месец от годината.Извеждане текущото съдържание на масива(файла) на екрана.
      б) извеждане на екран данните за превозите на кораб по въведено от клавиатурата име на кораб(със запитване за справка)
      в) извеждане на екран данните за морско пътуване с най- голяма обща сума на продадени билети.
      Главна функция main()- с меня за избор на функции и проверка за състоянието та данните.Използване на локални променливи и функции с предаване на параметри. 
       
    • от Десислава Нешева
      Здравейте на всички. Имам въпрос, свързан с програмата си++. Имам матрица, на която търся сума от отрицателните елементи. Въпроса ми е как ще стане това нещо да се запише във файл, искам резултата да се показва само във файла, а не цялата матрица. Ето моя код:

      #include <iostream>

      #include<fstream>

      int main()

      {

      int a[10][10],m,n;

      int sum=0;

      std::cout<<"rows= ";

      std::cin>>m;

      std::cout<<"cols= ";

      std::cin>>n;

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

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

      {

      std::cout<<"a["<<i<<"]["<<j<<"]= ";

      std::cin>>a[j];

          if(a[j]<0) sum=sum+a[j];

      std::cout<<"sum= "<<sum;}

      return 0;

      }

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

×

Информация

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