Hello I am wokring on a dog database, I need work out the final bugs. PLEASE HEL
ID: 3677754 • Letter: H
Question
Hello I am wokring on a dog database, I need work out the final bugs. PLEASE HELP ME!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SZ_NAME 32
#define SZ_BREED 32
#define SZ_COLOR 16
#define SZ_SEX 8
struct dog_entry
{
char name [SZ_NAME];
char breed [SZ_BREED];
char color [SZ_COLOR];
float weight;
int age;
char sex [SZ_SEX];
};
#define REC_SIZE sizeof(struct dog_entry)
struct dog_entry record[REC_SIZE];
char pr_menu(void);
void addRecord(struct dog_entry *reg, int type);
void modifyRecord(int);
void delete_dog(int g, struct dog_entry *rec);
void view_dog(int, struct dog_entry *reg);
off_t find_dog(int);
void searchRecord(int, struct dog_entry *rec);
int main()
{
struct dog_entry reg;
int i=0,n;
while(free)
{
char ch =pr_menu();
switch(ch)
{
case '1':
addRecord(®,1);
i++;
break;
case '2':
addRecord(®,2);
break;
case '3': delete_dog(1,®);
break;
case '4': view_dog(1,®);
break;
case '5': searchRecord(n,®);
break;
default: break;
}
if (ch == '6') // exit
break;
}
system("pause");
}
char pr_menu(void)
{
char ch;
system("cls");
printf(" Menu: 1.Add 2.Change 3.Delete 4.View 5.Search 6. Exit Enter Choice: ");
scanf("%c",&ch);
return ch;
}
//Function that adds a record
void addRecord(struct dog_entry *rec, int type)
{
FILE * f;//define donde se guarda el archivo
f=fopen("database_dog.txt", "a+");//definition of file
system("cls");
printf("Add the Dog: ");
printf(" Enter Name: ");
scanf("%s", rec->name);
printf(" Enter Breed: ");
scanf("%s", rec->breed);
printf(" Enter Color: ");
scanf("%s", rec->color);
printf(" Enter Weight: ");
scanf("%f", &rec->weight);
printf(" Enter Age: ");
scanf("%d", &rec->age);
printf(" Enter Sex: ");
scanf("%s", rec->sex);
fseek(f, 0, SEEK_END);
fwrite(&rec, sizeof(struct dog_entry),1,f);//save the data
fclose(f);//close the file
printf(" ");
system("pause");
}
//Function that modifies the record
void modifyRecord(int index)
{
}
//Function that displays records
void view_dog(int total, struct dog_entry *rec)
{
FILE * f;//define donde se guarda el archivo
f=fopen("database.dog", "r+");//definition of file
char name [SZ_NAME];
system("cls");
printf("View the Dog: ");
printf(" Enter Dog's Name: ");
scanf("%s", name);
rewind(f);
while(fread(&rec, sizeof(struct dog_entry),1, f))
{ //apertura del while
if(strcmp(name,rec->name)==0)//compara una cadena de caracteres
{
printf(" Name: %s", rec->name);
printf(" Breed: %s", rec->breed);
printf(" Color: %s", rec->color);
printf(" Weight: %f", &rec->weight);
printf(" Age: %d", &rec->age);
printf(" Sex: %s", rec->sex);
printf(" ");
system("pause");
break;
}
}
fclose(f);//close the file
}
int find_dog(int g, struct dog_entry *rec){
FILE * f;//define donde se guarda el archivo
f=fopen("database.dog", "r+");//definition of file
char name [SZ_NAME];
printf(" Enter Dog's Name: ");
scanf("%s", name);
rewind(f);
int c;
while(fread(&rec, sizeof(struct dog_entry),1, f))
{ //apertura del while
if(strcmp(name,rec->name)==0)//compara una cadena de caracteres
{
c++;
break;
}
}
fclose(f);//close the file
return c;
}
void delete_dog(int g, struct dog_entry *rec){
FILE * f;//define donde se guarda el archivo
f=fopen("database.dog", "r+");//definition of file
char name [SZ_NAME];
int num=0;
system("cls");
printf("Delete Record: ");
printf(" Enter Dog's number: ");
scanf("%d", &num);
fseek(f, num*sizeof(struct dog_entry), SEEK_SET);
fread(&rec, sizeof(struct dog_entry), 1, f);
fclose(f);//close the file
}
//Function that searches for the record
void searchRecord(int n, struct dog_entry *rec)
{
char dog[SZ_NAME];
int j;
int flag=0;
flag = find_dog(0);
if(flag==1)
printf("Record exists ");
else
printf("No such record exists ");
}
Explanation / Answer
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SZ_NAME 32
#define SZ_BREED 32
#define SZ_COLOR 16
#define SZ_SEX 8
struct dog_entry
{
char name [SZ_NAME];
char breed [SZ_BREED];
char color [SZ_COLOR];
float weight;
int age;
char sex [SZ_SEX];
};
#define REC_SIZE sizeof(struct dog_entry)
struct dog_entry record[REC_SIZE];
char pr_menu(void);
void addRecord(struct dog_entry *reg, int type);
void modifyRecord(int);
void delete_dog(int g, struct dog_entry *rec);
void view_dog(int, struct dog_entry *reg);
int find_dog(int, struct dog_entry *rec);
void searchRecord(int, struct dog_entry *rec);
int main()
{
struct dog_entry reg;
int i = 0, n;
while(free)
{
char ch = pr_menu();
switch(ch)
{
case '1':
addRecord(®, 1);
i++;
break;
case '2':
addRecord(®, 2);
break;
case '3': delete_dog(1, ®);
break;
case '4': view_dog(1, ®);
break;
case '5': searchRecord(n, ®);
break;
default: break;
}
if (ch == '6') // exit
break;
}
// system("pause");
}
char pr_menu(void)
{
char ch;
// system("cls");
printf(" Menu: 1.Add 2.Change 3.Delete 4.View 5.Search 6. Exit Enter Choice: ");
scanf("%c", &ch);
return ch;
}
//Function that adds a record
void addRecord(struct dog_entry *rec, int type)
{
FILE * f;//define donde se guarda el archivo
f = fopen("database_dog.txt", "w+");//definition of file
// system("cls");
printf("Add the Dog: ");
printf(" Enter Name: ");
scanf("%s", rec->name);
printf(" Enter Breed: ");
scanf("%s", rec->breed);
printf(" Enter Color: ");
scanf("%s", rec->color);
printf(" Enter Weight: ");
scanf("%f", &rec->weight);
printf(" Enter Age: ");
scanf("%d", &rec->age);
printf(" Enter Sex: ");
scanf("%s", rec->sex);
fseek(f, 0, SEEK_END);
fwrite(&rec, sizeof(struct dog_entry), 1, f);//save the data
fclose(f);//close the file
printf(" ");
// system("pause");
}
//Function that modifies the record
void modifyRecord(int index)
{
}
//Function that displays records
void view_dog(int total, struct dog_entry *rec)
{
FILE * f;//define donde se guarda el archivo
f = fopen("database_dog.txt", "r+");//definition of file
char name [SZ_NAME];
// system("cls");
printf("View the Dog: ");
printf(" Enter Dog's Name: ");
scanf("%s", name);
rewind(f);
while(fread(&rec, sizeof(struct dog_entry), 1, f))
{ //apertura del while
if(strcmp(name, rec->name) == 0)//compara una cadena de caracteres
{
printf(" Name: %s", rec->name);
printf(" Breed: %s", rec->breed);
printf(" Color: %s", rec->color);
printf(" Weight: %f", rec->weight);
printf(" Age: %d", rec->age);
printf(" Sex: %s", rec->sex);
printf(" ");
// system("pause");
break;
}
}
fclose(f);//close the file
}
int find_dog(int g, struct dog_entry *rec){
FILE * f;//define donde se guarda el archivo
f = fopen("database_dog.txt", "r+");//definition of file
char name [SZ_NAME];
printf(" Enter Dog's Name: ");
scanf("%s", name);
rewind(f);
int c;
while(fread(&rec, sizeof(struct dog_entry), 1, f))
{ //apertura del while
if(strcmp(name, rec->name) == 0)//compara una cadena de caracteres
{
c++;
break;
}
}
fclose(f);//close the file
return c;
}
void delete_dog(int g, struct dog_entry *rec){
FILE * f;//define donde se guarda el archivo
f = fopen("database_dog.txt", "r+");//definition of file
char name [SZ_NAME];
int num = 0;
// system("cls");
printf("Delete Record: ");
printf(" Enter Dog's number: ");
scanf("%d", &num);
fseek(f, num * sizeof(struct dog_entry), SEEK_SET);
fread(&rec, sizeof(struct dog_entry), 1, f);
fclose(f);//close the file
}
//Function that searches for the record
void searchRecord(int n, struct dog_entry *rec)
{
char dog[SZ_NAME];
int j;
int flag = 0;
flag = find_dog(0, rec);
if(flag == 1)
printf("Record exists ");
else
printf("No such record exists ");
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.