#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<graphics.h>
int citem=0,ctemp=0;
int count;
void menu();
struct item{
int icode;
char iname[30];
int quantity;
float price;
};
void modify();
struct item i;
void additem();
void display(struct item );
void delete_item();
void main()
{
char ch,another;
int num;
FILE *fp,*ft;
int code;
long int recsize;
fp= fopen("d:\\kushal\\item.dat","rb+");
if(fp==NULL)
{
fp=fopen("d:\\kushal\\item.dat","wb+");
if(fp==NULL)
{
printf("\nFile can not be opened");
getch();
exit(1);
}
}
recsize=sizeof(i);
while(1)
{
clrscr();
menu();
display(i);
gotoxy(0,47);
printf("\n-------------------------------------------------------------------------------");
gotoxy(3,48);
textcolor(7);
cprintf("A_Add");
gotoxy(13,48);
textcolor(7);
cprintf("D_Display");
gotoxy(30,48);
textcolor(7);
cprintf("M_Modify");
gotoxy(50,48);
textcolor(7);
cprintf("X_Delete");
gotoxy(65,48);
cprintf("ESC_Exit");
gotoxy(56,48);
// printf("Enter your choice:");
fflush(stdin);
ch=getche();
switch(ch)
{
case 'a': additem();
/* fseek(fp,0,SEEK_END);
another='y';
while((another=='Y') || (another=='y'))
{
clrscr();
printf("\t\tADD ITEM\n");
printf("\nItem code: ");
scanf("%d",&i.icode);
printf("\nItem name: ");
scanf("%s",i.iname);
printf("\nQuantity: ");
scanf("%d",&i.quantity);
printf("\nPrice: ");
scanf("%f",&i.price);
fwrite(&i,recsize,1,fp);
rewind(fp);
// menu();
//while(fread(&i,recsize,1,fp)==1)
printf("\n Do u want to Add more (y/n): ");
fflush(stdin);
another=getche();
}
getch();
*/
break;
case 'd' :
rewind(fp);
while(fread(&i,recsize,1,fp)==1)
printf("\n%d\t%s\t%d\t%f",i.icode,i.iname,i.quantity,i.price);
getch();
break;
case 'm' : modify();
/*
another='y';
while((another=='Y') || (another=='y'))
{
clrscr();
printf("\t\tMODIFY\n\n");
printf("\nItem code to modify: ");
scanf("%d",&code);
rewind(fp);
while(fread(&i,recsize,1,fp)==1)
{
if(code==i.icode)
{
printf("\nItem code: ");
scanf("%d",&i.icode);
printf("\nItem name: ");
scanf("%s",i.iname);
printf("\nQuantity: ");
scanf("%d",&i.quantity);
printf("\nPrice: ");
scanf("%f",&i.price);
fseek(fp,-recsize,SEEK_CUR);
fwrite(&i,recsize,1,fp);
break;
}
// else{
//printf("\n Invalid Item code");
// }
}
rewind(fp);
printf("\nSuccessfully Modified");
printf("\nDo u want to modify more record (y/n)");
fflush(stdin);
another=getche();
}
*/
break;
case 'x' : delete_item();
/* another='y';
int n;
while((another=='Y') || (another=='y'))
{
clrscr();
printf("\t\tDELETE\n");
printf("\n Enter the item code to delete: ");
scanf("%d",&code);
ft=fopen("d:\\kushal\\temp.dat","wb");
rewind(fp);
while(fread(&i,recsize,1,fp)==1)
if(code!=i.icode){
fwrite(&i,recsize,1,ft);
ctemp++;
}
rewind(fp);
while(fread(&i,recsize,1,fp)==1){
citem++;
}
if(ctemp==citem){
printf("\nInvalid Item code\n");
}
fclose(fp);
fclose(ft);
remove("d:\\kushal\\item.dat");
rename("d:\\kushal\\temp.dat","d:\\kushal\\item.dat");
fopen("d:\\kushal\\item.dat","rb+");
printf("\nDo you want to continue(y/n)\n");
fflush(stdin);
another=getche();
}
*/
break;
case 27 : exit(0);
}
}
}
void menu(){
/* char choice;
while(1){
gotoxy(3,2);
textbackground(4);
textcolor(7);
printf("S.NO");
gotoxy(10,2);
printf("ITEM CODE");
gotoxy(30,2);
printf("ITEM NAME");
gotoxy(50,2);
printf("QUANTITY");
gotoxy(65,2);
printf("PRICE");
fflush(stdin);
choice=getch();
if(choice==0)
{
fflush(stdin);
choice=getch();
}
switch(choice){
case 27:
exit(1);
break;
case 72:
// printf("\nup\n");
break;
case 80:
// printf("down");
break;
}
}
}*/
clrscr();
printf("===============================================================================");
gotoxy(3,2);
textbackground(1);
textcolor(7);
cprintf("S.NO");
gotoxy(10,2);
cprintf("ITEM CODE");
gotoxy(30,2);
cprintf("ITEM NAME");
gotoxy(50,2);
cprintf("QUANTITY");
gotoxy(65,2);
cprintf("PRICE");
textcolor(7);
printf("\n===============================================================================\n");
}
void display(struct item i){
FILE *fp;
int j=4;
count=1;
fp=fopen("d:\\kushal\\item.dat","rb");
rewind(fp);
//clrscr();
while(fread(&i,sizeof(i),1,fp)==1){
gotoxy(4,j);
printf("%d",count);
gotoxy(10,j);
printf("%d\t ",i.icode);
gotoxy(30,j);
printf(" %s\t",i.iname);
gotoxy(50,j);
printf(" %d\t",i.quantity);
gotoxy(65,j);
printf("%.1f",i.price);
j++;
count++;
}
}
void additem(){
char another;
FILE *fp;
int recsize=sizeof(i);
fseek(fp,0,SEEK_END);
another='y';
while((another=='Y') || (another=='y'))
{
clrscr();
printf("\t\tADD ITEM\n");
printf("\nItem code: ");
scanf("%d",&i.icode);
printf("\nItem name: ");
scanf("%s",i.iname);
printf("\nQuantity: ");
scanf("%d",&i.quantity);
printf("\nPrice: ");
scanf("%f",&i.price);
fwrite(&i,recsize,1,fp);
rewind(fp);
// menu();
//while(fread(&i,recsize,1,fp)==1)
printf("\n Do u want to Add more (y/n): ");
fflush(stdin);
another=getche();
}
getch();
}
void delete_item(){
int code;
FILE *fp,*ft;
int recsize=sizeof(i);
char another='y';
int n;
while((another=='Y') || (another=='y'))
{
clrscr();
printf("\t\tDELETE\n");
printf("\n Enter the item code to delete: ");
scanf("%d",&code);
ft=fopen("d:\\kushal\\temp.dat","wb");
rewind(fp);
while(fread(&i,recsize,1,fp)==1)
if(code!=i.icode){
fwrite(&i,recsize,1,ft);
ctemp++;
}
rewind(fp);
while(fread(&i,recsize,1,fp)==1){
citem++;
}
if(ctemp==citem){
printf("\nInvalid Item code\n");
}
fclose(fp);
fclose(ft);
remove("d:\\kushal\\item.dat");
rename("d:\\kushal\\temp.dat","d:\\kushal\\item.dat");
fopen("d:\\kushal\\item.dat","rb+");
printf("\nDo you want to continue(y/n)\n");
fflush(stdin);
another=getche();
}
}
void modify(){
int code,recsize=sizeof(i);
FILE *fp;
char another='y';
while((another=='Y') || (another=='y'))
{
clrscr();
printf("\t\tMODIFY\n\n");
printf("\nItem code to modify: ");
scanf("%d",&code);
rewind(fp);
while(fread(&i,recsize,1,fp)==1)
{
if(code==i.icode)
{
printf("\nItem code: ");
scanf("%d",&i.icode);
printf("\nItem name: ");
scanf("%s",i.iname);
printf("\nQuantity: ");
scanf("%d",&i.quantity);
printf("\nPrice: ");
scanf("%f",&i.price);
fseek(fp,-recsize,SEEK_CUR);
fwrite(&i,recsize,1,fp);
break;
}
// else{
//printf("\n Invalid Item code");
// }
}
rewind(fp);
printf("\nSuccessfully Modified");
printf("\nDo u want to modify more record (y/n)");
fflush(stdin);
another=getche();
} }
java_programmer 0 Junior Poster
- When posting some code, use the Code tool so that it is readable.
- Specify the problem you facing. Just only pasting the code is not suggestable.
If possible, post the error message you getting when compiling/running the program.
include<stdio.h>include<conio.h>include<stdlib.h>include<string.h>include<graphics.h>int citem=0,ctemp=0;
int count;
void menu();struct item{
int icode;
char iname[30];
int quantity;
float price;
};void modify();
struct item i;
void additem();
void display(struct item );
void delete_item();
void main()
{
char ch,another;
int num;
FILE fp,ft;int code;
long int recsize;
fp= fopen("d:\kushal\item.dat","rb+");
if(fp==NULL)
{
fp=fopen("d:\kushal\item.dat","wb+");
if(fp==NULL)
{
printf("\nFile can not be opened");
getch();
exit(1);
}
}
recsize=sizeof(i);
while(1)
{
clrscr();
menu();
display(i);
gotoxy(0,47);
printf("\n-------------------------------------------------------------------------------");
gotoxy(3,48);
textcolor(7);
cprintf("A_Add");gotoxy(13,48); textcolor(7); cprintf("D_Display"); gotoxy(30,48); textcolor(7); cprintf("M_Modify"); gotoxy(50,48); textcolor(7); cprintf("X_Delete"); gotoxy(65,48); cprintf("ESC_Exit"); gotoxy(56,48); // printf("Enter your choice:"); fflush(stdin); ch=getche(); switch(ch) { case 'a': additem(); /* fseek(fp,0,SEEK_END); another='y'; while((another=='Y') || (another=='y')) { clrscr(); printf("\t\tADD ITEM\n"); printf("\nItem code: "); scanf("%d",&i.icode); printf("\nItem name: "); scanf("%s",i.iname); printf("\nQuantity: "); scanf("%d",&i.quantity); printf("\nPrice: "); scanf("%f",&i.price); fwrite(&i,recsize,1,fp); rewind(fp); // menu(); //while(fread(&i,recsize,1,fp)==1) printf("\n Do u want to Add more (y/n): "); fflush(stdin); another=getche(); } getch(); */ break; case 'd' : rewind(fp); while(fread(&i,recsize,1,fp)==1) printf("\n%d\t%s\t%d\t%f",i.icode,i.iname,i.quantity,i.price); getch(); break; case 'm' : modify(); /* another='y'; while((another=='Y') || (another=='y')) { clrscr(); printf("\t\tMODIFY\n\n"); printf("\nItem code to modify: "); scanf("%d",&code); rewind(fp); while(fread(&i,recsize,1,fp)==1) { if(code==i.icode) { printf("\nItem code: "); scanf("%d",&i.icode); printf("\nItem name: "); scanf("%s",i.iname); printf("\nQuantity: "); scanf("%d",&i.quantity); printf("\nPrice: "); scanf("%f",&i.price); fseek(fp,-recsize,SEEK_CUR); fwrite(&i,recsize,1,fp); break; } // else{ //printf("\n Invalid Item code"); // } } rewind(fp); printf("\nSuccessfully Modified"); printf("\nDo u want to modify more record (y/n)"); fflush(stdin); another=getche(); } */ break; case 'x' : delete_item(); /* another='y'; int n; while((another=='Y') || (another=='y')) { clrscr(); printf("\t\tDELETE\n"); printf("\n Enter the item code to delete: "); scanf("%d",&code); ft=fopen("d:\\kushal\\temp.dat","wb"); rewind(fp); while(fread(&i,recsize,1,fp)==1) if(code!=i.icode){ fwrite(&i,recsize,1,ft); ctemp++; } rewind(fp); while(fread(&i,recsize,1,fp)==1){ citem++; } if(ctemp==citem){ printf("\nInvalid Item code\n"); } fclose(fp); fclose(ft); remove("d:\\kushal\\item.dat"); rename("d:\\kushal\\temp.dat","d:\\kushal\\item.dat"); fopen("d:\\kushal\\item.dat","rb+"); printf("\nDo you want to continue(y/n)\n"); fflush(stdin); another=getche(); } */ break; case 27 : exit(0); } } }
void menu(){
/* char choice;
while(1){
gotoxy(3,2);
textbackground(4);
textcolor(7);
printf("S.NO");
gotoxy(10,2);
printf("ITEM CODE");
gotoxy(30,2);
printf("ITEM NAME");
gotoxy(50,2);
printf("QUANTITY");
gotoxy(65,2);
printf("PRICE");fflush(stdin); choice=getch(); if(choice==0) { fflush(stdin); choice=getch(); } switch(choice){ case 27: exit(1); break; case 72: // printf("\nup\n"); break; case 80: // printf("down"); break; } } }*/ clrscr(); printf("==============================================================================="); gotoxy(3,2); textbackground(1); textcolor(7); cprintf("S.NO"); gotoxy(10,2); cprintf("ITEM CODE"); gotoxy(30,2); cprintf("ITEM NAME"); gotoxy(50,2); cprintf("QUANTITY"); gotoxy(65,2); cprintf("PRICE"); textcolor(7); printf("\n===============================================================================\n"); }
void display(struct item i){
FILE *fp;
int j=4;
count=1;
fp=fopen("d:\kushal\item.dat","rb");
rewind(fp);
//clrscr();
while(fread(&i,sizeof(i),1,fp)==1){
gotoxy(4,j);
printf("%d",count);
gotoxy(10,j);
printf("%d\t ",i.icode);
gotoxy(30,j);
printf(" %s\t",i.iname);
gotoxy(50,j);
printf(" %d\t",i.quantity);
gotoxy(65,j);
printf("%.1f",i.price);
j++;
count++;
}
}void additem(){
char another;
FILE *fp;int recsize=sizeof(i); fseek(fp,0,SEEK_END); another='y'; while((another=='Y') || (another=='y')) { clrscr(); printf("\t\tADD ITEM\n"); printf("\nItem code: "); scanf("%d",&i.icode); printf("\nItem name: "); scanf("%s",i.iname); printf("\nQuantity: "); scanf("%d",&i.quantity); printf("\nPrice: "); scanf("%f",&i.price); fwrite(&i,recsize,1,fp); rewind(fp); // menu(); //while(fread(&i,recsize,1,fp)==1) printf("\n Do u want to Add more (y/n): "); fflush(stdin); another=getche(); } getch();
}
void delete_item(){
int code;
FILE fp,ft;
int recsize=sizeof(i);
char another='y';
int n;
while((another=='Y') || (another=='y'))
{
clrscr();
printf("\t\tDELETE\n");
printf("\n Enter the item code to delete: ");
scanf("%d",&code);
ft=fopen("d:\kushal\temp.dat","wb");
rewind(fp);
while(fread(&i,recsize,1,fp)==1)
if(code!=i.icode){
fwrite(&i,recsize,1,ft);
ctemp++;
}
rewind(fp);
while(fread(&i,recsize,1,fp)==1){
citem++;
}
if(ctemp==citem){
printf("\nInvalid Item code\n");
}fclose(fp); fclose(ft); remove("d:\\kushal\\item.dat"); rename("d:\\kushal\\temp.dat","d:\\kushal\\item.dat"); fopen("d:\\kushal\\item.dat","rb+"); printf("\nDo you want to continue(y/n)\n"); fflush(stdin); another=getche(); } } void modify(){ int code,recsize=sizeof(i); FILE *fp; char another='y'; while((another=='Y') || (another=='y')) { clrscr(); printf("\t\tMODIFY\n\n"); printf("\nItem code to modify: "); scanf("%d",&code); rewind(fp); while(fread(&i,recsize,1,fp)==1) { if(code==i.icode) { printf("\nItem code: "); scanf("%d",&i.icode); printf("\nItem name: "); scanf("%s",i.iname); printf("\nQuantity: "); scanf("%d",&i.quantity); printf("\nPrice: "); scanf("%f",&i.price); fseek(fp,-recsize,SEEK_CUR); fwrite(&i,recsize,1,fp); break; } // else{ //printf("\n Invalid Item code"); // } } rewind(fp); printf("\nSuccessfully Modified"); printf("\nDo u want to modify more record (y/n)"); fflush(stdin); another=getche();
} }
Edited by Reverend Jim because: Fixed formatting
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.