Assisgnment Foormat

Download as pdf or txt
Download as pdf or txt
You are on page 1of 67

VEER NARMAD SOUTH GUJARAT UNIVERSITY, SURAT .

Second Year
Bachelor of Computer Application (S.Y.B.C.A.)

Semester - IV

Vimal Tormal Poddar BCA College


Pandesara ,Surat.

File Submission

YEAR: 2021 - 22

Submitted by
Patil Vaibhav
Roll No. :-131
Exam No.:- 2020050041

Submitted To
Ms. Aarti Jariwala
INDEX
Name: Patil Vaibhav
Class: SYBCA (SEM-4) Div.: B Roll No. 131 Exam Seat No. :- 2020050041
Subject: 406 – Mobile Application Development – II PRACTICAL FILE
Academic Year: 2021-22

Sr. Page
Program Defination Signature
No No.

1. 1
Railway Reservation
2. User Registration Page 16

3. ImageSlider 22

4. Food Delivery Application 27

5. Factorial of a number 42

6 Armstrong Number 44

7 College System Application 47


Assignment-1

Q.1) Create a Railway reservation utility for Android device which


will accept detail such as train name, reservation date, time,
passenger name , Number of ticket, class of
ticket (i.e. SS,SL,CC,1A,2A,3A) etc.
Make use of proper UI: i.e. for name, address use edit text, for
train name use single-choice list dialog, for reservation date use
date picker dialog, for reservation time use time picker dialog, for
passenger name and number of ticket use EditText, Number of
ticket only accepts numeric value. Perform following task:
Application have a next button, On click of next button entered
detail should display to the next activity.(Hints: pass all data to
next activity using intent).

Ans :-

MainActivity.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"

Page 1
android:layout_height="100dp"
android:layout_marginTop="20dp"
android:layout_centerHorizontal="true"
app:srcCompat="@drawable/logo" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="120dp"
android:orientation="vertical">

<Spinner
android:id="@+id/serchtrain"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="From"
android:id="@+id/from"
android:layout_marginTop="10dp"
android:textSize="20sp"/>

<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:id="@+id/spifrom"/>

Page 2
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To"
android:layout_marginLeft="70dp"
android:id="@+id/to"
android:layout_marginTop="10dp"
android:textSize="20sp"/>

<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:id="@+id/to1"/>
</LinearLayout>

<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="Enter Passenger Name"
android:inputType="textPersonName"
android:textSize="20sp" />

<EditText
android:id="@+id/address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="Enter Your Address"
android:inputType="textPostalAddress"
android:textSize="20sp" />

Page 3
<EditText
android:id="@+id/numticket"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="Enter number of Ticket"
android:inputType="number"
android:textSize="20sp" />

<EditText
android:id="@+id/selectdate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10sp"
android:hint="Select date"
android:inputType="date"
android:onClick="setDate"
android:textSize="20sp" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">

<TextView
android:id="@+id/viewclass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="select class"
android:textSize="20dp" />

<Spinner
android:id="@+id/selectclass"

Page 4
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp" />
</LinearLayout>

<Button
android:id="@+id/submmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="140dp"
android:layout_marginTop="20dp"
android:text="subbmit" />

</LinearLayout>

</RelativeLayout>

MainActivity2.xml

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity2">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="200dp"
android:orientation="vertical">

Page 5
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">

<TextView
android:id="@+id/trnname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="train name: "
android:textSize="20sp" />

<TextView
android:id="@+id/trnname1"
android:layout_width="wrap_content"
android:textSize="20sp"
android:layout_height="wrap_content"
android:ems="15" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">

<TextView
android:id="@+id/pesname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Passenger name: "
android:textSize="20sp" />

Page 6
<TextView
android:id="@+id/pesname1"
android:layout_width="wrap_content"
android:textSize="20sp"
android:layout_height="wrap_content"
android:ems="12" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">

<TextView
android:id="@+id/pesaddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Address: "
android:textSize="20sp" />

<TextView
android:id="@+id/pesaddress1"
android:layout_width="wrap_content"
android:textSize="20sp"
android:layout_height="wrap_content"
android:ems="15" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">

Page 7
<TextView
android:id="@+id/numbertic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Number of Ticket: "
android:textSize="20sp" />

<TextView
android:id="@+id/numbertic1"
android:layout_width="wrap_content"
android:textSize="20sp"
android:layout_height="wrap_content"
android:ems="15" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">

<TextView
android:id="@+id/ticdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date: "
android:textSize="20sp" />

<TextView
android:id="@+id/ticdate1"
android:layout_width="wrap_content"
android:textSize="20sp"
android:layout_height="wrap_content"

Page 8
android:ems="15" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">

<TextView
android:id="@+id/ticclass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select class: "
android:textSize="20sp" />

<TextView
android:id="@+id/ticclass1"
android:layout_width="wrap_content"
android:textSize="20sp"
android:layout_height="wrap_content"
android:ems="14" />
</LinearLayout>

</LinearLayout>

</RelativeLayout>

MainActivity.java
package com.example.railway_reservation;

import androidx.appcompat.app.AppCompatActivity;

Page 9
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Calendar;

public class MainActivity extends AppCompatActivity {


private DatePickerdatePicker;
private Calendar calendar;
private TextViewdateView;
private int year, month, day;

Spinner spinner,spinner1,spinner2,spinner3;
EditTextname,address,numticket,date;
Button submmit;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

name=(EditText)findViewById(R.id.name);
address=(EditText)findViewById(R.id.address);
numticket=(EditText)findViewById(R.id.numticket);
date=(EditText)findViewById(R.id.selectdate);

Page 10
submmit=(Button)findViewById(R.id.submmit);
spinner = (Spinner) findViewById(R.id.serchtrain);
spinner1 = (Spinner) findViewById(R.id.selectclass);
spinner2 = (Spinner) findViewById(R.id.spifrom);
spinner3= (Spinner) findViewById(R.id.to1);

submmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

//String str = spinner.getText().toString();


String str1=name.getText().toString();
String str2=address.getText().toString();
String str3=numticket.getText().toString();
String str4=date.getText().toString();
//String str5=spinner1.getText().toString();

Intent i = new Intent(getApplicationContext(),MainActivity2.class);

//i.putExtra("ONE",str);
i.putExtra("TWO",str1);
i.putExtra("THREE",str2);
i.putExtra("FOUR",str3);
i.putExtra("FIVE",str4);
// i.putExtra("SIX",str5);
startActivity(i);

}
});
//This part is datepicker
dateView = (TextView) findViewById(R.id.selectdate);
calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);

Page 11
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
showDate(year, month+1, day);

//This part is serchTrain

String[] trainname={"12723\tAndhra Pradesh Express","22416\tAndhra Pradesh


Express","12268\tBctDuronto Express"};
String[] trainclass={"SS","SL","CC","1A","2A","3A"};
String[] from={"Surat","ahemdabad","Vadodara","Pune","Udhana","Mumbai"};
String[] to={"Pune","ahemdabad","Surat","Vadodara","Udhana","Mumbai"};

ArrayAdapter<String> adapter=new ArrayAdapter<>(this,


android.R.layout.simple_dropdown_item_1line,trainname);
ArrayAdapter<String> adapter0=new ArrayAdapter<>(this,
android.R.layout.simple_dropdown_item_1line,trainclass);
ArrayAdapter<String> adapter1=new ArrayAdapter<>(this,
android.R.layout.simple_dropdown_item_1line,from);
ArrayAdapter<String> adapter2=new ArrayAdapter<>(this,
android.R.layout.simple_dropdown_item_1line,to);
spinner.setAdapter(adapter);
spinner1.setAdapter(adapter0);
spinner2.setAdapter(adapter1);
spinner3.setAdapter(adapter2);

//This part is Date Picker


public void setDate(View view){
showDialog(999);
Toast.makeText(getApplicationContext(), "ca",
Toast.LENGTH_SHORT)
.show();
}

Page 12
protected Dialog onCreateDialog(int id){
if (id==999){
return new DatePickerDialog(this,myDateListener, year, month, day);
}
return null;
}

private DatePickerDialog.OnDateSetListenermyDateListener = new


DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0,int arg1, int arg2, int arg3) {

showDate(arg1, arg2+1, arg3);


}
};
private void showDate(int year, int month, int day) {
dateView.setText(new StringBuilder().append(day).append("/")
.append(month).append("/").append(year));

}
}

MainActivity2.java
package com.example.railway_reservation;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {


TextViewsertrain,pesname,pesadd,pasnum,pesdate,pesclass;

Page 13
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);

sertrain=(TextView) findViewById(R.id.trnname1);
pesname=(TextView) findViewById(R.id.pesname1);
pesadd=(TextView) findViewById(R.id.pesaddress1);
pasnum=(TextView) findViewById(R.id.numbertic1);
pesdate=(TextView) findViewById(R.id.ticdate1);
pesclass=(TextView) findViewById(R.id.ticclass1);

Intent i = getIntent();
// String str=i.getStringExtra("ONE");
String str1=i.getStringExtra("TWO");
String str2=i.getStringExtra("THREE");
String str3=i.getStringExtra("FOUR");
String str4=i.getStringExtra("FIVE");
//String str5=i.getStringExtra("ONE");

//sertrain.setText(str);
pesname.setText(str1);
pesadd.setText(str2);
pasnum.setText(str3);
pesdate.setText(str4);
// pesclass.setText(str5);

Page 14
Assignment – 2

Page 15
Q-1. Create a User Registration page including following Fields.

❖ Name
❖ Email ( use TextWatcher to check user provide Email)
❖ DOB (Use DateTimePicker Dialog)
❖ City (Use Spinner to select City)
❖ Course_Name (Use AutoCompleteTextView to suggest Course
name like BCA, BBA, MCA, etc )
❖ Provide Save Button Which shows Toast Message that User is
Created.

Ans :-

MainActivity.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="18dp"
android:background="@color/purple_200"
tools:context=".MainActivity">

<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Name"
android:textStyle="bold"
android:textSize="25dp"/

Page 16
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:inputType="textEmailAddress"
android:hint="Enter E-Mail"
android:textSize="25dp"
android:layout_below="@+id/name"/>

<EditText
android:id="@+id/date"
android:onClick="datepicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Date Of Birth"
android:textSize="25dp"
android:textStyle="bold"
android:layout_below="@id/email"/>

<Spinner
android:id="@+id/city"
android:layout_width="match_parent"
android:layout_height="45dp"
android:textStyle="bold"
android:layout_below="@id/date"
android:scrollbarSize="25dp"/>

<AutoCompleteTextView
android:id="@+id/coursename"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/city"

Page 17
android:textStyle="bold"
android:hint="Enter Course Name"
android:textSize="25dp"/>

<Button
android:id="@+id/btnsave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:textStyle="bold"
android:textSize="30dp"
android:layout_below="@id/coursename"
android:layout_centerHorizontal="true"/>

</RelativeLayout>

MainActivity.java
package com.example.s128_registration;

import androidx.appcompat.app.AppCompatActivity;
import android.app.DatePickerDialog;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.Calendar;

Page 18
public class MainActivity extends AppCompatActivity {
EditText name,email,date;
Spinner city;
Button btnsave;
String[] course =
{"BCA","BBA","MCA","B.COM","M.Com","MBA","DIPLOMA","ITI"};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

date=(EditText) findViewById(R.id.date);
city=(Spinner)findViewById(R.id.city);
btnsave = (Button)findViewById(R.id.btnsave);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,


android.R.layout.select_dialog_item,course);
AutoCompleteTextView coursename =
(AutoCompleteTextView)findViewById(R.id.coursename);
coursename.setThreshold(1);
coursename.setAdapter(adapter);
coursename.setTextColor(Color.BLACK);

String [] cityname = new String[]


{"Select
City","Surat","Ahemdabad","Vadodara","Pune","Delhi","Mumbai","Valsad","B
haruch"};
ArrayAdapter<String> adapter1 =new

ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,city
name);
city.setAdapter(adapter1);

Page 19
btnsave.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "User is Created",
Toast.LENGTH_SHORT).show();
}
});
}

public void datepicker(View view) {


Calendar mcurrentDate = Calendar.getInstance();
int mYear = mcurrentDate.get(Calendar.YEAR);
int mMonth = mcurrentDate.get(Calendar.MONTH);
int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);
DatePickerDialog mDatePicker;
mDatePicker = new DatePickerDialog(MainActivity.this, new
DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker datepicker, int selectedyear,
int selectedmonth, int
selectedday) {
selectedmonth = selectedmonth + 1;
date.setText("" + selectedday + "/" + selectedmonth + "/" +
selectedyear);
}
}, mYear, mMonth, mDay);
mDatePicker.show();
}
}

