From 7c20e82ea868372d93cdb723326af8aca4d3e567 Mon Sep 17 00:00:00 2001 From: Charles Barnwell <cxb23@drexel.edu> Date: Fri, 7 Feb 2025 00:34:15 +0000 Subject: [PATCH] Upload New File --- 2-StudentDB/sdbsc.h | 64 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 2-StudentDB/sdbsc.h diff --git a/2-StudentDB/sdbsc.h b/2-StudentDB/sdbsc.h new file mode 100644 index 0000000..4d88bbe --- /dev/null +++ b/2-StudentDB/sdbsc.h @@ -0,0 +1,64 @@ +#ifndef __SDB_H__ + +#include "db.h" //get student record type + +//prototypes for functions go below for this assignment +int open_db(char *dbFile, bool should_truncate); +int add_student(int fd, int id, char *fname, char *lname, int gpa); +int get_student(int fd, int id, student_t *s); +int del_student(int fd, int id); +int compress_db(int fd); +void print_student(student_t *s); +int validate_range(int id, int gpa); +int count_db_records(int fd); +int print_db(int fd); +void usage(char *); + +//error codes to be returned from individual functions +// NO_ERROR is returned if there are no errors +// ERR_DB_FILE is returned if there is are any issues with the database file itself +// ERR_DB_OP is returned if an operation did not work aka add or delete a student +// SRCH_NOT_FOUND is returned if the student is not found (get_student, and del_student) +#define NO_ERROR 0 +#define ERR_DB_FILE -1 +#define ERR_DB_OP -2 +#define SRCH_NOT_FOUND -3 +#define NOT_IMPLEMENTED_YET 0 + + +//error codes to be returned to the shell +// EXIT_OK program executed without error +// EXIT_FAIL_DB a database operation failed +// EXIT_FAIL_ARGS one or more arguments to program were not valid +// EXIT_NOT_IMPL the operation has not been implemented yet +#define EXIT_OK 0 +#define EXIT_FAIL_DB 1 +#define EXIT_FAIL_ARGS 2 +#define EXIT_NOT_IMPL 3 + +//Output messages +#define M_ERR_STD_RNG "Cant add student, either ID or GPA out of allowable range!\n" +#define M_ERR_DB_CREATE "Error creating DB file, exiting!\n" +#define M_ERR_DB_OPEN "Error opening DB file, exiting!\n" +#define M_ERR_DB_READ "Error reading DB file, exiting!\n" +#define M_ERR_DB_WRITE "Error writing DB file, exiting!\n" +#define M_ERR_DB_ADD_DUP "Cant add student with ID=%d, already exists in db.\n" +#define M_ERR_STD_PRINT "Cant print student. Student is NULL or ID is zero\n" + +#define M_STD_ADDED "Student %d added to database.\n" +#define M_STD_DEL_MSG "Student %d was deleted from database.\n" +#define M_STD_NOT_FND_MSG "Student %d was not found in database.\n" +#define M_DB_COMPRESSED_OK "Database successfully compressed!\n" +#define M_DB_ZERO_OK "All database records removed!\n" +#define M_DB_EMPTY "Database contains no student records.\n" +#define M_DB_RECORD_CNT "Database contains %d student record(s).\n" +#define M_NOT_IMPL "The requested operation is not implemented yet!\n" + +//useful format strings for print students +//For example to print the header in the required output: +// printf(STUDENT_PRINT_HDR_STRING, "ID","FIRST NAME", +// "LAST_NAME", "GPA"); +#define STUDENT_PRINT_HDR_STRING "%-6s %-24s %-32s %-3s\n" +#define STUDENT_PRINT_FMT_STRING "%-6d %-24.24s %-32.32s %-3.2f\n" + +#endif -- GitLab