You are on page 1of 4

Experiment No 4.

MANIAKANTA UYYALA 21BCE9726

Aim: Write a program that takes the details of Students (name, roll number,
address, CGPA) and sort it in a non-decreasing order using Selection sort based on
CGPA.

Code:

import java.io.*;

public class CGPA {

public static double cgpacalc(int[] marks, int n)

double cgpa, sum = 0;

double grade[]=new double[n];

for (int i = 0; i < n; i++) {

grade[i] = (marks[i] / 10);

for (int i = 0; i < n; i++) {

sum += grade[i];

cgpa = sum / n;

return cgpa;

public static void print(String[] a,String[] b,double[] c,int n ) {

System.out.println(" Name | Regd.no | cgpa ");

for(int i=0;i<n;i++) {

System.out.printf("%-10s|%-12s|%.2f\n",a[i],b[i],c[i]);

public static void main(String args[]) throws NumberFormatException, IOException {

21BCE9726
BufferedReader bi = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Enter no of students details you are entering: ");

int n=Integer.parseInt(bi.readLine());

String names[]=new String[n];

String regd[]=new String[n];

int marks[][]=new int[n][5];

double cgpa[]=new double[n];

for(int i=0;i<n;i++) {

System.out.println("Enter name of student: ");

names[i]=bi.readLine();

System.out.println("Enter regd no. of student: ");

regd[i]=bi.readLine();

System.out.println("Enter marks divided with spaces: ");

String[] input=bi.readLine().split(" ");

for(int j=0;j<5;j++) {

marks[i][j]=Integer.parseInt(input[j]);

for(int i=0;i<n;i++) {

cgpa[i]=cgpacalc(marks[i],5);

System.out.println("before sorting");

print(names,regd,cgpa,n);

//selection sort

int remaining=n;

for(int i=0;i<n;i++) {

21BCE9726
double max=0;

int max_index=0;

for(int j=0;j<remaining;j++) {

if(cgpa[j]>max) {

max=cgpa[j];

max_index=j;

Double temp1=cgpa[remaining-1];

cgpa[remaining-1]=max;

cgpa[max_index]=temp1;

String temp2=names[remaining-1];

names[remaining-1]=names[max_index];

names[max_index]=temp2;

String temp3=regd[remaining-1];

regd[remaining-1]=regd[max_index];

regd[max_index]=temp3;

remaining--;

System.out.println("After sorting");

print(names,regd,cgpa,n);

OUTPUT:

21BCE9726
21BCE9726

You might also like