Khoa công nghệ thông tin bài giảng LẬp trình cơ BẢn biên soạn


III. Xử lý văn bản trên màn hình đồ hoạ



tải về 1.56 Mb.
trang29/29
Chuyển đổi dữ liệu30.08.2016
Kích1.56 Mb.
#28834
1   ...   21   22   23   24   25   26   27   28   29

III. Xử lý văn bản trên màn hình đồ hoạ

1. Hiển thị văn bản trên màn hình đồ hoạ


Cú pháp: void outtext(char *s);

s: chuỗi văn bản được hiển thị tại vị trí con trỏ đồ họa hiện tại



Cú pháp: void outtextxy(int x, int y,char *s);

(x,y): tọa độ sẽ hiển thị chuỗi

s: chuỗi văn bản sẽ được hiển thị

Ví dụ:


Hai cách viết dưới đây:

outtextxy(50,50,” Say HELLO”);

moveto(50,50);



outtext(“ Say HELLO”);

cho cùng kết quả.


2. Sử dụng các Fonts chữ


Các Fonts chữ nằm trong các tập tin *.CHR trên đĩa. Các Fonts này cho các kích thước và kiểu chữ khác nhau, chúng sẽ được hiển thị lên màn hình bằng các hàm outtext và outtextxy. Để chọn và nạp Fonts ta dùng hàm:

Cú pháp : void settextstyle(int font, int direction, int charsize);

+ font : lựa chọn kiểu chữ và nhận một trong các hằng sau:

DEFAULT_FONT=0

TRIPLEX_FONT=1

SMALL_FONT=2

SANS_SERIF_FONT=3

GOTHIC_FONT=4

+ derection: để chọn hướng chữ và nhận một trong các hằng sau:



HORIZ_DIR=0 văn bản hiển thị theo hướng nằm ngang từ trái qua phải.

VERT_DIR=1 văn bản hiển thị theo hướng thẳng đứng từ dưới lên trên.

+ Charsize: là hệ số phóng to của ký tự và có giá trị trong khoảng từ 1 đến 10.

Khi charsize=1, font hiển thị trong hình chữ nhật 8*8 pixel.

Khi charsize=2 font hiển thị trong hình chữ nhật 16*16 pixel.

............

Khi charsize=10, font hiển thị trong hình chữ nhật 80*80 pixel.

Các giá trị do settextstyle lập ra sẽ giữ nguyên tới khi gọi một settextstyle mới.

Ví dụ:

Các dòng lệnh:

settextstyle(3,1,3);//DevC++ không chuyển thẳng đứng

outtextxy(30,30,"GODS TRUST YOU");

sẽ hiển thị tại vị trí (30,30) dòng chữ GODS TRUST YOU theo chiều từ dưới lên trên, font chữ chọn là SANS_SERIF_FONT và cỡ chữ là 2.



  • Đặt vị trí hiển thị của các xâu ký tự cho bởi outtext và outtextxy:

Cú pháp: void settextjustify(int horiz, int vert);

+ horiz: có thể là một trong các hằng số sau:



LEFT_TEXT=0 ( Văn bản xuất hiện bên phải con chạy).

CENTER_TEXT ( Chỉnh tâm văn bản theo vị trí con chạy).

RIGHT_TEXT (Văn bản xuất hiện bên trái con chạy).

+ vert: có thể là một trong các hằng số sau:

BOTTOM_TEXT=0 ( Văn bản xuất hiện phía trên con chạy).

CENTER_TEXT=1 ( Chỉnh tâm văn bản theo vị trí con chạy).

TOP_TEXT=2 ( Văn bản xuất hiện phía dưới con chạy).

Ví dụ:


settextjustify(1,1);

outtextxy(100,100,"ABC");


3. Bề rộng và chiều cao của kí tự


- Chiều cao của chuỗi ký tự

Cú pháp: int textheight(char *s);

+ s: chuỗi ký tự cần kiểm tra

+ trả về độ cao của chuỗi ký tự khi in ra màn hình tình bằng pixel.

Ví dụ 1:


Với font bit map và hệ số phóng đại là 1 thì textheight(“A”) ch giá trị là 8.

Ví dụ 2:

#include "stdio.h"

#include "graphics.h"

main()

{ int mh=0,mode=DETECT, y,size;



initgraph(&mh,&mode,"C:\\TC\\BGI");

y=10;


settextjustify(0,0);

for (size=1;size<5;++size)

{ settextstyle(0,0,size);

outtextxy(0,y,"SACRIFICE");

y+=textheight("SACRIFICE")+10;

}

getch();



closegraph();

}

- Bề rộng của kí tự:



Cú pháp: int textwidth(char *s);

+ s: chuỗi ký tự cần kiểm tra

+ trả về độ rộng của chuỗi ký tự khi in lên màn hình

IV. Hiệu ứng hoạt hình đồ họa


Hiệu ứng hoạt hình là hiệu ứng các đối tượng di chuyển trên màn hình. Bản chất của việc dịch chuyển trên màn hình là xóa vị trí cũ và vẽ đối tượng sang vị trí mới.

- Xóa vị trí cũ bằng cách vẽ đối tượng với màu của màu nền

Ví dụ vẽ quả bóng di chuyển từ góc trên trái xuống góc phải dưới

#include "graphics.h"

#include "stdio.h"

#include "conio.h"

#include

int draw(int x, int y, int color)

{

setcolor(color);



setbkcolor(color);

setfillstyle(0,color);

pieslice(x,y,0,360,10);

return 0;

}

main()


{

int i,x,y;

int dx=5;

int dy=5;

int md=0,mode;

initgraph(&md,&mode,"C:\\TC\\BGI");

x=10;

y=10;


while(!kbhit())

{

draw(x,y,15);



delay(10);

draw(x,y,0);

x+=dx;

y+=dy;


if(y<10 || y>300)

dy=-dy;


if(x<10 || x>400)

dx=-dx;


}

getch();


closegraph();

}

- Trong tình huống nền có hình ảnh khác việc vẽ lại màu nền sẽ xóa các đối tượng trên nền. Để giải quyết vấn đề này cần phải lưu trữ lại tình trạng màn hình trước khi vẽ, sau đó hồi phục lại màn hình để tiếp tục vẽ sang vị trí mới.



#include "graphics.h"

#include "stdio.h"

#include "conio.h"

#include

#define r 5

char *b;


int draw(int x, int y, int color)

{

setcolor(color);



setbkcolor(color);

setfillstyle(0,color);

pieslice(x,y,0,360,r);

return 0;

}

int main()



{

int i,x,y;

int dx=5;

int dy=5;

delay(10);

int md=0,mode=0;

initgraph(&md,&mode,"C:\\TC\\BGI");

b=(char*)malloc(imagesize(1,1,2*r+1,2*r+1));

if(b==NULL)

{

closegraph();



return -1;

}

line(0,0,getmaxx(),getmaxy());



line(0,getmaxy(),getmaxx(),0);

x=10;


y=10;

while(!kbhit())

{

getimage(x-r,y-r,x+r,y+r,b);



draw(x,y,15);

delay(10);

putimage(x-r,y-r,b,COPY_PUT);

x+=dx;


y+=dy;

if(y<10 || y>310)

dy=-dy;

if(x<10 || x>420)

dx=-dx;

}

getch();



free(b);

closegraph();

return 0;

}

V. Tóm tắt nội dung bài học


I. Khởi động đồ hoạ

II. Các hàm đồ hoạ

1. Mẫu và màu

2. Vẽ và tô màu

3. Vẽ đường gấp khúc và đa giác

4. Vẽ điểm, miền

5. Hình chữ nhật

6. Cửa sổ (Viewport)

III. Xử lý văn bản trên màn hình đồ hoạ

1. Hiển thị văn bản trên màn hình đồ hoạ

2. Sử dụng các Fonts chữ

3. Bề rộng và chiều cao của kí tự

IV. Tóm tắt nội dung bài học

V. Bài tập


VI. Bài tập


Xem Bài 14 - Bài tập thực hành Làm việc với File và Thuật toán nâng cao

Bài 14 - Bài thực hành: LÀM VIỆC VỚI FILE VÀ ĐỒ HỌA

I. Thực hiện các ví dụ sau

1. Ví dụ 1


Yêu cầu:

Viết chương trình cho phép nhập vào một mảng, tìm phần tử lớn nhất



Soạn thảo văn bản chương trình như sau

#include

#include

int a[100][100];

int n,m;
int main()

{

int ma;



char *infile="vao.txt", *outfile="ra.txt";

int i, j;

FILE *f1;

f1=fopen(infile,"rt");

if(f1==NULL)

{

printf("Loi mo file %s",infile);



return -1;

}

fscanf(f1,"%d%d",&m,&n);



for(i=0;i

{

for(j=0;j

{

fscanf(f1,"%d",&a[i][j]);

}

}

//find max



ma=a[0][0];

for(i=0;i

{

for(j=0;j

{

if(a[i][j]>ma)

ma=a[i][j];

}

}



fclose(f1);

printf("Gia tri max:%d",ma);

getch();

return 0;

}

Thử nghiệm 1:

Nhập thử file vao.txt có nội dung

4 5

1 2 3 4 5



5 6 7 8 9

1 3 5 7 9

2 4 6 8 0

Thử nghiệm 2:

Nhập thử file vao.txt có nội dung

4 5

1 2 3 4 5



5 6 7 8 9

1 3 5 7 9

Đưa ra nhận xét, thay đổi đảm bảo hệ thống chạy tốt.

2. Ví dụ 2


Nhập lại ví dụ 2 trong hiệu ứng hoạt hình, thay đổi màu viên bóng, tạo thêm đường khung.

II. Bài tập tự làm


1. Viết chương trình quản lý một tập tin văn bản theo các yêu cầu:

a- Nhập từ bàn phím nội dung một văn bản sau đó ghi vào đĩa.

b- Đọc từ đĩa nội dung văn bản vừa nhập và in lên màn hình.

c- Đọc từ đĩa nội dung văn bản vừa nhập, in nội dung đó lên màn hình và cho phép nối thêm thông tin vào cuối tập tin đó.

2. Viết chương trình cho phép thống kê số lần xuất hiện của các ký tự là chữ (‘A’..’Z’,’a’..’z’) trong một tập tin văn bản.

3. Viết chương trình đếm số từ và số dòng trong một tập tin văn bản.

4. Viết chương trình nhập từ bàn phím và ghi vào 1 tập tin tên là DMHH.DAT với mỗi phần tử của tập tin là 1 cấu trúc bao gồm các trường: Ma (mã hàng: char[5]), Ten (Tên hàng: char[20]).Kết thúc việc nhập bằng cách gõ ENTER vào Ma. Ta sẽ dùng tập tin này để giải mã hàng hóa cho tập tin DSHH.DAT sẽ đề cập trong bài 5.

5. Viết chương trình cho phép nhập từ bàn phím và ghi vào 1 tập tin tên DSHH.Dat với mỗi phần tử của tập tin là một cấu trúc bao gồm các trường : mh (mã hàng: char[5]), sl (số lượng : int), dg ( đơn giá: float), st (Số tiền: float) theo yêu cầu:

- Mỗi lần nhập một cấu trúc

- Trước tiên nhập mã hàng (mh), đưa mh so sánh với Ma trong tập tin DMHH.DAT đã được tạo ra bởi bài tập 1, nếu mh=ma thì in tên hàng ngay bên cạnh mã hàng.

- Nhập số lượng (sl).

- Nhập đơn giá (dg).

- Tính số tiền = số lượng * đơn giá.

Kết thúc việc nhập bằng cách đánh ENTER vào mã hàng. Sau khi nhập xong yêu cầu in toàn bộ danh sách hàng hóa có sự giải mã về tên hàng theo mẫu sau:



STT

MA HANG

TEN HANG

SO LG

DON GIA

SO TIEN

1

a0101

Duong cat trang

25

10000.00

250000.00

2

b0101

Sua co gai Ha Lan

10

40000.00

400000.00

6. Viết chương trình cho phép hiển thị đồng hồ với tương tự (đồng hồ kim) có hai kim giờ và phút. Sử dụng hàm gettime để lấy dữ liệu. Theo thời gian các kim chạy hiển thị đúng hiện trạng của đồng hồ máy tính.

7. Viết chương trình mô tả dao động của con lắc đơn.

8. Vẽ đồ thị hàm số f(x)=3x3+4x2-x-1, trong khoảng [-4,4] .

Bài 15 - ÔN TẬP

Bài 1 - Tổng quan


I. Giới thiệu

II. Bài toán và việc giải bài toán trên máy tính

III. Công cụ lập trình

IV. Tóm tắt nội dung bài học


Bài 2. Ngôn ngữ lập trình C/C++


I. Giới thiệu

II. Một số khái niệm cơ bản

III. Cấu trúc chương trình đơn giản trong C

IV. Nhập/Xuất dữ liệu

V. Tóm tắt nội dung bài học

VI. Bài tập


Bài 3 - Bài thực hành: Môi trường lập trình và các lệnh vào/ra

Bài 4 - Điều khiển Chọn và Lặp


I. Điều khiển chọn

II. Điều khiển lặp

III. Tóm tắt nội dung bài học

IV. Bài tập


Bài 5 - Bài thực hành: Các cấu trúc điều khiển

Bài 6 - Mảng, Con trỏ và xâu ký tự


I. Mảng

II. Con trỏ

III. Xâu ký tự

IV. Tóm tắt nội dung bài học

V. Bài tập

Bài 7 - Bài thực hành: Mảng, Con trỏ và Xâu ký tự

Bài 8 - Cấu trúc dữ liệu do người dùng tự định nghĩa


I. Cấu trúc dữ liệu do người dùng tự định nghĩa

II. Kiểu ngăn xếp

III. Kiểu hàng đợi

IV. Tóm tắt nội dung bài học

V. Bài tập

Bài 9 - Bài thực hành: Cấu trúc dữ liệu do người dùng tự định nghĩa

Bài 10 - Hàm


I. Khái niệm

II. Xây dựng một hàm

III. Truyền tham số cho hàm

IV. Kỹ thuật đệ qui

V. Tóm tắt nội dung bài học

VI. Bài tập


Bài 11 - Bài thực hành: Hàm

Bài 12 - Làm việc với File


I. Một số khái niêm

II. Các thao tác trên tập tin

III. Truy cập tập tin văn bản

IV. Truy cập tập tin nhị phân

V. Tóm tắt nội dung bài học

VI. Bài tập


Bài 13 - Đồ Họa


I. Khởi động đồ hoạ

II. Các hàm đồ hoạ

III. Xử lý văn bản trên màn hình đồ hoạ

IV. Tóm tắt nội dung bài học



V. Bài tập

Bài 14 - Bài thực hành: Làm việc với File và Thuật toán nâng cao




Каталог: files -> FileMonHoc
FileMonHoc -> NGÂn hàng câu hỏi lập trình cơ BẢn nhóm câu hỏI 2 ĐIỂM
FileMonHoc -> CHƯƠng 2 giới thiệu về LÝ thuyết số
FileMonHoc -> CÁc hệ MẬt khoá CÔng khai kháC
FileMonHoc -> BỘ MÔn duyệt chủ nhiệm Bộ môn
FileMonHoc -> Khoa công nghệ thông tin cộng hòa xã HỘi chủ nghĩa việt nam
FileMonHoc -> Chủ nhiệm Bộ môn Ngô Thành Long ĐỀ CƯƠng chi tiết bài giảNG
FileMonHoc -> Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠng chi tiết bài giảNG
FileMonHoc -> Khoa: CÔng nghệ thông tin cộng hòa xã HỘi chủ nghĩa việt nam
FileMonHoc -> MẬt mã khóA ĐỐi xứng lý thuyết cơ bản của Shannon
FileMonHoc -> Khoa cntt cộng hòa xã HỘi chủ nghĩa việt nam

tải về 1.56 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   21   22   23   24   25   26   27   28   29




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương