Engineering Admission,Counselling,Colleges,Universities

Tuesday, September 10, 2013

Departmental Store-Best College Mini Projects C

By September 10, 2013 ,
This mini project is about department store all features required for department store are added in this programe.You can copy the source code and compile it in a code block.This project is perfect for your college mini project in C.



Program:-

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#include<windows.h>

#define ANS 15
#define ACS 4
 COORD coord={0,0}; // this is global variable
                                    //center of axis is set to the top left cornor of the screen
void gotoxy(int x,int y)
{
    coord.X=x;
    coord.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
/*declaration of checking functions*/
void c_code(char[]);
int check(char[]);

/*structure declaration*/
typedef struct{
char name[ANS],code[ACS];
float rate;
int quantity;
}rec;
rec item;

/*declaration of display functions*/
void curser(int);
void dbill();
void d_mainmenu();
void display(rec *,int,int);
void window(int,int,int,int);
void dis_con();
void d_search();
void highlight(int,int);

/*declaration of main menu functions*/
void bill() ;
void edit();
void add();
void del();
void exit();

/*declaration of display submenu functions*/
void d_code();
void d_rate();
void d_quan();
void d_all();

/*start of main*/
int main()
{
d_mainmenu();
return 0;
}



void d_mainmenu()
{
int i;
char ch;
const char *menu[]={"   Calculate Bill","   Add Goods","   Edit Goods","   Display All ","   Search", "   Delete Goods","   Exit"};
system("cls");
//textbackground(11);
//textcolor(0);
//_setcursortype(_NOCURSOR);
window(25,50,20,32);
gotoxy(33,18);printf("MAIN MENU");
for (i=0;i<=6;i++){
gotoxy(30,22+i+1);printf("%s\n\n\n",menu[i]);}
curser(7);
}

void d_search()
{
char ch;
int i;
    const char *menu[]={"   By Code","   By Rate","   By Quantity","   Back to main menu"};
system("cls");
//textbackground(11);
//textcolor(0);
window(25,50,20,32);
gotoxy(33,18);printf("SEARCH MENU");
for (i=0;i<=3;i++){
gotoxy(30,22+i+1);printf("%s\n\n\n",menu[i]);}
curser(4);
}

/*function for cursor movement*/
void curser(int no)
{
    int count=1;
    char ch='0';
    gotoxy(30,23);
while(1){
switch(ch){
case 80:
count++;
if (count==no+1) count=1;
break;
case 72:
count--;
if(count==0) count=no;
break;
}
highlight(no,count);
ch=getch();
if(ch=='\r'){
if(no==7){
if (count==1) bill() ;
else if(count==2) add();
else if(count==3) edit();
else if (count==4) d_all();
else if (count==5) d_search();
else if (count==6) del();
else   exit(0);
}
if(no==4){
if (count==1) d_code();
else if (count==2)d_rate();
else if (count==3) d_quan();
else d_mainmenu();
}
}
}
}

void highlight(int no,int count)
{
if (no==4){
//textbackground(11);
//textcolor(0);
gotoxy(30,23);printf("   By Code          ");
gotoxy(30,24);printf("   By Rate          ");
gotoxy(30,25);printf("   By Quantity      ");
gotoxy(30,26);printf("   Back to main menu");
//textcolor(0);
//textbackground(2);
switch (count)
{
case 1:
gotoxy(30,23);
printf(" - By Code          ");
break;
case 2:
gotoxy(30,24);
printf(" - By Rate          ");
break;
case 3:
gotoxy(30,25);
printf(" - By Quantity      ");
break;
case 4:
gotoxy(30,26);
printf(" - Back to main menu");
break;
}
}

if(no==7){
//textbackground(11);
//textcolor(0);
gotoxy (30,23);printf("   Calculate Bill ");
gotoxy (30,24);printf("   Add Goods      ");
gotoxy (30,25);printf("   Edit Goods     ");
gotoxy (30,26);printf("   Display All    ");
gotoxy (30,27);printf("   Search         ");
gotoxy (30,28);printf("   Delete Goods   ");
gotoxy (30,29);printf("   Exit           ");
//textcolor(0);
//textbackground(2);
switch(count){
case 1:
gotoxy (30,23);
printf(" - Calculate Bill ");
break;
case 2:
gotoxy (30,24);
printf(" - Add Goods      ");
break;
case 3:
gotoxy (30,25);
printf(" - Edit Goods     ");
break;
case 4:
gotoxy (30,26);
printf(" - Display All    ");
break;
case 5:
gotoxy (30,27);
printf(" - Search         ");
break;
case 6:
gotoxy (30,28);
printf(" - Delete Goods   ");
break;
case 7:
gotoxy (30,29);
printf(" - Exit           ");
break;
}
}
}

void bill()
{
char x[4]={0};
int j=29,q=0,size=0,i=1;
float total=0,gtotal=0;
FILE *file;
file=fopen("record.txt","r+b");
rewind(file);
system("cls");
dbill();
gotoxy(26,15);printf("enter  \"end\" to finish input");
while(1){
gotoxy(25,18);printf("                    ");
gotoxy(25,19);printf("                    ");
gotoxy(25,18);printf("enter item code:");
scanf("%s",x);
if(strcmp(x,"end")==0)
break;
gotoxy(25,19);printf("enter quantity:");
scanf("%d",&q);
rewind(file);
while(fread(&item,sizeof(item),1,file)){
if((strcmp(item.code,x)==0)){
total=item.rate*q;
gotoxy(11,j);printf("%4d",i);
printf("%9s",item.name);
printf("%13d",q);
printf("%15.2f",item.rate);
printf("%13.2f",total);
gtotal=gtotal+total;
size=sizeof(item);
item.quantity=item.quantity-q;
j+=2; i++;
fseek(file,-size,SEEK_CUR);fwrite(&item,sizeof(item),1,file);
break;
}
 }
}
if(gtotal!=0){
gotoxy(30,j+5);
printf("TOTAL AMOUNT = NRs. %6.2f",gtotal);
}
fclose(file);
getch();
d_mainmenu();
}
 /*function to display bill window*/
void dbill()
{
int i;
gotoxy(20,10);
//;
for (i=1;i<=10;i++)
printf("*");
printf(" * FASHION WEAR * ");
for (i=1;i<=10;i++)
      printf("*");
printf("\n\n");
gotoxy(30,11);printf("Departmental Store");
//textcolor(1);
gotoxy(32,25);printf("CUSTOMER'S BILL") ;
//textcolor(8);
gotoxy(13,27);printf("SN.   Item Name     Quantity     Rate          Total");

}
/*function to add records*/
void add ()
{
FILE *file;
char y[ACS],x[12];
system("cls");
//textbackground(11);
//textcolor(0);
gotoxy(25,25);printf("Enter new record(Y/N)?");
while(toupper(getche())=='Y'){
system("cls");
file=fopen("record.txt","ab");
c_code(y);
strcpy(item.code,y);
gotoxy(22,28);printf("Enter rate of the item:");
scanf("%f",&item.rate);
gotoxy(22,30);printf("Enter quantity of the item:");
scanf("%d",&item.quantity);
gotoxy(22,32);printf("Enter name of the item:");
scanf("%s",item.name);
fseek(file,0,SEEK_END);fwrite(&item,sizeof(item),1,file);
fclose(file);
gotoxy(22,34);printf("Enter new record(Y/N)?");

   }
   d_mainmenu();
}

 /*function to check availability of code*/
void c_code(char y[])
{
int flag;
FILE *file;
file=fopen("record.txt","rb");
while(1){
system("cls");
window(20,58,23,36);
gotoxy(32,18);printf(" ADD ARTICLES ")  ;
flag=1;
rewind(file);
gotoxy(22,25);printf("Enter new code of the article:");
scanf(" %[^\n]",y);
while(fread(&item,sizeof(item),1,file)==1){
if (strcmp(y,item.code)==0){
flag=0;
gotoxy(26,30);printf("code already exists");
gotoxy(29,32);printf("enter again");getch();
break;
}
}
if (flag==1)
break;
}
}

/*function for editing*/
void edit()
{
int flag=0,choice;
char x[ACS],y[ACS];
FILE *file;
int size;
system("cls");
//textcolor(0);
//textbackground(11);
window(20,63,20,46);
gotoxy(35,18);printf("EDIT RECORDS");
;
gotoxy(25,23);printf("enter item code: ");
scanf("%s",x);
flag=check(x);
if(flag==0){
file=fopen("record.txt","r+b");
rewind(file);
while (fread(&item,sizeof (item),1,file)){
if(strcmp(item.code,x)==0){
//textcolor(0);
gotoxy(25,27);printf("name       = %s",item.name);
gotoxy(25,28);printf("code       = %s",item.code);
gotoxy(25,29);printf("rate       = %g",item.rate);
gotoxy(25,30);printf("quantity   = %d",item.quantity);
gotoxy(25,32);; printf("do you want to edit this record(y/n):");
fflush(file);
if(toupper(getche())=='Y'){
//textcolor(0);
gotoxy(25,34); printf("1- edit name ");
gotoxy(25,35); printf("2- edit code ");
gotoxy(25,36); printf("3- edit rate ");
gotoxy(25,37); printf("4- edit quantity ");
gotoxy(25,39);  ; printf(" enter your choice(1, 2, 3, 4) ");
scanf("%d",&choice);
switch(choice){
case 1:
system("cls");
window(23,48,20,40);
gotoxy(35,18);printf("EDIT RECORDS");
gotoxy(25,24); printf(" enter new name: ");
scanf("%s",item.name);
size=sizeof(item);
fseek(file,-size,SEEK_CUR);fwrite(&item,sizeof(item),1,file);
break;
case 2:
system("cls");
window(23,65,20,40);
gotoxy(35,18);printf("EDIT RECORDS");
gotoxy(25,24);
c_code(y);
strcpy(item.code,y);
size=sizeof(item);
fseek(file,-size,SEEK_CUR);fwrite(&item,sizeof(item),1,file);
break;
case 3:
system("cls");
window(23,65,20,40);
gotoxy(35,18);printf("EDIT RECORDS");
gotoxy(25,24);
printf(" enter new rate: ");
scanf("%f",&item.rate);
size=sizeof(item);
fseek(file,-size,SEEK_CUR);fwrite(&item,sizeof(item),1,file);
break;
case 4:
system("cls");
window(23,65,20,40);
gotoxy(35,18);printf("EDIT RECORDS");
gotoxy(25,24);
printf(" enter new quantity: ");
scanf("%d",&item.quantity);
size=sizeof(item);
fseek(file,-size,1);fwrite(&item,sizeof(item),1,file);
break;
}
gotoxy(27,30);printf("--- item edited---");
break;
}
}
}
}
if (flag==1){
gotoxy(32,30);printf("item does not exist");
gotoxy(36,32);printf("TRY ABGAIN");
}
getch();
fclose(file);
d_mainmenu();
}

/*function to display all records*/
void d_all()
{
int i,j=1;
FILE *file;
dis_con();
file=fopen("record.txt","rb");
rewind(file);
i=26;
fflush(file);
while(fread(&item,sizeof(item),1,file)){
display(&item,i,j);
i++;
j++;
if ((j%20)==0){
      gotoxy(27,47);/*textcolor(0)*/;printf("press any key to see more...........");
      getch();
      system("cls");
      dis_con();
      i=26;
      continue;
}
}
getch();
if (i==26) {
gotoxy(24,30); printf("-- no articles found --");
}
getch();
fclose(file);
d_mainmenu();
}

/*function to display by quantity*/
void d_quan()
{
int i,j=1;
int a,b;
FILE *file;
dis_con();
file=fopen("record.txt","rb");
rewind(file);
i=26;
gotoxy(16,20);;printf("enter lower range: ");
scanf("%d",&a);
gotoxy(16,21);printf("enter upper range:");
scanf("%d",&b);
fflush(file);
while(fread(&item,sizeof(item),1,file)){
if((item.quantity>=a)&&(item.quantity<=b)){
display(&item,i,j);
i++;
j++;
if ((j%20)==0){
gotoxy(27,47);printf("press any key to see more...........");
getch();
system("cls");
dis_con();
i=26;
continue;
}
  }
}
getch();
if (i==26){
gotoxy(28,30); printf(" no item found ");
}
getch();
d_search();
fclose(file);
}

/*function to display by rate*/
void d_rate(){
int i,j=1;
float a,b;
FILE *file;
dis_con();
file=fopen("record.txt","rb");
rewind(file);
i=26;
gotoxy(16,20);;printf("enter lower range: ");
scanf("%f",&a);
gotoxy(16,21);printf("enter upper range: ");
scanf("%f",&b);
fflush(file);
while(fread(&item,sizeof(item),1,file)){
if((item.rate>=a)&&(item.rate<=b)){
display(&item,i,j);
i++;
j++;
if ((j%20)==0){
gotoxy(27,47);printf("press any key to see more...........");
getch();
system("cls");
dis_con();
i=26;
continue;
}
}
}
getch();
if (i==26){
gotoxy(28,30); printf(" no item found ");
}
getch();
fclose(file);
d_search();
}

/*function to display by code*/
void d_code()
{
int i,j=1;
char x[4]={0};
FILE *file;
dis_con();
file=fopen("record.txt","rb");
rewind(file);
i=26;
gotoxy(16,20);;printf("enter item code: ");
scanf("%s",x);
fflush(file);
while(fread(&item,sizeof(item),1,file)){
if((strcmp(item.code,x)==0)){
display(&item,i,j);
i++;
j++;
break;
}
}
if (i==26){
gotoxy(28,30); printf("no item found");
}
getch();
fclose(file);
d_search();
}

/*function to display window for item display*/
void dis_con()
{
int i;
system("cls");
gotoxy(20,10);
;
for (i=1;i<=10;i++)
printf("*");
printf(" * FASHION WEAR * ");
for (i=1;i<=10;i++)
      printf("*");
printf("\n\n");
gotoxy(30,11);printf("Departmental Store");
//textcolor(1);
gotoxy(32,17);printf("RECORDS") ;
//textcolor(8);
gotoxy(18,23);printf ("SN   Item Name   Item Code      Rate     Quantity");
}

/*function to display in screen*/
void display(rec *item,int i,int j)
{
gotoxy(16,i);//textcolor(13);
printf("%4d",j);
printf("%9s",item->name);
printf("%12s",item->code);
printf("%14.2f",item->rate);
printf("%11d",item->quantity);
}

/*function to delete records*/
void del()
{
int flag;
char x[ANS];
FILE *file,*file1;
system("cls");
//textbackground(11);
//textcolor(0);
window(23,51,25,34);
gotoxy(29,18);printf("DELETE ARTICLES");
gotoxy(27,27);printf("enter item code: ");
scanf("%s",x);
flag=check(x);
if(flag==0){
file1=fopen("record1.txt","ab");
file=fopen("record.txt","rb");
rewind(file);
while (fread(&item,sizeof (item),1,file)){
if(strcmp(item.code,x)!=0)
fwrite(&item,sizeof(item),1,file1);
}
gotoxy(27,29);printf("---item deleted---");
remove("record.txt");
rename("record1.txt","record.txt");
}
if (flag==1){
gotoxy(25,29);printf("---item does not exist---");
gotoxy(30,31);printf("TRY AGAIN");
}
fclose(file1);
fclose(file);
getch();
d_mainmenu();
}

/*function to check validity of code while editing and deleting*/
int check(char x[ANS])
{
FILE *file;
int flag=1;
file=fopen("record.txt","rb");
rewind(file);
while (fread(&item,sizeof (item),1,file)){
if(strcmp(item.code,x)==0){
flag=0;
break;
}
}
fclose(file);
return flag;
 }

/*function to display box*/
void window(int a,int b,int c,int d)
{
int i;
system("cls");
gotoxy(20,10);
//textcolor(1);
for (i=1;i<=10;i++)
printf("*");
printf(" * FASHION WEAR * ");
for (i=1;i<=10;i++)
      printf("*");
printf("\n\n");
gotoxy(30,11);printf("Departmental Store");
//textcolor(4);
for (i=a;i<=b;i++){
      gotoxy(i,17);printf("\xcd");
      gotoxy(i,19);printf("\xcd");
      gotoxy(i,c);printf("\xcd");
      gotoxy(i,d);printf("\xcd");
      }

gotoxy(a,17);printf("\xc9");
gotoxy(a,18);printf("\xba");
gotoxy(a,19);printf("\xc8");
gotoxy(b,17);printf("\xbb");
gotoxy(b,18);printf("\xba");
gotoxy(b,19);printf("\xbc");
//textcolor(4);
for(i=c;i<=d;i++){
gotoxy(a,i);printf("\xba");
gotoxy(b,i);printf("\xba");
}
gotoxy(a,c);printf("\xc9");
gotoxy(a,d);printf("\xc8");
gotoxy(b,c);printf("\xbb");
gotoxy(b,d);printf("\xbc");
//textbackground(11);
//textcolor(0);
}