Professional Documents
Culture Documents
Part - A Plane
1. Brief Description:
Create Design a program that manages student information using fundamental data
structuresFeatures:Student Record:Store student details such as name, roll number,
class, and grades.
2. Aim of the micro project:
Design a program that manages student information using fundamental data structures.
4. Proposed methodology:
Begin with thorough requirement analysis. Design and implement using chosen
data structures. Rigorous testing for functionality and performance.
Optimize and gather user feedback for refinement. Document the system and
deploy, with a plan for maintenance and updates.
5. Action plane:
6. Resources Used:
1 lapt Processor I- 1
op 5
3 Internet Google 1
● Narhare Sanket L.
● Suryawanshi Abhishek V.
● Suryawanshi Ajay R.
1. Rationale:
The Student Management System is crucial for modern educational institutions due to the escalating volume
of student data.
Manual record-keeping is prone to errors and inefficiencies, necessitating a structured digital solution. This
system aims to streamline administrative tasks, offering a centralized database for storing and managing
student information.
By employing fundamental data structures, it ensures efficient retrieval and manipulation of data, fostering a
deeper understanding of these structures in a real-world context. The project aligns with the broader goal of
embracing technology to enhance educational processes.
It addresses the need for a user-friendly interface to manage student records seamlessly. Overall, the
rationale lies in improving data accuracy, accessibility, and administrative efficiency in educational settings.
1. Project Planning:
Define the scope and objectives of the student management system.
Identify key features and functionalities required.
2. Requirement Analysis:
Gather requirements from stakeholders, including users and administrators.
Identify data entities such as students, courses, and grades.
3. Database Design:
Design a relational database schema to store student information, courses, and related data.
⮚ Required component:
1. Authentication System:
● User Authentication Data Structure: Use a data structure (e.g., hash table) to
store and verify user credentials securely.
2. Functionality:
● Student Registration Logic: Code the logic to register new students, validate
input, and store information in the database.
● Attendance Tracking Logic: Implement functionality to record and update
student attendance.
● Grade Calculation Logic: Develop algorithms to calculate and manage
student grades.
3. Testing Module:
● Unit Testing: Test individual components, such as registration and
attendance tracking, to ensure they function as intended.
● Integration Testing: Test the entire system to verify that different
components work together seamlessly.
4. Documentation:
● Database Documentation: Provide documentation for the database schema,
explaining the purpose of each table and the relationships between them.
● Code Documentation: Comment your code to explain its functionality and
usage.
● User Guides: Create guides for administrators and end-users explaining how
to use the system.
pg. 4 Swami Vivekananda Institute of Polytechnic
Student Management System
I. Python:
Pygame, Tkinter, PyOpenGL.
V. Security Measures:
Data Encryption: If necessary, implement data encryption techniques to secure information.
Main ():
This Registers a new student by taking input for name, age, and marks.
Input Parameters: The head of the linked list of students.
Returns: The updated head of the linked list with the new student added.
It allows marking attendance for each registered student (1 for present, 0 for
absent).Input Parameters: The head of the linked list of students.Side Effect:
Updates the attendance field for each student in the linked list.
AssignGrades ():
DisplayStudents ():
Displays the information of all registered students, including name, age, marks,
attendance, and grade.Input Parameters: The head of the linked list of students.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Define the maximum number of
characters for username and password
#define MAX_USERNAME_LENGTH
50
#define MAX_PASSWORD_LENGTH
50
struct User {
char
username[MAX_USERNAME_LENGT
H];
char
password[MAX_PASSWORD_LENGT
H];
};
struct Student {
char name[50];
int age;
float marks;
int attendance;
char grade;
struct Student* next;
};
int authenticateUser(const char*
username, const char* password, const
struct User* user) {
return (strcmp(username, user-
>username) == 0 && strcmp(password,
user->password) == 0);
}
struct Student* registerStudent(struct
Student* head) {
struct Student* newStudent = (struct
Student*)malloc(sizeof(struct Student));
if (newStudent != NULL) {
printf("\n===== Student
Registration =====\n");
printf("Enter student name: ");
scanf("%s", newStudent->name);
printf("Enter student age: ");
scanf("%d", &newStudent->age);
printf("Enter student marks: ");
scanf("%f", &newStudent->marks);
newStudent->attendance = 0;
newStudent->grade = 'N';
newStudent->next = head;
head = newStudent;
printf("Student registered
successfully!\n");
} else {
printf("Memory allocation failed.
Cannot register a new student.\n");
}
return head;
}
void markAttendance(struct Student*
head) {
if (head != NULL) {
printf("\n===== Mark Attendance
=====\n");
struct Student* current = head;
while (current != NULL) {
printf("Is %s present? (1 for yes,
0 for no): ", current->name);
scanf("%d", ¤t-
>attendance);
current = current->next;
}
printf("Attendance marked
successfully!\n");
} else {
printf("No students registered.\n");
}}
void assignGrades(struct Student* head)
{
if (head != NULL) {
printf("\n===== Grade
Management =====\n");
struct Student* current = head;
while (current != NULL) {
printf("Assign grade for %s
(A/B/C/D/F): ", current->name);
scanf(" %c", ¤t->grade);
current = current->next;
}
printf("Grades assigned
successfully!\n");
} else {
printf("No students registered.\n");
}}
void displayStudents(const struct
Student* head) {
if (head != NULL) {
printf("\n===== List of Students
=====\n");
const struct Student* current =
head;
while (current != NULL) {
printf("Name: %s | Age: %d |
Marks: %.2f | Attendance: %s | Grade:
%c\n",
current->name, current->age,
current->marks,
(current->attendance == 1) ?
"Present" : "Absent",
current->grade);
current = current->next;
}
} else {
printf("No students registered.\n");
}}
void freeMemory(struct Student* head) {
struct Student* current = head;
while (current != NULL) {
struct Student* next = current-
>next;
free(current);
current = next;
}}
int main() {
// Hard-coded user credentials
struct User adminUser;
strcpy(adminUser.username,"sumedh");
strcpy(adminUser.password,"lagmaster")
;
charusername[MAX_USERNAME_LENG];
charpassword[MAX_PASSWORD_LENGTH];
// User authentication loop
int authenticated = 0;
do {
printf("Enter username: ");
scanf("%s", username);
authenticated =
authenticateUser(username,password,&a
dminUser);
if (!authenticated) {
printf("Authentication failed.
Please try again.\n");
}
} while (!authenticated);
printf("Authentication successful.
Welcome, %s!\n", username);
switch (choice) {
case 1:
head = registerStudent(head);
break;
case 2:
markAttendance(head);
break;
case 3:
assignGrades(head);
break;
case 4:
displayStudents(head);
break;
case 5:
printf("Exiting Student
Management System. Goodbye!\n");
break;
default:
printf("Invalid choice. Please
enter a valid option.\n");
}
} while (choice != 5);
freeMemory(head);
return 0;