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

Проблем със задачка по програмиране

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


Здрасти!Условието на задачата е:

Съставете програма за моделиране на откриване(и съхранение във файл и масив-чрез добавяне) и актуализация(внасяне и теглене) на срочни парични влогове от определен брой вложители (до 30).

Данните за всеки вложител да са с примерна структура:Име,Адрес,М3(сума,дата);М6(сум а,дата);М12(сума,дата),където датата отбелязва последното теглене или внасяне получената текуща парична сума,съответно за трмесечен,шестмесечен и годишен влог.
Програмата да осигурява и функции за:
а)Въвеждане и актуализация на годишните лихви за всеки срочен влог.
б)Извеждане и справка за вложител по име.
в)Преизчисляване на влоговете за текущата дата и извеждане на пълен списък на вложителите със съответните влогове,сортиране във възходящ ред.

Общо взето от внасяне на сметката до извеждане на всички вложители сортирани в списък нещо не се получава.

Ето какво съм направил:

#include<iostream>#include<cmath>using namespace std;#define N 30typedef struct{ char data[12];  double suma;}mesec;typedef struct{ char ime[25];  char adres[20];  mesec M3,M6,M12;  double smetka;}vlojiteli;void input();void vnasqne();void teglene();void aktualizaciq();void spravka();void izvejdane();int menu();void disp();void load();void save();vlojiteli A[N];int top=0;int main(){int i;cout<<"n Zarejdane ot filen";load();	do{		i=menu();	    switch(i)	{  case 1:input();break;		case 2:vnasqne();break;	  case 3:teglene();break;		  case 4:aktualizaciq();break;			  case 5:spravka();break;				  case 6:izvejdane();break;				     case 7:save();break;				  	 		}}while(i!=8);}int menu(){    int ch;    cout<<"n MENU";    cout<<"n 1.Vyvejdane";	cout<<"n 2.Vnasqne po smetka";    cout<<"n 3.Teglene ot smetka";    cout<<"n 4.Aktualizaciq na lihvi";    cout<<"n 5.Spravka za vlojitel po Ime";    	cout<<"n 6.Izvejdane na vsichki vlojiteli sortirani v spisyk";	cout<<"n 7.Syhrani fail";	cout<<"n 8.Izhod"<<endl;    do    {        cout<<"n Izbor: ";        cin>>ch;    }    while(ch<1||ch>8);        return(ch);}void disp(int i){ cout<<"n Ime:"<<A[i].ime;  cout<<"t Adress:"<<A[i].adres;  cout<<"n M3 data:"<<A[i].M3.data<<"  M3 suma:"<<A[i].M3.suma<<endl;  cout<<"n M6 data:"<<A[i].M6.data<<"  M6 suma:"<<A[i].M6.suma<<endl;  cout<<"n M12 data:"<<A[i].M12.data<<"  M12 suma:"<<A[i].M12.suma<<endl;  cout<<"n Smetka:"<<A[i].smetka;}void input(){int i,n;do{cout<<"Broi vlojiteli:";    cin>>n;  }while (n<1||n>N);     fflush(stdin);		for(i=top;i<top+n;i++)	{cout<<"nIme:";cin>>A[i].ime;	cout<<"nAdress:";cin>>A[i].adres;	cout<<"nM3 data:"; cin>>A[i].M3.data;	cout<<"nM3 suma:"; cin>>A[i].M3.suma; A[i].smetka+=A[i].M3.suma;	cout<<"nM6 data:"; cin>>A[i].M6.data;	cout<<"nM6 suma:"; cin>>A[i].M6.suma; A[i].smetka+=A[i].M6.suma;	cout<<"nM12 data:"; cin>>A[i].M12.data;	cout<<"nM12 suma:"; cin>>A[i].M12.suma; A[i].smetka+=A[i].M12.suma;	}	top+=n;}void vnasqne(){int n,p,i;	do{cout<<"nIzberete nomer na vlojitel:";	cin>>n;} while(n<1||n>N);	cout<<"nIzberete vnoska za trimesechie,polovin godina ili edna godina:";    cin>>p;	if(p==3)      for(i=n;i<n;i++)	  {cout<<"vyvedete data na vnasqne:";cin>>A[i].M3.data;	cout<<"vyvedete suma na vnasqne:";cin>>A[i].M3.suma;A[i].smetka+=A[i].M3.suma;      	}	if(p==6)      for(i=n;i<n;i++)	  {cout<<"vyvedete data na vnasqne:";cin>>A[i].M6.data;	cout<<"vyvedete suma na vnasqne:";cin>>A[i].M6.suma;A[i].smetka+=A[i].M6.suma;      	}	if(p==12)      for(i=n;i<n;i++)	  {cout<<"vyvedete data na vnasqne:";cin>>A[i].M12.data;	cout<<"vyvedete suma na vnasqne:";cin>>A[i].M12.suma;A[i].smetka+=A[i].M12.suma;      	}}void teglene(){ int i,n;  double s;   do{cout<<"nIzberete nomer na vlojitel:";    cin>>n;} while(n<1||n>N);	cout<<"n Izberete sumata,koqto iskate da izteglite:";	cin>>s;		for(i=n;i<n;i++)	{if(s<A[i].smetka)	A[i].smetka=A[i].smetka-s;	else cout<<"Nqmate tolkowa pari!";	}}void aktualizaciq(){ int n,i;  double p; do{cout<<"nVyvedete srochen vlog,za koito iskate da promenite lihvata:"; cin>>n;} while(n!=3 || n!= 6 || n!=12); cout<<"nVyvedete lihva v realno chislo:"; cin>>p;  for(i=0;i<N;i++)  {	  if(n==3) A[i].M3.suma = A[i].M3.suma * p + A[i].M3.suma;	  if(n==6) A[i].M6.suma = A[i].M6.suma * p + A[i].M6.suma;	  if(n==12) A[i].M12.suma = A[i].M12.suma * p + A[i].M12.suma;  } }void spravka(){int i; char n[15];  cout<<"nVyvedi ime:";cin>>n;  for(i=0;i<N;i++)  {if(A[i].ime==n) disp(i);}}void izvejdane(){int i,k,z; double temp;for(i=0;i<N;i++)	for(z=i+1;z<N+1;z++)		if(A[i].smetka>A[z].smetka)		{temp=A[i].smetka;           A[i].smetka=A[z].smetka;            A[z].smetka=temp;         }for(i=0;i<N;i++)	disp(i);}void load() {    FILE *fp;    int i;    if((fp=fopen("vlojiteli12.dat", "rb"))==NULL)    {        cout<<"n EROR 404: File not found!n "; return;    }    if(fread(&top, sizeof(top), 1, fp)!=1)    {        cout<<"n Error size"; exit(1);    }        for(i=0;i<top;i++)    if(fread(&A[i], sizeof(vlojiteli),1,fp)!=1)    {        cout<<"n Error reading structure!"; exit(1);    }}void save() {    FILE *fp;    int i;    if((fp=fopen("vlojiteli12.dat", "wb"))==NULL)    {        cout<<"n Error saving file!"; return;    }    if(fwrite(&top, sizeof(top), 1, fp)!=1)    {        cout<<"n Error w top"; exit(1);    }        for(i=0;i<top;i++)    if(fwrite(&A[i], sizeof(vlojiteli),1,fp)!=1)    {        cout<<"n Error writing str!"; exit(1);    }    fclose(fp);}

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


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

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

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

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

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

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

Вход

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

Вход

×

Информация

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