
Добавил:
BlackCat
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:2 семестр ФИБС / Информатика / 1 практика / FIO_PR1_2_1_17VAR
.cpp#include <iostream>
#include <string.h>
#include <clocale>
#include <malloc.h>
#include <cstdio>
using namespace std;
struct data
{
char surn[25]; // Фамилия
char name[25]; // Имя
char Mname[25]; //Отчество
char sex[10]; //пол
char nat[25];// национальность
int height;//Рост
int weight;//вес
int dbirth;//ДеньРожденья - Дата
int numberm;//ТелефонМ
int index;//Индекс
char homel[25];//Страна
char obl[25];//Область
char area[25];//Район
char sity[25];//Город
char street[25];//Улица
int build;//Дом
int kvb;//Квартира
int school;//Школа
char obj[25];//класс
};
void scan_inform(struct data *tomas,int n)
{
for (int i=0; i<n; i++)
{
printf("В какой школе учится?\t");
scanf("%d",&tomas[i].school);
printf("В каком классе учится?\t");
scanf("%s",tomas[i].obj);
printf("Какое имя?\t");
scanf("%s",tomas[i].name);
printf("Какая фамилия?\t");
scanf("%s",tomas[i].surn);
printf("Какое отчество?\t");
scanf("%s",tomas[i].Mname);
printf("Его пол?\t");
scanf("%s",tomas[i].sex);
printf("Его национальность?\t");
scanf("%s",tomas[i].nat);
printf("Его рост?\t");
scanf("%d",&tomas[i].height);
printf("Его вес?\t");
scanf("%d",&tomas[i].weight);
printf("Его мобильный телефон?\t");
scanf("%d",&tomas[i].numberm);
printf("Его почтовый индекс?\t");
scanf("%d",&tomas[i].index);
printf("Число дня,месяца и года его рождения, написанное без пробелов?\t");
scanf("%d",&tomas[i].dbirth);
printf("Номер его квартиры?\t");
scanf("%d",&tomas[i].kvb);
printf("Номер его дома?\t");
scanf("%d",&tomas[i].build);
printf("В каком стране живет?\t");
scanf("%s",tomas[i].homel);
printf("В каком городе живет?\t");
scanf("%s",tomas[i].sity);
printf("В какой области живет?\t");
scanf("%s",tomas[i].obl);
printf("В каком районе живет?\t");
scanf("%s",tomas[i].area);
printf("На какой улице живет?\t");
scanf("%s",tomas[i].street);
}
}
void show_tabl(struct data *tomas,int n)
{
FILE *tabl =fopen("Таблицаучеников.txt","w");
fprintf(tabl,"|*****|******|********|*******|********|**********|**************|****|*****|****************|***************|*************|**************|**********|******|*****|*******|*****|*****|\n");
fprintf(tabl,"|Школа|Класс |Имя |Фамилия|Отчество|Пол |Национальность|Рост|Вес |МобильныйТелефон|Почтовый индекс|Дата рожденья|Номер квартиры|Номер дома|Страна|Город|Область|Район|Улица|\n");
for (int i=0; i<n;i++)
{
fprintf(tabl,"|%-5d|%-6s|%-8s|%-7s|%-8s|%-10s|%-14s|%-4d|%-5d|%-16d|%-15d|%-13d|%-14d|%-10d|%-6s|%-5s|%-7s|%-5s|%-5s|\n",tomas[i].school,tomas[i].obj,tomas[i].name,tomas[i].surn,tomas[i].Mname,tomas[i].sex,tomas[i].nat,tomas[i].height,tomas[i].weight,tomas[i].numberm,tomas[i].index,tomas[i].dbirth,tomas[i].kvb,tomas[i].build,tomas[i].homel,tomas[i].sity,tomas[i].obl,tomas[i].area,tomas[i].street);
}
fclose(tabl);
}
void take_aim1(struct data *tomas,int n) {
int per;
printf("Список учеников какой школы вывести? Введите номер школы:\t");
scanf("%d",&per);
printf("|*****|******|********|*******|********|**********|**************|****|*****|****************|***************|*************|**************|**********|******|*****|*******|*****|*****|\n");
printf("|Школа|Класс |Имя |Фамилия|Отчество|Пол |Национальность|Рост|Вес |МобильныйТелефон|Почтовый индекс|Дата рожденья|Номер квартиры|Номер дома|Страна|Город|Область|Район|Улица|\n");
for (int i=0; i<n; i++)
{
if ((tomas[i].school)==(per))
{
printf("|%-5d|%-6s|%-8s|%-7s|%-8s|%-10s|%-14s|%-4d|%-5d|%-16d|%-15d|%-13d|%-14d|%-10d|%-6s|%-5s|%-7s|%-5s|%-5s|\n",tomas[i].school,tomas[i].obj,tomas[i].name,tomas[i].surn,tomas[i].Mname,tomas[i].sex,tomas[i].nat,tomas[i].height,tomas[i].weight,tomas[i].numberm,tomas[i].index,tomas[i].dbirth,tomas[i].kvb,tomas[i].build,tomas[i].homel,tomas[i].sity,tomas[i].obl,tomas[i].area,tomas[i].street);
}
}
}
void take_aim2(struct data *tomas,int n)
{
int k=0;
printf("Ученики с одинаковой фамилией\n");
printf("|*****|******|********|*******|********|**********|**************|****|*****|****************|***************|*************|**************|**********|******|*****|*******|*****|*****|\n");
printf("|Школа|Класс |Имя |Фамилия|Отчество|Пол |Национальность|Рост|Вес |МобильныйТелефон|Почтовый индекс|Дата рожденья|Номер квартиры|Номер дома|Страна|Город|Область|Район|Улица|\n");
for (int i=0;i<n;i++)
{
for (int t=0;t<n;t++)
{
if ((strcmp((tomas[i].surn),(tomas[t].surn))==0)&&((i)!=(t)))
{
printf("|%-5d|%-6s|%-8s|%-7s|%-8s|%-10s|%-14s|%-4d|%-5d|%-16d|%-15d|%-13d|%-14d|%-10d|%-6s|%-5s|%-7s|%-5s|%-5s|\n",tomas[t].school,tomas[t].obj,tomas[t].name,tomas[t].surn,tomas[t].Mname,tomas[t].sex,tomas[t].nat,tomas[t].height,tomas[t].weight,tomas[t].numberm,tomas[t].index,tomas[t].dbirth,tomas[t].kvb,tomas[t].build,tomas[t].homel,tomas[t].sity,tomas[t].obl,tomas[t].area,tomas[t].street);
k=k+1;
}
}
}
if (0>=k)
{
printf("Людей с одинаковой фамилией нет!\n");
}
}
void take_aim3(struct data *tomas,int n)
{
int max=1;
for (int i=0;i<n;i++)
{
int v=0;
for(int t=0;t<n;t++)
{
if ((strcmp((tomas[i].obj),(tomas[t].obj))==0))
{
v=v+1;
}
}
if (max<v)
{
max=v;
}
}
printf("Максимальное число учеников в классе%d\n", max);
}
int main()
{
int n;
setlocale(LC_CTYPE,"rus");
printf("Введите количество учеников\n");
scanf("%d",&n);
struct data *tomas;
tomas = (struct data*)malloc(n*sizeof(struct data));
scan_inform(tomas,n);
take_aim1(tomas,n);
take_aim2(tomas,n);
take_aim3(tomas,n);
show_tabl(tomas,n);
}
Соседние файлы в папке 1 практика