// App type: Empty Activity // File: MainActivity.kt // rename the package name in the below line with your folder name 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) ) } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter