-
Notifications
You must be signed in to change notification settings - Fork 0
/
editentry.c
114 lines (105 loc) · 3.62 KB
/
editentry.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/*This file is a part of Library-Management
Library-Management is a free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.*/
#include<stdio.h>
#include<stdlib.h>
#include"libman.h"
int foundd = 0;
void edit(Book *b, FILE *fp, int id) {
if(b->id == id) {
mvaddstr(15,32,"The book is available");
mvaddstr(17,32,"Enter new name ");
getstr(b->name);
mvaddstr(18,32,"Enter new author name ");
getstr(b->author);
mvaddstr(19,32,"Enter new quantity ");
scanw("%d", &b->quantity);
mvaddstr(20,32,"Enter new rackno ");
scanw("%d", &b->rackno);
mvaddstr(21,40,"~~ RECORD MODIFIED ~~");
fseek(fp, ftell(fp) - sizeof(Book), 0); /*Updating modified record */
fwrite(b, sizeof(Book), 1, fp);
foundd = 1;
}
}
void editentry() {
system("clear");
init_pair(2,COLOR_MAGENTA,COLOR_BLACK);
attron(COLOR_PAIR(2));
border(0,0,0,0, 0,0,0,0);
attroff(COLOR_PAIR(2));
mvaddstr(1,60,"~~~~~~ EDIT BOOK RECORDS ~~~~~~");
int id, c;
char option = 'y';
Book b;
FILE *fp;
while(option == 'y' || option == 'Y') {
printgen();
scanw("%d",&c);
switch(c) {
case FICTION :
fp = fopen("Fiction.dat","rb+");
mvaddstr(13,32,"Enter book id : ");
scanw("%d",&id);
refresh();
while(fread(&b, sizeof(b), 1, fp) == 1) {
edit(&b, fp, id);
}
fclose(fp);
if(foundd == 0)
mvaddstr(15,32,"Record not found");
break;
case NONFICTION :
fp = fopen("Nonfiction.dat","rb+");
mvaddstr(13,32,"Enter book id : ");
scanw("%d",&id);
while(fread(&b, sizeof(b), 1, fp) == 1) {
edit(&b, fp, id);
}
fclose(fp);
if(foundd == 0)
mvaddstr(15,32,"Record not found");
break;
case REFERENCE :
fp = fopen("Reference.dat","rb");
mvaddstr(13,32,"Enter book id : ");
scanw("%d",&id);
while(fread(&b, sizeof(b), 1, fp) == 1) {
edit(&b, fp, id);
}
fclose(fp);
if(foundd == 0)
mvaddstr(15,32,"Record not found");
break;
case SELFHELP :
fp = fopen("Selfhelp.dat","rb");
mvaddstr(13,32,"Enter book id : ");
scanw("%d",&id);
while(fread(&b, sizeof(b), 1, fp) == 1) {
edit(&b, fp, id);
}
fclose(fp);
if(foundd == 0)
mvaddstr(15,32,"Record not found");
break;
case MENU :
mainmenu();
return ;
break;
}
mvaddstr(23,32,"Edit more? (y/n) ");
scanw("%c", &option);
}
mvaddstr(24,32,"Press ENTER to return to main menu");
getch();
refresh();
mainmenu();
}