Skip to content

Instantly share code, notes, and snippets.

@harshraj22
Last active July 23, 2019 12:10
Show Gist options
  • Save harshraj22/2afcb9b09e47afb9e4cc9fd650f440f1 to your computer and use it in GitHub Desktop.
Save harshraj22/2afcb9b09e47afb9e4cc9fd650f440f1 to your computer and use it in GitHub Desktop.
to try markdown supports on github

academic_records_management

A C-program for academic records management. MIT license contributions welcome Open Source Love png2

What does it do ? πŸ€”β“

It stores academic records of students, instructors and courses in a college.

How is it implemented ? πŸ€·β€β™‚οΈ

  • The ideas used are :
    • structure
    • pointers
    • file-handling
    • dynamic-memory allocation
    • linked-list
    • signal-handling
    • basics of C language like if-else,switch conditionals

Is a demo available ?

Yeah, here you go πŸ˜ƒ Screenshot

Well, that seems great. Can I get a detailed idea about its code base ?

Sure, 🀠 Here it is :

file-handling :open_file_folder:

The program uses text files for storing data in specified format. Every time the program is executed or terminated, the data in text file is updated. This is done by using the file handling of C language along with jumping technique of fseek to maintain the order in which data is saved.

linked-list πŸ”—

A linked-list is maintained to store the data once it is read. This data-structure is chosen to make the insertion and deletion of data faster paying little cost while finding a particular data. Each of the category has a separate linked list to make sure that modifications in one category doesn't affect the other.

Structures πŸ“Ž

Each category has a separate structure for storing the data about them. They contain all the essential data that a object of that category is supposed to have.

Pointers and dynamic memory allocation

Insertion of new data is handled by creating new structures inplace. This is done by using the concept of dynamic memory allocation. The newly created structure is then added to the corresponding linked list.

Signal handling βœ…

The database is prone to threat if the programme exits unexpectedly (e.g. forced inturption using ctrl+c) as the data is saved only when the programme exits. Signal handling concepts are used to make sure that the programme exits in the way it is expected to be and data is saved before exiting.

That's all in a nutshell. Please go through code as I've added lots of comments. Feel free to contribute and use. For further interactions one may contact via e mail

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment