0% found this document useful (0 votes)
13 views18 pages

Naaaaa

Uploaded by

b7415802
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views18 pages

Naaaaa

Uploaded by

b7415802
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

JNANA SANGAMA,BELAGAVI – 590018


KARNATAKA

Assignment Report
On
“STUDENT MANAGEMENT SYSTEM USING LINKED LIST”
SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS
FOR THE DATA STRUCTURES AND APPLICATIONS (BCS304) COURSE OF
III SEMESTER

Submitted by

SANJANA N
1CG23CS094

Guide: HOD:
Mr.Asif Ulla Khan .M. Tech. Dr. Shantala C PPhD.,
Asst. Prof., Dept. of CSE Head, Dept. of CSE
CIT, Gubbi. CIT, Gubbi.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Channabasaveshwara Institute of Technology


(Affiliated to VTU, Belgaum & Approved by AICTE, New Delhi)
(NAAC Accredited & ISO 9001:2015 Certified Institution)
NH 206 (B.H. Road), Gubbi, Tumkur – 572 216. Karnataka
2024-25
Rubric – B.E. Mini-Project [BCS304]

Course Rubric/Level Excellent Good Average Moderate Score


outcome (91-100%) (81-90%) (61-80%) (40-60%)
CO1 Identification
of project
proposal
(05 Marks)
CO2 Design and
Implementation
(10 Marks)
CO3 Presentation
skill
(05 Marks)
CO4 Report
(05 Marks)
Total

Course outcome:
CO 1: Identification of project proposal which is relevant to subject of engineering.
CO 2: Design and implement proposed project methodology.
CO 3: Effective communication skill to assimilate their project work.
CO 4: Understanding overall project progress and performance.

Student Signature Faculty signature


ABSTRACT
1. Objective:
 Develop a simple student record management system using a linked list data
structure.
2. Data Structure:
 Define a struct Student to represent each student's information including roll
number, name, phone number, percentage, and a pointer to the next student.
3. Functionality:
 Insertion:
 Allow users to insert a new student record at the beginning of the linked
list.
 Search:
 Enable users to search for a specific student record based on the roll
number.
 Update:
 Allow users to update the details (name, phone number, and percentage)
of a student record.
 Deletion:
 Allow users to delete a student record based on the roll number.
 Display:
 Provide functionality to display all student records stored in the linked
list.
 Sorting:
 Implement sorting of student records based on roll numbers in ascending
order.
4. Main Functionality:
 Menu-Driven Interface:
 Create a menu-driven interface allowing users to choose different
operations.
 Input Handling:
 Prompt users to input their choice and handle various input options.

1
 Looping:
 Implement a loop to continuously prompt the user for operations until
they choose to exit.
 The loop should exit when the user enters 0 as their choice.
5. Error Handling:
 Ensure appropriate error messages are displayed when necessary, such as when
a student record is not found for a given roll number.
6. Memory Management:
 Properly allocate and deallocate memory for each student record to prevent
memory leaks.
 Free memory when deleting a student record to avoid memory wastage.
7. User Interaction:
 Provide clear prompts and messages to guide users through the operations and
inform them about the outcome of their actions.
8. Modularization:
 Organize the program into modular functions for better code readability,
maintenance, and reusability.

2
CHAPTER-1:
INTRODUCTION
1. Program Title:
 Student Record Management System in C.
2. Objective:
 This program aims to manage student records efficiently using a linked list data
structure in the C programming language.
3. Problem Statement:
 Managing student information manually can be cumbersome and error-prone.
 This program offers a systematic approach to store, retrieve, update, and delete
student records.
4. Solution Approach:
 Utilizes a linked list to store student records dynamically, allowing flexibility
in managing varying numbers of records.
 Provides a menu-driven interface for users to perform operations like insertion,
search, update, deletion, display, and sorting of student records.
5. Implementation Details:
 Defines a struct Student to encapsulate student attributes such as roll number,
name, phone number, and percentage.
 Implements functions for inserting, searching, updating, deleting, displaying,
and sorting student records based on roll numbers.
 Ensures memory management by dynamically allocating and deallocating
memory for student records.
6. User Interaction:
 Prompts users with a menu displaying available operations.
 Accepts user input to choose desired operations and provides appropriate
feedback based on the chosen action.
 Guides users through the process of entering and updating student information
