0% found this document useful (0 votes)
12 views

C Lab Manual NEW

C mannual

Uploaded by

Priyanka Suresh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

C Lab Manual NEW

C mannual

Uploaded by

Priyanka Suresh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

VANIYAMBADI – 635 751.

TIRUPATTUR DISTRICT

Department of Computer Science and Engineering

JULY / AUGUST - 2021

RECORD NOTE BOOK

Name : ……………………………………………………………..

Register No. : ……………………………………………………………..

Subject Code & Name : ……………………………………………………………..

Year & Semester : ……………………………………………………………..

Branch : ……………………………………………………………..
VANIYAMBADI – 635 751. TIRUPATTUR DISTRICT

Department of Computer Science and Engineering

Bonafide Certificate

Name : ………………………………………………………………………………

Year : ………………………………Semester : …………………………………..

Branch: ………………………………………………………………………………

University Reg. No. :

This is to certify that, this is a Bonafide Record work done by the above student in

the .................................................................................................. during the year 2020-2021.

Signature of Staff In-charge Signature of HOD

Submitted for the University Practical Examination held on


at Priyadarshini Engineering College, Vaniyambadi-635 751.

Internal Examiner External Examiner


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CS8261 C PROGRAMMING LABORATORY

[Type text]
TABLE OF CONTENTS

Ex. Page
Name of the Experiment
No. No.

1 Programs using I/O statements and expressions. 7

2 Programs using decision-making constructs. 9

3 To find whether the given year is leap year or Not. 11

4 Arithmetic operations. 13

5 Armstrong number. 15

6 Sort the numbers based on the weight. 17

7 Average height of persons. 20

8 Body Mass Index of the individuals. 22

9 Reverse of a given string. 24

10 Conversion of Decimal number into other bases. 27

11 String operations. 29

12 Towers of Hanoi using Recursion. 33

13 Sorting using pass by reference. 35

14 Salary slip of employees. 37

15 Internal marks of students. 40

16 Telephone directory. 43

17 Banking Application 49

18 Railway reservation system 53

[Type text]
EX.No. : 1 PROGRAM USING I/O STATEMENTS AND EXPRESSIONS

DATE :

AIM

To write a C Program to perform I/O statements and expressions.

ALGORITHM

1. Start
2. Declare variables and initializations
3. Read the Input variable.
4. Using I/O statements and expressions for computational processing.
5. Display the output of the calculations.
6. Stop

PROGRAM

#include <stdio.h>int

main() {
int sumOdd = 0;
int sumEven = 0; 0 int
upperbound;int
absDiff;

printf("Enter the upper bound: ");


scanf("%d", &upperbound);

int number = 1;
while (number <= upperbound) { if
(number % 2 == 0) {
sumEven += number;

[Type text]
} else {
sumOdd += number;
}
++number;
}

(sumOdd > sumEven) {


absDiff = sumOdd -
sumEven; } else {
absDiff = sumEven - sumOdd;
}

printf("The sum of odd numbers is %d.\n", sumOdd);


printf("The sum of even numbers is
%d.\n", sumEve );
printf("The absolute difference is %d.\n", absDiff);

return 0;
}

OUTPUT
Enter the upper bound: 1000
The sum of odd numbers is 250000.
The sum of even numbers is 250500.
The absolute difference is 500.

RESULT:

Thus a C Program using i/o statements and expressions was executed and the output wasobtained.

[Type text]
EX.No. : 2 PROGRAM USING DECISION-MAKING CONSTRUCTS

DATE :

AIM

To write a C Program to perform decision-making constructs.

ALGORITHM

1. Start
2. Declare variables and initializations
3. Read the Input variable.
4. Codes are given to different categories and da s calculated as follows: For code
1,10% of basic salary.
For code 2, 15% of basic salary. For
code 3, 20% of basic salary. For
code >3 da is not given.
5. Display the output of the calculations .
6. Stop

PROGRAM

#include <stdio.h>
#include<conio.h>
void main ()
{
float basic , da , salary ;int
code ;
char name[25];
da=0.0;
printf("Enter employee name\n");
scanf("%[^\n]",name); printf("Enter
basic salary\n"); scanf("%f",&basic);
printf("Enter code of the Employee\n");
scanf("%d",&code);
switch (code)
{
case 1:

9
[Type text]
da = basic * 0.10;
break;
case 2:
da = basic * 0.15;
break;
case 3:
da = basic * 0.20; break;
default :
da = 0;
}
salary = basic + da;
printf("Employee name is\n");
printf("%s\n",name);
printf ("DA is %f and Total salary is =%f\n",da, salary);getch();
}

OUTPUT

Enter employee name


sriram
Enter basic salary
5000
Enter code of the Employee1
Employee name is
sriram
DA is 500.000000 and Total s l ry is =5500.000000

RESULT

Thus a C Program using decision-making constructs was executed and the output wasobtained.

10

[Type text]
EX.No. : 3 To FIND WHETHERTHEGIVEN YEAR IS LEAP YEAR OR NOT

DATE :

AIM

To write a C Program to find whether the given year is leap year or Not .

ALGORITHM

1. Start
2. Declare variables
3. Read the Input .
4. Take a year as input and store it in the variable year.
5. Using if,else statements to,
a) Check whether a given year is divisible by 400.
b) Check whether a given year is divisible by 100.
c) Check whether a given year is divisible by 4.
6. If the condition at step 5.a becomes true, then print the ouput as “It is a leap year”.
7. If the condition at step 5.b becomes true, then print the ouput as “It is not a leap year”.
8. If the condition at step 5.c becomes true, then print the ouput as “It is a leap year”.
9. If neither of the condition becomes true, then the year is not a leap year and print the same.
10. Display the output of the calculations .
11. Stop

PROGRAM

void main()

int year;

printf("Enter a year \n");

11

[Type text]
scanf("%d", &year);

if ((year % 400) == 0)

printf("%d is a leap year \n", year);else if

((year % 100) == 0)

printf("%d is a not leap year \n", year);else if

((year % 4) == 0)

printf("%d is a leap year \n", year);else

printf("%d is not a leap year \n", year);

OUTPUT

Enter a year
2012
2012 is a leap year

Enter a year
2009
2009 is not a leap year

RESULT

Thus a C Program for Leap year checking was executed and the output was obtained.

12

[Type text]
EX.No. : 4 ARITHEMETIC OPERATIONS

AI M
To write a C Program to Design a calculator to perform the operations, namely, addition,
subtraction, multiplication, division and square of a number.

ALGORITHM

1. Start
2. Declare variables
3. Read the Inputs .
4. Calculate Arithmetic operations(+,-,*,/,pow) for the input of two numbers.
5. Display the output of the calculations .
6. Stop

PROGRAM

#include <stdio.h>
#include <conio.h>

int main(){
int firstNumber, secondNumber;int sum,
difference, product; long square;
float quotient;

printf("Enter First Number: "); scanf("%d",


&amp;firstNumber); printf("Enter Second
Number: "); scanf("%d",
&amp;secondNumber);

sum = firstNumber + secondNumber;

13

[Type text]
difference = firstNumber - secondNumber;product =

firstNumber * secondNumber;

printf("\nSum = %d", sum); printf("\nDifference =


%d", difference); printf("\nMultiplication = %d",
product);printf("\nDivision = %.3f", quotient);
printf("\n Square= %ld", square);

getch();
return 0;
}

OUTPUT

Enter First Number: 25


Enter Second Number: 4

Sum = 29
Difference = 21
Multiplication = 100
Division = 6.250
Square = 625

RESULT

Thus a C Program for Arithmetic operations was executed and the output was obtained.

14

[Type text]
EX.No. : 5 ARMSTRONG NUMBER

DATE :

AIM
To write a C Program to Check whether a given number is Armstrong number or not
.

ALGORITHM

1. Start
2. Declare variables
3. Read the Input number.
4. Calculate sum of cubic of individual digits of the input.
5. Match the result with input number.
6. If match, Display the given number is Armstrong otherwise not.
7. Stop

PROGRAM

#include <stdio.h>

#include <math.h>

void main()

int number, sum = 0, rem = 0, cube = 0, temp;

15

[Type text]
printf ("enter a number");

scanf("%d", &number); temp =

number;

while (number != 0)

rem = number % 10; cube =

pow(rem, 3); sum = sum +

cube; number = number / 10;

if (sum == temp)

printf ("The given no is armstrong no");else

printf ("The given no is not a armstrong no");

OUTPUT
enter a number370
The given no is armstrong no

RESULT

Thus a C Program for Armstrong number checking was executed and the output wasobtained.

16

[Type text]
EX.No. : 6 SORT THE NUMBERS BASED ON THE WEIGHT

DATE :

AIM

To write a C Program to perform the following:


Given a set of numbers like <10, 36, 54, 89, 12, 27>, find sum of weights based on thefollowing
conditions
 5 if it is a perfect cube
 4 if it is a multiple of 4 and divisible by 6
 3 if it is a prime number
Sort the numbers based on the weight in the increasing order as shown below <10,its
weight>,<36,its weight><89,its weight>

ALGORITHM

1. Start
2. Declare variables
3. Read the number of elements .
4. Get the individual elements.
5. Calculate the weight for each element by the conditions
 5 if it is a perfect cube (pow)
 4 if it is a multiple of 4 and divisible by 6 (modulus operator)
3 if it is a prime number(modulus operator)
6. Display the output of the weight calculations after sorting .
7. Stop

PROGRAM

