ответ:
#include
#include
using namespace std;
struct sponsor
{
char name[32];
char surname[32];
double sum;
};
sponsor* addstruct(sponsor* obj, const int amount);
void setdata(sponsor* obj, const int amount);
void showdata(const sponsor* obj, const int amount);
int main()
{
setlocale(lc_all, "rus");
sponsor* oursponsors = 0;
int sponsoramount = 0;
int yesornot = 0; // продолжить или остановить ввод данных
do
{
oursponsors = addstruct(oursponsors, sponsoramount);
setdata(oursponsors, sponsoramount);
sponsoramount++;
cout < < "продолжить ввод данных (1 - да, 0 - нет): ";
cin > > yesornot;
cin.get();
} while (yesornot ! = 0);
showdata(oursponsors, sponsoramount);
delete[] oursponsors;
return 0;
}
sponsor* addstruct(sponsor* obj, const int amount)
{
if (amount == 0)
{
obj = new sponsor[amount + 1]; // выделение памяти для первой структуры
}
else
{
sponsor* tempobj = new sponsor[amount + 1];
for (int i = 0; i < amount; i++)
{
tempobj[i] = obj[i]; // копируем во временный объект
}
delete [] obj;
obj = tempobj;
}
return obj;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void setdata(sponsor* obj, const int amount)
{
cout < < "фамилия: ";
cin.getline(obj[amount].surname, 32);
cout < < "имя: ";
cin.getline(obj[amount].name, 32);
cout < < "сумма пожертвования: ";
cin > > obj[amount].sum;
cin.get();
cout < < endl;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void showdata(const sponsor* obj, const int amount)
{
system("cls");
cout < < "№ " < < "фамилия\t" < < "имя\t" < < "сумма\t" < < endl;
cout < < "========================================" < < endl;
for (int i = 0; i < amount; i++)
{
cout < < i + 1 < < " " < < obj[i].surname < < '\t' < < obj[i].name < < '\t' < < obj[i].sum < < endl;
}
}
объяснение:
Популярные вопросы