Вы находитесь на странице: 1из 9

Задания к самостоятельной работе

1. Описать структуру с именем Student, содержащую следующие


поля: name, group, ses(успеваемость - массив из 5 элементов). Ввести с
клавиатуры данные в массив stud1, состоящий из 10 структур типа student.
Записи упорядочить по алфавиту. Вывести на экран фамилии и номера групп
для всех студентов, имеющих оценки 4 и 5, если таких нет, то вывести
соответствующее сообщение.
#include <iostream>
#include <string.h>

using namespace std;

struct Student{
char sname[20], group[10];
int ses[5];
};

void input(Student*);
void output (Student*);
void sortname(Student*);

int main() {
Student s[10];
int counter=0;
cout<<"Input students and their groups "<<endl;
input(s);
sortname(s);
cout<<endl;
cout<<"Sorted list "<<endl;
output(s);
cout<<endl;
for(int i=0; i<10; i++){
counter=0;
for(int j=0; j<5; j++){
if(s[i].ses[j]>3){
counter++;
}
if(counter==5){
cout<<s[i].sname<<" "<<s[i].group<<endl;
}
}
}
if(counter==0){
cout<<endl;
cout<<"There’s no any students with 4 and 5"<<endl;
}
return 0;
}

void input(Student*s){
for(int i=0; i<10; i++){
cin >> s[i].sname >> s[i].group;
for(int j=0; j<5; j++){
cin>>s[i].ses[j];
}
}
}

void output (Student*s){


for(int i=0; i<10; i++){
cout<<s[i].sname<<" "<<s[i].group<<" ";
for(int j=0; j<5; j++){
cout<<s[i].ses[j]<<" ";
}
cout<<endl;
}
}
void sortname(Student*s){
Student temp;
for(int i=1; i<10; i++){
for(int j=0; j<9; j++){
if(strcmp (s[j].sname, s[j+1].sname)>0){
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}
}
https://csacademy.com/code/lBo9PVKF/

2. Описать структуру с именем Train, содержащую следующие поля:


nazn(название пункта назначения), num(номер поезда), time(время
отправления). Ввести с клавиатуры данные в массив rasp, состоящий из 6
структур типа Train. Записи упорядочить по номерам поездов. Вывести на
экран информацию о поезде, номер которого введен с клавиатуры, если
такого поезда нет, то вывести соответствующее сообщение.
#include <iostream>
#include <string.h>

using namespace std;


struct Train{
char nazn[20], timing[5];
int num;
};

void input(Train*);
void output (Train*);
void sortnum(Train*);

int main() {
Train rasp[6];
int counter=0;
input(rasp);
cout<<"Enter number of train that I will find"<<endl;
sortnum(rasp);
cout<<endl;
cout<<"Sorted list "<<endl;
output(rasp);
cout<<endl;
int finder;
cin>>finder;
for(int i=0; i<6; i++){
if(rasp[i].num==finder){
counter++;
cout<<"Name of train "<<rasp[i].nazn<<endl;
cout<<"Time of going "<<rasp[i].timing<<endl;
}
}
if(counter==0){
cout<<"No such train"<<endl;
}
return 0;
}

void input(Train*rasp){
for(int i=0; i<6; i++){
cin >> rasp[i].nazn >> rasp[i].num >> rasp[i].timing;
}
}

void output (Train*rasp){


for(int i=0; i<6; i++){
cout<<rasp[i].num<<" "<<rasp[i].nazn<<" "<<rasp[i].timing<<endl;
}
}

void sortnum(Train*rasp){
Train temp;
for(int i=1; i<6; i++){
for(int j=0; j<5; j++){
if(rasp[j].num>rasp[j+1].num){
temp=rasp[j];
rasp[j]=rasp[j+1];
rasp[j+1]=temp;
}
}
}
}
https://csacademy.com/code/vTxf0ypD/

3. Описать структуру с именем worker, содержащую следующие


поля: name, pos(должность), year(год поступления на работу). Ввести с
клавиатуры данные в массив tabl, состоящий из 10 структур типа worker.
Записи упорядочить по дате поступления на работу. Вывести на экран
фамилии работников, чей стаж работы превышает значение, введенное с
клавиатуры, если таких нет, то вывести соответствующее сообщение.

#include <iostream>

using namespace std;

struct worker{
char name[20],pos[20] ;
int year;
};

void input(worker*);
void sorter(worker*);
int main(){
worker tabl[10];
input(tabl);
cout<<"Sorted list by year : "<<endl;
sorter(tabl);
cout<<"Enter the gap of years "<<endl;
int gap,counter=0;
cin>>gap;
for(int i=0;i<10;i++){
int stazh;
stazh = 0;
stazh = 2020 - tabl[i].year;
if(stazh>gap){
cout<<tabl[i].name<<endl;
counter++;
}
}
if(counter==0){
cout<<"No workers that have worked so many years :("<<endl;
}
}
void input(worker *tabl){
for(int i=0;i<10;i++){
cin>>tabl[i].name>>tabl[i].pos;
cin>>tabl[i].year;
}
}
void sorter(worker*tabl){
worker temp;
for(int p=0;p<9;p++){
for(int i=p+1;i<10;i++){
if(tabl[p].year>tabl[i].year){
temp = tabl[p];
tabl[p] = tabl[i];
tabl[i] = temp;
}
}
}
for(int i=0;i<10;i++){
cout<<tabl[i].year<<endl;
}
}

https://csacademy.com/code/DBTvDF1R/