TRNG I HC CÔNG NGH THÔNG TI N THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 11. KIU CU TRÚC
THC HÀNH MÔN TIN HC I CNG
Bài 11. KIU CU TRÚC
I. TÓM TT BÀI THC HÀNH
¬ Thc hành cu trúc struct.
¬ Vit đc các chng trình sau :
̇ Chng trình qun lý thông tin hc sinh
H tên
MSSV
Lp
¬ Chú ý:
̇ Lu đ
̇ Cách tip cn đ gii bài toán trên máy tính
II. THAO TÁC TNG BC
2.1.
Chng trình qun lý thông tin hc sinh
H tên
MSSV
Lp
2.1.1.
Mô t bài toán
Nhp 1 danh sách sinh viên, mi sinh viên bao gm 3 thông tin c bn nh
trên
2.1.2.
Thut toán
1. nh ngha struct SINHVI EN
2. Thc hin thao tác nhp thông tin cho 1 sinh viên
3. Thc hin thao tác xut thông tin cho 1 sinh viên
2.1.3.
Vit chng trình
#include
<stdio.h>
#include <conio.h>
//dinh nghia cau truc sinh vien
typedef struct sinhvien
{
1
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 11. KIU CU TRÚC
char ten[25];
char mssv[10];
char lop[5];
}SINHVIEN;
//ham nhap thong tin 1 sinh vien
void NhapSV(SINHVIEN dssv[], int thutu)
{
fflush(stdin);
printf ("Nhap ten sinh vien : ");
gets(dssv[thutu].ten);
fflush(stdin);
printf (
"Nhap ma so sinh vien : ");
gets(dssv[thutu].mssv);
fflush(stdin);
printf (
"Nhap lop cua sinh vien : ");
gets(dssv[thutu].lop);
}
//ham xuat thong tin 1 sinh vien
void XuatSV(SINHVIEN dssv[], int thutu)
{
printf ("Ten sinh vien : ");
puts(dssv[thutu].ten);
printf (
"Ma so sinh vien : ");
puts(dssv[thutu].mssv);
printf (
"Lop cua sinh vien : ");
puts(dssv[thutu].lop);
}
void main()
{
SINHVIEN dssv[10];
int n = 0;
clrscr();
printf ("Nhap so luong sinh vien : ");
scanf (
"%d", &n);
for ( int i = 0; i < n; i++ )
{
printf (
"Nhap thong tin cho sinh vien thu %d\n",
2
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 11. KIU CU TRÚC
i + 1);
NhapSV(dssv, i);
}
for ( i = 0; i < n; i++ )
{
printf ("Thong tin ve sinh vien thu %d\n", i + 1);
XuatSV(dssv, i);
}
getch();
}
2.1.4.
Dch chng trình
2.2. Chng trình kim tra mt sinh viên có trong danh sách va nhp
hay ko ?
2.2.1.
Mô t bài toán
Gi s đã có danh sách sinh viên đã nhp bài 2.1
Nhp tên 1 sinh viên
Kim tra sinh viên có trong danh sách hay không
2.2.2.
Thut toán
B1: Nhp danh sách
B2: Nhp tên cn tìm
B3: Duyt ln lt các sinh viên trong danh sách
Kim tra da theo tên cn tìm
3
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 11. KIU CU TRÚC
2.2.3.
Vit chng trình
#include <stdio.h>
#include <conio.h>
#include <string.h>
typedef struct sinhvien
{
char ten[25];
char mssv[10];
char lop[5];
}SINHVIEN;
void NhapSV(SINHVIEN dssv[], int thutu)
{
fflush(stdin);
printf (
"Nhap ten sinh vien : ");
gets(dssv[thutu].ten);
fflush(stdin);
printf ("Nhap ma so sinh vien : ");
gets(dssv[thutu].mssv);
fflush(stdin);
printf (
"Nhap lop cua sinh vien : ");
gets(dssv[thutu].lop);
}
void XuatSV(SINHVIEN dssv[], int thutu)
{
printf (
"Ten sinh vien : ");
puts(dssv[thutu].ten);
printf (
"Ma so sinh vien : ");
puts(dssv[thutu].mssv);
printf (
"Lop cua sinh vien : ");
puts(dssv[thutu].lop);
}
int TimSVTheoTen(SINHVIEN dssv[], int soluongsv, char ten[])
{
int vitritimthay = -1;
for ( int i = 0; i < soluongsv; i++ )
{
4
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 11. KIU CU TRÚC
if ( strcmp(dssv[i].ten, ten) == 0)
vitritimthay = i;
}
return vitritimthay;
}
void main()
{
SINHVIEN dssv[10];
int n = 0;
char ten[25];
clrscr();
printf (
"Nhap so luong sinh vien : ");
scanf (
"%d", &n);
for ( int i = 0; i < n; i++ )
{
printf (
"Nhap thong tin cho sinh vien thu %d\n",
i + 1);
NhapSV(dssv, i);
}
printf (
"Ten sinh vien muon tim : ");
fflush(stdin);
gets(ten);
int vitritimthay = TimSVTheoTen(dssv, n, ten);
if ( vitritimthay == -1)
printf (
"Khong co sinh vien ten %s trong danh
sach\n"
, ten);
else
{
printf (
"Thong tin ve sinh vien ten %s\n", ten);
XuatSV(dssv, vitritimthay);
}
getch();
}
2.2.4.
Dch chng trình
5
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 11. KIU CU TRÚC
III. BÀI TP LÀM TI LP
̇ Nhp danh sách sinh viên.
̇ Xut danh sách sinh viên.
̇ Tìm sinh viên theo tên
IV. BÀI TP V NHÀ
̇ Tìm sinh viên theo các thuc tính MSSV, Lp, hay tt c các thuc tính
V. CÁC CÂU HI THNG GP
̇ …
6