Вывести данные о студентах, которые учатся в одном и том же институте, и в одной группе - C (СИ)
Формулировка задачи:
Информация передается в программу через файл. Результат работы программы сохраняется в выходном файле, а также выводится на экран.
Определить переменную "студент", содержащую следующие поля: имя, фамилия, отчество студента, название института, номер группы. Данные считать из текстового файла. Вывести данные о студентах, которые учатся в одном и том же институте, и в одной группе.
Входные данные:
Липкин Андрей Сергеевич МГУ 160150
Малинова Алиса Степановна УрГэу 320015
Кириллов Михаил Игоревич МГУ 160150
Новикова Ольга Андреевна МГУ 160250
Решение задачи: «Вывести данные о студентах, которые учатся в одном и том же институте, и в одной группе»
textual
Листинг программы
#include "stdafx.h" #include <stdio.h> #include <locale.h> #include <string.h> #include <windows.h> /*чтобы в консоли выводились русские символы*/ #define size 100 typedef struct { char famly[20]; char fName[20]; char sName[20]; char univer[20]; char group[20]; } Student; void find(FILE *fo, Student *stud, char *gr, char *inst, int n) { int i, j; for (i = 0; i < n; i++) { j = 0; while (j < n) { if (i == j) { j++; } if ((strcmp(stud[i].group, stud[j].group) == 0) && (strcmp(stud[i].univer, stud[j].univer) == 0)) { printf("%s %s %s %s %s\n", stud[i].famly, stud[i].fName, stud[i].sName, stud[i].univer, stud[i].group); printf("%s %s %s %s %s\n", stud[j].famly, stud[j].fName, stud[j].sName, stud[j].univer, stud[j].group); j++; } else { j++; } } } } int main() { SetConsoleOutputCP(1251); /*устанавливает кодировку ВЫВОДА на консоль*/ SetConsoleCP(1251); /*устанавливает кодировку ВВОДА из консоли И ИЗ РЕДАКТОРА КОДА*/ setlocale(LC_ALL, "Russian"); int n = 0; int i,j; char inst[20]; /*название института для поиска*/ char gr[20]; /*номер группы для поиска*/ char filename[50]; /*имя файла*/ //char *gr, *inst; FILE *fp; /*исходный файл*/ FILE *fo; Student stud[size]; printf("Программа предназначена для нахождения студентов, учащихся в одном институте и в одной группе\n"); printf("Введите имя исходного файла/ путь к файлу\n"); /* scanf("%s", filename); fp = fopen(filename, "r"); */ fp = fopen("C:\\Users\\Ekaterina\\Desktop\\fin3.txt", "r"); if (fp == NULL) { perror("Error opening file"); return 0; } else { printf("Файл открыт для чтения\n"); printf("Информация, считанная из файла\n\n"); for (i = 0; !feof(fp); i++) { fscanf(fp, "%s %s %s %s %s\n", stud[i].famly, stud[i].fName, stud[i].sName, stud[i].univer, stud[i].group); printf("%s %s %s %s %s\n", stud[i].famly, stud[i].fName, stud[i].sName, stud[i].univer, stud[i].group); n++; } } printf("\n"); printf("Введите имя результирующего файла/ путь к файлу\n"); /* scanf("%s", filename); fo = fopen(filename, "w+");*/ fo = fopen("C:\\Users\\Ekaterina\\Desktop\\fon.txt", "w+"); if (fo == NULL) { perror("Error opening file"); return 0; } else { printf("Файл открыт для записи\n"); printf("Информация, записанная в файл\n\n"); find(fo, stud, gr, inst, n); } system("pause"); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д