Edited2 Student Management System
Edited2 Student Management System
GROUP MEMBERS
1. Beshah Ashenafi (UGR/5569/15)
2. Mariamawit Tewodros (UGR/7952/15)
1
Executive Summary
Brief Overview
Our Project is a Student Management System (SMS), also known as a Student
Information System (SIS) and it is software designed to record, analyze and manage information
in an educational institution.
Background
Why change is needed?
The traditional method of collecting data using paper must be changed because it has
many defects such as:
1. Lack of security
2. Tedious to search through
3. Tracking data across systems is tiresome
4. Analysis of data is hard to implement
5. Loss of data through fire or misappropriation
Fixes
Our system aims to fix all the above problems by implementing a digital system that is
easy to use and manipulate according to the needs of the administrator.
2
Statement of the Problem
Problem
The Problem is the fact that most schools still use an old system of keeping track of data
which is prone to loss of data which we believe to be the most devastating of all the problems the
old system has but by doing implementing our system there can also be saved funds because of
the decrease in paper usage and decrease in man power needed to work through the records.
Solution
The Desired Solution is a secure digital system which is simple to use, easy to learn and
can store different information about students of the school.
Solution
The problem is the use of outdate systems to store data in a world that has become digital.
Our proposed solution uses the C++ programming language and it’s many features to develop a
digital system.
Why Struct?
The reason we used struct and not any other data types like arrays is the fact that with
struct we can store elements of different data types under one the same data type meaning we can
save integers and strings under the same data type which isn’t possible with the array data type.
3
Functions
Definition of functions
Functions are pieces of code that perform a specified task. They can be defined by the
user to do something the user wishes to have and there also built-in functions that make things
easier for programmers to do.
Requirements
Functional Requirements
Our system has the ability to add and edit of a student’s data. We can also find a student’s
entire data if we know his/her ID.
Non-Functional Requirements
Our system has a friendly-user interface easy to understand and manipulate and retrieves
stored data instantly and the use of functions and the struct data type in our code ensures the
scalability of the program as different needs arise, we are well-suited to accommodate them.
Design
Implementation of struct in our system
We created a struct data type called ‘Student’ to store the various information a school
might have about their students such as their names, age, courses the student is taking, etc. We
could have had added about a hundred things but limited ourselves to the basics i.e., Name, Age,
Courses, ID because of the relatively small scope of our project.
We declared a variable of ‘Struct’ data type and named it ‘records’, It has the
‘firstname’,’secondname’,’courses’ and ’DateofBirth’ string variables associated with it and the
‘age’ & ‘ID’s integer variables associated with it. These variables are the info we store about a
particular student.
4
Usage of functions in our code
We created the following functions in our code:
5
Source Code
#include <iostream>
#include <string.h>
#include <string>
using namespace std;
struct Student {
int age, ID;
string firstname, secondname, course;
};
void total_students();
int total;
Student records[25];
int main() {
6
cout << "Enter your choice: ";
switch (choice) {
case 1:
total_students();
add_student();
break;
case 2:
if (records[0].age ==NULL) {
main();
else {
cout <<
"----------------------------------------------------------------
---------------" << endl;
cout <<
"----------------------------------------------------------------
----------------" << endl;
cout << "ID " << "\tName " << "\tFather " << "\tCourse\t"
<< "Age\n\n";
7
cout <<
"----------------------------------------------------------------
----------------" << endl;
else {
edit_data(editchoice);
break;
case 3:
if (records[0].age == NULL) {
main();
else {
search_student(searchvalue);
8
break;
case 4:
return 0;
break;
default:
main();
void total_students() {
cout << "How many students do you want to enter into the
system?";
void add_student() {
get_data(i);
cout <<
"----------------------------------------------------------------
----------------" << endl;
9
cout << "---------------------------Student record
Table---------------------------------" << endl;
cout <<
"----------------------------------------------------------------
----------------" << endl;
cout << "ID " << "\tName " << "\tFather " << "\
tCourse\t" << "Age\n";
cout <<
"----------------------------------------------------------------
----------------" << endl;
display_data(i);
main();
void get_data(int i) {
records[i].ID = i ;
10
cout << "Student " << records[i].firstname << " " <<
records[i].secondname << " has been assigned ID number " <<
records[i].ID <<endl;
if (editchoice== i) {
cout <<
"----------------------------------------------------------------
----------------" << endl;
cout << "ID " << "\tName " << "\tFather " << "\
tCourse\t" << "Age\n";
cout <<
"----------------------------------------------------------------
----------------" << endl;
display_data(i);
get_data(i);
main();
11
int i = searchvalue;
if (records[i].ID == searchvalue) {
cout << "ID " << "Name " << "Father " << "Course\t"
<< "Age\n\n";
display_data(i);
if (editchoice== i) {
cout <<
"----------------------------------------------------------------
----------------" << endl;
12
cout << "---------------------------Student record
Table---------------------------------" << endl;
cout <<
"----------------------------------------------------------------
----------------" << endl;
cout << "ID" << "\tName" << "\t\tFather" << "\t\tCourse" <<
"\t\tAge\n";
cout <<
"----------------------------------------------------------------
----------------" << endl;
display_data(i);
deleteddata(i);
main();
Conclusion
This document has shown why a digital student management system is better than a
physical student management system. It also shows how a student management system can be
implemented using the C++ programming language using struct, function, variables and arrays.
13
Recommendations
There are certain things we thought of but didn’t add to our system. We recommend the
following things to be added to the system.
1. In order to avoid loss of data via hackers the system should have passwords implemented in
it.
2. In order to avoid tampering and misappropriation of student data by administrators, only
certain people should have the clearance to edit student data. Moreover, Student data history
should be saved and the person who edited the data should be kept as part of the data so as to
avoid problems.
3. We have limited ourselves to the use of Command Line Interfaces (CLIs) but Graphic User
Interfaces are much more intuitive and easier to use therefore that also must be added.
4. The addition of databases would greatly increase accessibility of data and we believe that it
also should be added.
14