#include <stdio.h>
#include <math.h> void
main()
{
int nArray[50],wArray[50],nelem,i,j,t;

17

[Type text]
clrscr();
printf("\nEnter the number of elements in an array : ");
scanf("%d",&nelem);
printf("\nEnter %d elements\n",nelem);
for(i=0;i<nelem;i++) scanf("%d",&nArray[i]);

for(i=0; i<nelem; i++)


{
wArray[i] = 0; if(percube(nArray[i]))
wArray[i] = wArray[i] + 5;

if(nArray[i]%4==0 && nArray[i]%6==0)


wArray[i] = wArray[i] + 4;

if(prime(nArray[i]))
wArray[i] = wArray[i] + 3;

for(i=0;i<nelem;i++) for(j=i+1;j<nelem;j++)
if(wArray[i] > wArray[j])
{
t = wArray[i]; wArray[i]
= wArray[j];wArray[j] =
t;
}

for(i=0; i<nelem; i++) printf("<%d,%d>\n", nArr


y[i],wArray[i]);getch();

int prime(int num)


{
int flag=1,i;
for(i=2;i<=num/2;i++)
if(num%i==0)
{
flag=0;
break;
}
return flag;
}
int percube(int num)
{
int i,flag=0;

18

[Type text]
for(i=2;i<=num/2;i++) if((i*i*i)==num)
{
flag=1;
break;
}
return flag;
}

OUTPUT
Enter the number of elements in an array :5
Enter 5 elements:
8
11
216
24
34

<34,0>
<11,3>
<24,4>
<8,5>
<216,9>

Explanation:
◼ 8 is a perfect cube of 2, not a prime number and not a multiple of 4 & divisible of 6 so the
answer is 5
◼ 11 is a prime number so the answer is 3
◼ 216 is a perfect cube and multiple of 4 & divisible by 6 so the answer is 5+4 = 9
24 is not a perfect cube and not a prime number and multiple of 4 & divisible by 6 so the
answer is 4
34 not satisfied all the conditions so the answer is 0

RESULT

Thus a C Program for Sort the numbers based on the weight was executed and the output was obtained.

19

[Type text]
EX.No. : 7 AVERAGE HEIGHT OF PERSONS

DATE :

AIM
To write a C Program to populate an array with height of persons and find how many
persons are above the average height.

ALGORITHM

1. Start
2. Declare variables
3. Read the total number of persons and their h ight.
4. Calculate avg=sum/n and find number of p rsons their h>avg.
5. Display the output of the calculations .
6. Stop

PROGRAM

#include <stdio.h>
#include <conio.h> void
main()
{
int i,n,sum=0,count=0,height[100];float avg;
clrscr();

printf("Enter the Number of Persons : ");


scanf("%d",&n);

printf("\nEnter the Height of each person in centimeter\n");for(i=0;i<n;i++)


{
scanf("%d",&height[i]);sum =
sum + height[i];
}
avg = (float)sum/n;

20

[Type text]
for(i=0;i<n;i++)
if(height[i]>avg)
count++;

printf("\nAverage Height of %d persons is : %.2f\n",n,avg);


printf("\nThe number of persons above average : %d ",count);getch();
}

OUTPUT
Enter the Number of Persons : 5

Enter the Height of each person in centimeter 150


155
162
158
154

Average Height of 5 persons is : 155.8

The number of persons above average : 2

RESULT

Thus a C Program average height of persons was executed and the output was obtained.

21

[Type text]
EX.No. : 8 BODY MASS INDEX OF THE INDIVIDUALS

DATE :

AIM
To write a C Program to Populate a two dimensional array with height and weight of persons
and compute the Body Mass Index of the individuals..

ALGORITHM

1. Start
2. Declare variables
3. Read the number of persons and their height and weight.

4. Calculate BMI=W/H2for each person


5. Display the output of the BMI for each p rson.
6. Stop

PROGRAM

#include<stdio.h>
#include<math.h>

int main(void){int

n,i,j;

printf("How many people's BMI do you want to


calculate?\n"); scanf("%d",&n);

float massheight[n][2];float
bmi[n];

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

for(j=0;j<2;j++){

switch(j){
case 0:
printf("\nPlease enter the mass of the person %d in kg:",i+1);
scanf("%f",&massheight[i][0]);
break;

22
case 1:
printf("\nPlease enter the height of the person %d in meter:",i+1);
scanf("%f",&massheight[i][1]);
break;}

}
}

for(i=0;i<n;i++){ bmi[i]=massheight[i][0]/pow(massheight[i][1],
2.0); printf("Person %d's BMI is
%f\n",i+1,bmi[i]);
}

return 0;
}

OUTPUT
How many people's BMI do you want to calculate?2
Please enter the mass of the person 1 in kg: 88
Please enter the height of the person 1 in meter: 1.8288

Please enter the mass of the person 2 in kg:58 Please enter


the height of the pe son 2 in meter: 2.2

Person 1's BMI is26.31178


Person 2's BMI is11.98347

RESULT

Thus a C Program Body Mass Index of the individuals was executed and the output was obtained.

23
EX.No. : 9 REVERSE OF A GIVEN STRING

DATE :

AIM
To write a C Program to perform reverse without changing the position of special characters
for the given string.

ALGORITHM

1. Start
2. Declare variables .
3. Read a String.
4. Check each character of string for alphab ts or a special character by using isAlpha() .
5. Change the position of a character vice versa if it is alphabet otherwise remains same.
6. Repeat step 4 until reach to the mid of the position of a string.
7. Display the output of the reverse string without changing the position of specialcharacters .
8. Stop

PROGRAM
#include <stdio.h>
#include <string.h>
#include <conio.h>
void swap(char *a, char *b)
{
char t;t
= *a;
*a = *b;
*b = t;
}

void main()
{
char str[100];

24
void reverse(char
*); int
isAlpha(char);
void swap(char *a ,char
*b); clrscr();
printf("Enter the Given String : ");
scanf("%[^\n]s",str);
gets(str);
reverse(str);
printf("\nReverse String :
%s",str); getch();
}

void reverse(char str[100])


{
int r = strlen(str) - 1, l = 0;

while (l < r)
{
(!isAlpha(str[l]))l++;
else
if(!isAlpha(str[r]))r--;

else
{
swap(&str[l], &str[r]);l++;
r--;
}
}
}

int isAlpha(char x)
{
return ( (x >= 'A' && x <= 'Z') ||(x >= 'a'
&& x <= 'z') );
}

25
OUTPUT

Enter the Given String :a@gh%;j


Reverse String :j@hg%;a

RESULT

Thus a C Program for reverse of a given String was executed and the output was obtained.

26
EX.No. : 10 CONVERSION OF DECIMAL NUMBER INTO OTHER BASES

DATE :

AIM
To write a C Program to Convert the given decimal number into binary, octal and
hexadecimal numbers using user defined functions.

ALGORITHM

1. Start
2. Declare variables.
3. Read a decimal number.
4. Develop the procedure for conversion of diff r nt base by modulus and divide operator.
5. Display the output of the conversion value.
6. Stop

PROGRAM

#include <stdio.h>
#include <conio.h>
void swap(char *s1, char *s2)
{
char temp;
temp = *s1;
*s1 = *s2;
*s2 = temp;
}
void reverse(char *str, int length)
{
int start = 0;
int end = length -1;while
(start < end)
{
swap(&str[start], &str[end]);start++;
end--;
}
}
27
char* convert(int num, char str[100], int base)
{
int i = 0;
if (num == 0)
{
str[i++] = '0';
str[i] = '\0';
return str;
}
while (num != 0)
{
int rem = num % base;
str[i++] = (rem > 9)? (rem-10) + 'a' : rem + '0';num =
num/base;
}
str[i] = '\0'; string
reverse(str,i); return
str;
}
void main()
{
char str[100];
int n; clrscr();

printf("Enter the given decimal number


: "); scanf("%d",&n);
printf("\nThe Binary value : %s\n",convert(n,str,2));printf("\nThe Octal value
: %s\n",convert(n,str,8)); printf("\nThe Hexa value : %s\
",convert(n,str,16)); getch();
}

OUTPUT

Enter the given decimal number : 555The


Binary value : 1000101011
The Octal value : 1053
The Hexa value : 22B

RESULT

Thus a C Program for conversion of decimal number into other bases was executed and the output
was obtained.

28
EX.No. : 11 STRING OPERATIONS

DATE :

AIM
To write a C Program to perform string operations on a given paragraph for the following
using built-in functions:
a. Find the total number of words.
b. Capitalize the first word of each sentence.
c. Replace a given word with another word.

ALGORITHM

1. Start
2. Declare variables
3. Read the text.
4. Display the menu options
5. Compare each character with tab char ‘\t’ or space char ‘ ‘ to count no of words
6. Find the first word of each se te ce to capitalize by checks to see if a character is apunctuation
mark used to denote the end of a sentence. (! . ?)
7. Replace the word in the text by user specific word if match.
8. Display the output of the calculations .
9. Repeat the step 4 till choose the option stop.
10. Stop

PROGRAM

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void replace (char *, char *, char *);int
main()
{
char choice.str[200];int
i, words;
char s_string[200], r_string[200];

printf("Enter any text:\n ");


gets(str);

29
do
{
printf("\n1. Find the total number of words \n"); printf("2.
Capitalize the first word of each sentence \n");printf("3. Replace
a given word with another word \n"); printf("4. Stop\n");
printf("Enter your choice : ");
choice=getchar(); switch(choice)
{
case '1' :
i = 0;
words = 1;

while(str[i] != '\0')
{
if(str[i]==' ' || str[i]=='\n' || str[i]=='\t')
{
words++;
}

i++;
}

printf("\nTotal number of words = %d", words);break;

case '2' :

i = 0;
while(str[i] != '\0')
{

if(str[i]=='!' || str[i]=='.' || str[i]=='?')


{
i++;
while(str[i]!=' ' || str[i]!='\n' || str[i]!='\t || str[i] != '\0'’)
{putchar (toupper(str[++i]));i++;
}
}
else
putchar (str[i]);

i++;

30
}
break;
case '3' :

printf("\nPlease enter the string to search:");


fflush(stdin);
gets(s_string);

printf("\nPlease enter the replace string ");


fflush(stdin);
gets(r_string);

replace(str, s_string, r string);

puts(str);

break;
case '4' :
exit(0);
}
printf("\nPress any key to continue ............. ");
getch();
}
while(choice!=’4’);

return 0;
}

void replace(char * str, char * s_string, char * r_string) { char

buffer[200];

char * ch;

if(!(ch = strstr(str, s_string)))


return;

strncpy(buffer, str, ch-str);

31
buffer[ch-str] = 0;

sprintf(buffer+(ch -str), "%s%s", r_string, ch + strlen(s_string)); str[0] = 0;


strcpy(str, buffer);

return replace(str, s_string, r_string);


}

OUTPUT
Enter any text:
I like C and C++ programming!

1.Find the total number of words


2.Capitalize the first word of each sentence
3.Replace a given word with another word
4.Stop
Enter your choice : 1
Total number of words = 6

Press any key to continue....


1. Find the total number of words
2. Capitalize the first word of each sentence
3. Replace a given word with nother word
4. Stop
Enter your choice : 4

RESULT

Thus a C Program String operations was executed and the output was obtained.

32
EX.No. : 12 TOWERS OF HANOI USING RECURSION

DATE :

AIM

To write a C Program to Solve towers of Hanoi using recursion.

ALGORITHM

1. Start
2. Declare variables
3. Read the Input for number of discs.
4. Check the condition for each transfer of discs us ng recursion.
5. Display the output of the each move .
6. Stop

PROGRAM

#include <stdio.h>
#include <conio.h>
void towerofhanoi(int n, char from, char to, char aux)
{
if (n == 1)
{
printf("\n Move disk 1 from peg %c to peg %c", from, to);return;
}
towerofhanoi(n-1, from, aux, to);
printf("\n Move disk %d from peg %c to peg %c", n, from, to);
towerofhanoi(n-1, aux, to, from); }

33
int main()
{
int n;
clrscr();
printf("Enter the number of disks : ");
scanf("%d",&n); // Number of disks
towerofhanoi(n, 'A', 'C', 'B');
getch();
return 0;
}

OUTPUT
Enter the number of disks : 3 Move
disk 1 from peg A to peg CMove
disk 2 from peg A to peg BMove
disk 1 from peg C to peg BMove
disk 3 from peg A to peg CMove
disk 1 from peg B to peg AMove
disk 2 from peg B to peg CMove
disk 1 from peg A to peg C

RESULT

Thus a C Program Towers of Hanoi using Recursion was executed and the output wasobtained.

34
EX.No. : 13 SORTING USING PASS BY REFERENCE

DATE :

AIM

To write a C Program to Sort the list of numbers using pass by reference.

ALGORITHM

1. Start
2. Declare variables and create an array
3. Read the Input for number of elements and each element.
4. Develop a function to sort the array by passing reference
5. Compare the elements in each pass till all the elements are sorted.
6. Display the output of the sorted eleme ts .
7. Stop

PROGRAM

#include <stdio.h>
#include <conio.h>

void main()
{
int n,a[100],i;
void sortarray(int*,int);
clrscr();
printf("\nEnter the Number of Elements in anarray : ");
scanf("%d",&n);
printf("\nEnter the Array elements\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sortarray(a,n);
printf("\nAfter Sorting ............. \n");
for(i=0;i<n;i++)
printf("%d\n",a[i]); getch();
}

35
void sortarray(int* arr,int num)
{
int i,j,temp;
for(i=0;i<num;i++)
for(j=i+1;j<num;j++) if(arr[i]
> arr[j])
{
temp=arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}

OUTPUT

Enter the Number of Elements in an array : 5


Enter the Array elements 33

67
21
45
11
After Sorting....
11
21
33
45
67

RESULT

Thus a C Program Sorting using pass by reference was executed and the output wasobtained.

36
EX.No. : 14 SALARY SLIP OF EMPLOYEES

DATE :

AIM
To write a C Program to Generate salary slip of employees using structures and pointers.
ALGORITHM

1. Start
2. Declare variables
3. Read the number of employees .
4. Read allowances, deductions and basic for each employee.
5. Calculate net pay= (basic+ allowances)-deduct ons
6. Display the output of the Pay slip calculations for each employee.
7. Stop

PROGRAM
#include<stdio.h>
#include<conio.h>
#include "stdlib.h"struct
emp
{
int empno ;
char name[10], answer ; int bpay,
allow, ded, npay ;struct emp
*next;
};
void main()
{
int I,n=0;
int more data = 1;
struct emp e *current_ptr, *head_ptr;clrscr() ;
head_ptr = (struct emp *) malloc (sizeof(struct emp));current_ptr =
head_ptr;
while (more_data)
{
{
printf("\nEnter the employee number : ") ;scanf("%d",
& current_ptr->empno) ; printf("\nEnter the name : ")
;

37
scanf("%s",& current_ptr->name) ;
printf("\nEnter the basic pay, allowances & deductions : ") ; scanf("%d %d %d", &
current_ptr ->bpay, & current_ptr ->allow, &
current_ptr - >ded) ;
e[i].npay = e[i].bpay + e[i].allow -e[i].ded ;
n++;
printf("Would you like to add another employee?(y/n): ");
scanf("%s", answer);

if (answer!= 'Y')
{
current_ptr->next = (struct eme *) NULL;more_data
= 0;
}
else
{
current_ptr->next = (struct emp *) malloc (sizeof(structemp));
current_ptr = current_ptr->next;
}

}
}
printf("\nEmp. No. Name \t Bpay \t Allow \t D d \t Npay \n\n") ;current_ptr = head_ptr;
for(i = 0 ; i < n ; i++)
{
printf("%d \t %s \t %d \t %d \t %d \t %d \n", current_ptr->empno, current_ptr->name,
current ptr->bpay, current ptr->allow, current_ptr-
>ded, current_ptr-
>npay) ;
current_ptr=current_ptr->next;
}
getch() ;
}

OUTPUT

Enter the number of employees : 2Enter


the employee number : 101 Enter the
name : Arun
Enter the basic pay, allowances & deductions : 5000 1000 250

38
Enter the employee number : 102
Enter the name : Babu
Enter the basic pay, allowances & deductions : 7000 1500 750Emp.No.
Name Bpay Allow Ded Npay
101 Arun 5000 1000 250 5750
102 Babu 7000 1500 750 7750

RESULT

Thus a C Program Salary slip of employees was executed and the output was obtained.

39
EX.No. : 15 INTERNAL MARK OF STUDENTS

DATE :

AIM
To write a C Program to Compute internal marks of students for five different subjects
using structures and functions.

ALGORITHM

1. Start
2. Declare variables
3. Read the number of students .
4. Read the student mark details
5. Calculate internal mark by i=total of three test marks / 3 for each subject per student.
6. Display the output of the calculatio s for all the students .
7. Stop

PROGRAM
#include<stdio.h>
#include<conio.h>struct
stud{
char name[20];long
int rollno; int
marks[5,3];int i[5];

}students[10];
void calcinternal(int);int
main(){
int a,b,j,n;
clrscr();
printf("How many students : \n");
scanf("%d",&n); for(a=0;a<n;++a){
clrscr();
printf("\n\nEnter the details of %d student : ", a+1);

40
printf("\n\nEnter student %d Name : ", a); scanf("%s",
students[a].name); printf("\n\nEnter student %d Roll
Number :
", a); scanf("%ld", &students[a].rollno);total=0;
for(b=0;b<=4;++b){
for(j=0;j<=2;++j){
printf("\n\nEnter the test %d mark of subject-%d : ",j+1,b+1);
scanf("%d", &students[a].marks[b,j]); }

}
}
calcinternal(n);
for(a=0;a<n;++a){
clrscr();
printf("\n\n\t\t\t\tMark Sheet\n");
printf("\nName of Student : %s", students[a].name);printf("\t\t\t\t
Roll No : %ld", students[a].roll o);
printf("\n-----------------------------------------------------------------------
-");
for(b=0;b<5;b++){
printf("\n\n\t Subject %d internal \t\t :\t %d", b+1,students[a].i[b]);
}
printf("\n\n--------------------------------------------------------------------
----\n");
getch();
}
return(0);
}

void calcinternal(int n)
{
int a,b,j,total; for(a=1;a<=n;++a){
for(b=0;b<5;b++){ total=0;
for(j=0;j<=2;++j){
total += students[a].marks[b,j];
}
students[a].i[b]=total/3;
}
}
}

41
OUTPUT

How many students : 1


Enter the details of 1 student :
Enter student 1 Name : H.Xerio
Enter student 1 Roll Number : 536435
Enter the test 1mark of subject-1 : 46
Enter the test 2 mark of subject-1 : 56
Enter the test 3 mark of subject-1 : 76
Enter the test 1 mark of subject-2 : 85
Enter the test 2mark of subject-2 : 75
Enter the test 3mark of subject-2 : 75
Enter the test 1mark of subject-3 : 66
Enter the test 2 mark of subject-3 : 86
Enter the test 3 mark of subject-3 : 70
Enter the test 1 mark of subject-4 : 25
Enter the test 2mark of subject-4 : 35
Enter the test 3mark of subject-4 : 61
Enter the test 1 mark of subject-5 : 45
Enter the test 2mark of subject-5 : 75
Enter the test 3mark of subject-5 : 60

Mark Sheet
Name of Student : H.Xerio Roll No : 536435
------------------------------------------------------------------------
subject 1 internal 59
subject 2 internal 78
subject 3 internal 74
subject 4 internal : 40
subject 5 internal : 60
------------------------------------------------------------------------

RESULT

Thus a C Program for Internal marks of students was executed and the output was obtained.

42
EX.No. : 16 TELEPHONE DIRECTORY

DATE :

AIM
To write a C Program to add, delete ,display ,Search and exit options for telephone details of an
individual into a telephone directory using random access file.

ALGORITHM

1. Start.
2. Declare variables, File pointer and phonebook st uctures.
3. Create menu options.
4. Read the option .
5. Develop procedures for each option.
6. Call the procedure (Add, delete ,display ,Search and exit)for user chosen option.
7. Display the message for operatio s performed.
8. Stop

PROGRAM

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Phonebook_Contacts


{
char FirstName[20]; char
LastName[20]; char
PhoneNumber[20];
} phone;

void AddEntry(phone * ); void


DeleteEntry(phone * );void
PrintEntry(phone * );
void SearchForNumber(phone * );

43
int counter = 0; char
FileName[256];FILE
*pRead;
FILE *pWrite;

int main (void)


{
phone *phonebook;
phonebook = (phone*)
malloc(sizeof(phone)*100); int iSelection = 0;

if (phonebook == NULL)
{

printf("Out of Memory. The program will now exit");return 1;


}
else {}

do
{
printf("\n\t\t\tPhonebook Menu");
printf("\n\n\t(1)\tAdd Friend"); printf("\n\t(2)\tDelete
Friend"); printf("\n\t(3)\tDisplay Phonebook
Entries"); printf("\n\t(4)\tSearch for Phone
Number"); printf("\n\t(5)\tExit Pho ebook");
printf("\n\nWhat would youlike to do? ");
scanf("%d", &iSelection);

if (iSelection == 1)
{
AddEntry(phonebook);
}

if (iSelection == 2)
{
DeleteEntry(phonebook);
}

if (iSelection == 3)
{
PrintEntry(phonebook);

44
}
if (iSelection == 4)
{
SearchForNumber(phonebook);
}

if (iSelection == 5)
{

printf("\nYou have chosen to exit the Phonebook.\n");return 0;


}
} while (iSelection <= 4);
}

void AddEntry (phone * phonebook)


{
pWrite = fopen("phonebook contacts.dat", "a");if (
pWrite == NULL )

{
perror("The following error occurred ");
exit(EXIT_FAILURE);
}
else
{
counter++;
realloc(phonebook, sizeof(phone));

printf("\nFirst Nam : ");


scanf("%s", phonebook[counter-1].FirstName);
printf("Last Name: ");

scanf("%s", phonebook[counter-1].LastName); printf("Phone


Number (XXX-XXX-XXXX): "); scanf("%s",
phonebook[counter-1].PhoneNumber); printf("\n\tFriend
successfully added to Phonebook\n");

fprintf(pWrite, "%s\t%s\t%s\n", phonebook[counter-1].FirstName,


phonebook[counter-1].LastName, phonebook[counter-1].PhoneNumber);
fclose(pWrite);
}
}
void DeleteEntry (phone * phonebook)
{

int x = 0;
45
int i = 0;
char deleteFirstName[20];char
deleteLastName[20];

printf("\nFirst name: ");


scanf("%s", deleteFirstName);
printf("Last name: "); scanf("%s",
deleteLastName);

for (x = 0; x < counter; x++)


{
if (strcmp(deleteFirstName, phonebook[x].FirstName) == 0)
{
if (strcmp(deleteLastName, phonebook[x].LastName) == 0)
{
for ( i = x; i < counter - 1; i++ )
{
strcpy(phonebook[i].FirstName, phonebook[i+1].FirstName);
strcpy(phonebook[i].LastName, phonebook[ +1].LastName);
strcpy(phonebook[i].PhoneNumber, phonebook[i+1].PhoneNumber);
}
printf("Record deleted from the phon book.\n\n");
--counter;
return;
}
}
}

printf("That contact was not found, please try again.");


}

void PrintEntry (phone * phonebook)


{
int x = 0;

printf("\nPhonebook Entries:\n\n ");


pRead = fopen("phonebook_contacts.dat", "r");if (
pRead == NULL)
{
perror("The following error occurred: ");
exit(EXIT FAILURE);
}
else
{
for( x = 0; x < counter; x++)
{
printf("\n(%d)\n", x+1);
printf("Name: %s %s\n", phonebook[x].FirstName, phonebook[x].LastName);
printf("Number: %s\n", phonebook[x].PhoneNumber);
}

46
}
fclose(pRead);
}

void SearchForNumber (phone * phonebook)


{
int x = 0;
char TempFirstName[20];
char TempLastName[20];

printf("\nPlease type the name of the friend you wish to find a number for.");
printf("\n\nFirst Name: ");
scanf("%s", TempFirstName);
printf("Last Name: "); scanf("%s",
TempLastName);for (x = 0; x <
counter; x++)
{
if (strcmp(TempFirstName, phonebook[x].FirstName) == 0)
{
if (strcmp(TempLastName, phonebook[x].LastName) == 0)
{

printf("\n%s %s's phone number is %s\ ", phonebook[x].FirstName,


phonebook[x].LastName, phonebook[x].PhoneNumber);
}
}
}
}

OUTPUT

Phonebook M nu
(1) Add Friend
(2) Delete Friend"
(3) Display Phonebook Entries
(4) Search for Phone Number
(5) Exit Phonebook

What ould you like to do? 1


First Name: Ram
Last Name: Mohan
Phone Number (XXX-XXX-XXXX): 717-675-0909

Friend successfully added to Phonebook

47
Phonebook Menu
(1) Add Friend
(2) Delete Friend"

(3) Display Phonebook Entries


(4) Search for Phone Number
(5) Exit Phonebook

What would you like to do? 5


You have chosen to exit the Phonebook.

RESULT

Thus a C Program was executed and the output was obtained.

48
EX.No. : 17 BANKING APPLICATIONS

DATE :

AIM
To write a C Program to Count the number of account holders whose balance is lessthan the
minimum balance using sequential access file.

ALGORITHM

1. Start
2. Declare variables and file pointer.
3. Display the menu options.
4. Read the Input for transaction processing.
5. Check the validation for the input data.
6. Display the output of the calculations .
7. Repeat step 3 until choose to stop.
8. Stop

PROGRAM
/* Count the number of account holders whose balance is less than the minimum balance
using sequential acc ss file.
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define MINBAL 500
struct Bank_Account
{
char no[10]; char
name[20];
char balance[15];
};
struct Bank_Account acc;
void main()
{
long int pos1,pos2,pos;

49
FILE *fp;
char *ano,*amt;
char choice;
int type,flag=0;
float bal;
do
{
clrscr();
fflush(stdin);
printf("1. Add a New Account Holder\n");
printf("2. Display\n");
printf("3. Deposit or Withdraw\n");
printf("4. Number of Account Holder Whose Balance is less than the Minimum
Balance\n");
printf("5. Stop\n"); printf("Enter
your choice : ");choice=getchar();
switch(choice)
{
case '1' :
fflush(stdin); fp=fopen("acc.dat","a");
printf("\nEnter the Account Number : ");
gets(acc.no);
printf("\nEnter the Account Holder Name : ");
gets(acc.name);
printf("\nEnter the Initial Amount to deposit : ");
gets(acc.balance);
fseek(fp,0,2);
fwrite(&acc,sizeof(acc),1,fp);fclose(fp);
break; case
'2' :
fp=fopen("acc.dat","r");
if(fp==NULL) printf("\nFile
is Empty"); else
{
printf("\nA/c Number\tA/c Holder Name Balance\n");
while(fread(&acc,sizeof(acc),1,fp)==1)
printf("%-10s\t\t%-20s\t%s\n",acc.no,acc.name,acc.balance); fclose(fp);
}
break; case
'3' :
fflush(stdin);
flag=0;
fp=fopen("acc.dat","r+"); printf("\nEnter the
Account Number : ");gets(ano);

50
for(pos1=ftell(fp);fread(&acc,sizeof(acc),1,fp)==1;pos1=ftell(fp))
{
if(strcmp(acc.no,ano)==0)
{
printf("\nEnter the Type 1 for deposit & 2 for withdraw : ");
scanf("%d",&type);
printf("\nYour Current Balance is : %s",acc.balance);
printf("\nEnter the Amount to transact : "); fflush(stdin);
gets(amt);
if(type==1)
bal = atof(acc.balance) + atof(amt);else
{
bal = atof(acc.balance) - atof(amt);
if(bal<0)
{
printf("\nRs.%s Not available in your A/c\n",amt);flag=2;
break;
}
}
flag++;
break;
}

}
if(flag==1)
{
pos2=ftell(fp); pos
= pos2-pos1;
fseek(fp,-pos,1);
sprintf(amt,"%.2f",bal);
strcpy(acc.balance,amt);
fwrite(&acc,sizeof(acc),1,fp);
}
else if(flag==0)
printf("\nA/c Number Not exits... Check it again");
fclose(fp);
break;

case '4' :
fp=fopen("acc.dat","r");
flag=0;
while(fread(&acc,sizeof(acc),1,fp)==1)
{
bal = atof(acc.balance);
if(bal<MINBAL) flag++;

51
}
printf("\nThe Number of Account Holder whose Balance less than the Minimum Balance :
%d",flag);
fclose(fp); break;
case '5' :
fclose(fp);
exit(0);

}
printf("\nPress any key to continue ............. ");
getch();
} while (choice!='5');
}

OUTPUT
1. Add a New Account Holder
2. Display
3. Deposit or Withdraw
4. Number of Account Holder Whose Balance is less than the Minimum Balance
5. Stop
Enter your choice : 1
Enter the Account Number : 547898760 Enter
the Account Holder Name : Rajan Enter the
Initial Amount to deposit : 2000Press any key to
continue....

1.Add a New Account Holder


2.Display
3.Deposit or Withdr w
4.Number of Account Holder Whose Balance is less than the Minimum Balance
5.Stop
Enter your choice : 4
The Number of Account Holder whose Balance less than the Minimum Balance : 0

RESULT

Thus a C Program for Banking Application was executed and the output was obtained.

52
EX.No. : 18 RAILWAY RESERVATION SYSTEM

DATE :

AIM
Create a Railway reservation system in C with the following modules
 Booking
 Availability checking
 Cancellation
 Prepare chart

ALGORITHM

1. Start
2. Declare variables
3. Display the menu options
4. Read the option.
5. Develop the code for each option.
6. Display the output of the selected option based on existence .
7. Stop

PROGRAM

#include<stdio.h>
#include<conio.h>
int first=5,second=5,thired=5;struct
node
{
int ticketno;
int phoneno;
char name[100]; char
address[100];
}s[15];

int i=0;
void booking()
{
printf("enter your details");

53
printf("\nname:"); scanf("%s",s[i].name);
printf("\nphonenumber:");
scanf("%d",&s[i].phoneno);
printf("\naddress:");
scanf("%s",s[i].address);
printf("\nticketnumber only 1-10:");
scanf("%d",&s[i].ticketno);
i++;
}
void availability()
{
int c;
printf("availability cheking");
printf("\n1.first class\n2.second class\n3.thired class\n");
printf("enter the option");
scanf("%d",&c);
switch(c)
{
case 1:if(first>0)
{
printf("seat available\n");
first--;
}
else
{
printf("seat not available");
}
break;
case 2: if(second>0)
{
printf("seat available\n");
second--;
}
else
{
printf("seat not available");
}
break;
case 3:if(thired>0)
{
printf("seat available\n");
thired--;
}
else
{
printf("seat not available");
}
break;
default:

54
break;
}
}
void cancel()
{
int c;
printf("cancel\n");
printf("which class you want to cancel");
printf("\n1.first class\n2.second class\n3.thired class\n");
printf("enter the option");
scanf("%d",c);
switch(c)
{
case 1:
first++;
break;
case 2:
second++;
break;
case 3:
thired++;
break;
default:
break;
}
printf("ticket is canceled");
}
void chart()
{
int c;
for(c=0;c<I;c++)
{
printf(“\n Ticket No\t Name\n”);
printf(“%d\t%s\n”,s[c].tick tno,s[c].name)
}
}
main()
{
int n;
clrscr();
printf("welcome to railway ticket reservation\n");while(1)
{
printf("1.booking\n2.availability cheking\n3.cancel\n4.Chart \n5. Exit\nenter youroption:");
scanf("%d",&n);
switch(n)
{
case 1: booking();
break;
case 2: availability();

55
break;
case 3: cancel();
break;
case 4:
chart();
break;
case 5:
printf(“\n Thank you visit again!”);
getch();
exit(0);
default:
break;
}
}
getch();
}

OUTPUT

welcome to railway ticket reservation


1.booking
2.availability cheking
3.cancel
4. Chart
5. Exit
enter your option: 2
availability cheking
1.first class
2.second class
3.thired class
enter the option 1
seat available
1.booking
2.availability cheking
3.cancel
4. Chart
5. Exit
enter your option: 5
Thank you visit again!

RESULT

Thus a C Program for Railway reservation system was executed and the output was obtained.

56

You might also like