#include #include #include #include using std::string; ifstream inData; ofstream outData; int bilKursus=0; class linklist { // courseInfo *first, *newnode, *last; private: struct courseInfo { string nama_kursus; int kredit; char gred; double cgpa; courseInfo *link; }*first; public: char name[30]; void CreateList(); void print(); void del(); void Menu(); void Insert(); void cgpa(); ~linklist(); }; linklist::~linklist() { first = NULL; } void linklist::print() { //cetak kandungan list courseInfo *newnode = first; cout<<"\n________________________________________"; cout<<"\n Nama Kursus\t\tKredit\tGred\n"; cout<<"________________________________________\n"; while (newnode!=NULL) { cout<nama_kursus; cout<kredit<<"\t"; cout<gred<nama_kursus<kredit<gred<link; } cout<<"________________________________________\n\n\n"; } //selit node baru di hadapan list void linklist::CreateList() { courseInfo *newnode,*temp; linklist pelajar; char nama[30]; string nama_kursus; int kredit; char gred; char teruskan; string kursus; int bil=0; first = NULL; inData>>bilKursus; do { inData>>nama_kursus>>kredit>>gred; kursus = nama_kursus; newnode = new courseInfo; newnode->nama_kursus = nama_kursus; newnode->kredit = kredit; newnode->gred = gred; newnode->link = first; first = newnode; bil++; } while (bil < bilKursus); } //hapuskan node ikut pilihan anda beri void linklist::del() { courseInfo *q,*r; string namakursus; q = first; system("cls"); print(); cout<<"------- GUGUR KURSUS------- "; cout<<"Masukkan kursus yang hendak didelete ==> "; cin>>namakursus; if( q->nama_kursus == namakursus ) { first = q->link; delete q; return; } r = q; while( q!=NULL ) { if( q->nama_kursus == namakursus ) { r->link = q->link; delete q; return; } r = q; q = q->link; } cout<<"\nElement "<>nama_kursus; cout<<"\nKredit : "; cin>>kredit; cout<<"\nGred : "; cin>>gred; cout<<"--------------------------------- "; if(first==NULL) { first=new courseInfo; first->nama_kursus=nama_kursus; first->kredit=kredit; first->gred=gred; first->link=NULL; } else { inData>>nama_kursus>>kredit>>gred; nama_kursus = nama_kursus; newnode = new courseInfo; newnode->nama_kursus = nama_kursus; newnode->kredit = kredit; newnode->gred = gred; newnode->link = first; first = newnode; bilKursus++; } print(); } void linklist::Menu() { int choice; system("cls"); print(); cout<<"\n****************************************"; cout<<"\n MENU "; cout<<"\n****************************************"; cout<<"\n1. Insert Record"; cout<<"\n2. Delete Record"; cout<<"\n3. Exit"; cout<<"\n4. CGPA"; cout<<"\n\n****************************************"; cout<<"\n\nEnter your choice : "; cin>>choice; switch(choice) { case 1: Insert(); Menu(); break; case 2: del(); Menu(); break; case 3: exit(0); break; case 4: cgpa(); break; default : cout<<"\nSorry, not in service"; } } void linklist::cgpa() { //pengiraan cgpa list courseInfo *newnode = first; double sum, total; double gred, cgpa; system("cls"); cout<<"\n\n________________________________________"; cout<<"\n Nama Kursus\t\tKredit\tgred\n"; cout<<"\n\n________________________________________\n"; while (newnode!=NULL) { cout<nama_kursus; cout<kredit; cout<gred<gred) { case'A':gred=4.00;break; case'B':gred=3.00;break; case'C':gred=2.00;break; default:gred=1.00;} sum=sum+(newnode->kredit*gred); total=total+newnode->kredit; cgpa=sum/total; newnode = newnode->link; } cout<<"\n\nNILAI CGPA :"<