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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
pato
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 25
31.03.2012, 00:37     База данных о студентах #1
Нужно написать программу на c++
Которая бы хранила данные о студентах.
данные: имя, фамилия, группа, три предмета, и оценки по ним.

То есть нужно чтобы через интерфейс можно было:
Список студентов, добавить студента, удалить студента, редактировать его данные ,выход.

Нужно чтобы использовалось понятия:
Класс, Подкласс, Наследование от классов, Суперкласс, инкапсуляция, декапсуляция, переменные типа private, переменные типа public.

Фильтр необязателен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 00:37     База данных о студентах
Посмотрите здесь:

База данных в С++. C++
база данных C++
C++ Описать структуру данных о студентах
Структуры (данные о студентах) - вывод данных в файл C++
C++ Дана информация студентах (структура с полями: ФИО и 4 оценки за экзамен). Вывести данные о студентах, сдавших сессию на отлично.
Написать программу для работы с базой данных, содержащей записи со сведениями о студентах C++
C++ Работа с базой данных, содержащей записи со сведениями о студентах
База данных C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kidasov
76 / 76 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 3
31.03.2012, 14:56     База данных о студентах #2
Вот мой пример создания списка студентов на C с добавлением и выводом

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
//Структура студент
typedef struct Node {
    char middleName; //отчество
    char name;  //фамилия
    char surname[20]; //имя
    int grade; //курс
    int progress; //успеваемость
    struct Node *next; //указатель на следующего студента в списке
}Student;
Student *head = NULL;
 
 
//Добавление студента в группу
void addStudent(Student *list, char surName[], char Name, char MiddleName, int Grade, int Progress) {
    Student *newStudent;
    newStudent = (Student*)malloc(sizeof(Student));
    strcpy(newStudent->surname, surName);
    newStudent->name = Name;
    newStudent->middleName = MiddleName;
    newStudent->progress = Progress;
    newStudent->grade = Grade;
    if (!head) {
        list = newStudent;
        list->next = head;
        head = list;
    }
    else {
        newStudent->next = head;
        head = newStudent;
    }
}
 
//Вывести список студентов на экран
void showGroup() {
    Student *p = head;
    while (p) {
        printf("FIO : %s, %c. %c.\nGrade:%d  Progress:%d\n", p->surname, p->name, p->middleName, p->grade, p->progress);
        p = (Student*)p->next;
    }
}
 
int main(void)
{
    Student *ob;
    addStudent(ob,"Ivanov", 'B','K', 2, 4);
    addStudent(ob,"Petrov", 'A', 'S', 3, 5);
    addStudent(ob,"Kozlov", 'I', 'D', 2, 3);
    showGroup();
    return 0;
}
pato
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 25
31.03.2012, 18:10  [ТС]     База данных о студентах #3
код не много не тот нужен вот такой но для студентов:что бы можно было вводить фио, группу, предмет и оценки понем а также редактировать все данные:

“Главная программа”

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
#include <conio.h>
#include <stdio.h>
#include "l1_v9d.h"
 
void main() {
char c=0;
BANK bank; //объявляем объект класса BANK
while (c!=27) {
clrscr();
int count=bank.getcount(0); //кол-во записей
//формируем меню
printf("1 Создание записи\n");
if (count>1) {
printf("---------------------\n");
printf("3 Вперед\n2 Назад\n");}
if (count) {
printf("---------------------\n");
printf("4 Редактирование\n5 Операция\n6 Удаление записи\n");
printf("8 Поиск по фамилии\n");
}
printf("---------------------\n7 Информация базы\n");
if (count) {
 printf("\n===== Текущая запись: ====\n");
 bank.getitem(0);
 printf("===========================\n");
 }
printf("\nВыбор (Выход - ESC) ? ");
c=getch();
printf("\n\n");
//выбор действия
switch (c) {
case '1': bank.addnewitem();break;
case '3':bank.nextitem();break;
case '2':bank.previtem();break;
case '4':bank.edititem();break;
case '5':bank.addop();break;
case '6': bank.deleteitem();break;
case '7': bank.getcount();break;
case '8': bank.search();break;
} } }
//конец программы

“Заголовочный файл модуля”

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
#ifndef __l1_v9d
#define __l1_v9d
//гарантия подключения библиотеки float-чисел
extern unsigned _floatconvert;
#pragma extref _floatconvert
 
#define FAM_MAX_LN 100 //максимальная длина фамилии
#define NAME_MAX_LN 50 //максимальная длина имени
 
//описание структуры для хранения записи
struct TItem{
  char fam[FAM_MAX_LN], name[NAME_MAX_LN];
  float OP, SUM;
  long DATE;
  int ID;
  TItem *prev; //указатели на предыдущий и следующий элемент
  TItem *next;
  TItem(); //конструктор по умолчанию
  TItem(float sum); //конструктор, устанавливает исх. значение sum
};
 
