Borland C++ For Dos! Есть Исходник. Нужна Поmощь

Тема в разделе "Общие вопросы по С и С++", создана пользователем Prosto23, 29 май 2012.

  1. Prosto23

    Prosto23 Гость

    на Borland C++ for Dos .(и ничего другого)!!! ...нужна база данных студентов..
    1)Вводить информацию о студенте.
    2)Выводить информацию введенную.
    3)Редактировать информацию о студенте.
    4)Сортировка по кол ву студентов в группе.
    5)Поиск студента.

    Проблема есть исходник на с++ ..но там я синтаксис вообще не понимаю...
    кто может переделать...плиз помогите...это курсач... просто синтаксис другой..не понимаю...
    --------------------------------
    //Подключаем заголовочные файлы
    #include "Headers/Student.h"
    #include "Headers/StudentDataBase.h"
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <iomanip>
    #include <vector>
    #include <conio.h>
    #include <Windows.h>

    //Деструктор
    StudentDataBase::~StudentDataBase()
    {
    //Освобождаем память, выделенную под каждого студента
    while(!studentList.empty()) {
    delete[] studentList.back();
    studentList.pop_back();
    }
    }

    //Добавление студента в базу
    void StudentDataBase::addStudent()
    {
    system("cls"); //Очистка экрана

    Student* currentStudent = new Student(); //Создаем новый объект Студент

    //Вводим информацию о студенте
    std::cout << "Введите фамилию студента: ";
    std::cin.getline(currentStudent->lastName, NAME_MAX_SIZE);

    std::cout << "Введите имя студента: ";
    std::cin.getline(currentStudent->firstName, NAME_MAX_SIZE);

    std::cout << "Введите отчество студента: ";
    std::cin.getline(currentStudent->patronymic, NAME_MAX_SIZE);

    std::cout << "Введите возраст студента: ";
    std::cin >> currentStudent->age;
    //Перехватываем ошибки ввода, выводим сообщение и прерываем работу функции
    if(!std::cin.good()) {
    std::cin.clear();
    std::cin.sync();
    delete currentStudent;
    std::cerr << "\nОшибка ввода! Информация о студенте не была добавлена";
    return;
    }

    std::cout << "Введите номер группы студента: ";
    std::cin >> currentStudent->groupNumber;
    if(!std::cin.good()) {
    std::cin.clear();
    std::cin.sync();
    delete currentStudent;
    std::cerr << "\nОшибка ввода! Информация о студенте не была добавлена";
    return;
    }

    std::cout << "Введите номер телефона студента: ";
    std::cin >> currentStudent->phoneNumber;
    if(!std::cin.good()) {
    std::cin.clear();
    std::cin.sync();
    delete currentStudent;
    std::cerr << "\nОшибка ввода! Информация о студенте не была добавлена";
    return;
    }

    studentList.push_back(currentStudent); //Добавляем студента к общему списку
    std::cout << "\nСтудент добавлен.";
    }

    //Вывод на экран всех студентов
    void StudentDataBase::showAllStudents()
    {
    system("cls");
    std::cout << std::left;
    std::cout.width(5); std::cout << "№";
    std::cout.width(50); std::cout << "ФИО";
    std::cout.width(7); std::cout << "Номер группы";
    std::cout << std::endl;
    for(size_t i=0; i<studentList.size(); ++i) {
    std::cout << std::left;
    std::cout.width(5); std::cout << i+1;
    //Загоняем ФИО в переменную типа string, чтобы корректно вывести
    std::string stFullName;
    stFullName += studentList->lastName;
    stFullName += ' ';
    stFullName += studentList->firstName;
    stFullName += ' ';
    stFullName += studentList->patronymic;
    ///////////////////////////////////////
    std::cout.width(50); std::cout << stFullName;
    std::cout.width(7); std::cout << studentList->groupNumber;
    std::cout << std::endl;
    }
    }

    //Вывод подробной информации о студенте
    void StudentDataBase::showDetails(unsigned int id)
    {
    system("cls");
    std::cout << "Инфомрация о студенте.";
    std::cout << "\n\nФамилия: " << studentList[id]->lastName
    << "\nИмя: " << studentList[id]->firstName
    << "\nОтчество: " << studentList[id]->patronymic
    << "\nВозраст: " << studentList[id]->age
    << "\nНомер группы: " << studentList[id]->groupNumber
    << "\nНомер телефона: " << studentList[id]->phoneNumber;
    }

    //Удаление студента
    void StudentDataBase::removeStudent(unsigned int id)
    {
    delete studentList[id]; //Освобождаем выделенную память
    studentList.erase(studentList.begin()+id); //Удаляем студента
    }

    //Метод выбора студента (для обработки ошибок ввода)
    unsigned int StudentDataBase::chooseStudent()
    {
    std::cout << "\n\nВведите номер студента: ";
    unsigned int id;
    std::cin >> id;
    if(!std::cin.good()) {
    std::cin.clear();
    std::cin.sync();
    std::cout << "\nОшибка ввода!";
    std::cout << "\n\nНажмите любую клавишу...";
    _getch();
    return -1;
    }
    std::cin.sync();
    if(id>studentsAmount() || id==0) {
    std::cout << "\nСтудента с таким номером не существует.";
    std::cout << "\n\nНажмите любую клавишу...";
    _getch();
    return -1;
    }
    return id-1;
    }

    //Редактировать информацию о студенте
    void StudentDataBase::editStudent(unsigned int id)

    {
    while(true) {
    unsigned int temp;
    showDetails(id);
    std::cout << "\n\n\n"
    << "1. Изменить фамилию\n"
    << "2. Изменить имя\n"
    << "3. Изменить отчество\n"
    << "4. Изменить возраст\n"
    << "5. Изменить номер группы\n"
    << "6. Изменить номер телефона\n"
    << "0. Вернуться в предыдущее меню\n";
    char ch = _getch();
    switch (ch) {
    case '1':
    std::cout << "\n\nВведите фамилию студента: ";
    std::cin.getline(studentList[id]->lastName, NAME_MAX_SIZE);
    break;
    case '2':
    std::cout << "\n\nВведите имя студента: ";
    std::cin.getline(studentList[id]->firstName, NAME_MAX_SIZE);
    break;
    case '3':
    std::cout << "\n\nВведите отчество студента: ";
    std::cin.getline(studentList[id]->patronymic, NAME_MAX_SIZE);
    break;
    case '4':
    std::cout << "\n\nВведите возраст студента: ";
    std::cin >> temp;
    if(!std::cin.good()) {
    std::cin.clear();
    std::cin.sync();
    std::cerr << "\nОшибка ввода! Информация не была изменена";
    std::cout << "\n\nНажмите любую клавишу для продолжения..."; _getch();
    }
    else
    studentList[id]->age = temp;
    break;
    case '5':
    std::cout << "\nВведите номер группы студента: ";
    std::cin >> temp;
    if(!std::cin.good()) {
    std::cin.clear();
    std::cin.sync();
    std::cerr << "\nОшибка ввода! Информация не была изменена";
    std::cout << "\n\nНажмите любую клавишу для продолжения..."; _getch();
    }
    else
    studentList[id]->groupNumber = temp;
    break;
    case '6':
    std::cout << "\nВведите номер телефона студента: ";
    std::cin >> temp;
    if(!std::cin.good()) {
    std::cin.clear();
    std::cin.sync();
    std::cerr << "\nОшибка ввода! Информация не была изменена";
    std::cout << "\n\nНажмите любую клавишу для продолжения..."; _getch();
    }
    else
    studentList[id]->phoneNumber = temp;
    break;
    case '0':
    return;
    }
    }
    }

    //Поиск студента по одному из параметров
    void StudentDataBase::findStudent(const char* name, unsigned int data, int state)
    {
    while(true) {
    system("cls");
    std::vector<int> index;
    std::cout << std::left;
    std::cout.width(5); std::cout << "№";
    std::cout.width(50); std::cout << "ФИО";
    std::cout.width(7); std::cout << "Номер группы";
    std::cout << std::endl;
    switch(state) {
    case 1:
    for(size_t i=0; i<studentList.size(); i++) {
    if(!std::strcmp(name, studentList->lastName))
    index.push_back(i);
    }
    break;
    case 2:
    for(size_t i=0; i<studentList.size(); i++) {
    if(!std::strcmp(name, studentList->firstName))
    index.push_back(i);
    }
    break;
    case 3:
    for(size_t i=0; i<studentList.size(); i++) {
    if(!std::strcmp(name, studentList->patronymic))
    index.push_back(i);
    }
    break;
    case 4:
    for(size_t i=0; i<studentList.size(); i++) {
    if(data==studentList->age)
    index.push_back(i);
    }
    break;
    case 5:
    for(size_t i=0; i<studentList.size(); i++) {
    if(data==studentList->groupNumber)
    index.push_back(i);
    }
    break;
    case 6:
    for(size_t i=0; i<studentList.size(); i++) {
    if(data==studentList->phoneNumber)
    index.push_back(i);
    }
    break;
    }
    for(size_t i=0; i<index.size(); i++) {
    Student* currentStudent = getStudentById(index);
    std::cout << std::left;
    std::cout.width(5); std::cout << i+1;
    //Загоняем имя в переменную типа string
    std::string stFullName;
    stFullName += currentStudent->lastName;
    stFullName += ' ';
    stFullName += currentStudent->firstName;
    stFullName += ' ';
    stFullName += currentStudent->patronymic;
    ///////////////////////////////////////
    std::cout.width(50); std::cout << stFullName;
    std::cout.width(7); std::cout << currentStudent->groupNumber;
    std::cout << std::endl;
    }
    std::cout << "\n\nНажмите любую клавишу...";
    _getch();
    break;
    }
    }
     
Загрузка...

Поделиться этой страницей