64 617
Assignments Done
99,1%
Successfully Done
In September 2018

Answer to Question #3243 in C++ for iko

Question #3243
Create a structure named student. Include data fields to hold student's ID number, first name, last name, and IC number. <br>Create an array of five Sudent variables. Prompt the user to enter data for each Student. <br>Do not allow duplicate ID numbers to be entered. Then prompt the user to choose whether to search for the Student by [1] ID number, [2] first name, [3] last name, and [4] IC number. After the user chooses the field or which to search, prompt the user for search value. Display an error message if there is no student with matching criteria: otherwise display all the data for every matching student
Expert's answer
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;

struct Student
{
int id;
char first_name[50];
char last_name[50];
int icNumber;
};

const int array_size = 2;
Student students[array_size];
int entered_students = 0;

void search();
Student create_student();
bool is_id_correct(int id);
void fill_array();
void search_by_id(int id);
void search_by_first_name(char fn[80]);
void search_by_last_name(char ln[80]);
void search_by_1c(int ic);
void print_fields(Student st);

int main()
{
fill_array();
search();
system("pause");
return 0;
}

void search()
{
cout << "Enter the kind of search:\n";
cout << "\t1. Search by Id\n";
cout << "\t2. Search by first name\n";
cout << "\t3. Seacrh by last name\n";
cout << "\t4. Search by IC number\n";
char choice;
do
{
& choice = getch();
}
while (!(choice <= '4' && choice >= '1'));
cout << endl << endl;
switch (choice)
{
case '1':
& cout << "Enter the id: ";
& int id;
& cin >> id;
& search_by_id(id);
& break;
case '2':
& cout << "Enter the first name: ";
& char fn[50];
& cin >> fn;
& search_by_first_name(fn);
& break;
case '3':
& cout << "Enter the last name: ";
& char ln[50];
& cin >> ln;
& search_by_last_name(ln);
& break;
case '4':
& cout << "Enter the 1C number: ";
& int ic;
& cin >> ic;
& search_by_1c(ic);
& break;
&
}
}

Student create_student()
{
Student student;
do
{
& cout << "Enter the student's id: ";
& cin >> student.id;
& if (is_id_correct(student.id))
& break;
& cout << "The student with such id has already been added\n";
}
while (true);

cout << "Enter the student's first name: ";
cin >> student.first_name;
cout << "Enter the student's last name: ";
cin >> student.last_name;
cout << "Enter the student's 1C number: ";
cin >> student.icNumber;
cout << "The student has been added!\n\n";
entered_students++;
return student;
}

void fill_array()
{
for (int i = 0; i < array_size; i++)
& students[i] = create_student();
}

bool is_id_correct(int id)
{
for (int i = 0; i < entered_students; i++)
& if (students[i].id == id)
& return false;
return true;
}

void search_by_id(int id)
{
for (int i = 0; i < array_size; i++)
& if (students[i].id == id)
& {
& print_fields(students[i]);
& return;
& }
cout << "There is no such student in the array!\n";
}

void search_by_first_name(char fn[80])
{
for (int i = 0; i < array_size; i++)
& if (strcmp(fn, students[i].first_name) == 0)
& {
& print_fields(students[i]);
& return;
& }
cout << "There is no such student in the array!\n";
}

void search_by_last_name(char ln[80])
{
for (int i = 0; i < array_size; i++)
& if (strcmp(ln, students[i].last_name) == 0)
& {
& print_fields(students[i]);
& return;
& }
cout << "There is no such student in the array!\n";
}

void search_by_1c(int ic)
{
for (int i = 0; i < array_size; i++)
& if (students[i].icNumber == ic)
& {
& print_fields(students[i]);
& return;
& }
cout << "There is no such student in the array!\n";
}

void print_fields(Student st)
{
cout << "The student: \n";
cout << "id: " << st.id << "\n";
cout << "first name: " << st.first_name << "\n";
cout << "last name: " << st.last_name << "\n";
cout << "1C number " << st.icNumber << "\n\n";
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be first!

Leave a comment

Ask Your question

Submit
Privacy policy Terms and Conditions