PWSZ w KROŚNIE |
||||
Sieciowe Systemy Informatyczne |
||||
Nazwa przedmiotu: Język C |
Nr. spraw. 6 |
|||
Członkowie zespołu:
|
Nr albumu 18931
|
Temat Struktury w języku C
|
Gr. I |
|
|
|
|
Rok: I dzienny |
|
|
|
Ocena: |
Data realizacji: 06.05.2013 |
Data oddania: 20.05.2013 |
Teoria.
Zapoznanie się z zasadami deklaracji i operowania na składowych struktury. Opanowanie umiejętności wykorzystania struktury w programach.
Treść zadania (programu).
Napisz program, w którym:
- zadeklaruj strukturę o nazwie wymiary przechowującą trzy składowe: wysokosc, szerokosc i długosc,
- bezpośrednio w linii deklaracji struktury zadeklaruj dwie zmienne biurko, szafa (typu wymiary),
- bezpośrednio w programie (nie z klawiatury) przypisz wartości składowym struktury wymiary,
- wartości wszystkich składowych struktury wyświetl na ekranie.
Kod programu wraz z opisem.
#include <stdio.h>
struct wymiary
{
int wysokosc;
int szerokosc;
int dlugosc;
} szafa, biurko;
main()
{
szafa.wysokosc=3;
szafa.szerokosc=2;
szafa.dlugosc=1;
printf("Wysokosc X szerokosc X dlugosc\n\n");
printf("Wymiary szafy: %d X %d X %d\n\n", szafa.wysokosc, szafa.szerokosc, szafa.dlugosc);
biurko.wysokosc=1;
biurko.szerokosc=2;
biurko.dlugosc=1;
printf("Wymiary szafy: %d X %d X %d\n\n", biurko.wysokosc, biurko.szerokosc, biurko.dlugosc);
system("pause");
return 0;
}
Napisz program, w którym:
- zadeklaruj strukturę o nazwie Student przechowującą dane o studencie, składającą się z sześciu składowych: nr_albumu, imie, nazwisko, rok_stud, specjalność, srednia_ocen,
- zadeklaruj dwie zmienne student_1, student_2 typu Student.
- przypisz z klawiatury wartość do wszystkich składowych, zmiennych student_1, student_2,
- wyświetl na ekranie dane studentów (student_!, student_2).
#include <stdio.h>
struct student
{
int nr_albumu;
char imie[20];
char nazwisko[20];
int rok_stud;
char specjalnosc[20];
int srednia_ocen;
} student_1, student_2;
main()
{
printf("Podaj nr albumu studenta 1: ");
scanf("%d", &student_1.nr_albumu);
printf("Podaj imie studenta 1: ");
scanf("%s", &student_1.imie);
printf("Podaj nazwisko studenta 1: ");
scanf("%s", &student_1.nazwisko);
printf("Podaj rok studiow studenta 1: ");
scanf("%d", &student_1.rok_stud);
printf("Podaj specjalnosc studenta 1: ");
scanf("%s", &student_1.specjalnosc);
printf("Podaj srednia ocen studenta 1: ");
scanf("%d", &student_1.srednia_ocen);
printf("\n\nPodaj nr albumu studenta 2: ");
scanf("%d", &student_2.nr_albumu);
printf("Podaj imie studenta 2: ");
scanf("%s", &student_2.imie);
printf("Podaj nazwisko studenta 2: ");
scanf("%s", &student_2.nazwisko);
printf("Podaj rok studiow studenta 2: ");
scanf("%d", &student_2.rok_stud);
printf("Podaj specjalnosc studenta 2: ");
scanf("%s", &student_2.specjalnosc);
printf("Podaj srednia ocen studenta 2: ");
scanf("%d", &student_2.srednia_ocen);
system("cls");
printf("\n Dane studenta 1:\n - Nr albumu: %d\n - Imie: %s\n - Nazwisko: %s\n - Rok studiow: %d\n - Specjalnosc: %s\n - Srednia ocen: %d\n\n", student_1.nr_albumu, student_1.imie, student_1.nazwisko, student_1.rok_stud, student_1.specjalnosc, student_1.srednia_ocen);
printf("\n Dane studenta 2:\n - Nr albumu: %d\n - Imie: %s\n - Nazwisko: %s\n - Rok studiow: %d\n - Specjalnosc: %s\n - Srednia ocen: %d\n\n", student_2.nr_albumu, student_2.imie, student_2.nazwisko, student_2.rok_stud, student_2.specjalnosc, student_2.srednia_ocen);
return 0;
}
Zmodyfikuj kod programu z zadania 2 w taki sposób, aby:
- po wprowadzeniu wartości do zmiennej, składowej struktury rok z zakresu innego niż 1-4, program wyświetlił odpowiedni komunikat i poprosił o ponowne wpisanie danych,
- jeśli do zmiennej, składowej struktury srednia_ocen wprowadzimy wartość z poza zakresu 2-6 program wyświetlił odpowiedni komunikat i poprosił o ponowne wpisanie danych.
#include <stdio.h>
struct student
{
int nr_albumu;
char imie[20];
char nazwisko[20];
int rok_stud;
char specjalnosc[20];
int srednia_ocen;
} student_1, student_2;
main()
{
printf("Podaj nr albumu studenta 1: ");
scanf("%d", &student_1.nr_albumu);
printf("Podaj imie studenta 1: ");
scanf("%s", &student_1.imie);
printf("Podaj nazwisko studenta 1: ");
scanf("%s", &student_1.nazwisko);
do
{
printf("Podaj rok studiow studenta 1: ");
scanf("%d", &student_1.rok_stud);
if (student_1.rok_stud < 0 || student_1.rok_stud > 4)
{
printf("Podaj prawidlowy rok studiow (1-4) !!!\n");
}
}
while (student_1.rok_stud < 0 || student_1.rok_stud > 4);
printf("Podaj specjalnosc studenta 1: ");
scanf("%s", &student_1.specjalnosc);
do
{
printf("Podaj srednia ocen studenta 1: ");
scanf("%d", &student_1.srednia_ocen);
if (student_1.srednia_ocen < 2 || student_1.srednia_ocen > 6)
{
printf("Podaj prawidlowa srednia ocen (2-6) !!!\n");
}
}
while (student_1.srednia_ocen < 2 || student_1.srednia_ocen > 6);
printf("\n\nPodaj nr albumu studenta 2: ");
scanf("%d", &student_2.nr_albumu);
printf("Podaj imie studenta 2: ");
scanf("%s", &student_2.imie);
printf("Podaj nazwisko studenta 2: ");
scanf("%s", &student_2.nazwisko);
do
{
printf("Podaj rok studiow studenta 2: ");
scanf("%d", &student_2.rok_stud);
if (student_2.rok_stud < 0 || student_2.rok_stud > 4)
{
printf("Podaj prawidlowy rok studiow (1-4) !!!\n");
}
}
while (student_2.rok_stud < 0 || student_2.rok_stud > 4);
printf("Podaj specjalnosc studenta 2: ");
scanf("%s", &student_2.specjalnosc);
do
{
printf("Podaj srednia ocen studenta 2: ");
scanf("%d", &student_2.srednia_ocen);
if (student_2.srednia_ocen < 2 || student_2.srednia_ocen > 6)
{
printf("Podaj prawidlowa srednia ocen (2-6) !!!\n");
}
}
while (student_2.srednia_ocen < 2 || student_2.srednia_ocen > 6);
system("cls");
printf("\n Dane studenta I:\n - Nr albumu: %d\n - Imie: %s\n - Nazwisko: %s\n - Rok studiow: %d\n - Specjalnosc: %s\n - Srednia ocen: %d\n\n", student_1.nr_albumu, student_1.imie, student_1.nazwisko, student_1.rok_stud, student_1.specjalnosc, student_1.srednia_ocen);
printf("\n Dane studenta II:\n - Nr albumu: %d\n - Imie: %s\n - Nazwisko: %s\n - Rok studiow: %d\n - Specjalnosc: %s\n - Srednia ocen: %d\n\n", student_2.nr_albumu, student_2.imie, student_2.nazwisko, student_2.rok_stud, student_2.specjalnosc, student_2.srednia_ocen);
return 0;
}
Uwagi końcowe i wnioski.
Nauczyliśmy się czym różni się struktura od tablicy, wiemy ze struktura może przechowywać dane różnego typu, wiemy że tworzenie struktur zaczynamy od słowa struct.