Page 20
Q – 2>

Output :-

Page 21
Q-2. Create ImageSlider with Button below it to View it seperately in
Different Activity.

Ans.
MainActivity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"

android:layout_height="match_parent"
tools:context=".MainActivity"
android:padding="20dp"
android:orientation="vertical">
<ImageSwitcher
android:layout_width="match_parent"
android:layout_height="250dp"

android:id="@+id/imageswitcher"
/>
<Button
android:layout_width="wrap_content"

android:layout_height="wrap_content"
android:id="@+id/next"
android:text="Next"
android:layout_marginTop="100dp"

android:layout_gravity="center"
/>

</LinearLayout>

Page 22
MainActivity.java
package com.example.S128_ImageSlider;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.ImageSwitcher;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.ViewSwitcher;

public class MainActivity extends AppCompatActivity {

ImageSwitcher imageSwitcher;

Button button;

int imageIdList[]={R.drawable.image1,R.drawable.image2,R.drawable.image3};

int count=imageIdList.length;

int currentIndex=-1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = (Button) findViewById(R.id.next);

imageSwitcher=(ImageSwitcher) findViewById(R.id.imageswitcher);

Page 23
imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {

@Override

public View makeView() {

ImageView imageView = new ImageView(getApplicationContext());

imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup

.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));

return imageView;

});

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

currentIndex++;

if (currentIndex==count)

currentIndex=0;

imageSwitcher.setImageResource(imageIdList[currentIndex]);

});

Page 24
Output :-

Page 25
Page 26
Assignment - 3
Create a Food Delivery Application, showing Custom List Of
Food Items with itsrespective price. Clicking of any Food
Item, will open another layout with all thedetails of the
selectedItem. In Detail layout use Image Slider component
withmultiplefoodimages.
Ans.:-
Main.dart
import

'package:flutter/material.dart'

;import'home_page.dart';

voidmain()

{runApp(constMy

App());

classMyApp extendsStatelessWidget{
constMyApp({Key?key}):super(key:key);

@override
Widgetbuild(BuildContextco
ntext){returnMaterialApp(

debugShowCheckedModeBanner:

Page 27
false,home:HomePage(),

);
}

food_item_widget.dart
import'package:flutter/material.dart';

class FoodItemWidget extends

StatelessWidget

{finalStringimagePath;

final String

name;finaldo

ubleprice;

constFoodItemWidget(
{Key?key,

requiredthis.image
Path,required

this.name,required

this.price})

: super(key:key)

@override
Widgetbuild(BuildContext

Page 28
context){returnContainer(

margin: const

EdgeInsets.only(bottom:

16),height:250,

width:double.infi

nity,child:Card(e

levation:10,

child:

Column(c

hildren:[E

xpanded(

flex:3,
child:Container(

decoration:

BoxDecoration(color:Col

ors.blue,image:Decoratio

nImage(

image:AssetImage(imagePath),fit:BoxFit

.fill)))),Expanded(
child:Padding(
padding:const

Page 29
EdgeInsets.symmetric(horizontal:16),chil

d:Row(

mainAxisAlignment:

MainAxisAlignment.spaceBetween,children:

Text(

nam

e,

style

TextStyle(fontWeight:FontWeight.bold,fontSize:20),
),
Text(
"₹

$price",

style:
TextStyle(fontWeight:FontWeight.bold,fontSize:20),
)
],
),
),
flex:1,
)
],

Page 30
),
),
);

}
}

fooditem_detail.dart

import

'package:flutter/material.dart'
;import'/fooditem.dart';

class FoodItemDetail extends

StatelessWidget {finalStringfoodId;

constFoodItemDetail({Key? key, requiredthis.foodId}):super(key:key);

@override
Widget build(BuildContext

context) {final_fooditem=

FoodItem.foodItems.firstWhere((element)=>element.id==

foodId);returnScaffold(

backgroundColor:

Page 31
Colors.grey.shade200,appBar:A

ppBar(

backgroundColor:

Colors.white,elevation:8,

foregroundColor:Colors.black,
),
body:

Column(c

hildren:[E

xpanded(

flex:2,
child:PageView.builder(
itemCount:_fooditem.images.length,

itemBuilder: (context,

index)

{returnContainer(

margin:constEdgeInsets.symmetric(horizontal:16),

child:Image.asset(

_fooditem.images[in

dex],fit:BoxFit.fitW

idth,

Page 32
),
);
},
),
),
const

SizedBox(h

eight:16,
),
Expanded(c

hild:Paddin

g(

padding:constEdgeInsets.symmetric(horiz

ontal:16),child:Column(

children

[Text(

_fooditem.descriptio

n,style:
constTextStyle(color:Colors.deepPurple,fontSize:18),
)
],
),
),

Page 33
flex:3,
)

],
),
);
}
}

fooditem.dart

classFoodItem

{final String

id;finalString

name;

finalList<String>im

ages;finaldoublepric

e;
finalStringdescription;

FoodItem({required this.name,

Page 34
required

this.price,requiredt

his.description,

});

staticList<FoodItem>foodIt

ems=[FoodItem(

name:

"Manchurian",id

:"101",
images:[

"assets/images/manchuria

n1.jpg","assets/images/ma

nchurian2.jpg","assets/im

ages/manchurian3.jpg"

],

price: 120,

Page 35
descripti
on:

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt utlabore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi utaliquip ex ea commodo consequat. Duis
aute irure dolor in reprehenderit in voluptate velit esse cillumdolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
officiadeseruntmollitanimidestlaborum.",
),
FoodItem(
name:

"Noodles",id:

"102",

images:["assets/images/no

odles1.jpg","assets/image

s/noodles2.jpg",

],
price:

100,desc

ription:

"Noodles are a type of food made from unleavened dough which is rolled flat
and cut, stretched orextruded, into long strips or strings. Noodles can be
refrigerated for short-term storage or dried and storedforfuture use.",
),
FoodItem(
name:

Page 36
"Icecream",id:

"103",

images:["assets/ima

ges/i1.jpg","assets/

images/i2.jpeg","a

ssets/images/i3.jpe

g",

"assets/images/i4.jpeg",
],
price:

100,desc

ription:

Page 37
"Ice cream is a sweetened frozen food typically eaten as a snack or dessert. It
may be made frommilk or cream and is flavoured with a sweetener, either sugar or
an alternative, and a spice, such as cocoaor vanilla, or with fruit such as
strawberries or peaches. It can also be made by whisking a flavored
creambaseandliquidnitrogentogether.",
),
];
}

home_page.dart
import

'package:flutter/material.dart'

;import'/food_item_widget.d

art';import'/fooditem.dart';

import'/fooditem_detail.dart';

class HomePage extends

StatelessWidget

{HomePage({Key?

key}):super(key:key);final

_foodItems =

FoodItem.foodItems;@override

Widgetbuild(BuildContextco

ntext){returnScaffold(

appBar:AppBar(

Page 38
title:constText("J_123_FoodDelivery"),
),
body:SizedBox(
// padding: const

EdgeInsets.symmetric(horizontal:

16),height:double.infinity,

width:

double.infinity,chi

ld:ListView.builde

r(

itemCount: _foodItems.length,padding:

const EdgeInsets.all(20),

itemBuilder: (context,

index)

{returnGestureDetector(

onTap:()

{Navigator.of(context).push(Material

PageRoute(builder:(context) {

returnFoodItemDetail(foodId:_foodItems[index].id);
},
));
},

Page 39
child:FoodItemWidget(
imagePath:_foodItems[index].i

mages[0],name:_foodItems[inde

x].name,
price:_foodItems[index].price),
);
},
),
),
);
}
}

Page 40
OUTPUT :-

Page 41
2). Dart program to find Factorial of a number
Recursivey.
Ans.:

Program:-
import 'dart:io';
int factorial(int num){
//base case of recursion.
if(num<=1) { // base case
return 1;
}
else{
return num*factorial(num-1); //function call itself.
}}
void main() {
var num;
stdout.write("Enter the Number :-\n");
num = int.parse(stdin.readLineSync()!);
print(num);
// Storing function call result in fact variable.
var fact = factorial(num);
print("Factorial is: ${fact}");
}

Page 42
Output:-

Page 43
3). DartProgram to findArmstrongNumber?
Ans.:-

Program:-
import 'dart:io';
import 'dart:math';
void main(){
int? num;
print('Enter A Number to check ARMSTRONG or NOT
ARMSTRONG NUMBER :-');
// user will enter a number to check
num = int.parse(stdin.readLineSync()!);
// user entered number is passed to function
isArmString(num);
}
//a function to check arm strong
void isArmString(int number){
//initial some variable
int temp,digits =0, last = 0, sum = 0;
//assign user entered number to temp variable
temp = number;
// loop execute until temp is 0 and increment digits by 1 each loop

Page 44
while(temp>0){

temp = temp~/10;

digits++;

//reset temp to user entered number

temp = number;

//another loop for getting sum

while(temp>0){

last = temp % 10;

sum = sum + pow(last, digits) as int;

temp = temp~/10;

// now if number and sum are equal its a arm strong number

if(number == sum){

print("IT'S A ARMSTRONG NUMBER");

}else{

print("IT'S NOT ARMSTRONG NUMBER");

Page 45
Output:-

Page 46
Assignment - 4

Q.1)Create Mobile Application for


college System.

1. Which Contains following functionality.


2. Login and Registration Screen.
3. Subject List with search view.

Ans. :-

main.dart

import 'package:S_128_college/login_page.dart';

import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}

class MyApp extends StatelessWidget {


const MyApp({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,

Page 47
theme: ThemeData(
primarySwatch: Colors.purple,

elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
primary: Colors.deepPurple,

elevation: 8,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(25)),

),
),
appBarTheme: const AppBarTheme(
backgroundColor: Colors.deepPurple,

foregroundColor: Colors.white,
),

inputDecorationTheme: InputDecorationTheme(
enabledBorder: OutlineInputBorder(

borderRadius: BorderRadius.circular(25),

borderSide: const BorderSide(color: Colors.white, width: 2),


),

border: OutlineInputBorder(
borderRadius: BorderRadius.circular(25),

Page 48
borderSide: const BorderSide(color: Colors.white, width: 2)),
filled: true,
fillColor: Colors.white,
)),

home: const LoginPage());


}
}

home_page.dart

import 'package:flutter/material.dart';

class HomePage extends StatelessWidget {


const HomePage({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {


return Scaffold(
appBar: AppBar(
title: const Text("Home Screen"),
),

body: SizedBox(
width: double.infinity,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const SizedBox(

Page 49
height: 16,
),

ElevatedButton(
onPressed: () {
showSearch(
context: context, delegate: CustomSearchDelegate());
},

child: SizedBox(
width: 150,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
Text("Seach Subjects"),

SizedBox(
width: 20,
),
Icon(Icons.search),
],
),
))
],
),
),
);
}
}

Page 50
class CustomSearchDelegate extends SearchDelegate {
final List<String> _subjects = [
"Python",
"Java",
"Mobile Application Development",
"Vb.net",
"Information System",
"IOT"
];

@override

List<Widget>? buildActions(BuildContext context) {


return [
IconButton(
onPressed: () {
query = "";

},
icon: const Icon(Icons.clear_sharp))
];
}

@override

Widget? buildLeading(BuildContext context) {


return IconButton(
onPressed: () {
close(context, null);

Page 51
},
icon: const Icon(Icons.arrow_back));
}

@override

Widget buildResults(BuildContext context) {


List<String> matchQuery = [];

for (var item in _subjects) {


if (item.toUpperCase().contains(query.toUpperCase())) {
matchQuery.add(item);
}
}

return ListView.builder(
itemCount: matchQuery.length,
itemBuilder: (context, index) {
var result = matchQuery[index];

return ListTile(
title: Text(result),
);
},

);
}

@override

Page 52
Widget buildSuggestions(BuildContext context) {
List<String> matchQuery = [];

for (var item in _subjects) {


if (item.toUpperCase().contains(query.toUpperCase())) {
matchQuery.add(item);
}
}
return ListView.builder(
itemCount: matchQuery.length,

itemBuilder: (context, index) {


var result = matchQuery[index];
return ListTile(
title: Text(result),

);
},
);
}
}

login_page.dart

import 'package:j_123_college/registration_page.dart';

