Pengurutan Rangking dengan input melalui file txt
#include <iostream>
#include <fstream>
#include <conio.h>
#include <stdlib.h>
#include <sstream>
#include <string>
#include <cstdlib>
#include <cstring>
using namespace std;
int kata;
char val [100];
int validasi()
{
do
{
kata=0;
cin>>val;
for(int i=0; i<strlen(val); i++)
{
if(isdigit(val[i])==0)
kata++;
}
if(kata !=0)
cout<<"Input salah !\n"<<endl;
}
while(kata!=0);
return 0;
}
struct mahasiswa{
string nama;
int nilai;
}
mahasiswa[30];
int panjang;
int bacafile(){
string alltext="";
char s[1024];
fstream fh("D:/asistenin.txt");
int a =0;
int b=0;
while(fh.getline(s, 1024)){
alltext += s;
alltext +="\n";
if(a % 2 == 0){
mahasiswa[b].nama = s;
}
else{
mahasiswa[b].nilai = atoi(s);
panjang = b;
b++;
}
a++;
}
fh.close();
return 0;
}
int urutdata(){
int i, j, tmp;
string tmp2;
for(i=0; i< panjang - 1; i++){
for(j=i+1; j < panjang; j++){
if(mahasiswa[i].nilai < mahasiswa[j].nilai){
tmp = mahasiswa[i].nilai;
tmp2 = mahasiswa[i].nama;
mahasiswa[i].nilai = mahasiswa[j].nilai;
mahasiswa[i].nama = mahasiswa[j].nama;
mahasiswa[j].nilai = tmp;
mahasiswa[j].nama = tmp2;
}
}
}
return 0;
}
int tulisfile(){
int i;
int no=1;
ofstream siswa("D:/asistenout.txt", ios::out);
siswa<<"Nilai Mata Kuliah Algoritma dan Pemrograman";
for(i=0;i < panjang;i++){
siswa << no <<"."<< mahasiswa[i].nama << " " <<mahasiswa[i].nilai << endl;
no++;
}
}
int main(){
int input;
int nomer = 1;
int no=1;
cout << "Program Pengurutan Rangking" << endl;
bacafile();
panjang += 1;
cout << "Data dari D:/asistenin.txt (belum terurut)" << endl;
for(int i=0;i< panjang;i++){
cout << nomer <<" "<< mahasiswa[i].nama << "\t\t-" << mahasiswa[i].nilai << endl;
nomer++;
}
lagi:
cout<<endl;
cout << "Data siap diurutkan menurut rangking" << endl;
cout << "Tekan 1. untuk mulai mengurut\nTekan 0. untuk keluar" << endl;
validasi(); input=atoi(val);
cout<<endl;
if(input == 1){
urutdata();
cout<<"Nilai Mata Kuliah Algoritma dan Pemrograman";
for(int j=0;j< panjang;j++){
cout << no <<"."<< mahasiswa[j].nama << " - " << mahasiswa[j].nilai << endl;
no++;
}
tulisfile();
cout << "data baru telah disimpan ke file D:/asistenout.txt" << endl;
}
else if(input!=1||input!=2){
cout<<"Pilihan tidak tersedia";
goto lagi;
}
return 0;
}


0 comments:
Post a Comment