with clear prompts.

3
7. Error Handling:
 Incorporates error handling mechanisms to notify users when a requested
operation cannot be performed due to reasons like record not found or invalid
input.
 Ensures proper memory deallocation to avoid memory leaks and optimize
resource usage.
8. Concluding Remarks:
 This program offers a convenient and organized approach to manage student
records effectively.
 By leveraging linked list data structure and modular design, it provides
scalability and ease of maintenance for handling student data.

4
CHAPTER-2:
PROBLEM STATEMENT
1. Background:
 Student record management is essential for educational institutions to keep track
of student information efficiently.
 Traditional paper-based methods or manual record-keeping systems are prone
to errors and lack scalability.
2. Challenges:
 Manual record management systems may lead to data redundancy,
inconsistency, and inefficiency.
 Retrieving, updating, and sorting student records manually can be time-
consuming and error-prone.
 Traditional methods do not provide a systematic approach to handle various
operations on student records.
3. Objective:
 Develop a computer-based system to manage student records effectively,
providing functionalities for insertion, search, update, deletion, display, and
sorting.
4. Requirements:
 Create a program that allows users to input and store student details such as roll
number, name, phone number, and percentage.
 Enable users to search for student records based on roll numbers and display
relevant details if found.
 Provide functionality to update existing student records with new information.
 Allow users to delete student records based on roll numbers.
 Implement a feature to display all student records stored in the system.
 Incorporate sorting functionality to arrange student records based on roll
numbers in ascending order.

5
5. Solution Approach:
 Utilize the C programming language to implement the student record
management system.
 Implement a linked list data structure to store and manage student records
dynamically.
 Design a menu-driven interface to facilitate user interaction and provide
seamless access to various functionalities.
 Ensure proper memory management to prevent memory leaks and optimize
resource utilization.
6. Expected Outcome:
 The developed system should offer a user-friendly interface for efficient
management of student records.
 It should streamline the process of storing, retrieving, updating, and deleting
student information.
 The system should provide accurate and reliable results, enhancing the overall
record management process in educational institutions.
7. Scope for Future Enhancements:
 Integration with a database management system for enhanced scalability and
data security.
 Implementation of additional features such as data validation, error handling,
and reporting capabilities.

 Incorporation of user authentication mechanisms to ensure data privacy and


access control.

6
CHAPTER-3:
IMPLEMENTATION
The program is implemented using C language, leveraging the power of linked lists for efficient
storage and manipulation of student records. It defines a structure Student to represent
individual student records, including attributes such as roll number, name, phone number, and
percentage. Functions are provided to perform essential operations on student records,
including insertion, search, deletion, updating, displaying, and sorting. The main function
orchestrates user interaction by presenting a menu-driven interface, allowing users to choose
from a range of functionalities to manage student records effectively.

