final report 1 anindya
final report 1 anindya
BACHELOR OF ENGINEERING IN
INFORMATION SCIENCE AND ENGINEERING
SUBMITTED BY
2024-2025
|| Jai Sri Gurudev ||
Sri Adichunchanagiri Shikshana Trust ®
SJB INSTITUTE OF TECHNOLOGY
BGS Health & Education City, Kengeri, Bengaluru – 560 060
CERTIFICATE
Certified that the Mini project work entitled “Student Academic Record Management
System” carried out by Anindya Khanra bearing USN 1JB23IS019 and is a bonafide
student of SJB Institute of Technology in partial fulfilment for 3rd semester Mini Project in
INFORMATION SCIENCE AND ENGINEERING of the VISVESVARAYA
TECHNOLOGICAL UNIVERSITY, BELAGAVI during the academic year 2024-25. It is
certified that all corrections/suggestions indicated for Internal Assessment have been
incorporated in the report deposited in the departmental library. The mini project report has
been approved as it satisfies the academic requirements in respect of Mini Project prescribed
for the said degree.
EXTERNAL VIVA
1.
2.
ACKNOWLEDGEMENT
We would like to express our profound gratitude to His Divine Soul Jagadguru Padma
Bhushan Sri Sri Sri Dr. Balagangadharanatha Mahaswamiji and His Holiness Jagadguru
Sri Sri Sri Dr. Nirmalanandanatha Swamiji for providing us an opportunity to be a part of
this esteemed institution.
We would also like to express our sincere thanks to Revered Sri Sri Dr. Prakashnath
Swamiji, Managing Director of SJB Institute of Technology, for his continuous support in
providing the necessary amenities to carry out this project at this esteemed institution.
We express our heartfelt gratitude to Dr. Puttaraju, Academic Director of the BGS and SJB
Group of Institutions, Dr. K. V. Mahendra Prashanth, Principal of SJB Institute of
Technology, and Dr. Shashidhara H R, Professor & Head of the Department of Information
Science and Engineering, for providing us outstanding amenities and for their unwavering
support, state-of-the-art facilities, and the enriching academic environment, which were
instrumental in the successful completion of our project work.
We extend our heartfelt gratitude to all the Deans of SJB Institute of Technology for their
unwavering support, cutting-edge facilities, and the inspiring academic environment, all of
which played a pivotal role in the successful completion of our project work.
We wish to express our heartfelt gratitude to our guide, Mrs. Shivani Bhat, Assistant
Professor, Dept of ISE for her valuable guidance, suggestions, and encouragement during the
entire period of our project work.
Finally, we take this opportunity to extend my earnest gratitude and respect to our parents, the
teaching & technical staff of the department, the library staff, and all my friends, who have
directly or indirectly supported me during the period of my project work.
Regards,
Anindya Khanra [1JB23IS019]
ABSTRACT
Acknowledgement
Abstract
Table of Contents
1 Introduction 1
1.1 Background Study 1-2
1.2 Objectives 2-3
1.3 Future Scope 4-5
1.4 Problem Statement 5
2 System Requirements Specification 6-8
3 System Design 9-11
4 Implementation 12-13
5 Testing 14-20
6 Snapshots 21-24
Conclusion 25
Future Enhancements 26
References 27
LIST OF FIGURES
INTRODUCTION
The project is a comprehensive system designed for managing student academic records
efficiently. It automates key operations such as adding subjects, recording student grades,
calculating CGPA (Cumulative Grade Point Average), and determining pass/fail status based
on predefined criteria.
This program addresses common challenges in academic record management, including
scalability, dynamic data handling, and accurate performance evaluation. Using queue-based
data structures and dynamic memory allocation, it ensures efficient management of student
data and adapts to varying input sizes seamlessly.
By integrating real-time grade validation and automated CGPA computation, the project not
only simplifies academic record-keeping but also provides a user-friendly solution that can be
scaled and extended for broader applications, such as database integration and analytical
reporting. This system is ideal for educational institutions seeking a reliable, fast, and scalable
solution for managing student records.
1.1Background Study
Efficient academic record management is an essential component of educational institutions
worldwide. Traditionally, this process relied on manual record-keeping methods, such as
ledgers and report cards. While effective for smaller datasets, these methods often struggled to
meet the demands of larger institutions, where maintaining accuracy and efficiency became
increasingly challenging. The introduction of computational tools like spreadsheets marked a
significant improvement, but these systems lacked automation, scalability, and real-time data
processing, necessitating more advanced solutions.
The emergence of programming languages like C revolutionized academic record management
by enabling the development of tailored solutions for handling student data. C programming is
well-suited for such applications due to its efficiency, close-to-hardware operation, and support
for essential features like dynamic memory allocation and data structures. These capabilities
allow for the creation of systems that are both resource-efficient and capable of handling
dynamic datasets.
This project, implemented in C, aims to address common challenges in academic record
management, such as scalability, accuracy, and adaptability. It provides functionalities to
dynamically add subjects, record student details, validate grades, calculate CGPA (Cumulative
Grade Point Average), and determine pass/fail status.
By leveraging a queue-based data structure and dynamic memory management, the system
ensures efficient handling of student records and adapts seamlessly to varying input sizes.
A queue-based approach is particularly advantageous for managing student records in an
orderly fashion. Using a FIFO (First-In-First-Out) method ensures fairness and simplifies data
retrieval and processing. Dynamic arrays further enhance flexibility by allowing the system to
accommodate variable numbers of subjects and grades. Together, these data structures form the
backbone of the system, enabling smooth execution of operations such as adding students,
managing grades, and calculating performance metrics.
CGPA, a widely used metric for evaluating academic performance, plays a central role in this
system. Accurate CGPA computation involves validating grades, applying credit-weighted
averaging, and determining overall performance status. This project automates these
calculations, eliminating the risk of human error and ensuring precise results. Additionally, the
system provides real-time feedback on grade inputs, ensuring data integrity and reliability.
The project also emphasizes modular design, where individual components, such as student
management and grade validation, operate independently while integrating seamlessly with the
overall system. This approach not only simplifies development and debugging but also makes
the system scalable and adaptable for future enhancements.
Compared to existing academic management solutions, which often include extensive features
but are resource-intensive, this project offers a lightweight and efficient alternative. It focuses
on core functionalities, making it ideal for small to medium-sized institutions seeking cost-
effective and reliable solutions. Moreover, its implementation in C ensures compatibility with
a wide range of hardware and software environments, further enhancing its usability.
In conclusion, the "Student Academic Record Management System" demonstrates the potential
of C programming in addressing critical challenges in academic data management. By
integrating dynamic data structures, modular programming, and automated computation, it lays
the foundation for scalable and efficient solutions. The system also offers significant scope for
future enhancements, including database integration, graphical interfaces, and advanced
analytics, ensuring its relevance in modern educational contexts.
1.2 Objectives
Efficient Management of Student Data
o Design a system to store, manage, and process student academic records
systematically using appropriate data structures like queues, arrays, and
dynamic memory allocation.
CGPA Calculation
o Provide functionality to calculate the Cumulative Grade Point Average (CGPA)
for each student based on grades and subject credits, taking into account failure
criteria.
Modular Functionality
o Implement modular functions to support key operations like adding subjects,
enrolling students, calculating CGPA, displaying records, and managing the
queue.
User Interaction
o Create an interactive menu-driven system to guide users through the various
operations, ensuring ease of use and clarity.
AI-Driven Insights
• Use machine learning algorithms to analyze student performance and predict academic
outcomes.
• Offer personalized recommendations for students, such as subject-specific study
materials or remedial classes.
Hardware Requirements
1. Processor
o Minimum Requirement: A single-core processor with a clock speed of at least
1 GHz.
▪ This ensures basic compilation and execution of C programs.
o Recommended: A dual-core or quad-core processor for faster execution and
multitasking during development and debugging.
▪ Example: Intel Core i3, AMD Ryzen 3, or equivalent.
2. Memory (RAM)
o Minimum Requirement: 4 GB of RAM.
▪ Sufficient for running the program in a small-scale setup or educational
environment.
o Recommended: 8 GB or more to ensure smooth performance during
compilation, debugging, and multitasking, especially when using resource-
intensive IDEs or running additional background processes.
3. Storage
o Minimum Requirement: 100 MB of free storage space.
▪ Necessary to store the source code, executable files, and compiler
installation.
o Recommended: 500 MB to 1 TB for additional resources like libraries,
documentation, backups, or extended functionality.
4. Input/Output Devices
o Keyboard: For entering commands and data during program execution.
o Monitor: To display the text-based interface of the system and debugging
outputs.
o Mouse (Optional): Useful when working with graphical IDEs or editors.
5. Peripherals
o Printer: For printing student records, academic summaries, or other outputs
generated by the system.
Software Requirements
1. Operating System
• Supported OS Platforms:
o Windows: Windows 7 or later.
▪ Popular C compilers like GCC (via MinGW) and MSVC are available.
o Linux: Distributions such as Ubuntu, Fedora, or Debian.
▪ Pre-installed GCC compilers make Linux ideal for C development.
o macOS: Versions that support Xcode or GCC for C programming.
▪ Native development environment support in macOS.
2. Compiler
• GCC (GNU Compiler Collection):
o Widely used, open-source compiler for compiling and debugging C programs.
• Alternatives:
o Clang: Known for fast compilation and improved error diagnostics.
o Microsoft C/C++ Compiler (MSVC): Available with Visual Studio.
• Recommended IDEs:
o Code::Blocks: Lightweight and user-friendly; ideal for beginners.
o Dev-C++: Suitable for educational environments and Windows users.
o Visual Studio Code: Highly customizable with extensions for C/C++
development.
o Eclipse IDE for C/C++ Developers: Suitable for large-scale projects, providing
advanced debugging and project management features.
4. Text Editors
• While IDEs are recommended, lightweight text editors can also be used for simple
development.
• Options:
o Nano, Vim: Terminal-based editors for Linux users.
o Notepad++: Feature-rich editor for Windows users.
o Sublime Text: A modern, fast editor with excellent support for C/C++ syntax.
SYSTEM DESIGN
1. Objectives
• Manage a queue of students.
• Handle student grades for multiple subjects.
• Calculate CGPA and determine pass/fail status.
Core Modules:
1. Subject Management:
o Adding subjects dynamically to the system with a growing list.
2. Student Queue Management:
o Using a circular queue to enqueue and dequeue students dynamically.
o Expanding the queue as needed for scalability.
3. Grade and CGPA Processing:
o Dynamically assign grades to students.
o Calculate CGPA and track failure status per student.
4. Interface:
o Provide menu-driven CLI input for adding subjects, adding students, and
viewing details.
3. Detailed Workflow
Step 1: Add Subjects
• User chooses option 1 from the menu.
• Dynamically allocate memory for subjects as needed.
• Each subject is stored with its name and credits.
Step 4: Exit
• Free all allocated memory for students, grades, and subjects.
• Exit the program.
Flowchart
+-----------------------------------+
| Start the Program |
+------------------------------------+
+------------------------------------+
| Display Main Menu Options |
+------------------------------------+
+------------------------------------+
| Get User's Choice |
+------------------------------------+
+--------------------------------------------+ +------------------------------------+
| 1. Add Subject | | Add subject Record |
+--------------------------------------------+ +------------------------------------+
+--------------------------------------------+ +------------------------------------+
| 2. Add Student | |Create new student record |
+--------------------------------------------+ +------------------------------------+
+---------------------------------------------+ +------------------------------------+
| 3. View Student | | Display all student details |
+--------------------------------------------+ +------------------------------------+
| 4. Delete Student by USN Number | |Delete student record |
+--------------------------------------------+ +------------------------------------+
+---------------------------------------------+ +------------------------------------+
| 5. Exit | | 5. Exit |
+---------------------------------------------+ +------------------------------------+
2.Core Functionalities
Adding Subjects:
o Dynamically adds subjects with name and credits.
o Expands subject list when capacity is reached.
Adding Students:
o Collects student details and grades, validates input, and calculates CGPA.
o Adds student to the queue with dynamic memory allocation.
Displaying Students:
o Iterates through the queue, showing name, roll number, grades, pass/fail status,
and CGPA.
Deleting Students:
o Dequeues students after processing their records.
3. Coding Implementation
Key Functions:
o initializeQueue: Sets up the queue.
o addSubject: Dynamically manages subject records.
o addStudent: Collects student details and calculates CGPA.
o calculateCGPA: Computes CGPA or marks as "Incomplete."
o displayStudents: Lists student records in the queue.
o enqueue/dequeue: Adds/removes students from the queue.
Memory Management:
o Frees dynamically allocated memory for students and subjects on exit.
4.Flowchart
Start Program.
Display Menu:
o Add Subject, Add Student, Display Students, Exit.
Get User Input:
o Perform action based on selection.
Exit Program:
o Free memory and terminate.
5. Testing
Scenarios
o Adding single/multiple subjects and students.
o Calculating CGPA with pass/fail cases.
o Handling edge cases like empty queue operations.
Sample Outputs
Includes code execution results, such as adding student data, adding subject details,
and student CGPA calculation and student fail or passed.
6. Program Output
Output is displayed via console, showing the user interface and results for each
operation (e.g., Showing student grade, CGPA and passed or fail).
TESTING
1.Unit Testing
1.1 Testing Subject Management
• Objective:
Verify that subjects can be added, stored, and managed correctly.
• Test Cases:
o Add a valid subject.
▪ Input: Subject Name: "Mathematics", Credits: 3.
▪ Expected Output: "Subject added successfully."
o Attempt to add a subject with invalid credits.
▪ Input: Subject Name: "Physics", Credits: -1.
▪ Expected Output: Error message prompting valid credits.
o Exceed the initial subject list capacity.
▪ Action: Add 12 subjects to a list with an initial capacity of 10.
▪ Expected Output: All subjects added successfully with dynamic array
expansion.
2. Integration Testing
2.1 Adding and Displaying Students
• Objective:
Test the interaction between subject and student management modules.
• Test Cases:
o Add subjects, then students, and display their details.
▪ Setup:
▪ Add subjects: "Math (3 credits)", "Physics (4 credits)".
▪ Add students: "Alice (Grades: 8.0, 7.5)", "Bob (Grades: 4.0,
9.0)".
▪ Expected Output:
▪ Alice: CGPA calculated as 7.72.
▪ Bob: Result marked as "Incomplete."
3. System Testing
3.1 End-to-End Testing
• Objective:
Test the entire workflow from adding subjects to displaying students.
• Test Cases:
o Add subjects, add students, calculate CGPA, display details, and delete students.
▪ Setup:
▪ Add 2 subjects: "Math (3 credits)", "Chemistry (4 credits)".
▪ Add 3 students with varying grades.
▪ Expected Output:
▪ All functionalities work as expected (add, calculate, display,
delete).
5. Security Testing
5.1 Memory Safety
• Objective: Ensure no memory leaks or invalid memory accesses.
• Test Cases:
o Use valgrind to test memory allocation and deallocation during:
▪ Adding subjects.
▪ Adding and deleting students.
▪ Exiting the program.
o Expected Output: No memory leaks or invalid memory accesses detected.
Search Functionality: Add a feature to search for students by name or roll number directly
from the queue for quicker access.
Detailed Error Handling: Enhance error messages and validation checks for a smoother
user experience, including preventing duplicate subjects or students.
Mobile Application: Developing a mobile version of the system can increase accessibility
for teachers and students alike.
BOOK:
1.Fundamentals of Data Structures in C.
By: Ellis Horowitz and Sartaj Sahni.
2. An Introduction to Data Structures with Applications.
By: Jean-Paul Tremblay & Paul G. Sorenson.