C Programming Lab-Manual
C Programming Lab-Manual
UNIVERSITY
UNIVERSITY COLLEGE OF ENGINEERING- DINDIGUL
DINDIGUL - 624622
Name :
Register no :
Branch :
ANNA UNIVERSITY
UNIVERSITY COLLEGE OF ENGINEERING - DINDIGUL
DINDIGUL - 624622
BONAFIDE CERTIFICATE
Mr./Ms. _______________________________________________________________________ in
INDEX
Ex.no Date Name of the Experiment Page Signature
no
Table of Contents
5 Armstrong number.
16 Telephone directory.
17 Banking Application
Railway reservation system
18
Annexure I - Additional C Programs for exercise
EXPRESSIONS DATE :
AIM
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
/*
* Sum the odd and even numbers, respectively, from 1 to a given upperbound.
* Also compute the absolute difference.
* (SumOddEven.c)
*/
#include <stdio.h> // Needed to use IO functions
int main() {
int sumOdd = 0; // For accumulating odd numbers, init
to 0 int sumEven = 0; // For accumulating even
numbers, init to 0 int upperbound; // Sum from 1 to
this upperbound
int absDiff; // The absolute difference between the two
sums int number = 1;
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 was obtained.
EX.No. : 2 PROGRAM USING DECISION-MAKING
CONSTRUCTS DATE :
AIM
ALGORITHM
1. Start
2. Declare variables and initializations
3. Read the Input variable.
4. Codes are given to different categories and da is 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:
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
Employee 1
Employee name
is sriram
DA is 500.000000 and Total salary is =5500.000000
RESULT
checking 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
/*
*/
#include <stdio.h>
#include<conio.h>
void main()
{
int year;
printf("Enter a year \
n"); scanf("%d",
&year);
if ((year % 400) == 0)
year); else
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.
EX.No. : 4 Arithmetic
operations DATE :
AIM
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
/*
* C Program for Addition, Subtraction, Multiplication, Division
* and square of two numbers
*/
#include
<stdio.h>
#include
<conio.h>
int main(){
/* Variable declation */
int firstNumber,
secondNumber; int sum,
difference, product; long
square;
float quotient;
getch();
return
0;
}
OUTPUT
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.
EX.No. : 5 Armstrong
number DATE :
AIM
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()
number"); scanf("%d",
&number); temp =
number;
while (number != 0)
number = number /
10;
if (sum == temp)
no"); else
OUTPUT
enter a number370
The given no is armstrong no
RESULT
Thus a C Program for Armstrong number checking was executed and the
output was obtained.
EX.No. : 6 Sort the numbers based on the
weight. DATE :
AIM
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;
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]);
//Calculate the weight
for(i=0; i<nelem; i+
+)
{
wArray[i] = 0;
if(percube(nArray[i]))
wArray[i] = wArray[i] + 5;
if(prime(nArray[i]))
wArray[i] = wArray[i] + 3;
}
// Sorting an array
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;
}
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.
EX.No. : 7 Average height of
persons DATE :
AIM
ALGORITHM
1. Start
2. Declare variables
3. Read the total number of persons and their height.
4. Calculate avg=sum/n and find number of persons their h>avg.
5. Display the output of the calculations .
6. Stop
PROGRAM
OUTPUT
Enter the Number of Persons : 5
average : 2
RESULT
Thus a C Program average height of persons was executed and the output was
obtained.
EX.No. : 8 Body Mass Index of the
individuals DATE :
AIM
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 person.
6. Stop
PROGRAM
#include<stdio.h
>
#include<math.
h>
int
main(void)
{ int n,i,j;
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;
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
RESULT
Thus a C Program Body Mass Index of the individuals was executed and the
output was obtained.
EX.No. : 9 Reverse of a given
string DATE :
AIM
ALGORITHM
1. Start
2. Declare variables .
3. Read a String.
4. Check each character of string for alphabets 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 special characters .
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;
}
// Main
program void
main()
{
char str[100];
// Function
Prototype 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();
}
else
{
swap(&str[l],
&str[r]); l++;
r--;
}
}
}
int isAlpha(char x)
{
return ( (x >= 'A' && x <= 'Z')
|| (x >= 'a' && x <= 'z') );
}
OUTPUT
RESULT
Thus a C Program for reverse of a given String was executed and the output was
obtained.
EX.No. : 10 Conversion of Decimal number into other
bases DATE :
AIM
ALGORITHM
1. Start
2. Declare variables.
3. Read a decimal number.
4. Develop the procedure for conversion of different 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--;
}
}
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'; // Append string terminator
// Reverse the
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\n",convert(n,str,16));
getch();
}
OUTPUT
RESULT
Thus a C Program for conversion of decimal number into other bases was
executed and the output was obtained.
EX.No. : 11 String
operations DATE :
AIM
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 sentence to capitalize by checks to see if a
character is a punctuation 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];
/* Input text from user */
printf("Enter any text:\n ");
gets(str);
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;
i++;
}
case '2' :
i = 0;
/* Runs a loop till end of text
*/ while(str[i] != '\0')
{
/* Checks to see if a character is a punctuation mark used to denote
the end of a sentence.
(! . ?) */ 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++;
}
break;
case '3'
:
Write a user defined function to replace the first occurrence of the search string with the
replace string.
Recursively call the function until there is no occurrence of the search 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;
}
//copy all the content to buffer before the first occurrence of the
search string strncpy(buffer, str, ch-str);
OUTPUT
Enter any text:
I like C and C++ programming!
RESULT
Thus a C Program String operations was executed and the output was obtained.
EX.No. : 12 Towers of Hanoi using
Recursion DATE :
AIM
ALGORITHM
1. Start
2. Declare variables
3. Read the Input for number of discs.
4. Check the condition for each transfer of discs using recursion.
5. Display the output of the each move .
6. Stop
PROGRAM
/*
Rules of Tower of Hanoi:
OUTPUT
Enter the number of disks :
3 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 a C Program Towers of Hanoi using Recursion was executed and the
output was obtained.
EX.No. : 13 Sorting using pass by
reference DATE :
AIM
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 elements .
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 an array : ");
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();
}
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
RESULT
Thus a C Program Sorting using pass by reference was executed and the
output was obtained.
EX.No. : 14 Salary slip of
employees DATE :
AIM
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)-deductions
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 : ") ;
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(struct
emp)); current_ptr = current_ptr->next;
}
}
}
printf("\nEmp. No. Name \t Bpay \t Allow \t Ded \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
RESULT
Thus a C Program Salary slip of employees was executed and the output was
obtained.
EX.No. : 15 Internal marks of
students DATE :
AIM
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 calculations 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);
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].rollno);
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;
}
}
}
OUTPUT
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.
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 structures.
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 operations performed.
8. Stop
PROGRAM
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
void AddEntry(phone * );
void DeleteEntry(phone
* ); void
PrintEntry(phone * );
void SearchForNumber(phone * );
int counter = 0;
char
FileName[256];
FILE *pRead;
FILE *pWrite;
if (phonebook == NULL)
{
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 Phonebook");
printf("\n\nWhat would you like to do?
"); scanf("%d", &iSelection);
if (iSelection == 1)
{
AddEntry(phonebook);
}
if (iSelection == 2)
{
DeleteEntry(phonebook);
}
if (iSelection == 3)
{
PrintEntry(phonebook);
}
if (iSelection == 4)
{
SearchForNumber(phonebook);
}
if (iSelection == 5)
{
printf("\nYou have chosen to exit the
Phonebook.\n"); return 0;
}
} while (iSelection <= 4);
}
OUTPUT
Phonebook Menu
(1) Add Friend
(2) Delete Friend"
(3) Display Phonebook Entries
(4) Search for Phone Number
(5) Exit Phonebook
RESULT
Application DATE :
AIM
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 access 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;
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);
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++;
}
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 : 2000 Press any key to
continue....
RESULT
Thus a C Program for Banking Application was executed and the output was
obtained.
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");
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:
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].ticketno,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 your option:");
scanf("%d",&n
); switch(n)
{
case 1:
booking();
break;
case 2: availability();
break;
case 3: cancel();
break;
case 4:
chart();
break;
case 5:
printf(“\n Thank you visit
again!”); getch();
exit(0)
; default:
break;
}
}
getch();
}
OUTPUT
RESULT
Thus a C Program for Railway reservation system was executed and the
output was obtained.
Additional C Programs for exercise
1. Program to find the row sum and column sum of a
#include<conio.
int mat[10]
int m,n;
int sumrow,sumcol;
clrscr();
MATRIX:"); printf("\n-----------------------------------");
matrix:"); scanf("%d%d",&m,&n);
printf("\nEnter elements of a
matrix:"); for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&mat[i]
[j]);
printf("\n\nOUTPUT:");
printf("\n----------------------------------------");
for(i=0;i<m;i++)
sumrow=0;
for(j=0;j<n;j++)
sumrow=sumrow+mat[i]
[j];
printf("\n----------------------------------------");
for(j=0;j<n;j++)
sumcol=0;
for(i=0;i<m;i++)
sumcol=sumcol+mat[i]
[j];
printf("\n----------------------------------------");
getch();
2. Program to read a string and print the first two characters of each
word in the string.
#include<stdio.h
>
#include<conio.
h> void main( )
{
char
s[100]; int
i,l; clrscr(
);
printf(“Enter a
string”); gets(s);
l=strlen(s);
for(i=0;i<l;i+
+)
{
if(s[i]!=‟ „ && s[i]=‟ „)
{
printf(“%c
%c”,s[i],s[i+1]) i=i+2;
while(s[i]!=‟
„) i++;
}
}
getch( );
}
4. What is a pointer?
Pointers are variables which stores the address of another variable. That
variable may be a scalar (including another pointer), or an aggregate (array or
structure). The pointed-to object may be part of a larger object, such as a field
of a structure or an element in an array.
5. What is an array?
Array is a variable that hold multiple elements which has the same data type.
21. What is the difference between a string copy (strcpy) and a memory copy
(memcpy)? The strcpy() function is designed to work exclusively with strings. It
copies each byte of the source string to the destination string and stops when
the terminating null character () has been moved.
On the other hand, the memcpy() function is designed to work with any type
of data. Because not all data ends with a null character, you must provide the
memcpy() function with the number of bytes you want to copy from the source
to the destination.
22. What is the difference between const char*p and char const* p?
const char*p - p is pointer to the constant character. i.e value in that address
location is constant.
const char* const p - p is the constant pointer which points to the constant
string, both value and address are constants.
30. Differentiate between for loop and a while loop? What are it uses?
For executing a set of statements fixed number of times we use for loop while
when the number of iterations to be performed is not known in advance we use
while loop.
37. What are macros? What are its advantages and disadvantages?
Macros are abbreviations for lengthy and frequently used statements. When
a macro is called the entire code is substituted by a single line though the
macro definition is of several lines.
The advantage of macro is that it reduces the time taken for control transfer as
in case of function. The disadvantage of it is here the entire code is substituted
so the program becomes lengthy if a macro is called several times.
38. What are register variables? What are the advantages of using register
variables?
If a variable is declared with a register storage class, it is known as register
variable. The register variable is stored in the CPU register instead of main
memory. Frequently used variables are declared as register variable as it‟s
access time is faster.
39. What is storage class? What are the different storage classes in C?
Storage class is an attribute that changes the behavior of a variable. It
controls the lifetime,scope and linkage. The storage classes in c are auto,
register, and extern, static, typedef.
41. In C, why is the void pointer useful? When would you use it?
The void pointer is useful because it is a generic pointer that any pointer can
be cast into and back again without loss of information.
42. What is the difference between the functions memmove() and memcpy()?
The arguments of memmove() can overlap in memory. The arguments of
memcpy() cannot.