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