0% found this document useful (0 votes)
125 views40 pages

CP Lab Manual

The document describes a C programming lab course with the following objectives: 1. Develop programs in C using basic constructs, strings, pointers, functions, and structures. 2. Develop applications in C involving file processing. The course consists of 15 experiments covering topics such as I/O statements, decision making, finding leap years, calculators, Armstrong numbers, arrays, strings, structures, pointers, recursion, and file processing. The outcomes are for students to develop simple and advanced C programs and design applications using file processing.

Uploaded by

DhivyaDeepa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
125 views40 pages

CP Lab Manual

The document describes a C programming lab course with the following objectives: 1. Develop programs in C using basic constructs, strings, pointers, functions, and structures. 2. Develop applications in C involving file processing. The course consists of 15 experiments covering topics such as I/O statements, decision making, finding leap years, calculators, Armstrong numbers, arrays, strings, structures, pointers, recursion, and file processing. The outcomes are for students to develop simple and advanced C programs and design applications using file processing.

Uploaded by

DhivyaDeepa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 40

CS8261 C PROGRAMMING LABORATORY LTPC 0 042

OBJECTIVES:
To develop programs in C using basic constructs.
To develop applications in C using strings, pointers, functions, structures.
To develop applications in C using file processing.

LIST OF EXPERIMENTS:
1..Programs using I/O statements and expressions.
2. Programs using decision-making constructs.
3. Write a program to find whether the given year is leap year or Not? (Hint: not every centurion
year is a leap. For example 1700, 1800 and 1900 is not a leap year)
4. Design a calculator to perform the operations, namely, addition, subtraction, multiplication,
division and square of a number.
5. Check whether a given number is Armstrong number or not?
6. Given a set of numbers like <10, 36, 54, 89, 12, 27>, find sum of weights based on the
following 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>
7. Populate an array with height of persons and find how many persons are above the average
height.
8. Populate a two dimensional array with height and weight of persons and compute the Body
Mass Index of the individuals.
9. Given a string ―a$bcd./fg‖ find its reverse without changing the position of special characters.
(Example input:a@gh%;j and output:j@hg%;a)
10. Convert the given decimal number into binary, octal and hexadecimal numbers using user
defined functions.
11. From a given paragraph perform 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.
12. Solve towers of Hanoi using recursion.
13. Sort the list of numbers using pass by reference.
14. Generate salary slip of employees using structures and pointers.
15. Compute internal marks of students for five different subjects using structures and functions.
16. Insert, update, delete and append telephone details of an individual or a company into a
telephone directory using random access file.
17. Count the number of account holders whose balance is less than the minimum balance using
sequential access file.

Mini project
18. Create a ―Railway reservation system‖ with the following modules
Booking
Availability checking
Cancellation
Prepare chart
TOTAL: 60 PERIODS
OUTCOMES:
Upon completion of the course, the students will be able to:
Develop C programs for simple applications making use of basic constructs, arrays and strings.
Develop C programs involving functions, recursion, pointers, and structures.
Design applications using sequential and random access file processing.
List of Experiments

Page Staff’s
Sl.No Ex.No. Date Title of the Experiments
No. sign
1 1a Programs using I/O statements
2 1b Programs using Expressions
3 2a Find Odd or Even
4 2b Find the largest of three Numbers
5 3 Finding Leap Year or Not
6 4 Creating a Calculator
7 5 Finding Armstrong Number
8 6 Finding Sum Of Weights & Sorting The
Elements Based On Weights
9 7 Finding The Persons Having Above
Average Height
10 8 Finding Body Mass Index Using Array
11 9 Reverse String Without Changing The
Position Of Special Character
12 10 Sorting The Values Using Pass By
Reference
13 11 Number System Conversion Using User
Defined Function
14 12 Finding Number Of Words And Capitalize
the First Word
15 13 Employee Salary Slip
16 14 Students Internal Mark Sheet
17 15 Sequential Access File
18 16 Towers of Hanoi
19 17 Random Access File
EX.NO.:1a PROGRAMS USING I/O STATEMENTS

AIM:
To Write a C program to use Input and Output Statements

PROCEDURE:
1. Start the program
2. Use Unformulated input & output statements to get char or string
 getchar(), getche() , getch() & gets()
3. Print the char or string using unformulated output statements
 putch(), putchar() & puts()
4. Use formatted Input statements to read different types of data
 scanf()
5. Print different types of data using formatted output statements
 printf()
6. Stop the program

SYNTAX:
Unformatted I/O
◦ charvariable=getchar();
◦ charvariable=getche();
◦ charvariable=getch();
◦ gets(chararray_variable);
◦ putch(charvariable);
◦ puts(chararray_variable);
Formatted I/O
◦ scanf(“format specifiers”,address of variables);
◦ printf(“Any text”);
◦ printf(“Any text,format spcifiers”,variables);
◦ printf(“format spcifiers”,variables);

SAMPLE PROGRAMS:
P1: Get & Display a single character using getch()
#include<stdio.h>
#include<conio.h>
main()
{
char c1;
c1=getch();
putch(c1);
}
P2: Get & Display a single character using getche()
#include<stdio.h>
#include<conio.h>
main()
{
char c1;
}

P3: Get & Display a single character using getchar()


#include<stdio.h>
#include<conio.h>
main()
{
char c1;
}
P4: Get & Display a More characters using gets()
#include<stdio.h>
#include<conio.h>
main()
{
char name[20];
}

P5: Get & Display a student’s regno,Name and GPA using scanf & printf
#include<stdio.h>
#include<conio.h>
main()
{
int regno;
char name[25];
float GPA;
printf(“\nEnter a Student Regno,Name & GPA\n”);
scanf();
prinntf(“\n------------------------------------------------------\n”);
prinntf(“\n\t\t REG.NO \t\t NAME \t\t GPA \t\t\n”);
prinntf(“\n------------------------------------------------------\n”);
printf();
}
OUTPUT:

RESULT:
Thus the program for I/O statements has been written & executed successfully.
EX.NO. :1b PROGRAMS USING EXPRESSIONS

AIM:
To Write C programs using Expressions

PROCEDURE:
1. Start the program
2. Use Arithmetic operators (+,-,*,/,%)
3. Use Increment & Decrement Operators (++,--)
4. Use comparison operators (>,<,>=,<=,==,!=)
5. Use Bit wise operators (~,^,|,&)
6. Use logical operators (||,&&,!)
7. Use Ternary Operator (?:)
8. Stop the program
SYNTAX:
Expression = Operand operator Operand
Operator : Symbol
Operand : variable or Constant
var1=Var2+Var3 (or) Var1=Value1+Value2; (or) Var1=Var2+value
Logical Operators : returns True(1) or false(0) values-Condition1&& Condition2
Ternary Operator: if condition is true True part will be executed. Otherwise, False part
will be executed - Var1= ( condition)? True part: False Part

SAMPLE PROGRAMS:
P1: Arithmetic Operators
#include<stdio.h>
#include<conio.h>
main()
{
int a,b;
clrscr(); //to clear the output screen
a=20;
b=5;
printf(“Addition of %d + %d is = %d”,a+b);
printf(“Subtraction of);
printf(“Multiplication of);
printf(“Division of);
printf(“Modulo Division of);
getch();
}
P2: Bit wise Operators
#include<stdio.h>
#include<conio.h>
main()
{
int a,b;
clrscr(); //to clear the output screen
a=20;
b=5;
printf(“Bit wise OR of %d + %d is = %d”,a|b);
printf(“Bit wise AND of %d + %d is = %d”, );
printf(“One’s complement of %d is = %d”, );
getch();
}
P3: Relational Operators
#include<stdio.h>
#include<conio.h>
main()
{
int a,b;
clrscr(); //to clear the output screen
a=20;
b=5;
printf(“a>b : %d”,a>b);
getch();
}
P4: Logical, Ternary Operators, Increment & decrement Operators
#include<stdio.h>
#include<conio.h>
main()
{
int a,b,c;
clrscr(); //to clear the output screen
a=20;
b=5;
c=(a>b)?(a+b):(a-b);
printf(“The value of c is = ”, );
d=(a>b)&&(a>c);
printf(“The value of d is = ”, );
d=(b<c)&&(a<c);
printf(“The value of d is = ”, );
printf(“a++ & ++b is = ”,++a,b++);
getch();
}
RESULT:
Thus the C program for expressions has been written & executed successfully.
EX.NO.:2 FINDING ODD OR EVEN