PROGRAM
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
struct Student
{
int rollnumber;
char name[100];
char phone[100];
float percentage;
struct Student *next;
};
struct Student * insert(struct Student *head, int rollnumber, char name[100], char phone[100],
float percentage)
{
struct Student * student = (struct Student *) malloc(sizeof(struct Student));
student->rollnumber = rollnumber;
strcpy(student->name, name);
strcpy(student->phone, phone);
student->percentage = percentage;
student->next = NULL;
if(head==NULL)
{
/* if head is NULL, set student as the new head */

7
head = student;
}
else{
/* if list is not empty
insert student in beginning of head */
student->next = head;
head = student;
}
return head;
}
void search(struct Student *head, int rollnumber)
{
struct Student * temp = head;
while(temp!=NULL){
if(temp->rollnumber==rollnumber)
{
printf("Roll Number: %d\n", temp->rollnumber);
printf("Name: %s\n", temp->name);
printf("Phone: %s\n", temp->phone);
printf("Percentage: %0.4f\n", temp->percentage);
return;
}
temp = temp->next;
}
printf("Student with roll number %d is not found !!!\n", rollnumber);
}
void update(struct Student *head, int rollnumber)
{
struct Student * temp = head;
while(temp!=NULL)
{
if(temp->rollnumber==rollnumber)
{
printf("Record with roll number %d Found !!!\n", rollnumber);
printf("Enter new name: ");
8
scanf("%s", temp->name);
printf("Enter new phone number: ");
scanf("%s", temp->phone);
printf("Enter new percentage: ");
scanf("%f",&temp->percentage);
printf("Updation Successful!!!\n");
return;
}
temp = temp->next;
}
printf("Student with roll number %d is not found !!!\n", rollnumber);
}
struct Student * Delete(struct Student *head, int rollnumber)
{
struct Student * temp1 = head;
struct Student * temp2 = head;
while(temp1!=NULL){
if(temp1->rollnumber==rollnumber)
{
if(temp1==temp2)
{
/* this condition will run if
the record that we need to delete is the first node
of the linked list */
head = head->next;
free(temp1);
}
else
{
/* temp1 is the node we need to delete
temp2 is the node previous to temp1 */
temp2->next = temp1->next;
free(temp1);
}
return head;
9
}
temp2 = temp1;
temp1 = temp1->next;
}
return head;
}
void display(struct Student *head)
{
struct Student * temp = head;
while(temp!=NULL)
{
printf("Roll Number: %d\n", temp->rollnumber);
printf("Name: %s\n", temp->name);
printf("Phone: %s\n", temp->phone);
printf("Percentage: %0.4f\n\n", temp->percentage);
temp = temp->next;
}
}
struct Student * sort(struct Student *head)
{
struct Student *temp = NULL;
struct Student *ptr;
struct Student *lptr;
while(head!=NULL)
{
ptr = head;
lptr = head;
while(ptr!=NULL){
if(ptr->rollnumber > lptr->rollnumber)
{
lptr = ptr;
}
ptr = ptr->next;
}
temp = insert(temp, lptr->rollnumber, lptr->name, lptr->phone, lptr->percentage);
10
head = Delete(head, lptr->rollnumber);
}
return temp;
}
int main()
{
struct Student *head = NULL;
int choice;
char name[100];
char phone[100];
int rollnumber;
float percentage;
printf("1.Insert student details\n2.Search for student details\n3.Delete student
details\n4.Update student details\n5.Display all student details\n6.Sort records based on roll
number\n7.Exit");
while(1)
{
printf("\nEnter Choice: ");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("Enter roll number: ");
scanf("%d", &rollnumber);
printf("Enter name: ");
scanf("%s", name);
printf("Enter phone number: ");
scanf("%s", phone);
printf("Enter percentage: ");
scanf("%f", &percentage);
head = insert(head,rollnumber, name, phone, percentage);
break;
case 2:
printf("Enter roll number to search: ");
scanf("%d", &rollnumber);
11
search(head,rollnumber);
break;
case 3:
printf("Enter roll number to delete: ");
scanf("%d", &rollnumber);
head = Delete(head, rollnumber);
break;
case 4:
printf("Enter roll number to update: ");
scanf("%d", &rollnumber);
update(head, rollnumber);
break;
case 5:
display(head);
break;
case 6:
head = sort(head);
break;
case 7:exit(0);
default:printf(“Invalid input\n”);
}
}
}

12
CHAPTER-4:
RESULTS/SCREEN SHOTS

When you run this program you will get menu with 7 options. The above picture shows the
entering of the Student details by entering choice 1.

The above picture shows searching of student details by entering choice 2 and roll number of
the student to be searched, and entering choice 3 and roll number of student to delete student
details, and choice 5 to display all student details.

13
The above picture shows updation of student details by entering choice 4, and entering choice
5 to display and verify that the student details has been updated or not.

The above picture shows entering choice 6 to sort student details based on roll number, and
entering choice 5 to display and verify that the student details has been updated or not.
Finally, we enter choice 7 to exit from the program.

14
CHAPTER-5:
CONCLUSION

The program offers a practical and effective solution for managing student records in
educational institutions. By leveraging the versatility of linked lists and providing intuitive
functionalities, it simplifies the process of handling student data, leading to improved
organization, accuracy, and accessibility of student records. The user-friendly interface
enhances user experience and administrative efficiency, making it a valuable tool for
educational institutions seeking to streamline their record-keeping processes. Overall, this
program demonstrates the potential of software solutions in enhancing administrative tasks in
educational settings.

15
REFERENCES
 Slay Study: https://slaystudy.com/student-management-system-using-linked-list-in-c/
 Geeks for geeks: https://www.geeksforgeeks.org/student-information-management-
system/

16

You might also like