Just nu i M3-nätverket
Gå till innehåll

Akut hjälp sökes


kff

Rekommendera Poster

jag behöver akut hjälp med en lab (nedan). jag skrev det mesta men det fungerar inte, kan någon hjälpa mig även mot betalning

 

att skriva programmet. som jag sedan ska studera och lära mig ...

 

(kan behöva en annan gång också, ni kan skriva erat mail för direkt kontakt via msn eller skype)

 

 

 

 

Programmet ska läsa in data från en textfil exempelvis "CD.txt" som består av textrader. exempel:

 

Elvis Presley Jailhouse Rock

 

Massive Attack ProtectionosvDå inläsningen är klar ska arrayen sorteras med hjälp av en funktion deklarerad som sort(char * cd[], int antalSkivor). Sorteringen ska göras stigande, A först, Ö sist.

 

 

Efter sorteringen skapas en ny fil "sorterade_CDskivor.txt" dit du skriver den sorterade arrayen.

 

Länk till kommentar
Dela på andra webbplatser

Man kan inte lära sig programmering genom att studera vad någon annan har gjort utan man måste själv jobba sig igenom de olika momenten, med handledning om det behövs. Sannolikheten för att någon vill hjälpa dig ökar mycket om du presenterar vad du har åstadkommit och vad du får för problem.

Länk till kommentar
Dela på andra webbplatser

det jag skrivit hittills visas nedan men problemet är om fältetinnehåller raderna från filen eller inte och att sortera 2Dim fält och skriva den till en ny fil.

 

 

#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
int main(){
ifstream oldfile("skivor.txt");			//läser från filen...
ofstream newfile("sorterade_skivor.txt");  // skriver till filen...

const int CD=10;
char sort[CD][80];

for(int k=0;k<CD;k++){
for(int i=0;i<80;i++){
sort[k][i]<<oldfile;				//infogar textrader i string-celler
}}


char a[80];
char *pek;

for(int i=0;i<CD;i++){			
oldfile.getline(a,80);

for(int k=0;k<80;k++){
pek=&a[k];

a[k]>>(char)sort[i][k];
cout<<sort[i][k];}
} 



for(int k=0;k<80;k++){
for (int i=0;i<80;i++){
a>>sort[k][i];
}		}			

for(int i=0;i<CD;i++){
getline(oldfile,sort[1][i]);				//infogar textrader i string-celler
}


for (int k=0; k<10; k++){
int m=k;
for (int i=k+1; i<10; i++){
if((sort[i][i]) < (sort[m][m]))				//sorterar feltet i storleksordning 
{m=i;
char tmp = sort[k][k];
sort[k][k]=sort[m][m];
sort[m][m]=tmp;
}	}
}
for (int j=0;j<(10);j++)			
{newfile<<sort[j][j]<<endl;					//skriver datan till den nya filen (ut)
}


return 0;
}

Länk till kommentar
Dela på andra webbplatser

Jag kan inte se att du vare sig öppnar eller stänger filen oldfile. Sedan verkar du ha någon sorts inläsning två gånger från den, vilket knappast kan fungera:

sort[k]<<oldfile; //infogar textrader i string-celler

resp.

oldfile.getline(a,80);

Om ifstream http://www.cplusplus.com/reference/iostream/ifstream/

 

Du verkar förutsätta i koden att varje rad i oldfile är exakt 80 tecken lång. Du har inte skrivit i uppgiften att det gäller.

 

Enligt uppgiften ska du skriva en funktion som heter sort(). Den saknas så vitt jag kan se. Det är då opraktiskt att ha en matris som heter sort[][].

 

Du deklarerar en variabel pek som du tilldelar värden men aldrig använder.

 

a[k]>>(char)sort[k];

Det är en felaktig tilldelning.

 

Några saker att börja med i alla fall.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...