Member 12898483 Ответов: 1

В C++ структуры и функции файлового ввода-вывода


Привет, ребята.
Надеюсь, у вас все хорошо.

Получил задание как показано ниже:

"требуется написать программу, материал для записи того, что касается структуры и функций файлового ввода-вывода. Когда программа запускается, она должна перечислить информацию обо всех доступных материалах (из “pricelist.txt”) и позволяют пользователю выбрать материал, который он хочет заказать. Далее программа предложит пользователю ввести Вес (кг), который он хочет заказать. Наконец, программа спросит пользователя, подтвержден ли заказ. Если это подтвердится, программа запишет / добавит заказ к имени текстового файла “order.txt "

Вместе с вопросом-имя txt-файла “pricelist.txt " предоставляется информация, содержащая данные перечня материалов. Эти данные включают в себя название материала, сорт и цену за кг в долларах США.
Предлагаемый алгоритм для этой программы таков, как показано ниже, обратите внимание, что вы можете выбрать или не следовать приведенному алгоритму, но должны выполнять пункты, перечисленные в схеме маркировки.
1. Программа началась.
2. Создайте глобальную структуру для материала с соответствующими элементами данных.
3. Создайте массив структуры материала для хранения всех данных из текстового файла.
3.1 Загрузите все данные из “pricelist.txt " в массив, созданный на Шаге 2.
4. перечислите и отобразите материалы, загруженные в массив на шаге 2.1.
5. предложите пользователю выбрать материал, введя индексный номер.
5.1 запишите параметр, введенный пользователем.
6. Приглашение пользователю ввести вес в кг для заказа.
6.1 запишите вес.
7. на основе опции и веса, записанных в шаге 4 и 5, рассчитайте и запросите пользователя, если заказ будет подтвержден.
7.1 если это подтверждено, то приложите заказ к файлу “order.txt".
7.2 В противном случае сообщите пользователю, что данные не были записаны.
8. Подскажите, если пользователь хотел бы продолжить заказ.
8.1 если да, то перезапустите Шаг 4.
8.2 В противном случае завершите программу.
9. Конец программы.

---
Так что программа выше,

я попытался решить его, как показано ниже

Но я не уверен, как он будет вычислять скорость с весом.
Кто-нибудь может помочь, пожалуйста?

Что я уже пробовал:

--
#include<iostream>
#include<fstream>
using namespace std;

int main()
{

	string filename= "pricelist.txt";
	string descrip;
	string grade;
	double price;

	ifstream inFile;

	inFile.open(filename.c_str());
	
	if (inFile.fail())
	{
		cout <<"\n The file was not sucessfully opened. \n Please check that the file currently exists.";
		
			exit(1);
	}
	
	inFile >> descrip >> grade >> price;
	while (inFile.good())
	{
		cout << descrip << ' ' << grade << ' ' << price << endl;
		inFile >> descrip >> grade >> price;
		
		}
	inFile.close();
		
	}
	

	
struct Global
{
	string Material_name;
	char grade;
	double price_per_kg;
};

Global first;
		
	first.Material_name="Cobalt";
	first.grade= "A";
	first.price_per_kg = 6.5;		
	
	Global second={"Cobalt",B,4.5};	
	Global third={"Nickel",A,2.68};	
	Global fourth={"Nickel",B,1.78};
	Global fifth={"Tin",A,5.12};
	Global six={"Tin",B,2.98};
	Global seven={"Zinc",A,0.88};
	Global eight={"Zinc",B,0.49};
		
	display(first);
	display(second);
	display(third);
	display(fourth);
	display(fifth;
	display(six);
	display(seven);
	display(eight);
	
	int num
	double weight
	
	cout<<"Enter an index number to choose a material  "<<endl;
	cin>>num

	cout<<"Enter the desired weight in kg for the order"<<endl;
	cin>>weight

	Price=global[num]*weight
	
	cout<<"You have selected <<global[i] ;
	/n to continue Press Y or N to exit
	
	
	return 0;
}	



{
	ofstream out2File;
	out2File.open("order.txt",ios::app);  
	
	cout<<"Writing to file"<<endl;
	out2File<<"Material Name ";	
	out2File<<"Weight"<<endl;			
	
	out2File<<"Price ";
	out2File<<"6.7";			
	
	out2File.close();
	cout<<"finished writing, file close"<<endl; 
	system("PAUSE");
	return 0;
}

Richard MacCutchan

Помочь в чем? Пожалуйста, объясните, с какой именно частью программы у вас возникли проблемы и какие ошибки или недействительные результаты вы видите.

Member 12898483

на самом деле часть расчета, после того как пользователь выбирает материал , он должен рассчитать цену. та часть.

Richard MacCutchan

Хорошо, а в чем именно заключается трудность выполнения расчета?

1 Ответов

Рейтинг:
2

KarstenK

Для такого расчета необходимо создать массив.

Global materials[8];//zero indexed
  //first as sample
  materials[0].Material_name="Cobalt";
  materials[0].grade= "A";
  materials[0].price_per_kg = 6.5;

Price=global[num].price_per_kg *weight; //access to array of structs and its member for calculating the price

Этот руководство это должно помочь понять.