nan4ik (11.02.2013 / 20:32)
UJIN, скинь тогда,пожалуйста.
сейчас в личку брошу несколько, если понравится то все сброшу))
Как оказалось, моих знаний недостаточно для работы с ООП и я продолжил верстать консольные проги..
Вот одна из последних лаб..
Используются структуры.
Список студентов с формой обучения и оценками после сессии.
Также находит должников и тех, кому будет насчитана стипендий(и начисляет её с учетом процента)
КОД:
#include <iostream>
using namespace std;
struct TStud
{
char lm [30];
char form [1];
int mark[10];
double stip;
double srm;
bool dol;
}stud[30];
double srm (int *a, int n)
{
double srm, summ=0;
for (int i=0; i<n; i++)
summ=summ+a[i];
srm=summ/n;
return srm;
}
int main()
{
setlocale(LC_ALL, "");
float stip_pr, st, proc;
int n, n_mark;
cout << "Количество студентов: ";cin >> n;
cout << "Введите количество оценок: ";cin >> n_mark;
cout << "Начальная стипендия: ";cin >> st;
cout << "Введите процент повышенной стипендии: ";cin >> stip_pr;
for (int i=0; i<n; i++)
{
cout << endl << "# " << i+1 << endl;
cout << "Фамилия: ";cin >> stud [i].lm;
cout << "Введите форму обучения(B/C): ";cin >> stud [i].form;
for (int j=0; j<n_mark; j++)
{
cout << "Оценка " << j+1 << ": ";
cin >> stud [i].mark[j];
while (stud[i].mark[j]!=3 && stud[i].mark[j]!=4 && stud[i].mark[j]!=5 && stud[i].mark[j]!=2)
{
cout << "Повторите ввод" << ": ";
cin >> stud[i].mark[j];
}
}
cout << endl;
}
//обработка
for (int i=0; i<n; i++)
{
/*поиск двоечников*/
for (int j=0; j<n_mark; j++)
if (stud [i].mark[j]==2)
stud[i].dol=true;//двоечник обнаружен!
/*next...*/
if (strcmp(stud [i].form,"B")==0 && strcmp(stud [i].form,"b")==0)
{
if (stud[i].dol!=true)
{
/*считаем средний балл*/
stud[i].srm=srm(&stud[i].mark[0], n_mark);
/*начисляем стипендию*/
proc=(stip_pr/100);
if (stud[i].srm>=5)
stud[i].stip=st+st*proc;
if (stud[i].srm>=4 && stud[i].srm<5)
stud[i].stip=st;
}
}
}
/*вывод*/
system ("cls");
cout << "***СПИСОК СТУДЕНТОВ:" << endl << endl;
for (int i=0; i<n; i++)
{
cout << endl << "# " << i+1;
cout << endl << "Фамилия: ";cout << stud [i].lm;
cout << endl << "Форма обучения: ";cout << stud [i].form << endl;
if (strcmp(stud [i].form,"B")==0 && stud[i].dol!=true)
{
cout << "Средний балл: " << stud[i].srm << endl;
cout << "Стипендия: " << stud[i].stip << endl;
}
if (stud[i].dol==true)
cout << "Должник"<< endl;
cout << endl;
}
cout << endl << endl << "**Должники:" << endl;
for (int i=0; i<n; i++)
{
if (stud[i].dol==true && strcmp(stud [i].form,"B")==0)
{
cout << endl << "# " << i+1;
cout << endl << "Фамилия: ";cout << stud [i].lm;
cout << endl << "Форма обучения: ";cout << stud [i].form << endl;
}
}
cout << endl << endl << "**Стипендия выдается:" << endl;
for (int i=0; i<n; i++)
{
if (strcmp(stud [i].form,"B")==0 && stud[i].dol!=true && stud[i].srm>=4)
{
cout << endl << "# " << i+1;
cout << endl << "Фамилия: ";cout << stud [i].lm;
cout << endl << "Форма обучения: ";cout << stud [i].form << endl;
cout << "Средний балл: " << stud[i].srm << endl;
cout << "Стипендия: " << stud[i].stip << endl;
}
}
cout << endl;
system ("pause");
}
ЗЫ: с этого можно сделать что-то интересное, но пока только так
условие можно записать > 2 и < 6
а то , не 2 не 3 не 4 не 5, как то быдлокод
вот
http://www.tiobe.com/index.php ... .html почему с выше чем с++ вроде как с++ лучше чем с
Fenixrus, кто тебе сказал что С более популярней?Сейчас его мало кто использует...В основном для программирования микроконтроллеров
Fenixrus, Потому что С больше использують как мне кажеться, теже серверные технологии.
программа
#include <cstdlib>
using namespace std;
int main(int argc, char** argv) {
cout << "hello";
return 0;
}
при компиляции ошибка
main.cpp:6:5: error: ‘cout’ was not declared in this scope