đồ án môn học lập trình căn bản điện tử thiết kế hiệu ứng quảng cáo bằng Devc. Bao gồm chương trình lớn và 16 hiệu ứng quảng cáo chạy bằng Devc. Ngôn ngữ lập trình C. C là một ngôn ngữ lập trình được ưa chuộng và sử dụng rộng rãi, đặc biệt trong các lĩnh vực về khoa học kỹ thuật. Đây là ngôn ngữ phù hợp với người không có nhiều kinh nghiệm về lập trình. Ngoài điện tử, ngôn ngữ C còn được sử dụng trong các lĩnh vực như cơ khí, cơ học chất lỏng, truyền nhiệt, vật lý, hóa học,…
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CẦN THƠ TRƯỜNG BÁCH KHOA KHOA KỸ THUẬT ĐIỆN TỬ BÁO CÁO ĐỒ ÁN LẬP TRÌNH CĂN BẢN ĐIỆN TỬ THIẾT KẾ HIỆU ỨNG QUẢNG CÁO CÁN BỘ HƯỚNG DẪN NHÓM SV THỰC HIỆN: N07 Cần Thơ, Ngày Tháng Năm MỤC LỤC I Giới thiệu đề tài 1.Mục tiêu thiết kế 2.Yêu cầu thiết kế Báo cáo Lập Trình Căn Bản 3.Giới hạn thiết kế 4.Hướng giải II.Nội dung Giải thuật * Giải thuật ngôn ngữ tự nhiên * Giải thuật lưu đồ Chương trình chi tiết Kết đạt * Kết * Nhận xét III.Tài Liệu Tham Khảo IV.Phụ lục 1.Quá trình thực đề tài 2.Bảng phân chia công việc Báo cáo Lập Trình Căn Bản I Giới Thiệu Đề Tài Mục tiêu thiết kế - Viết chương trình mơ hiệu ứng quảng cáo với 16 hiệu ứng chương trình Dev-C++ ngơn ngữ C u cầu thiết kế - Gồm công việc: + In hình số lần thực chương trình + Tạo menu điều khiển chương trình + Nhập từ bàn phím nội dung cần quảng cáo + Chọn hiệu ứng từ đến 16 để thực + Hiển thị thông báo chọn không hiệu ứng từ đến 16 cho phép chọn lại + Nhấn Enter kết thúc hiệu ứng quảng cáo + Nhập từ bàn phím số để sửa lại nội dung quảng cáo + Nhấn Esc để kết thúc chương trình Giới hạn thiết kế - Một tuần lên ý tưởng thực - Số lượng thành viên thực hiện: người Hướng giải - Các thành viên ôn lại kiến thức học lớp - Tham khảo tài liệu từ internet, giáo trình, - Lên kế hoạch, phân công việc cụ thể II Nội Dung Giải thuật * Giải thuật ngôn ngữ tự nhiên * Giải thuật lưu đồ Chương trình chi tiết #include #include #include #include #include #include typedef struct { int x, y; Báo cáo Lập Trình Căn Bản } toado;//truc tung y,truc hoanh x typedef struct { char s[99]; toado td;// ngang , doc int tt, lan; int solannhap; } chu; // tao kieu cau truc cho chu s la noi dung cua chu void TextColor(int x) { HANDLE h= GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(h,x); } void gotoxy(int x,int y) { HANDLE hConsoleOutput; COORD Cursor_an_Pos = { x,y}; hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hConsoleOutput , Cursor_an_Pos); } void ff(chu * a) { char m[20]; if (a -> tt != 0) strcpy(m, " "); else strcpy(m, " "); TextColor(7); gotoxy(0, 0); printf("1 so lan da nhap: %d lan\n",a->solannhap); printf("2 noi dung quan cao: %s\n", a -> s); printf("3 nhap hieu ung tu den 16 \n%schon hieu ung: \n4 nhap neu muon sua lai noi dung(quay lai 2)\n5 nhan Esc de thoat\n6 nhan Enter de chon lai (quay lai 3)", m,a->lan); for (int i = 0; i < 120; i++); printf("\ntruong DHCT nhom7"); } void f(chu*a){ system("cls"); if (kbhit()) // phat hien co phim nhap { Báo cáo Lập Trình Căn Bản char key = getch(); // luu phim vao key ma khong dung chuong trinh if (key == 27) // 27 la ma ASCII { free(a); exit(0); } else if (key == 13) // 13 la ma ASCII { a -> lan = 0; a -> tt = 0; // xoa hieu ung cu } } } void lan1(chu * a) { while (1) { f(a); if (a -> tt == 0) break; else { int n = strlen(a -> s); int k = 0; // hien thi chuoi xeo xuong int t = 0; ff(a); //an tro printf(" "); for (int u = 0; u < 2; u++) { for (int i = 10; i < n + 10; i++) { Sleep(50);// toc hien TextColor(5); if (t == 0) { gotoxy(i + 50, i); //toa chu printf("%c", a -> s[k]); k++; } } k = 0; }// hien tro printf(" "); } } } void lan2(chu * a) { // hien thi chuoi xeo len Báo cáo Lập Trình Căn Bản while (1) { f(a); if (a -> tt == 0) break; else { int n = strlen(a -> s); int k = 0; int t = 0; ff(a); //an tro printf(" "); TextColor(9); for (int u = 0; u < 2; u++) { for (int i = 10; i < n + 10; i++) { Sleep(100); if (t == 0) { gotoxy(i+50,n+1-(i-20)); //vi tri in man hinh printf("%c",a->s[k]); k++; } } k = 0; }// hien tro printf(" "); } } } void lan3(chu * a) { // chu xuat hien tu trai qua phai while (1) { f(a); if (a -> tt == 0) break; else { int n = strlen(a -> s); ff(a); //an tro printf(" "); TextColor(11); for (int i = 0; i < n; i++) { gotoxy(60 + i,15); printf("%c", a -> s[i]); Sleep(50);//toc Báo cáo Lập Trình Căn Bản } // chu xuat hien tu trai qua phai }// hien tro printf(" "); } } void lan4(chu * a) { while (1) { f(a); if (a -> tt == 0) break; else { ff(a); int n = strlen(a -> s); char bokytu[] = " "; //an tro printf(" "); TextColor(14); for (int i = 0; i < n; i++) { Sleep(40); srand(time(NULL)); for (int k = 0; k < n; k++); gotoxy(50 + i, 20); if (i == n - 1) { ff(a); ff(a); gotoxy(50,20); printf("%s", a -> s); // hien thi toan bo chuoi Sleep(300); } }// hien tro printf(" "); } } } void lan5(chu * a) { //hieu ung xeo qua xeo lai while (1) { f(a); if (a -> tt == 0) break; // tt=0 nghia la noi dung da bi loai bo hieu ung, quay ve buoc nhap hieu ung else { int n = strlen(a -> s); ff(a); char c[51]; Báo cáo Lập Trình Căn Bản int k = 0; printf(" "); for (int i = 0; i s[i] == ' ' || a -> s[i] == 0) { ff(a); ff(a); strncpy(c, a -> s + k, i - k); c[i - k] = NULL; k = i + 1; gotoxy(50, 17); printf("%s", c); Sleep(300); } } system("cls"); ff(a); gotoxy(50 - (n / 2), 16); printf("%s", a -> s); // hien thi toan bo chuoi Sleep(300); } }// hien tro printf(" "); } void lan6(chu * a) { // trai chay sang phai while (1) { f(a); if (a -> tt == 0) break; else { char b[50]; int n = strlen(a -> s); //an tro printf(" "); for (int k = 0; k s); gotoxy(1 + k, 16); printf("%s", b); if (k % == 0); else{ printf("%c",' '); Báo cáo Lập Trình Căn Bản }Sleep(5); } }// hien tro printf(" "); }} void lan7(chu * a) { // hieu ung ket hop while (1) { f(a); if (a -> tt == 0) break; else{ int n=strlen(a->s); ff(a); //an tro printf(" "); TextColor(13); for (int i=0;is[i]); gotoxy(50-(n/2)+i,13);printf("% c",a->s[i]); gotoxy(i + 50,i+2);printf("%c",a->s[i]); // xeo xuong gotoxy(50,i+8);printf("%c",a->s[i]); //thang gotoxy(i+50,n+1-(i-9)); printf("%c",a->s[i]);//xeo xuong Sleep(100); } } } // hien tro printf(" "); } void lan8(chu * a) { // hieu ung x while (1) { f(a); if (a -> tt == 0) break; else { int r=0; int n=strlen(a->s); ff(a); //an tro printf(" "); for( int i=0;is); for (int j = 0; j < n; j++) { if (j % == 0) tam1[j] = ' '; else tam2[j]=' '; } for (int u = 0; u < 10; u++) { ff(a); gotoxy(40-u+3 , 15 - u); printf("%s", tam1); gotoxy(40-u-3 , 15 - u); printf("%s", tam2); gotoxy(40-u+3 , 15 + u); printf("%s", tam1); gotoxy(40-u-3 , 15 + u); printf("%s", tam2); gotoxy(40+u+3 , 15 - u); printf("%s", tam1); gotoxy(40+u+3 , 15 - u); printf("%s", tam2); gotoxy(40+u-3 , 15 + u); printf("%s", tam1); gotoxy(40+u-3 , 15 + u); printf("%s", tam2); Sleep(100); } }// hien tro printf(" "); } } void lan9(chu * a) { while (1) { f(a); if (a -> tt == 0) break; Báo cáo Lập Trình Căn Bản else { ff(a); int n = strlen(a -> s); //an tro printf(" "); TextColor(13); for (int i = 0; i s[i]); gotoxy(50 + n - i, 16); printf("%c", a -> s[n - i]); Sleep(100); } // xuat hien doi xung int c = ' '; for (int j = 0; j tt == 0) break; else { int n = strlen(a -> s); //an tro char a1[60], a2[60]; strcpy(a1, a -> s); strcpy(a2, a -> s); for (int u = 0; u < 10; u++) { ff(a); gotoxy(50, 12+u); printf("%s", a1); gotoxy(50, 13+u); Báo cáo Lập Trình Căn Bản printf("%s", a2); Sleep(100); } } } printf(""); } void lan11(chu * a) { while (1) { f(a); if (a -> tt == 0) break; else{ int n=strlen(a->s); ff(a); //an tro printf(" "); TextColor(3); for (int i=0;is[i]); gotoxy(54-(n/2)+i,15);printf("%c",a->s[i]); gotoxy(54-(n/2)+i,16);printf("%c",a->s[i]); Sleep(100); } char c[]=" "; gotoxy(54-(n/2),14);printf("%s",c); Sleep(400); gotoxy(54-(n/2),15);printf("%s",c); Sleep(500); gotoxy(54-(n/2),16);printf("%s",c); Sleep(600); } } printf("\33[?25h"); } void lan12(chu * a) { //hieu ung chu xuat hien lan luot while (1) { f(a); if (a -> tt == 0) break; else { int n = strlen(a -> s); ff(a); //an tro Báo cáo Lập Trình Căn Bản printf(" "); TextColor(14); for (int i = 0; i < n; i++) { gotoxy(50 + i, 20); printf("%c", a -> s[i]); Sleep(100); } // chu xuat hien tu trai qua phai char f1[50]; strcpy(f1, a -> s); for (int k = 0; k < n; k++) { gotoxy(50 + k, 20); printf("%s", f1); Sleep(100); system("cls"); // chu bien mat ff(a); } } } printf(" "); } void lan13(chu * a) { while (1) { f(a); if (a -> tt == 0) break; else { ff(a); int n = strlen(a -> s); //an tro printf(""); TextColor(12); for (int i = 0; i s[n - i]); Sleep(100); } int c = ' '; for (int j = 0; j tt == 0) break; else { int n = strlen(a -> s); int k = 0; int t = 0; ff(a); //an tro printf(""); TextColor(10); for (int u = 0; u < 2; u++) { for (int i = 10; i < n + 10; i++) { Sleep(200); if (t == 0) { gotoxy(i + 8,i); printf("%c", a -> s[k]);// hien thi chuoi xeo xuong k++; } else { gotoxy(i+n+9,n+10-(i-8)); ; printf("%c",a->s[k]);// hien thi chuoi xeo len k++; } } k = 0; t = 1; } } } // hien tro printf(""); } void lan15(chu * a) { while (1) { f(a); if (a -> tt == 0) break; else { int n = strlen(a -> s); int k = 0; Báo cáo Lập Trình Căn Bản int t = 0; ff(a); //an tro printf(" "); TextColor(13); for (int u = 0; u < 2; u++) { for (int i = 10; i < n + 10; i++) { Sleep(100); if (t == 0) { gotoxy(53, i); printf("%c", a -> s[k]); gotoxy(55, i); printf("%c", a -> s[k]); k++; } else { gotoxy(51, i + 0); printf("%c", a -> s[k]); gotoxy(49,i + 1); printf("%c", a -> s[k]); gotoxy(47,i+1); printf("%c", a -> s[k]); gotoxy(45,i+1); printf("%c", a -> s[k]); gotoxy(57,i+0); printf("%c", a -> s[k]); gotoxy(59,i+1); printf("%c", a -> s[k]); gotoxy(61,i+1); printf("%c", a -> s[k]); gotoxy(63,i+1); printf("%c", a -> s[k]); k++; // hien thi chuoi hang doc } } k = 0; t = 1; } } } printf("");//hien tro } void lan16(chu * a) { while (1) { Báo cáo Lập Trình Căn Bản f(a); if (a -> tt == 0) break; else { int n = strlen(a -> s); int k = 0; char c[] = " "; int t = 0; ff(a); //an tro printf(" "); TextColor(14); for (int u = 0; u < 2; u++) { for (int i = 10; i < n + 10; i++) { Sleep(200); if (t == 0) { gotoxy( 40,i); printf("%c", a -> s[k]);// chuoi doc k++; } else { gotoxy(40,i); printf("%c", c[0]); Sleep(100); //xoa chuoi doc gotoxy(40+i,10); printf("%c", a -> s[k]); gotoxy(63,i+1); printf("%c", a -> s[k]); k++; // chuoi hang ngang } } k = 0; t = 1; } } } // hien tro printf("\33[?25h"); } int main(int argc, const char * argv[]) { FILE *dem; chu * a = (chu * ) malloc(sizeof(chu)); fscanf(dem,"%d",&a->solannhap); Báo cáo Lập Trình Căn Bản fclose(dem); while(1){ system("cls"); a->s[0]=NULL; a -> td.x = 12; a -> td.y = 12; a -> tt = 0; a -> lan = 0; ff(a); gotoxy(22, 1); fflush(stdin); gets(a -> s); // Nhap noi dung while (1) { ff(a); gotoxy(28, 3); fflush(stdin); scanf("%d", & a -> lan);// Nhap hieu ung if (a->lan == 0) break; else if (a -> lan < || a -> lan > 16) { a -> lan = 0; system("cls"); ff(a); gotoxy(35, 12); printf("nhap khoang tu den 16 !"); } // nhap sai khoang gia tri yeu cau nhap lai else { fprintf(dem,"%d",a->solannhap); fclose(dem); a -> tt = 1; switch (a -> lan) { case 1:lan1(a);break; case 2:lan2(a);break; case 3:lan3(a);break; case 4:lan4(a);break; case 5:lan5(a);break; case 6:lan6(a);break; case 7:lan7(a);break; case 8:lan8(a);break; case 9:lan9(a);break; case 10:lan10(a);break; case 11:lan11(a);break; Báo cáo Lập Trình Căn Bản case 12:lan12(a);break; case 13:lan13(a);break; case 14:lan14(a);break; case 15:lan15(a);break; case 16:lan16(a);break; }}}} getch(); return 0;} Kết đạt Kết quả: - Thực mục tiêu đề ra, thực chương trình chạy hiệu ứng quảng cáo - Đã kiểm chứng, áp dụng lý thuyết Nhận xét * Ưu điểm: - Giao diện đơn giản, dễ sử dụng - Hiểu biết sử dụng phần mền Dev-C++ - Cả nhóm hỗ trợ, bổ sung kiến thức lẫn nhau, Phát triển khả làm việc nhóm * Nhược điểm: - Không phối hợp hiệu ứng chạy lúc - Hiệu ứng đơn giản, chưa đa dạng * Cách khắc phục: cần học hỏi tìm hiểu thêm làm nghiên cứu thêm ( hỏi giảng viên, bạn bè, tham khảo thêm nguồn tài liệu ) III.Tài Liệu Tham Khảo - Giáo trình Lập Trình Căn Bản – Đại học Cần Thơ https://cet.ctu.edu.vn/tdh/thong-bao/57-tai-lieu-bai-giang-mon-lt-can-ban-dtct131.html - Wed https://www.phanxuanchanh.com/2021/01/08/lap-trinh-c-c-doi-mau-console/ http://diendan.congdongcviet.com/threads/t19262::ham-gotoxy-cong-cucach-su-dung-ham-gotoxy.cpp IV Phụ Lục Quá trình thực đề tài - Kế hoạch thời gian: thời gian tuần - Kết thực hiện: hoàn thành mục tiêu đề Danh sách thành viên bảng phân chia cơng việc Báo cáo Lập Trình Căn Bản Thành viên Nguyễn Thành Tiến Nhiệm vụ Tìm hiểu đề tài, viết chương trình Võ Nguyên Khánh Tìm hiểu đề tài, viết chương trình Nguyễn Hồng Khải Tìm hiểu đề tài, viết chương trình Lý Châu Gia Khang Tìm hiểu đề tài, viết chương trình Nguyễn Hồng Danh Tìm hiểu đề tài, viết báo cáo Huỳnh Lý Hải Tìm hiểu đề tài, viết chương trình Bùi Vĩnh Huy Tìm hiểu đề tài, viết chương trình Nguyễn Tấn Lộc Tìm hiểu đề tài, viết chương trình