Combined Calendar Application and Scientific Calculator
Combined Calendar Application and Scientific Calculator
Combined Calendar Application and Scientific Calculator
A
Project report on
“COMBINED CALENDAR APPLICATION AND
SCIENTIFIC CALCULATOR”
1
Certificate
2
ACKNOWLEDGMENT
I have taken efforts in this project entitled
“COMBINED CALENDAR APPLICATION AND SCIENTIFIC
CALCULATOR ”. However, it would not have been possible for
me without the kind support and help of many individuals and
my organization. I would like to extend my sincere thanks to all
of them.
I am highly indebted to thanks and gratitude most
sincerely and respectfully to our project guide Mr. Amit Dutta,
Assistant professor, Department of BCA, Kaliabor College for
his guidance and constant supervision as well as for providing
necessary information regarding the project and also for their
support in completing the project.
I would like to take the opportunity to express my deep
sense of gratitude to Mr. Dhrubajyoti Borah, Coordinator,
Department of BCA, Kaliabor College for giving us the
opportunity to carry out my project and for his valuable support
and advice.
Lastly I want to thank and appreciate also to my friends
who directly and indirectly willingly helped me out with their
ability to develop me in my project.
Pulak Mandal
ROLL NO: UT-191-300-0010
BCA 4th Semester
Dept. of BCA, Kaliabor College
3
ABSTRACT
4
xii) Exponential Logarithm
xiii) Sine
xiv) Cosine
xv) Tann
xvi) Cosec
xvii) Sec
xviii) Cot
xix) Decimal to Binary
xx) Binary to Decimal
5
SL. NO. TOPIC NAME PAGE NO.
1. COVER PAGE 1
2. CERTIFICATE 2
3. ACKNOWLEDGEMT 3
4. ABSTRACT 4
5. TABLE OF CONTENT 5
6. PROJECT PROFILE 6
7. INTRODUCTION 7-8
8. FEATURES 9
9. SCREENSHOTS 10-12
12. REFERENCES 35
TABLE OF CONTENT
6
PROJECT PROFILE
Roll No : UT-181-300-0010.
Registration no : 18030682
7
INTRODUCTION
void SetColor(intForgC)
8
void SetColorAndBackground(intForgC, intBackC)
void gotoxy (int x, int y) – We need to understand this
function as it is an important one used in this Calendar in C
language. This function allows us to print text in any place of
screen. Using this function in Code::Blocks or Dev-C++ or other
ANSI C Compiler requires coding, but it can be directly used in
Turbo C. To use gotoxy() in Dev-C++ we have to use
#include<windows.h> and insert this snippet before the main()
function:
SetConsoleCursorPosition(GetStdHandle(STD_OUT
PUT_HANDLE), xy);
}
9
FEATURES
10
SCREENSHOTS
Fig: 1
11
Fig: 2
Fig: 3
Fig: 4
12
Fig:5
13
SOURCE CODE
#include<stdio.h>
#include<conio.h>
#include<windows.h>
struct Date{
int dd;
int mm;
int yy;
};
struct Date date;
struct Remainder{
int dd;
int mm;
char note[50];
};
struct Remainder R;
14
COORD xy = {0, 0};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HAN
DLE), xy);
}
15
{
//Mask out all but the background attribute, and add in the
forgournd color
wColor = (csbi.wAttributes & 0xF0) + (ForgC & 0x0F);
SetConsoleTextAttribute(hStdOut, wColor);
}
return;
}
void ClearColor(){
SetColor(15);
}
16
// not used but we need to capture this since it will be
// written anyway (passing NULL causes an access
violation).
DWORD count;
FillConsoleOutputAttribute(hStdOut, csbi.wAttributes,
csbi.dwSize.X * csbi.dwSize.Y, coord, &count );
//This will set our cursor position for the next print
statement.
SetConsoleCursorPosition(hStdOut, coord);
}
17
return;
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HAND
LE), wColor);
return;
}
18
++*yy;
*mm = *mm - 12;
}
}
19
case 1 : return(31);
case 2 : if(check_leapYear(year)==1)
return(29);
else
return(28);
case 3 : return(31);
case 4 : return(30);
case 5 : return(31);
case 6 : return(30);
case 7 : return(31);
case 8 : return(31);
case 9 : return(30);
case 10: return(31);
case 11: return(30);
case 12: return(31);
default: return(-1);
}
}
20
case 1 :return("Monday");
case 2 :return("Tuesday");
case 3 :return("Wednesday");
case 4 :return("Thursday");
case 5 :return("Friday");
case 6 :return("Saturday");
default:return("Error in getName() module.Invalid argument
passed");
}
}
void print_date(int mm, int yy){ //prints the name of month and
year
printf("---------------------------\n");
gotoxy(25,6);
switch(mm){
case 1: printf("January"); break;
case 2: printf("February"); break;
case 3: printf("March"); break;
case 4: printf("April"); break;
case 5: printf("May"); break;
case 6: printf("June"); break;
21
case 7: printf("July"); break;
case 8: printf("August"); break;
case 9: printf("September"); break;
case 10: printf("October"); break;
case 11: printf("November"); break;
case 12: printf("December"); break;
}
printf(" , %d", yy);
gotoxy(20,7);
printf("---------------------------");
}
int getDayNumber(int day,int mon,int year){ //retuns the day
number
int res = 0, t1, t2, y = year;
year = year - 1600;
while(year >= 100){
res = res + 5;
year = year - 100;
}
res = (res % 7);
t1 = ((year - 1) / 4);
t2 = (year-1)-t1;
22
t1 = (t1*2)+t2;
t1 = (t1%7);
res = res + t1;
res = res%7;
t2 = 0;
for(t1 = 1;t1 < mon; t1++){
t2 += getNumberOfDays(t1,y);
}
t2 = t2 + day;
t2 = t2 % 7;
res = res + t2;
res = res % 7;
if(y > 2000)
res = res + 1;
res = res % 7;
return res;
}
23
}
if(!(dd>=1 && dd<=getNumberOfDays(mm,yy))){
return("Invalid date");
}
if(yy>=1600){
day = getDayNumber(dd,mm,yy);
day = day%7;
return(getName(day));
}else{
return("Please give year more than 1600");
}
}
24
return 1;
}
}
fclose(fp);
return 0;
}
25
y += 3;
gotoxy(x,y);
printf("S M T W T F S ");
y++;
nod = getNumberOfDays(mon,year);
day = getDayNumber(d,mon,year);
switch(day){ //locates the starting day in calender
case 0 :
x=x;
cnt=1;
break;
case 1 :
x=x+4;
cnt=2;
break;
case 2 :
x=x+8;
cnt=3;
break;
case 3 :
x=x+12;
cnt=4;
26
break;
case 4 :
x=x+16;
cnt=5;
break;
case 5 :
x=x+20;
cnt=6;
break;
case 6 :
x=x+24;
cnt=7;
break;
default :
printf("INVALID DATA FROM THE
getOddNumber()MODULE");
return;
}
gotoxy(x,y);
if(cnt == 1){
SetColor(12);
}
27
if(checkNote(d,mon)==1){
SetColorAndBackground(15,12);
}
printf("%02d",d);
SetColorAndBackground(15,1);
for(d=2;d<=nod;d++){
if(cnt%7==0){
y++;
cnt=0;
x=x1-4;
}
x = x+4;
cnt++;
gotoxy(x,y);
if(cnt==1){
SetColor(12);
}else{
ClearColor();
}
if(checkNote(d,mon)==1){
SetColorAndBackground(15,12);
}
28
printf("%02d",d);
SetColorAndBackground(15,1);
}
gotoxy(8, y+2);
SetColor(14);
printf("Press 'n' to Next, Press 'p' to Previous and 'q' to
Quit");
gotoxy(8,y+3);
printf("Red Background indicates the NOTE, Press 's' to see
note: ");
ClearColor();
}
void AddNote(){
FILE *fp;
fp = fopen("note.dat","ab+");
system("cls");
gotoxy(5,7);
printf("Enter the date(DD/MM): ");
scanf("%d%d",&R.dd, &R.mm);
gotoxy(5,8);
printf("Enter the Note(50 character max): ");
29
fflush(stdin);
scanf("%[^\n]",R.note);
if(fwrite(&R,sizeof(R),1,fp)){
gotoxy(5,12);
puts("Note is saved sucessfully");
fclose(fp);
}else{
gotoxy(5,12);
SetColor(12);
puts("\aFail to save!!\a");
ClearColor();
}
gotoxy(5,15);
printf("Press any key............");
getch();
fclose(fp);
}
30
fp = fopen("note.dat","rb");
if(fp == NULL){
printf("Error in opening the file");
}
while(fread(&R,sizeof(R),1,fp) == 1){
if(R.mm == mm){
gotoxy(10,5+i);
printf("Note %d Day = %d: %s", i+1, R.dd, R.note);
isFound = 1;
i++;
}
}
if(isFound == 0){
gotoxy(10,5);
printf("This Month contains no note");
}
gotoxy(10,7+i);
printf("Press any key to back.......");
getch();
31
int main(){
ClearConsoleToColors(15, 1);
SetConsoleTitle("Calender Application by Pulak Mandal");
int choice;
char ch = 'a';
while(1){
system("cls");
printf("1. Find Out the Day\n");
printf("2. Print all the day of month\n");
printf("3. Add Note\n");
printf("4. EXIT\n");
printf("ENTER YOUR CHOICE : ");
scanf("%d",&choice);
system("cls");
switch(choice){
case 1:
printf("Enter date (DD MM YYYY) : ");
scanf("%d %d %d",&date.dd,&date.mm,&date.yy);
printf("Day is :
%s",getDay(date.dd,date.mm,date.yy));
printf("\nPress any key to continue......");
getch();
32
break;
case 2 :
printf("Enter month and year (MM YYYY) : ");
scanf("%d %d",&date.mm,&date.yy);
system("cls");
while(ch!='q'){
printMonth(date.mm,date.yy,20,5);
ch = getch();
if(ch == 'n'){
increase_month(&date.mm,&date.yy);
system("cls");
printMonth(date.mm,date.yy,20,5);
}else if(ch == 'p'){
decrease_month(&date.mm,&date.yy);
system("cls");
printMonth(date.mm,date.yy,20,5);
}else if(ch == 's'){
showNote(date.mm);
system("cls");
}
}
break;
33
case 3:
AddNote();
break;
case 4 :
exit(0);
}
}
return 0;
}
34
FUTURE SCOPE
35
REFERENCES
BOOKS:-
WEBSITES:-
www.codewithc.com
www.geeksforgeeks.com
https://mobile.happycodings.com
:::::::::::::::::::::X::::::::::::::::::::
36