AIM:
To Write a C program to find whether a given number is odd or even

PROCEDURE:
1. Start the program
2. Read an input Value
3. Divide it by 2.
4. Take the remainder, if the remainder is greater than zero , then
5. Print the given Number is EVEN.
6. Otherwise, print the given Number is ODD.
7. Stop the Programs

SYNTAX:
if(condition)
statement;
else
statement;

SAMPLE PROGRAM:
#include<stdio.h>
#include<conio.h>
main()
{
int Num,remainder;
printf(“Enter a Number”);
scanf( );
remainder= ;
if ( )
printf(“%d is EVEN”, );
else
printf(“%d is ODD’, );
getch();
}

OUTPUT:

RESULT:
Thus the program is written & executed Successfully.
EX.NO.:3 FINDING LEAP YEAR OR NOT

AIM:
To Write a C program to find whether the given the given year is leap year or Not.

PROCEDURE:
1. Start the program
2. Read an input Value (Year)
3. If the Year is divisible by both 4 and 100 then,
4. Print the given year is LEAP YEAR
5. Otherwise, Print the given year is NOT A LEAP YEAR

PROGRAM:
#include<stdio.h>
#include<conio.h>
main()
{
int year;
printf(“Enter a year”);
scanf( );
if( )
printf(“%d is a LEAP YEAR”, );
else
printf(“%d is NOT a LEAP YEAR”, );
}
EX.NO.:4 CREATING A CALCULATOR

AIM:
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 the program
2. Read an option to select the operation: 1.Add 2.Sub 3.Mul 4.Div 5.Square
3. Enter the input values according to the operation.
4. Use switch case to perform the operation.
5. Print the Result.
6. Stop the program.

PROGRAM:
#include<stdio.h>
#include<conio.h>
main()
{
int option,a,b,c;
clrscr();
printf(“Enter the option”);
printf(“\n 1.ADD \t 2.SUB \t 3.MUL \t 4.DIV \t 5.SQUARE\n”);
scanf(“%d”,&option);
switch()
{
case 1:
printf(“Enter two values”);
scanf(“%d%d”,&a,&b);
c=a+b;
break;
case 2:
case 3:
case 4:
case 5:
default:
printf(“Choose the correct option”);
}
printf(“ Result is =%d”,c);
getch();
}
OUTPUT:
RESULT:
Thus the program is written & executed Successfully.
EX.NO.: 5 FINDING ARMSTRONG NUMBER

AIM:
To Write a C program to find whether a given number is Armstrong number or not.

ALGORITHM:
1. Start the program.
2. Read an input value.
3. Split the digits using modulo division.
4. Cube the individual digits
5. Sum the cubes.
6. If the given number == sum of cubes,then
Print “ ARMSTRONG NUMBER”
7. Otherwise,
Print “ NOT AN ARMSTRONG NUMBER”
8. Stop the program.

PROGRAM:
#include<stdio.h>
#include<conio.h>
main()
{
int N,A,digit,cube,sum=0;
printf(“Enter a Number”);
scanf(“%d”,&N);
A=N;
while( )
{
digit=N%10;
cube=(digit*digit*digit);
sum=sum+cube;
N=N/10;
}
if ( sum==A)
printf(“%d is Armstrong Number”, );
else
printf(“%d is not an Armstrong Number”, );
getch();
}

OUTPUT:
RESULT:
Thus the program is written & executed Successfully.
Ex:6 FINDING SUM OF WEIGHTS & SORTING THE ELEMENTS BASED ON
WEIGHTS
AIM:
Write a C program to find sum of weights for a given set of numbers like <10, 36, 54, 89, 12,
27>, Find the sum of weights based on the following conditions.
1. 5 if it is a perfect cube.
2. 4 if it is a multiple of 4 and divisible by 6.
3. 3 if it is a prime number.
ALGORITHM:
 Declare & initialize an integer array : a[]
 Declare an array called w[] to store the weight values of the respective elements.
 Assign the weight values to each element of that array by checking the conditions
◦ If a[i] is a perfect cube , assign weight 5 to w[i]
◦ If a[i] is multiples of 4 & divisible by 6 then assign 4 to w[i]
◦ If a[i] is a prime number then assign 3 to w[i]
 Add all weight values
 Print the sum of weights
 Sort the array elements in increasing order based on their weight values.