//описание класса
class BANK {
private:
   TItem* curr; //указатель на текущую запись
   unsigned count; //количество записей
   unsigned tID; //счетчик идентификаторов записей
public:
 void addnewitem(); //добавить элемент
 void getitem(int show=1); //получить элемент
 void deleteitem(int show=1); //удалить элемент
 void nextitem(); //следующий элемент
 void previtem(); //предыдущий элемент
 void edititem(); //редактировать текущий элемент
 void addop(); //провести операцию
 int getcount(int show=1); //количество элементов
 void pause(); //ожидание нажатия клавиши
 void first(); //перейти к первому элементу
 void search(); //поиск
 BANK(); //конструктор
 ~BANK(); //деструктор
};
 
#endif

“Файл модуля”

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include "l1_v9d.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#include <string.h>
TItem::TItem(float sum) {
 SUM=sum;
}
TItem::TItem() {
 SUM=0;
}
void BANK::pause() {
  printf("Нажмите любую клавишу");
  getch();
}
 
void BANK::addop() {
 float op;
 printf("Введите сумму операции ");scanf("%g",&op);
 curr->SUM+=op;curr->OP=op;
 struct date dp;
 struct time tp;
 getdate(&dp);gettime(&tp);
 curr->DATE=dostounix(&dp,&tp);
 
}
void BANK::first() {
 while (curr->prev!=NULL) curr=curr->prev;
 
}
void BANK::search() {
 TItem* pos=curr;
 char kr[FAM_MAX_LN];
 printf("Введите фамилию для поиска: ");scanf("%s",kr);
 first();int found=0;
 while (curr->next!=NULL)
 if (!strcmpi(kr,curr->fam)) {found=1;break;} else curr=curr->next;
 if (!found) {curr=pos;printf("Записи не найдены\n");pause();}
 else {printf("Найденная запись установлена текущей\n");pause();}
}
void BANK::addnewitem() {
  TItem* it=new TItem;
  clrscr();
  printf("Создание записи\n");
  printf("Фамилия? ");scanf("%s",it->fam);
  printf("Имя? ");scanf("%s",it->name);
  printf("Начальная сумма вклада? ");scanf("%g",&it->SUM);
  it->DATE=0;it->OP=0;
  it->ID=++tID;it->prev=NULL;it->next=NULL;
  printf("Запись %d создана\n",it->ID);
 if (count) {
 curr->next=it;
 it->prev=curr;
 curr=curr->next; }
 else curr=it;
 count++;
 pause();
}
BANK::BANK() {
 count=0;
 tID=0;
 curr=NULL;
}
BANK::~BANK() {
 while (curr!=NULL) deleteitem(0);
}
void BANK::getitem(int show) {
 if (count) {
  printf("ID %d\n",curr->ID);
  printf("Фамилия: %s\n",curr->fam);
  printf("Имя: %s\n",curr->name);
  printf("Сумма вклада: %5.2f\n",curr->SUM);
  if (curr->DATE) {
  printf("Последняя операция: %5.2f\n",curr->OP);
  struct date dp;struct time tp;
  unixtodos(curr->DATE,&dp,&tp);
  printf("Проведена %d.%d.%d %d:%d\n",dp.da_day,dp.da_mon,dp.da_year,tp.ti_hour,tp.ti_min);
  } }
 else printf("Нет записей\n");
 if (show) pause();
}
void BANK::deleteitem(int show) {
  if (count) {
  TItem* pos=curr;
  if (curr->next!=NULL) {curr=curr->next;curr->prev=pos->prev;}
  else
  if (curr->prev!=NULL) {curr=curr->prev;curr->next=NULL;}
  printf("Запись ID %d удалена\n",pos->ID);
  delete(pos);count--;
  if (!count) curr=NULL;
  } else
  printf("Нет записей\n");
  if (show) pause();
}
void BANK::edititem() {
 if (count) {
  clrscr();
  printf("Редактирование записи ID %d\n",curr->ID);
  printf("Фамилия? ");scanf("%s",curr->fam);
  printf("Имя? ");scanf("%s",curr->name);
  printf("Запись %d изменена\n",curr->ID); }
 else printf("Нет записей\n");
 pause();
}
void BANK::nextitem() {
 if ((count) && (curr->next!=NULL)) curr=curr->next;
}
void BANK::previtem() {
  if ((count) && (curr->prev!=NULL)) curr=curr->prev;
}
int BANK::getcount(int show) {
  if (show) {
  printf("Записей в базе: %d\n",count);
  pause();   }
  return count;
}
Добавлено через 58 секунд
это бн по банкам....
Yandex
Объявления
31.03.2012, 18:10     База данных о студентах
Ответ Создать тему
Опции темы

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