BỘ 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ênb In danh sách cán bộ
c In danh sách sinh viên khen thưởngd 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 50int 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)
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: ");
Trang 5SV[i].Y= atoi(x);
printf("Diem trung binh: ");gets(x);
SV[i].TB= atof(x); }
printf("Nhap lenh:");gets(P);
while (strcmp(P,"END")!=0){
//Sua thong tin sinh vienif (strcmp(P,"SUATHONGTIN")==0)
printf("Sinh vien thu:");scanf("%d", &i);if (i<=n)
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
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){
Trang 7else if (strcmp(P,"CANBO")==0){
//Nhapthongtincanboprintf("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: ");
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);
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)
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].M, CB[i].S, CB[i].XEPLOAI);}
//In danh sach sinh vien khen thuong
else if (strcmp(P,"DANHSACHKHENTHUONG")==0)
for (i=1;i<=m; i++)
Trang 10CB[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);
printf("Nhap lenh:");gets(P);
}getch();}
Trang 11SƠ ĐỒ LƯU GIẢNG
char HT[30], Q[30];
int MSCB, Y, S;
char HT[30], XEPLOAI[30], M[30];
SUATHONGTIN SUATHONGTINSAI SAI
END NHẬP LỆNH
NHẬP LỆNH END
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ừaXâ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, QUEMS, DTB MS, BAIBAO, XEPLOAI MS, BOMONvoid 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;
xuatLOPCB(MS)int MS;
char BOMON;
HT, MS, YEAR, QUE
void nhapnguoi ()void xuatnguoi (MS)
char HT, QUE;int MS, YEAR;
MS, DTBvoid nhapSV()void xuatSV(MS)int MS;
double DTB;
MS, BAIBAO, XEPLOAIvoid nhapCB()void xuatCB(MS)int MS, BAOBAO;char XEPLOAI;