PROGRAM:
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
double cubroot,cube;
int a[10]={ },w[10],i,j,N=6,count=0,A,sum=0;
clrscr();
for(i=0;i<N;i++)
{
A=a[i];
w[i]=0;
cubroot=ceil(pow(A,(1/3)));
cube=cubroot*cubroot*cubroot;
if(A==cube)
w[i]=w[i]+5;
if(A%4==0 && A%6==0)
w[i]=w[i]+4;

for(j=2;j<=A;j++)
{
if(A%j == 0)
count=count+j;
}
if(A==1 || A==count)
w[i]=w[i]+3;

}
printf("\n\nELEMENT\t\t\t\tWEIGHT \n\n");
for(i=0;i<N;i++)
{
printf("%d \t\t\t\t%d\n\n",a[i],w[i]);
sum=sum+w[i];
}
printf("The sum of Weights is = sum);
printf("Sorting of the Elements based on weight values\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(w[j]>w[j+1])
{
t=w[j];
w[j]=w[j+1];
w[j+1]=t;

k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}

for(i=0;i<N;i++)
{
printf("<%d,%d> \t",a[i],w[i]);
}

getch();
}

OUTPUT:

RESULT:
Thus the program is written & executed Successfully.
Ex.No:7 FINDING THE PERSONS HAVING ABOVE AVERAGE HEIGHT

AIM:
Write a C program to populate an array with height of persons and find how many persons are
above the average height.

ALGORITHM:
1. Declare an array to store the height values of persons
2. Initialize the count value to 0.
3. Read the number of persons
4. Read the individual person’s height
5. Find the sum of heights
6. Find the average of heights
7. Check whether a person’s height is greater than the average height or not.
1. If Yes, then increase the count value
8. Print the count value.

PROGRAM:
#include<stdio.h>
#include<conio.h>
void main()
{
float height[20],avg;
int N,i,sum=0,count=0;
clrscr();
printf("Enter the no. of persons");
scanf("%d",&N);
printf("Enter the persons height on eby one\n");
for(i=0;i<N;i++)
{
scanf("%f",&height[i]);
sum=sum+height[i];
}
avg=sum/N;
for(i=0;i<N;i++)
{
if(height[i]>avg)
{ count=count+1; }
}
printf("Totally %d Persons are having above average height",count);
getch();
}
OUTPUT:

RESULT:
Thus the program is written & executed Successfully.
EX.NO.: 8 FINDING BODY MASS INDEX USING ARRAY

AIM:
To Write a C program to perform the following,
▪ Populate a two dimensional array with height and weight of persons
▪ Compute the Body Mass Index of the individuals.

ALGORITHM:
1. Start the program.
2. Read the Number of Persons.
3. Enter the height,weight values.
4. Read height in centi meters & weight in Kilograms of a person.
5. Height in Meter= height in cm/100;
6. Compute the body mass index value using the following formula
BMI=(weight in Kg)/(Height in Meters)2
7. Store the BMI values in a resultant array.
8. Print the results.
9. Stop the program.

PROGRAM:
#include<stdio.h>
#include<conio.h>
void main()
{
float height[20],weight[20],BMI[20],HIM[20];
int i,j,N;
clrscr();
printf("\nEnter the No.of the elements\n");
scanf("%d",&N);
printf("\n Enter the Height & Weight values\n");
for(i=0;i<N;i++)
{
scanf("%f%f",&height[i],&weight[i]);
HIM[i]=height[i]/100;
}

printf("\nPerson\tHeight\tWeight\tBMS\n");
for(i=0;i<N;i++)
{
BMI[i]=weight[i]/(HIM[i]*HIM[i]);
printf("\n%d\t%.2f\t%.2f\t%.2f\n",(i+1),HIM[i],weight[i],BMI[i]);
}
getch();
}

OUTPUT:
Enter No. of the elements
3

Enter the Height & Weight values


152 58
122 28
135 40

Person Height Weight BMS

1 1.52 58.00 25.10

2 1.22 28.00 18.81

3 1.35 40.00 21.95

RESULT:
Thus the program is written & executed Successfully.
EX.NO.: 9 REVERSE STRING WITHOUT CHANGING THE POSITION OF
SPECIAL CHARACTER

AIM:
To Write a C program for reversing a string without changing the position of special
characters. (Example input:a@gh%;j and output:j@hg%;a)

ALGORITHM:
1. Start the program.
2. Read a String.
3. Call a function to reverse a string.
4. Reverse function
 Find strlen
 Set forward & reverse pointers ( f=0,r=strlen-1)
 Check the following
o If both str[f] and str[l] are alphanumeric then swap these two chars in that string
and do f++,r--
o If str[f] is a special char then f++
o Id str[r] is a special char then r--;
o If both are special chars then f++ &r--
5. Print the reversed string.
6. Stop the program.

PROGRAM:
#include<stdio.h>
#include<conio.h>
void reverse(char *);
void main()
{
char str[50];
clrscr();
printf("Enter a string\n");
scanf("%s",str);
printf( "Input string: %s\n",str);
reverse(str);
printf("Output string:%s\n",str);
getch();
}
void reverse(char *str)
{
int r = strlen(str) - 1, f= 0;
char t;
while (f < r)
{
if(isalnum(str[f])!=0 && isalnum(str[r])!=0)
{
t=str[r];
str[r]=str[f];
str[f]=t;
f++;
r--;
}
else if(isalnum(str[f])!=0 && isalnum(str[r])==0)
{ r--; }

else if(isalnum(str[f])==0 && isalnum(str[r])!=0)


{ f++; }
else
{
f++;
r--;
}

}
}

OUTPUT:
Enter a string:
a@gh%;j
Input string: a@gh%;j
Output string:j@hg%;a

RESULT:
Thus the program is written & executed Successfully.
Ex.No.: 10 SORT THE LIST OF NUMBERS USING PASS BY REFERENCE

AIM:
Write a C program to sort numbers using pass by Reference
ALGORITHM:
1. Start the Program
2. Read the size of array
3. Read the elements one by one
4. Call the function sort()
5. Pass the stating address of the array to the sort function as input.
6. Store the address in the formal argument of that function (Pointer variable)
 Access the array values by (increasing the addresses) the pointer variable
 Sort the values using the pointer variable
7. Print the Result
8. Stop the program

PROGRAM:
#include<stdio.h>
void sort(int *,int);
void main()
{
int a[20],N,i;
printf("Enter the no. of elements\n");
scanf("%d",&N);
printf("Enter the Elements one by one\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
sort(a,N);

printf("\n Sorted Order\n");


for(i=0;i<N;i++)
printf("%d\t",a[i]);
getch();
}

void sort(int *x,int n)


{
int t,i,j;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1;j++)
{
if(*(x+j) > *(x+(j+1)))
{
t=*(x+j);
*(x+j) =*(x+(j+1));
*(x+(j+1))=t;
}
}
}
}

OUTPUT:
Enter the no. of elements
3
Enter the Elements one by one
100
3
45
Sorted Order
3 45 100

RESULT:
Thus the program is written & executed successfully
Ex.No:11
NUMBER SYSTEM CONVERSION USING USER DEFINED FUNCTION
AIM
Write a C program to convert decimal number into octal , binary & hexa decimal using user
defined functions

ALGORITHM
1. Start the program
2. Read a decimal value
3. Call oct() function
 Store the remainder when the number is divided by 8 in an array.
 Divide the number by 8 now
 Repeat the above two steps until the number is not equal to 0.
 Print the array in reverse order now.
4. Call hex() function
 Take a decimal number as input
 Divide the input number by 16. Store the remainder in the array
 Do step 2 with the quotient obtained until quotient becomes zero
 Print the array in the reversed fashion to get hexadecimal number.
5. Call bin() function
 Store the remainder when the number is divided by 2 in an array.
 Divide the number by 2
 Repeat the above two steps until the number is greater than zero.
 Print the array in reverse order now.

PROGRAM:
#include<stdio.h>
void oct(int);
void hex(int);
void bin(int);
void main()
{
int dec;
clrscr();
printf("enter a decimal value\n");
scanf("%d",&dec);
oct(dec);

bin(dec);
hex(dec);
getch();
}

void oct(int x)
{
int octalNum[100],n,i,j;
n=x;
i = 0;
while (n != 0)
{
octalNum[i] = n % 8;
n = n / 8;
i++;
}

for (j = i - 1; j >= 0; j--)


printf("%d",octalNum[j]);
printf("\n\n");
}

void bin(int x)
{
int binaryNum[1000];

// counter for binary array


int i = 0,n=x,j;
while (n > 0)
{

// storing remainder in binary array


binaryNum[i] = n % 2;
n = n / 2;
i++;
}

// printing binary array in reverse order


for (j = i - 1; j >= 0; j--)
printf("%d",binaryNum[j]);
printf("\n\n");
}

void hex(int x)
{
int n=x,j=0,i,remainder,hexadecimal[20];

while (n != 0)
{
remainder = n % 16;
if (remainder < 10)
hexadecimal[j++] = 48 + remainder;
else
hexadecimal[j++] = 55 + remainder;
n =n / 16;
}

// display integer into character


for (i = j-1; i >=0; i--)
printf("%c", hexadecimal[i]);
}

OUTPUT:
enter a decimal value
15
17

00000000000001111

RESULT:
Thus the program is written & executed successfully
Ex. No. : 12 FINDING NUMBER OF WORDS AND CAPITALIZE THE FIRST WORD
AIM:
To write a C program to find the total number of words and capitalize the first word of
each sentence.
ALGORITHM:
1. Start the program.
2. Read a paragraph.
3. Count the no. of words
4. Capitalize the first word of each sentence.
5. Print the capitalized text and no. of words.
PROGRAM:
#include<stdio.h>
void main()
{
char text[200],t[100],ch;
int n,i,words=0;
clrscr();
printf("Enter a text\n ");
gets(text);
i=0;
text[i]=toupper(text[i]);
while((ch=text[i])!='\0')
{

if(ch==' '||ch=='.')
words++;
if(ch=='.')
text[i+1]=toupper(text[i+1]);
i++;

}
printf("\n\tSentence =%s",text);
printf("\n\tNo. of Words=%d",words+1);
getch();
}
OUTPUT:
Enter a text
hai welcome to all.good morning.how are you?
Sentence =Hai welcome to all.Good morning.How are you?
No. of Words=9
RESULT:
Thus the program is written & executed successfully.
EX.NO.: 13 EMPLOYEE SALARY SLIP
AIM:
To Write a C program to generate employee salary slip using structure & pointer.

ALGORITHM:
1. Start the program.
2. Create a structure called Employee with empid,empname,dept,designation & salary
fields.
3. Create a pointer to a structure.
4. Call a function to generate the Salary slip of particular employee
5. Stop the program.

PROGRAM:
#include<stdio.h>
struct employee
{
char ename[25];
int eid;
char edes[20];
char edept[20];
int esal;
};

void salaryslip(struct employee *e,int n)


{
int id,i;
printf("\nEnter the employee id to generate the salary slip\n");
scanf("%d",&id);
for(i=0;i<=n;i++)
{
if((e+i)->eid==id)
{
printf("\n-----------------------------------------------------------------------------");
printf("\nNAME\t\tDEPARTMENT\t\tDESIGNATION\t\tSALARY");
printf("\n----------------------------------------------------------------------");
printf("\n%s\t\t%s\t\t%s\t\t%d",(e+i)->ename,(e+i)->edept,(e+i)->edes,(e+i)->esal);
printf("\n--------------------------------------------------------------------------------");
}
}
}

void main()
{
struct employee emp[20],*emp1;
int m,i;
printf("Enter the no. of employee details");
scanf("%d",&m);
printf("\nEnter employee id, name, department, designation & salary\n");
for(i=0;i<m;i++)
{
scanf("%d%s%s%s
%d",&emp[i].eid,&emp[i].ename,&emp[i].edes,&emp[i].edept,&emp[i].esal);
}
emp1=emp;
salaryslip(emp1,m);
getch();
}

OUTPUT
Enter the no. of employee details2

Enter employee id, name, department, designation & salary


101 A CSE AP 20000
202 B ECE AP 25000

Enter the employee id to generate the salary slip101


-----------------------------------------------------------------------------
NAME DEPARTMENT DESIGNATION SALARY
-----------------------------------------------------------------------------
A CSE AP 20000
-----------------------------------------------------------------------------

RESULT:

Thus the program is written & executed successfully.


EX.NO.: 14 STUDENTS INTERNAL MARK SHEET

AIM:
To Write a C program to compute internal marks of students for five different subjects
using structures and functions.
ALGORITHM:
1. Start the program.
2. Create a structure called student with the following fields,
 Name
 Test marks for subjects
 Internal mark
3. Create a function called internal
4. Call a function to compute and print the marks
5. Stop the program.
PROGRAM:
#include<stdio.h>

struct student
{
char name[20];
int t[15][15];
int mark[5];
};
void internal( struct student);
void main()
{
struct student s;
int j,k;
clrscr();
for(j=0;j<3;j++)
{
printf("Enter the internal test %d marks for five subjects:\t",j+1);
for(k=0;k<5;k++)
scanf("%d",&s.t[j][k]);
}

internal(s);
getch();
}
void internal(struct student s1)
{
int i,j,k,sum[20],c=0;
for(j=0;j<5;j++)
{
c=0;
for(k=0;k<3;k++)
{
c=c+s1.t[k][j];
}
s1.mark[j]=((c/3)/5);
}
for(i=0;i<5;i++)
printf("\nSubject %d Internal Mark (max. marks 20)= %d",i+1,s1.mark[i]);
}
OUTPUT:
Enter the internal test 1 marks for five subjects: 10 10 10 10 10
Enter the internal test 2 marks for five subjects: 70 80 90 10 80
Enter the internal test 3 marks for five subjects: 90 90 90 90 90

Subject 1 Internal Mark (max. marks 20)= 11


Subject 2 Internal Mark (max. marks 20)= 12
Subject 3 Internal Mark (max. marks 20)= 12
Subject 4 Internal Mark (max. marks 20)= 7
Subject 5 Internal Mark (max. marks 20)= 12

RESULT:

Thus the program is written & executed successfully.


Ex.No: 15 SEQUENTIAL ACCESS FILE

AIM:
Write a C program to count the number of account holders whose balance is less than the
minimum balance using sequential access file.

ALGORITHM:
1. Start the program
2. Read choice to insert records & count minimum balance account
3. If choice is 1, then
 Open a dat file in write mode
 Read the No. of records
 Write the records into the file using fprintf() function
 Close the file
4. If Choice is 2, then
 Open the file in Read mode
 Read the records one by one using fscanf(0 function until reach the end of file.
 Check the account balance with min bal.
 If account balance is less than min balance, then display the account details
 Close the file
5. Stop the program

PROGRAM:
#include <stdio.h>

void insert();
void count();

int main(void)
{
int choice = 0;
while (choice != 3)
{
printf("\n1 insert records\n");
printf("2 Count min balance holders\n");
printf("3 Exit\n");
printf("Enter choice:");
scanf("%d", &choice);
switch(choice)
{
case 1: insert(); break;
case 2: count(); break;
}
}
}

void insert()
{
unsigned int account,i;
char name[30];
double balance;
FILE* cfPtr;

if ((cfPtr = fopen("clients.dat", "w")) == NULL) {


puts("File could not be opened");
}
else {
int records,i=0;
printf("Enter the No. of records ");
scanf("%d", &records);
while (i<records)
{
printf("Enter the account, name, and balance.");
scanf("%d%29s%lf", &account, name, &balance);
fprintf(cfPtr, "%d %s %.2f\n", account, name, balance);
i++;
}
fclose(cfPtr);
}
}

void count()
{
unsigned int account;
char name[30];
double balance;
float minBal = 5000.00;
int count = 0;
FILE *cfPtr;
if ((cfPtr = fopen("clients.dat", "r")) == NULL)
printf("File could not be opened");
else
{
printf("%-10s%-13s%s\n", "Account", "Name", "Balance");
fscanf(cfPtr, "%d%29s%lf", &account, name, &balance);

while (!feof(cfPtr))
{
if (balance < minBal)
{
printf("%-10d%-13s%7.2f\n", account, name, balance);
count++;
}
fscanf(cfPtr, "%d%29s%lf", &account, name, &balance);
}

fclose(cfPtr);
printf("The number of account holders whose balance is less than the minimum balance: %d",
count);
}
}
OUTPUT:
1 insert records
2 Count min balance holders
3 Exit
Enter choice:1
Enter the No. of records 2
Enter the account, name, and balance.1001 A 10000
Enter the account, name, and balance.1002 B 300

1 insert records
2 Count min balance holders
3 Exit
Enter choice:2
Account Name Balance
1002 B 300.00
The number of account holders whose balance is less than the minimum balance: 1
1 insert records
2 Count min balance holders
3 Exit
Enter choice:

RESULT:

Thus the program is written & executed successfully.


Ex.No: 16 TOWERS OF HANOI

AIM:
To Write a C program to solve towers of Hanoi using recursion.

ALGORITHM:
1. Start the program
2. Create a function called towers()
3. Read Number of disks
4. Call the function towers()
5. Recursively call this function to move the disks from source to destination.
6. Stop the program

PROGRAM:
#include <stdio.h>

void towers(int,char,char,char);

void main()
{
int num;
printf("Enter the number of disks : ");
scanf("%d",&num);
printf("The sequence of moves involved in the Tower of Hanoi are :\n");
towers(num,'A','C','B');
}

void towers(int num,char frompeg,char topeg,char auxpeg)


{
if (num == 1)
{
printf("\n Move disk 1 from peg %c to peg %c", frompeg, topeg);
return;
}
towers(num - 1, frompeg, auxpeg, topeg);
printf("\n Move disk %d from peg %c to peg %c", num, frompeg, topeg);
towers(num - 1, auxpeg, topeg, frompeg);
}
OUTPUT:

Enter the number of disks : 3


The sequence of moves involved in the Tower of Hanoi are :

Move disk 1 from peg A to peg C


Move disk 2 from peg A to peg B
Move disk 1 from peg C to peg B
Move disk 3 from peg A to peg C
Move disk 1 from peg B to peg A
Move disk 2 from peg B to peg C
Move disk 1 from peg A to peg C

RESULT:

Thus the program is written & executed successfully.


Ex.No: 17 RANDOM ACCESS FILE

AIM:
To Write a C program to update telephone details of an individual or a company into a
telephone directory using random access file.

ALGORITHM:
1. Start the program
2. Store the telephone details into a file
3. Read the data & Display it
4. Enter the telephone number to be modified & the new number
5. Use fseek() function to randomly access the record
6. Copy the contents from source file to destination file
7. Store the updated record into the new file
8. Stop the program

PROGRAM:

#include<stdio.h>
struct teledir
{
int no;
char name[3];
};
void main()
{
struct teledir t1,t2,t3;
int i,n,p,newp;
FILE *fp,*fp1;
clrscr();
fp=fopen("td.txt","w");
printf("Enter the no of records\n");
scanf("%d",&n);
printf("Enter the record\n");
for (i=0;i<n;i++)
{
scanf("%d%s",&t1.no,t1.name);
fwrite(&t1,sizeof(struct teledir),1,fp);
}
fclose(fp);
fp=fopen("td.txt","r");
while(fread(&t2,sizeof(struct teledir),1,fp)!=NULL)
{
printf("\t%d%s\n",t2.no,t2.name);
}

printf("Enter number to be modified & a new number\n");


scanf("%d%d",&p,&newp);
fclose(fp);
fp=fopen("td.txt","r+");
fp1=fopen("td1.txt","w");
while(fread(&t2,sizeof(struct teledir),1,fp)!=NULL)
{
if(t2.no==p)
{
fseek(fp,-sizeof(struct teledir),SEEK_CUR);
t3.no=newp;
strcpy(t3.name,t2.name);
fwrite(&t3,sizeof(struct teledir),1,fp1);
}
else
{
fwrite(&t2,sizeof(struct teledir),1,fp1);
}
}
fclose(fp);
fclose(fp1);
fp=fopen("td1.txt","r");
while(fread(&t3,sizeof(struct teledir),1,fp)!=NULL)
{
printf("\t%d\t%s\n",t3.no,t3.name);
}

fclose(fp);

getch();
}

OUTPUT:
Enter the no of records
3
Enter the record
111 abc
222 xyz
333 nmo
111abc
222xyz
333nmo
Enter number to be modified & a new number
222 9898
111 abc
9898 xyz
333 nmo

RESULT:
Thus the program is written & executed successfully.

You might also like