BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.. Bài 1: Viết chương trình quản lý sinh viên và cán bộ với yêu cầu:a.. In danh sách sinh viên b.. In danh sách cán bộ c.. In danh
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.
HCM
BÀI TIỂU LUẬN CUỐI KỲ
Trang 2LẬP TRÌNH C
Trang 3Bài 1: Viết chương trình quản lý sinh viên và cán bộ với yêu cầu:
a In danh sách sinh viên
b In danh sách cán bộ
c In danh sách sinh viên khen thưởng
d In danh sách cán bộ khen thưởng
Bài làm:
CHƯƠNG TRÌNH
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 50
int main()
{
struct sinhvien
{
int MSSV, Y;
char ht[30], Q[30];
double TB;
};
struct canbo
{
int MSCB, Y, S;
char ht[30], XEPLOAI[10], M[30];
};
sinhvien SV[MAX];
canbo CB[MAX];
Trang 4char x[30];
int i, n, m, G;
char P[30];
printf("Nhap lenh:");
gets(P);
while (strcmp(P,"ENDALL")!=0) {
if (strcmp(P,"SINHVIEN")==0)
{ //Nhapthongtinsinhvien
{
printf("Nhap vao so sinh vien: "); gets(x);
n = atof(x);
for(i = 1; i <= n; i++) {
printf("Sinh vien thu %d\n",i); printf("MSSV: ");
gets(x);
SV[i].MSSV = atoi(x);
printf("Ho ten: "); fflush(stdin); gets(SV[i].ht);
printf("Que quan: "); fflush(stdin); gets(SV[i].Q);
printf("Nam sinh: ");
gets(x);
Trang 5SV[i].Y= atoi(x);
printf("Diem trung binh: ");
gets(x);
SV[i].TB= atof(x);
}
}
remove(P);
printf("Nhap lenh:");
gets(P);
while (strcmp(P,"END")!=0)
{
//Sua thong tin sinh vien
if (strcmp(P,"SUATHONGTIN")==0)
{
printf("Sinh vien thu:");
scanf("%d", &i);
if (i<=n) {
remove(x);
printf("MSSV: "); fflush(stdin); gets(x);
SV[i].MSSV = atof(x);
printf("Ho ten: "); fflush(stdin); gets(SV[i].ht);
printf("Que quan: ");
gets(SV[i].Q);
printf("Nam sinh: ");
gets(x);
SV[i].Y= atoi(x);
Trang 6printf("Diem trung binh: ");
gets(x);
SV[i].TB= atof(x);
} else printf("Khong co sinh vien thu %d\n",i);
} //In danh sach sinh vien
else if (strcmp(P,"INDANHSACH")==0)
{ printf("MSSV Ho Ten Que quan Nam sinh Diem trung binh\n");
for (i=1;i<=n; i++) printf("%d %s %s
%d %0.1f\n", SV[i].MSSV, SV[i].ht, SV[i].Q, SV[i].Y, SV[i].TB);
} //In danh sach sinh vien khen thuong
else if (strcmp(P,"DANHSACHKHENTHUONG")==0)
{ G=0;
for (i=1;i<=n; i++)
if ((SV[i].TB>8) and (strcmp(SV[i].Q,"HCM")==0) and (SV[i].Y>1980)) G=G+1;
if (G!=0) {
printf("MSSV Ho Ten Que quan Nam sinh Diem trung binh\n");
for (i=1;i<=n; i++)
if ((SV[i].TB>8) and (strcmp(SV[i].Q,"HCM")==0) and (SV[i].Y>1980))
Trang 7printf("%d %s %s
%d %0.1f\n", SV[i].MSSV, SV[i].ht, SV[i].Q, SV[i].Y, SV[i].TB);
} else printf("Khong co sinh vien nao duoc khen thuong!\n");
} else printf("Lenh sai Vui long nhap lai!\n");
remove(P);
printf("Nhap lenh:");
gets(P);
} } else if (strcmp(P,"CANBO")==0)
{ //Nhapthongtincanbo printf("Nhap vao so can bo: ");
gets(x);
m = atof(x);
for(i = 1; i <= m; i++) {
printf("Can bo thu %d\n",i);
printf("MSCB: ");
gets(x);
CB[i].MSCB = atoi(x);
printf("Ho ten: "); fflush(stdin);
gets(CB[i].ht);
printf("Nam sinh: ");
gets(x);
Trang 8CB[i].Y= atoi(x);
printf("Bo mon: ");
gets(CB[i].M);
printf("So bai bao cao: "); gets(x);
CB[i].S= atoi(x);
printf("Xep loai bo mon: "); gets(CB[i].XEPLOAI);
} remove(P);
printf("Nhaplenh:");
gets(P);
while (strcmp(P,"END")!=0)
{
//Sua thong tin can bo
if (strcmp(P,"SUATHONGTIN")==0) {
printf("Can bo thu:");
scanf("%d", &i);
if (i<=m) {
remove(x);
printf("MSCB: "); fflush(stdin); gets(x);
CB[i].MSCB = atof(x);
printf("Ho ten: "); fflush(stdin); gets(CB[i].ht);
Trang 9printf("Nam sinh: ");
gets(x);
CB[i].Y= atoi(x);
printf("Bo mon: ");
gets(CB[i].M);
printf("So bai bao cao: ");
gets(x);
CB[i].S= atoi(x);
printf("Xep loai bo mon: ");
gets(CB[i].XEPLOAI);
} else printf("Khong co can bo thu %d\n",i);
} //In danh sach can bo else if (strcmp(P,"INDANHSACH")==0)
{ printf("MSCB Ho Ten Nam sinh Bo mom So bai bao Xep loai bo mom\n");
for (i=1;i<=m; i++) printf("%d %s %d %s
%d %s\n", CB[i].MSCB, CB[i].ht, CB[i].Y, CB[i].M, CB[i].S, CB[i].XEPLOAI);
} //In danh sach sinh vien khen thuong
else if (strcmp(P,"DANHSACHKHENTHUONG")==0)
{ G=0;
for (i=1;i<=m; i++)
Trang 10if ((CB[i].S>0) and (strcmp(CB[i].XEPLOAI,"A")==0) and (CB[i].Y>1975)) G=G+1;
if (G!=0) {
printf("MSCB Ho Ten Nam sinh Bo mom So bai bao Xep loai bo mom\n");
for (i=1;i<=m; i++)
if ((CB[i].S>0) and (strcmp(CB[i].XEPLOAI,"A")==0) and (CB[i].Y>1975))
printf("%d %s %d %s
%d %s\n", CB[i].MSCB, CB[i].ht, CB[i].Y, CB[i].M, CB[i].S, CB[i].XEPLOAI);
} else printf("Khong co sinh vien nao duoc khen thuong!\n");
} else printf("Lenh sai Vui long nhap lai!\n");
remove(P);
printf("Nhap lenh:");
gets(P);
} }
remove(P);
printf("Nhap lenh:");
gets(P);
}
getch();
}
Trang 11SƠ ĐỒ LƯU GIẢNG
BẮT ĐẦU
ENDALL
SAI
ĐÚNG
NHẬP LỆNH
KẾT THÚC
int MSSV, Y;
double dtb;
char HT[30], Q[30];
int MSCB, Y, S;
char HT[30], XEPLOAI[30], M[30];
SUATHONGTIN SUATHONGTIN
SAI SAI
END NHẬP LỆNH
NHẬP LỆNH END
DANHSACH KHENTHUONG
KHENTHUONG DANHSACH
(CB[i].S>0 (strcmp(CB[i].XEPLOAI,"A")==0) (CB[i].Y>1975)
SV[i].TB>8
strcmp(SV[i].Q,"HCM")==0
SV[i].Y>1980
IN DANH SÁCH
IN DANH SÁCH
Trang 12KẾT QUẢ CHƯƠNG TRÌNH
Trang 13Bài 2: Xây dựng các lớp cho bài 1 Vẽ sơ đồ kế thừa
Xây dựng 4 lớp:
Nguoi: ho ten, ma so, nam sinh, que quan
2 lớp sinh viên và giảng viên kế thừa lớp người: SV: dtb,
GV:baibao
Lop CB kế thừa lớp GV: CB: Loại lao động bộ môn
HT, MS, YEAR, QUE MS, DTB MS, BAIBAO, XEPLOAI MS, BOMON
void nhapnguoi ()
void xuatnguoi
(MS)
char HT, QUE;
int MS, YEAR;
void nhapSV() void xuatSV(MS) int MS;
double DTB;
void nhapCB() void xuatCB(MS) int MS, BAOBAO;
char XEPLOAI;
void nhapLOPCB() void xuatLOPCB(MS) int MS;
char BOMON;
NGUOI
LOP CB
LOP CB
MS, BOMON
void nhapLOPCB()
void
xuatLOPCB(MS)
int MS;
char BOMON;
NGUOI
HT, MS, YEAR, QUE
void nhapnguoi () void xuatnguoi (MS)
char HT, QUE;
int MS, YEAR;
SV
MS, DTB void nhapSV() void xuatSV(MS) int MS;
double DTB;
CB
MS, BAIBAO,
XEPLOAI
void nhapCB()
void xuatCB(MS)
int MS, BAOBAO;
char XEPLOAI;