import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'home_page.dart';
import 'text_input_card.dart';
Page 53
class LoginPage extends StatelessWidget {
const LoginPage({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {


final width = MediaQuery.of(context).size.width;
final height = MediaQuery.of(context).size.height;

return Scaffold(
backgroundColor: Colors.white,

body: SafeArea(
child: SingleChildScrollView(
child: Column(

children: [
SizedBox(
height: height * 0.5,
// color: Colors.black,

child: SvgPicture.asset("assets/svgs/reading.svg"),
),
const SizedBox(
height: 16,

),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),

Page 54
child: Form(
child: Column(
children: [
TextInputCard(
child: TextFormField(
decoration: const InputDecoration(
labelText: "Username",
),
),
),
const SizedBox(
height: 10,

),

TextInputCard(
child: TextFormField(
decoration: const InputDecoration(
labelText: "Password",
),
)),

const SizedBox(
height: 10,
),

SizedBox(
width: width - 50,
height: 45,
child: ElevatedButton(

Page 55
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const HomePage()),

);
},
child: const Text("Login"),
style: ElevatedButton.styleFrom(
// primary: Colors.white,

elevation: 8,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(25))),

),
),

Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text("Don't have an account.?"),

TextButton(
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => RegistrationPage(),

));
},

Page 56
child: const Text("Sign Up"))
],
)
],
)),

),
],
),
),

),
);
}
}

registration_page.dart

import 'home_page.dart';
import 'text_input_card.dart';
import 'package:flutter/material.dart';

class RegistrationPage extends StatelessWidget {


// List<String> details = [];

final TextEditingController _fullName = TextEditingController();


final TextEditingController _userName = TextEditingController();
final TextEditingController _email = TextEditingController();
final TextEditingController _mobile = TextEditingController();
final TextEditingController _password = TextEditingController();
Page 57
RegistrationPage({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {


var size = MediaQuery.of(context).size;
double _height = size.height;
double _width = size.width;

return Scaffold(
appBar: AppBar(
title: const Center(
child: Text('Registration'),

),
),
body: Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 12),
color: Colors.white,
height: _height,
width: _width,

child: SingleChildScrollView(
child: Form(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,

children: [
TextInputCard(
child: TextFormField(

Page 58
controller: _fullName,
decoration: const InputDecoration(
label: Text('Fullname'),

),
),
),

SizedBox(
height: _height * 0.01,
),

TextInputCard(
child: TextFormField(
controller: _userName,
decoration: const InputDecoration(
label: Text('User Name'),
suffixIcon: Icon(Icons.person),

),
),
),

SizedBox(
height: _height * 0.01,
),
TextInputCard(
child: TextFormField(

Page 59
controller: _email,

keyboardType: TextInputType.emailAddress,
decoration: const InputDecoration(
label: Text('Email'), suffixIcon: Icon(Icons.email)),

),
),

SizedBox(
height: _height * 0.01,
),
TextInputCard(
child: TextFormField(
keyboardType: TextInputType.number,

controller: _mobile,
decoration: const InputDecoration(
label: Text('Mobile Number'),
suffixIcon: Icon(Icons.phone),
),

),
),

SizedBox(
height: _height * 0.01,
),

Page 60
TextInputCard(
child: TextFormField(
obscureText: true,
decoration: const InputDecoration(

label: Text('Password'), suffixIcon: Icon(Icons.lock)),


controller: _password,
),

),
SizedBox(
height: _height * 0.03,
),

SizedBox(
height: 45,
width: _width - 50,
child: ElevatedButton(
onPressed: () {

Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const HomePage()),
);
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(

content: Text("Successfully Registered")));


},
child: const Text('Register'),
),

Page 61
),
],

),
),

),
),

);

text_input_card.dart

import 'package:flutter/material.dart';
class TextInputCard extends StatelessWidget {
final Widget child;
const TextInputCard({
Key? key,

required this.child,
}) : super(key: key);

@override

Widget build(BuildContext context) {


return SizedBox(
Page 62
height: 55,

child: Card(
elevation: 8,
// color: Colors.purple,

shape: RoundedRectangleBorder(borderRadius:
BorderRadius.circular(25)),

child: child,

),
);

Page 63
OUTPUT :-

Page 64
Page 65

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy