Student Application

PHOTO EMBED

Mon Nov 04 2024 04:57:15 GMT+0000 (Coordinated Universal Time)

Saved by @MAD

package com.example.studentdata 

 

import android.os.Bundle 

import androidx.activity.ComponentActivity 

import androidx.activity.compose.setContent 

import androidx.compose.foundation.layout.* 

import androidx.compose.material3.* 

import androidx.compose.runtime.Composable 

import androidx.compose.ui.Modifier 

import androidx.compose.ui.unit.dp 

import androidx.compose.ui.unit.sp 

import androidx.compose.ui.text.font.FontWeight 

 

data class Student( 

    val name: String, 

    val rollNumber: Int, 

    val marks: Map<String, Int> 

) { 

    val totalMarks: Int = marks.values.sum() 

    val percentage: Float = totalMarks / marks.size.toFloat() 

} 

 

class MainActivity : ComponentActivity() { 

    override fun onCreate(savedInstanceState: Bundle?) { 

        super.onCreate(savedInstanceState) 

        val student = Student( 

            name = "John Doe", 

            rollNumber = 12345, 

            marks = mapOf( 

                "Mathematics" to 85, 

                "Physics" to 90, 

                "Chemistry" to 78, 

                "English" to 88, 

                "Computer Science" to 95 

            ) 

        ) 

 

        setContent { 

            StudentInfoApp(student = student) 

        } 

    } 

} 

 

@Composable 

fun StudentInfoApp(student: Student) { 

    MaterialTheme { 

        Surface( 

            modifier = Modifier.fillMaxSize(), 

            color = MaterialTheme.colorScheme.background 

        ) { 

            StudentInfo(student) 

        } 

    } 

} 

 

@Composable 

fun StudentInfo(student: Student) { 

    Column( 

        modifier = Modifier 

            .padding(16.dp) 

            .fillMaxSize() 

    ) { 

        Text( 

            text = "Student Information", 

            fontSize = 24.sp, 

            fontWeight = FontWeight.Bold, 

            modifier = Modifier.padding(bottom = 16.dp) 

        ) 

 

        Text( 

            text = "Name: ${student.name}", 

            fontSize = 18.sp, 

            modifier = Modifier.padding(bottom = 8.dp) 

        ) 

 

        Text( 

            text = "Roll Number: ${student.rollNumber}", 

            fontSize = 18.sp, 

            modifier = Modifier.padding(bottom = 16.dp) 

        ) 

 

        Text( 

            text = "Marks:", 

            fontSize = 20.sp, 

            fontWeight = FontWeight.Bold, 

            modifier = Modifier.padding(bottom = 8.dp) 

        ) 

 

        student.marks.forEach { (subject, mark) -> 

            Row( 

                modifier = Modifier 

                    .fillMaxWidth() 

                    .padding(vertical = 4.dp), 

                horizontalArrangement = Arrangement.SpaceBetween 

            ) { 

                Text(text = subject, fontSize = 18.sp) 

                Text(text = "$mark", fontSize = 18.sp) 

            } 

        } 

 

        Spacer(modifier = Modifier.height(16.dp)) 

 

        Text( 

            text = "Total Marks: ${student.totalMarks}", 

            fontSize = 18.sp, 

            fontWeight = FontWeight.Bold 

        ) 

 

        Text( 

            text = "Percentage: %.2f%%".format(student.percentage), 

            fontSize = 18.sp, 

            fontWeight = FontWeight.Bold, 

            modifier = Modifier.padding(top = 8.dp) 

        ) 

    } 

} 
content_copyCOPY