Загрузил abfazh232513

Kursovye raboty

реклама
Вариант № 14
1. Двумерные_массивы
Дана целочисленная прямоугольная матрица. Определить:
1) сумму элементов в тех строках, которые содержат хотя бы один отрицательный
элемент;
2) номера строк и столбцов всех седловых точек матрицы.
Примечание. Матрица А имеет седловую точку А., если Ац является минимальным
элементом в i-й строке и максимальным в j-м столбце.
2. Строки_и_файлы
Написать программу, которая считывает текст из файла и выводит на экран только
предложения, не содержащие запятых.
3. Структуры
Описать структуру с именем WORKER, содержащую следующие поля:
□ фамилия и инициалы работника;
□ название занимаемой должности;
□ год поступления на работу.
Написать программу, выполняющую следующие действия:
□ ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER;
записи должны быть размещены по алфавиту;
□ вывод на дисплей фамилий работников, чей стаж работы в организации превышает
значение, введенное с клавиатуры;
□ если таких работников нет, вывести на дисплей соответствующее сообщение.
4. Динамические_структуры_данных
Составить программу, которая содержит динамическую информацию о наличии автобусов
в автобусном парке. Сведения о каждом автобусе включают:
□ номер автобуса;
□ фамилию и инициалы водителя;
□ номер маршрута;
□ признак того, где находится автобус — на маршруте или в парке. Программа должна
обеспечивать:
□ начальное формирование данных обо всех автобусах в виде списка;
□ при выезде каждого автобуса из парка вводится номер автобуса, и программа
устанавливает значение признака «автобус на маршруте»;
□ при въезде каждого автобуса в парк вводится номер автобуса, и программа устанавливает значение признака «автобус в парке»;
□ по запросу выдаются сведения об автобусах, находящихся в парке, или об автобусах,
находящихся на маршруте.
Задание 1:
#include <iostream>
#include <clocale>
#include <cstdlib>
#include <iomanip>
using namespace std;
//----- îáúÿâëåíèå ïðîòîòèïîâ èñïîëüçóåìûõ ôóíêöèé----------------int** Create(int n,int m);
// ñîçäàíèå ìàòðèöû n ñòðîê m ñòîëáöîâ
void Free(int** M,int n);
// îñâîáîæäåíèå ìàòðèöû
void Input(int** M,int n,int m); // ââîä ìàòðèöû âðó÷íóþ
void InputRand(int** M,int n,int m); // ââîä ðàíäîìíî
void Print(int** M,int n,int m); // âûâîä ìàòðèöû
//-------------------------------------------------------------------------//void Work(int** M,int n,int m); // îáðàáîòêà ìàòðèöû
int Work(int** M,int n,int m); // îáðàáîòêà ìàòðèöû - ñóììà ñòðîêè
bool OtrYN(int** M,int n,int m); // îáðàáîòêà ìàòðèöû - åñòü ëè îòðèö ýëåìåíò
int MinMass(int** M,int n,int m); // ìèí ñòîëáöà ìàññèâà
int MaxMass(int** M,int n,int m); // ìàêñèì. ñòðîêè ìàññèâà
//-------------------------------------------------------------------------//---------- main() - òî÷êà âõîäà â ïðîãðàììó êîíñîëüíîãî ïðèëîæåíèÿ
int main()
{
setlocale(LC_ALL,"Rus");
int n,m;
cout<<"Êîëè÷åñòâî ñòðîê ìàòðèöû:?";
cin>>n;
cout<<"Êîëè÷åñòâî ñòîëáöîâ ìàòðèöû:?";
cin>>m;
int** A=Create(n,m);
//Input(A,n,m);
InputRand(A,n,m);
Print(A,n,m);
for (int i = 0; i < n; ++i) {
if (OtrYN(A,i,m)) {
cout << "Ñóììà ñòðîêè ãäå åñòü õîòü 1 îòð. ýëåìåíò "<< i+1 <<" "<<
(Work(A,i,m)) << endl;
} //if
}//for
for (int i = 0; i < n; ++i) {
cout << "Ìàêñèìóì ñòðîêè "<< i+1 <<" "<< (MaxMass(A,i,m)) << endl;
}//for
for (int j = 0; j < m; ++j) {
cout << "Ìèíèìóì ñòîëáöà "<< j+1 <<" "<< (MinMass(A,n,j)) << endl;
}//for
// äëîâàÿ òî÷êà ìàòðèöû
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if ( (MinMass(A,n,j))==(MaxMass(A,i,m))) {
cout << " Ñåäëîâàÿ òî÷êà " << "i- " << i <<" j- "<< j << endl;}
}//for
}
cout << endl;
//Print(A,n,m);
Free(A,n);
system("pause");
return 0;
}
//---- îïèñàíèå ôóíêöèé ----------------------------------------int** Create(int n,int m)
{
int** M=new int*[n];
for(int i=0;i<n;i++)
{
M[i]=new int[m];
}
return M;
}
//---------------------------void Free(int** M,int n)
{
for(int i=0;i<n;i++)
delete[] M[i];
delete[] M;
}
//---------------------------void Input(int** M,int n,int m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<"M["<<i<<"]["<<j<<"]=?";
cin >> M[i][j];
}
}
}
//---------------------------void InputRand(int** M,int n,int m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
M[i][j]=rand()%10;
}
}
}
//---------------------------void Print(int** M,int n,int m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout << setw(4) << M[i][j] ;
}
cout << endl;
}
cout << endl;
}
// Ñóììà ñòðîêè ìàññèâà
int Work(int** M,int n,int m)
{
int summ=0;
for (int i=0; i < m; ++i)
summ+=M[n][i];
return summ;
}
// Åñòü ëè îòð ýëåìåíò â ñòðîêå
bool OtrYN(int** M,int n,int m)
{
for (int i=0; i < m; ++i)
if (M[n][i]<0) return 1;
return 0;
}
// Ìèíèìóì ñòîëáöà ìàññèâà
int MinMass(int** M,int n,int m)
{
int min=M[0][m];
for (int i=1; i < n; ++i)
if (min > M[i][m]) min = M[i][m];
return min;
}
// Ìàêñèìóì ñòðîêè ìàññèâà
int MaxMass(int** M,int n,int m)
{
int max=M[n][0];
for (int i=1; i < m; ++i)
if (max < M[n][i]) max = M[n][i];
return max;
}
Задание 2:
#include <fstream>
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
ifstream ifs("123.txt");
if (!ifs)
return 1;
string sentense;
while (getline(ifs, sentense, '.'))
if (sentense.find(',') == string::npos)
cout << sentense <<endl;
}
Задание 3:
#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
using namespace std;
struct WORKER // ñòðóêòóðà
{
string name;
char surname[20];
string patronymic; // îò÷åñòâî
string job_title;
int year;
};
int main()
{
const int size = 4; // êîëè÷åñòî ðàáîòíèêîâ
WORKER wok[size]; // ìàññèâ ðàáîòíèêîâ
int N;
int flag = 0;
// ñ÷¸ò÷èê ïî ñòàæó
int n = 0;
int i, j;
ifstream infile;
infile.open("Text.txt"); // îòêðûâàåì ôàéë
while(!infile.eof()) // ñ÷èòûâàåì â ìàññèâ äî êîíöà ôàéëà
{
infile >> wok[n].surname >> wok[n].name >> wok[n].patronymic
>> wok[n].job_title >> wok[n].year;
n++;
}
for (i = 0; i < size; i++)
for ( j = i + 1; j < size; j++) // ñîðòèðóåì ïî ôàìèëèÿì
{
if(strcmp(wok[i].surname, wok[j].surname) > 0)
{
WORKER temp;
temp.name = wok[i].name;
strcpy(temp.surname, wok[i].surname);
temp.patronymic = wok[i].patronymic;
temp.job_title = wok[i].job_title;
temp.year = wok[i].year;
wok[i].name = wok[j].name;
strcpy(wok[i].surname, wok[j].surname);
wok[i].patronymic = wok[j].patronymic;
wok[i].job_title = wok[j].job_title;
wok[i].year = wok[j].year;
wok[j].name = temp.name;
strcpy(wok[j].surname, temp.surname);
wok[j].patronymic = temp.patronymic;
wok[j].job_title = temp.job_title;
wok[j].year = temp.year;
}
}
for ( i = 0; i < size; i++) // âûâîäèì îòñîðòèðîâàííûé ñïèñîê
{
cout << wok[i].surname << " " << wok[i].name << " " << wok[i].patronymic << endl;
cout << wok[i].job_title << " " << wok[i].year << endl;
}
cout << endl << endl;
cout << "Inter a year " << endl;
cin >> N;
for ( i = 0; i < size; i++)
if( N < 2012 - wok[i].year) // ñðàâíèâàåì ñòàæ îò 2012
{
cout << wok[i].surname << " "<< wok[i].name << " "<< wok[i].patronymic << "
"
<< wok[i].job_title << " " << wok[i].year << endl;
flag++; // åñëè åñòü âûïîëíåíèå óñëîâèÿ óâåëè÷èâàåì ñ÷¸ò÷èê
}
if(flag == 0) // åñëè ñ÷¸ò÷èê ðàâåí 0
cout << "such workers aren't present " << endl; // òàêèõ ðàáîòíèêîâ íåò
system("Pause");
}
Задание 4:
#include <iostream>
#include <string>
using namespace std;
struct card {
int nym_bus, nym_rout;
bool condit;
string name_driv;
card *next;
};
//------------------------------------------------------------------------void my_cin(int &z) {
while (!(cin >> z) || (cin.peek() != '\n')) {
cin.clear();
while (cin.get() != '\n');
cout << "Error input, retry input!" << endl;
}
}
//------------------------------------------------------------------------void add_card(card *&bus_park) {
card *ptr = new card;
cout << "Enter name driver: ";
cin >> ptr->name_driv;
cout << "Enter nymber bus: ";
my_cin(ptr->nym_bus);
ptr->nym_rout = ptr->condit = 0;
ptr->next = nullptr;
if (bus_park) {
for (auto ptr2 = bus_park;; ptr2 = ptr2->next)
if (!ptr2->next) {
ptr2->next = ptr;
break;
}
}
else
bus_park = ptr;
}
//------------------------------------------------------------------------void send_ret(card &bus_park, int x) {
int y;
cout << "Enter nymber bus: "; my_cin(y);
auto *time_ptr = &bus_park;
for (; time_ptr; time_ptr = time_ptr->next)
if (time_ptr->nym_bus == y)
break;
else if (!time_ptr->next) {
cout << "Nymber bus " << y << " not found...\n";
return;
}
if (x == 2 && time_ptr->condit || x == 3 && !time_ptr->condit) {
if (x == 2)
cout << "(error) The bus is on the route.\n";
else
cout << "(error) The bus is in park.\n";
return;
}
else
if (x == 2) {
time_ptr->condit = 0;
cout << "The bus return in park.\n";
}
else {
time_ptr->condit = 1;
time_ptr->nym_rout = rand() % 100;
}
}
//------------------------------------------------------------------------void show_bus_card(card *&bus_card) {
int c;
cout << "For show bus in route input 1, to show bus in park enter 2: ";
my_cin(c);
for (auto time_ptr(bus_card); time_ptr; time_ptr = time_ptr->next)
if (c == 1 && time_ptr->condit)
cout << "\nBus nymber " << time_ptr->nym_bus <<
"\nDriver " << time_ptr->name_driv <<
"\nRoute nymber " << time_ptr->nym_rout << endl;
else if (c == 2 && !time_ptr->condit)
cout << "\nBus nymber " << time_ptr->nym_bus <<
"\nDriver " << time_ptr->name_driv << endl;
}
//------------------------------------------------------------------------int main()
{
card *bus_park(nullptr);
int x(1);
while (x) {
cout << "//----------------------------------------------------------------------\n";
cout << "To add a driver card input 1, to send bus" <<
" input 2 or to return bus input 3, to show input 4. To exit
enter 0: ";
my_cin(x);
cout << "//----------------------------------------------------------------------\n";
switch (x) {
case 1:
add_card(bus_park);
break;
case 2: case 3:
if (bus_park) send_ret(*bus_park, x);
else cout << "To start, add a record about buses!\n";
break;
case 4:
if (bus_park) show_bus_card(bus_park);
else cout << "To start, add a record about buses!\n";
break;
default:
if (x)
cout << "To enter nymber 1 of 2 or 3 or 4 or 0...\n";
}
}
return 0;
Скачать