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

В журнале записаны оценки n студентов, сдававших m экзаменов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ транспонирование матрицы http://www.cyberforum.ru/cpp-beginners/thread368826.html
Имеется матрица размерности(6 на 3) необходимо ее транспонировать! вот мой код count=3; n=6; void __fastcall TForm1::GetMatrix(TStringGrid *SG, Matrix1 &M) { for (int i=0; i<SG->ColCount; i++) { for (int k=0; k<SG->RowCount; k++) {
C++ Множественное наследие Добрый день , не могли бы вы проверить провельно ли я расписал множественное наследие #include<iostream> using namespace std; class One { public: virtual ~One(){cout<<"Destructor Class ONE"<<endl;} virtual void theOne(){cout<<"its is ONE"<<endl;} }; http://www.cyberforum.ru/cpp-beginners/thread368818.html
C++ Создать программу обработки файла типа запись "Успеваемость студента"
Я тут недавно начал разбираться с с++... В принципе многое понял, научился, нашел интересное задание: Создать программу обработки файла типа запись, содержащую следующие пункты меню: «Создание», «Просмотр», «Коррекция» (добавление новых данных или редактирование старых), «Решение индивидуального задания». Там есть пункты : ФИО, группа, оценки по 3ем предметам, средняя. Реализовать это все...
API & C++ C++
Приветствую Вас уважаемыые форумчане... Не подскажете какой справочник по функциям API С++
C++ Проверить правильность расстановки символов “/*” и “*/” для комментариев http://www.cyberforum.ru/cpp-beginners/thread368784.html
Проверить правильность расстановки символов “/*” и “*/” для комментариев в фрагменте программы на языке С++.
C++ После каждого слова текста, заканчивающегося заданной подстрокой, вставить указанный символ После каждого слова текста, заканчивающегося заданной подстрокой, вставить указанный символ. помогите! :) подробнее

Показать сообщение отдельно
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
19.10.2011, 10:04  [ТС]     В журнале записаны оценки n студентов, сдававших m экзаменов
Здраствуйте помогите плиз выполнить лабораторную по с++
Вариант 2
Разработать схему алгоритма и программу, используя функции с параметрами для ввода матрицы и ее обработки.
В журнале записаны оценки n студентов, сдававших m экзаменов. Если студент не сдавал экзамен, то его оценка нуль. Определить номер студента, получившего наибольшее количество двоек.
Вот листинг по заданию только без функции отдельной ввода матрицы, и без считывания и записывания данных в файл
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
#include <iostream>
 
using namespace std;
    
int main()
{
    setlocale(LC_ALL, "rus");
    int n,m;
    int l=0;
    
    cout <<"Введите количество студентов: ";
    cin >> n;
    cout <<"Введите количество экзаменов: ";
    cin >> m;
    
    int **massiv = new int*[n];
    for(int k= 0; k < n; k++)
    massiv[k] = new int[m];
    
    for(int i=0; i<n; i++)
            for (int j = 0; j<m; j++)
            massiv[i][j]=0;
            
    
    for(int i=0; i<n; i++){
    cout << "\nCтудент " << i+1 << " сдал экзаменов: ";
    cin >> l;
    if(l>m)
    cout << "Экзаменов же всего " << m << "...\n"; 
            for (int j=0; j<l&&j<m; j++){
            cout << "Оценка за " << j+1 << "-й экзамен" << ": ";
            cin >> massiv[i][j];
            }
            }        
            
            
    int schet=0;
    int k,temp;
    for(int i=0; i<n; i++){
            for(int j=0; j<m; j++)
            if(massiv[i][j]==2)
            schet++;
            if(temp<schet){
            temp=schet;
            k=i;
            schet=0;
            }
            schet=0;
            }
    
    cout << "\nCтудент № " << k+1 << " нахватал самое большое количество двоек (" << temp << ")!";
    
    
    cout << "\n\n\n";
    system("PAUSE");
    return 0;
}
Вот пример такого задания:
Разработать схему алгоритма и программу, используя функции с параметрами для ввода массива и его обработки.
В массиве хранятся данные об осадках за месяц. Найти
• Количество дней с осадками больше среднего

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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include <iostream> 
#include <conio.h> 
#include <locale.h>
#include <windows.h>
using namespace std; 
 
void Input(int day, char* fname); 
void Output(char* fname); 
int NumberOfLines(char* fl); 
 
void main() 
{ 
system("color 9B"); 
setlocale(LC_CTYPE, "Russian_Russia.1251"); 
 
do 
{ 
int menu, day; 
char filename[] = {"save.txt"}; 
 
cout << endl << "\t\t\t ГЛАВНОЕ МЕНЮ ПРОГРАММЫ" << endl; 
cout << endl << " Для ввода данных нажмите 1 :"; 
cout << endl << " Для вывода результатов нажмите 2:" << endl; 
cout << endl << "\n Ваш выбор: "; 
cin >> menu; 
 
if (menu == 1) 
{ 
cout << endl << " Введите количество дней в месяце: "; 
cin >> day; 
} 
 
switch (menu)
{
case 1: Input( int day, filename); break;
case 2: Output(filename); break;
default: cout << endl << " Ошибка при выборе пункта меню!";
}
 
_getch();
system("cls"); 
}
while (true); 
} 
 
void Input(int day, char* fname) 
{ 
system("cls"); 
 
double* Deposits = new double[day]; 
FILE *f; 
 
for (int n = 0; n < day; n++) 
{
cout << endl << " Введите данные за " << n + 1 << "-е число: "; 
cin >> Deposits[n]; 
} 
 
if ((f = fopen(fname, "w+")) == NULL) 
cout << endl << " Невозможно записать файл!"; 
else 
{ 
for (int n = 0; n < day; n++) 
{ 
fprintf(f, "%Lf \n", Deposits[n]); 
} 
} 
 
cout << endl << " Данные успешно записаны файл."; 
 
fclose(f); 
delete []Deposits;
} 
 
void Output(char* fname) 
{ 
system("cls"); 
 
int day = 0, n; 
double quantity = 0, summa = 0, middle = 0; 
FILE *p; 
char* fl = fname; 
 
day = NumberOfLines(fl); 
 
if (day == -1) return; 
 
p = fopen(fname, "r"); 
 
if (p == NULL) cout << endl << " Невозможно открыть файл!"; 
else 
{ 
double* Deposits = new double[day]; 
 
for (n = 0; n < day; n++) 
fscanf(p, "%Lf ", &Deposits[n]); 
 
for (n = 0; n < day; n++) 
{ 
if (Deposits[n] == 0) continue; 
else 
{ 
quantity++; 
summa += Deposits[n]; 
} 
} 
 
middle = summa / quantity; 
quantity = 0; summa = 0; 
 
for (n = 0; n < day; n++) 
{ 
if (Deposits[n] <= middle) continue; 
else quantity++; 
} 
 
for (n = 0; n < day; n++) 
{ 
if (n % 6 == 0) cout << endl; 
cout << "\t" << Deposits[n]; 
} 
 
cout << endl << " Среднее значение осадков в дождливые дни равно: " << middle; 
cout << endl << " Количество дней, превышающих среднее значение осадков равно: " << quantity; 
 
delete []Deposits; 
} 
 
fclose(p); 
} 
 
int NumberOfLines (char* fl) 
{ 
int counter = 0; 
FILE *ptr; 
char temp[100]; 
 
ptr = fopen(fl, "r"); 
if (ptr == NULL) 
{ 
cout << endl << " Невозможно открыть файл!"; 
return -1; 
} 
 
while (fgets(temp, 100, ptr) != NULL) counter++; 
 
fclose(ptr); 
return counter; 
}
Пытался их объеденить чтоб получился листинг выполняющий мои задания но совсем запутался и остановился на том что получился вот такой листинг.
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
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <windows.h>
using namespace std;
 
void PInput(int n,m, char*fname);
void POutput(char* fname);
int NumberOfLines(char* fl);
 
void main()
{
system("color 9B");
 
do
{
int menu, day;
char filename[] = {"save.txt"};
 
cout << endl << "\t\t\t Menu" << endl;
cout << endl << " Dla vvoda dannih nagmite 1 :";
cout << endl << " Dla vivoda rezultata 2:" << endl;
cout << " dla vihoda nagmite 3";
cout << endl << "\n Ваш выбор: ";
cin >> menu;
 
if (menu == 1)
{
cout << endl << " Vvedite kolichestvo studentov ";
cin >> n;
cout <<endl << " vvedite kolischestvo ekzamenov";
cin >> m;
}
 
switch (menu)
{
case 1: PInput( int n,m, filename); break;
case 2: POutput(filename); break;
case 3: return;
default: cout << endl << " Ошибка при выборе пункта меню!";
}
 
_getch();
system("cls");
}
while (true);
}
 
 
void Pinput(int n,m,char * fname)
{ system ("cls");
        int l=0;
 
        int **massiv = new int*[n];
        File *f;
    for(int k= 0; k < n; k++)
        massiv[k] = new int[m];
 
        for(int i=0; i<n; i++)
                        for (int j = 0; j<m; j++)
if ((f = fopen(fname, "w+")) == NULL)
cout << endl << " Невозможно записать файл!";
else
{
for (int i = 0; i < n; n++)
{for (int j = 0; j<m; j++)
fprintf(f, "%f \n", massiv[i][j]);}
 
 
 
        for(int i=0; i<n; i++){
        cout << "\nStudent " << i+1 << " sdal ekzamenov: ";
        cin >> l;
        if(l>m)
        cout << "Ekzamenov ge vsego " << m << "...\n";
                        for (int j=0; j<l&&j<m; j++){
                        cout << "ocenka za " << j+1 << "-i ekzamen" << ": ";
                        cin >> massiv[i][j];
                        }
                        }
 
        int schet=0;
        int k,temp;
        for(int i=0; i<n; i++){
                        for(int j=0; j<m; j++)
                        if(massiv[i][j]==2)
                        schet++;
                        if(temp<schet){
                        temp=schet;
                        k=i;
                        schet=0;
                        }
                        schet=0;
                        }
        for (int k = 0; k < temp; k++) {
 
 
        cout << "\nStudent № " << k+1 << " Nahvatal samoe bolchoe kolicestvo dvoek (" << temp << ")!";
        }
 
        cout << "\n\n\n";
        system("PAUSE");
        return 0;
}
он конечно не работает потому что я совсем запутался что откуда берется ... кто понимает пожите помоч плиз очень надо седня...
 
Текущее время: 08:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru