Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <Windows.h>
- #include "Student.h"
- using namespace std;
- void init_student(Student table[]) {
- ifstream fin;
- fin.open("journal.txt");
- string str;
- int counter = 0;
- if (fin.is_open()) {
- while (!fin.eof()) {
- getline(fin, str);
- if (str.size() > 0) {
- table[counter].name = str;
- counter++;
- }
- }
- fin.close();
- }
- cout << counter << " студентов зарегистрировано." << endl;
- }
- void save_sudent(Student table[]) {
- ofstream fout("journal_new.xls");
- if (fout.is_open()) {
- fout << "Ф.И.О.";
- for (int k = 1; k <= 31; ++k) {
- fout << "\t" << k;
- }
- fout << endl;
- for (int n = 0; n < 10; n++) {
- fout << table[n].name;
- for (int k = 0; k < 31; ++k) {
- fout << "\t" << table[n].mark[k];
- }
- fout << endl;
- }
- fout.close();
- cout << "Студенты сохранены." << endl;
- }
- }
- void load_sudent(Student table[]) {
- ifstream fin("journal_new.xls");
- if (fin.is_open()) {
- string str;
- int counter = 0;
- while (!fin.eof()) {
- getline(fin, str);
- if (counter > 0) {
- table[counter - 1].init(str);
- }
- counter++;
- }
- fin.close();
- }
- }
- Student parse_str(string str) {
- Student st;
- int id_st = 0;
- int id_en = 0;
- string small_str;
- int counter = 0;
- for (int k = 0; k < str.length(); ++k) {
- if (str[k] == '\t') {
- id_en = k;
- small_str = str.substr(id_st, id_en - id_st);
- if (counter == 0) {
- st.name = small_str;
- }
- else {
- st.mark[counter - 1] = atoi(small_str.data());
- }
- //cout << small_str << endl;
- id_st = id_en + 1;
- counter++;
- }
- }
- return st;
- }
- void main() {
- setlocale(LC_ALL, "Ru");
- SetConsoleCP(1251);
- /*
- // это проверка функции, написанной отдельно, для разбора строки в поля структуры
- Student st = parse_str("Иванов И.П. 5 4 0 3 2 1 0 0 0 0 0 0 0 0 0 0 0");
- cout << st.name << endl;
- for (int k = 0; k < 31; k++) {
- cout << st.mark[k] << " ";
- }
- cout << endl;
- */
- Student table[10];
- /*
- // это проверка функции, встроенной в качестве метода в структуру, для разбора строки в поля этой структуры
- table[0].init("Иванов И.П. 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0");
- cout << table[0].name << endl;
- cout << table[0].mark[0] << endl;
- */
- //init_student(table); // это начальная заготовка для создания файла
- load_sudent(table);
- //table[0].mark[0] = 5; // так поставить оценку
- cout << table[0].mark[0] << endl; // так посмотреть оценку
- save_sudent(table);
- }
Advertisement
Add Comment
Please, Sign In to add comment