Jumat, November 18, 2011

Program Mencari Nilai Tertinggi Terendah dan Rata rata C C++

Deskripsi: Program Mencari Nilai Tertinggi Terendah & Rerata


//
//  main.cpp
//  tugas strukdat 2
//
//  Created by FaqihMac on 24/10/11.
//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//

#include <iostream>

using namespace std;

struct data
{
int NPM;
char Nama[20];
int Nilai;
data* next;
};

struct hasil
{
float Maks, Min, rtrt;
int nomor2;
};

typedef data* pointer;
typedef pointer List;

void createList(List& First);
void insertFirst(List& First, pointer pBaru);
void traversal(List First, hasil& b);
void createElemen(pointer& pBaru);
void header();
float rata2(hasil b);

int main()
{
    
pointer p1;
List Ma10;
int pilih;
hasil b;
char pilih3;
b.nomor2 = 0;
header();
do
{
createList(Ma10);
        
cout << "Masukkan Berapa Banyak Data : "; cin >> pilih;
for (int i=0; i<pilih; i++)
{
createElemen(p1);
insertFirst(Ma10, p1);
}
        
system("cls");
        
traversal(Ma10, b);
cout << endl << "Coba Lagi? (Y)/(N) "; cin >> pilih3;
system("cls");
header();
} while (pilih3 == 'Y' || pilih3 == 'y');
    
return 0;
}

void createList(List& First)
{
First =0;
}

void insertFirst(List& First, pointer pBaru)
{
if(First ==0)
{
First = pBaru;
}
else
{
pBaru -> next = First;
First = pBaru;
}
}

void traversal(List First,hasil& a)
{
pointer pBantu;
pBantu = First;
int nomor = 1, pilih2;
a.Maks = 0, a.Min = 1000000;
float ratarata;
header();
cout << "No NPM       Nama        Nilai        Keterangan" << endl;
while(pBantu !=0)
{
if (pBantu -> Nilai > 69)
{
cout << nomor << "  " << pBantu -> NPM << "      " << pBantu -> Nama << "            " << pBantu -> Nilai << "         " << "Lulus" << endl;
}
else
{
cout << nomor << "  " << pBantu -> NPM << "      " << pBantu -> Nama << "            " << pBantu -> Nilai << "         " << "Gagal" << endl;
}
a.rtrt = a.rtrt + (pBantu -> Nilai);
if (pBantu -> Nilai >= a.Maks)
{
a.Maks = pBantu -> Nilai;
}
if (pBantu -> Nilai <= a.Min)
{
a.Min = pBantu -> Nilai;
}
pBantu = pBantu -> next;
nomor++, a.nomor2++;
}
cout << endl;
cout << "Menu : " << endl;
cout << "1. Rata-Rata" << endl;
cout << "2. Nilai Maks" << endl;
cout << "3. Nilai Min" << endl;
cout << "4. Tampilkan Semuanya" << endl << endl;
cout << "Masukkan pilihan : "; cin >> pilih2;
cout << endl;
switch(pilih2)
{
        case 1:
{
ratarata = rata2(a);
cout << "Rata-Rata : " << ratarata << endl;
}
            break;
        case 2:
{
cout << "Nilai Maks : " << a.Maks << endl;
}
            break;
        case 3:
{
cout << "Nilai Min : " << a.Min << endl;
}
            break;
        case 4:
{
ratarata = rata2(a);
cout << "Rata-Rata : " << ratarata << endl;
cout << "Nilai Maks : " << a.Maks << endl;
cout << "Nilai Min : " << a.Min << endl;
}
            break;
        default:
{
cout << " Menu tidak ada" << endl;
}
}
}

void createElemen(pointer& pBaru)
{
pBaru = new data;
cout << "NPM   : "; cin >> pBaru -> NPM;
cout << "Nama  : "; cin >> pBaru -> Nama;
cout << "Nilai : "; cin >> pBaru -> Nilai;
cout << endl;
pBaru -> next = NULL;
}

void header()
{
cout << "Program Mencari Nilai Tertinggi Terendah & Rerata" << endl;
}

float rata2(hasil b)
{
return (b.rtrt / b.nomor2);
}

Tidak ada komentar:

Posting Komentar