Форум программистов, компьютерный форум CyberForum.ru

База данных студенты - C++

Восстановить пароль Регистрация
 
BoMa
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 29
13.12.2011, 22:21     База данных студенты #1
Всем добрый вечер.
Для ведения журнала успеваемости группы во внешнем файле храниться список группы (до 25 человек) и наименования предметов (до 10)


Подготовить меню для следующих действий:

1) Ввода исходного списка и его сортировки
2) Занесения оценок по N предметам
3) Добавление новой фамилии (в алфавитном порядке )
4)Исключение фамилий из списка
5) Сохранение результатов
6) Выход

Добавлено через 40 минут
помогите хотябы с началом программы.

Добавлено через 2 часа 22 минуты
кое что уже поделал скоро выложу

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
 
struct Student
 
{ 
    char Fstudent [10]; // фамилия студента
    int Ostudent ;      // оценка студента
    char Pstudent [20];  // наим. предметов
};
void seeStudent(Student pst);
bool getStudent();
bool addStudent();
bool buyStudent();
int main()
{
char ch;
    bool bMenu = true;
    while(bMenu)
    {
        system("cls");
        cout<<"\t\t*** МЕНЮ БАЗА ДАННЫХ (Студенты) ***\n";
        cout<<"1 - просмотр списка студентов и предметов\n";
        cout<<"2 - добавить студента\n";
        cout<<"3 - добавить предмет\n";
        cout<<"4 - удалить студента\n"; 
        cout<<"5 - cохранить результат\n";
        cout<<"6 - выход из программы\n";
        
        cout<<(ch = getch())<<endl;
        switch(ch)
        {
        case '1':
            if(!getStudent())
                cout<<"При добавлении cтудента возникли ошибки\n";
            break;
        case '2':
            if(!addStudent())
                cout<<"При добавлении студента возникли ошибки\n";
            break;
        case '3':
            if(!buyStudent())
                cout<<"При удалении студента возникли ошибки\n";
            break;
        default :
            bMenu = false;
            cout<<"Прекращаем работу программы\n";
            break;
        }
        system("pause");
    }
    return 0;
    void seeStudent(Student pst)
{
    cout<<"------------------------------------\n";
 
    cout<<"Фамилия студента : "<<pst.Fstudent<<endl;
    cout<<"Название предмета : "<<pst.Pstudent<<endl;
    cout<<"Оценка : "<<pst.Ostudent<<endl;
    cout<<"------------------------------------\n";
    }
    bool getStudent()
{
    cout<<"\tРежим просмотр списка cтудентов\n";
    bool bFlag  = false;
    long i,j,N;
    long fSize  = -1;
    char ch;
    product * list = NULL;
    product pst = {0};
    ifstream ifs
    (
        "d.txt",
        ios::binary
    );
    if(!ifs)
        cout<<"Ошибка открытия файла d.txt\n";
    else
    {
        ifs.seekg(0,ios::end);
        fSize = ifs.tellg();
        ifs.seekg(0,ios::beg);
 
        list = new product[(N = fSize/sizeof(product))];
        ifs.read((char *)list,fSize)
    
}
дальше тухло

Добавлено через 54 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
bool buyStudent()
{
cout<<"\tРежим удаления студента\n";
student pst = {0};
bool bFlag = false;
long fSize = -1;
long lPos = -1;
char iFam [10]; //iFam = int -1
ofstream ofs;
ifstream ifs
(
"data.txt",
ios::binary
);
if(!ifs)
cout<<"Ошибка открытия файла data.txt\n";
else
{
ifs.seekg(0,ios::beg);
cout<<"Введите фамилию студента: ";cin>>iFam;
while(!ifs.eof() && !bFlag)
{
ifs.read((char *)&pst,sizeof(student));
if(pst.Fstudent == iFam)
bFlag = true;
}
if(!bFlag)
cout<<"Данной фамилии нет в data.txt\n";
else
{
lPos = ifs.tellg();
ifs.seekg(0,ios::end);
fSize = ifs.tellg();
ifs.seekg(0,ios::beg);
ofs.open("data.tmp",ios::binary);
if(!ofs)
cout<<"Ошибка создания data.tmp\n";
else
{
while(!ifs.eof())
{
ifs.read((char *)&pst,sizeof(student));
if(lPos != ifs.tellg() && !ifs.eof())
ofs.write((char *)&pst,sizeof(student));
}
ifs.close();
ofs.close();
 
bFlag = false;
if(remove("data.txt"))
cout<<"Ошибка удаления data.txt\n";
else
if(rename("data.tmp","data.txt"))
cout<<"Ошибка переименования data.tmp\n";
else
bFlag = true;
if(bFlag)
cout<<"Студент с фамилией : "<<iFam<<" удалён из data.txt\n";
}
}
}
return bFlag;
}
Добавлено через 14 секунд
добавил удаление студента

Добавлено через 31 секунду
кто нить знает алфавитное добавление фамилии в базу
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2011, 22:21     База данных студенты
Посмотрите здесь:

база данных C++
база данных C++
C++ База данных
C++ База данных
C++ Использование псевдопеременных: bd (3,5) = s, где bd - база данных, s - элемент базы данных, тогда с 3 по 5 элементы базы данных заменить на элемент s.
C++ База данных: студенты
C++ Удалённая база данных - запрос и вывод данных
База данных C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 20:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru