I TP PHẦN FILE
1. Viết chương trình nối hai tập tinn bản: tập tin thứ hai được nối vào cuối tập tin
thứ nhất. Hiển thị ni dung của tập tin sau khi nối ra màn hình. Tên hai tập tin
được nhập từ bàn phím.
2. Viết chương trình đọc một tập tinn bản, tên tập tin được nhập từ bàn phím, sau
đó đếm số t trong tập tin và hiển thị ra màn hình.
3. Viết chương trình đọc một tập tinn bản, đếm số ln xuất hiện của mt chuỗi
(nếu có) trong tập tin và hin thị ra màn hình. Chuỗi được nhập từ bàn phím.
4. Viết chương trình đọc một tập tinn bản, đếm số tự trên ming. Chương
tnh phải hiển thị số dòng, chiều dài của các dòng ngắn nhất và dài nhất trong tập
tin, cũng như là số trung bình của các ký tự trên mỗing.
5. Viết chương sao chép mt tập tin văn bn thành một tập tin văn bản khác và mi
dòng trong tập tin văn bn đích phi được đánh số phía bên trái.
6. Viết chương trình thực hiện công việc quản lý sinh viên. Giáo viên muốn theo dõi
kết qu học tập của sinh viên thông qua mã số sinh viên, h tiên, đim thi của học
kỳ 1, học kỳ 2, và đim trung bình của các học k. Giả sử, chỉ lưu trữ cho mt
môn hc. Các yêu cầu khi truy xuất là:
- To mt tập tin gồm 10 sinh viên.
- Cập nhật, thay đổi dữ liệu của tập tin này.
- Nhập vào tên môn học cho biết mã sinh viên, tên sinh viên điểm cao
nhất/thấp nhất của môn hc đó.
- Nhập vào tên sinh viên cho biết điểm môn hc của học k 1, học k 2 và toàn
năm.
- Tìm kiếm, sắp xếp theo mã sinh viên, theo tên, theo điểm, theo môn hc.
- Kết quả được ghi lên màn hình và tập tin.
7. Viết chương trình copy file nguồn vào file đích, tên file do người sử dụng đưa vào.
8. Viết chương trình in ra n dòng cuốing của 1 file, n là số nguyên bất kỳ, tên file
do người sử dụng đưa vào.
9. Viết chương trình in ra số thứ tự của dòng trên 2 file mà chúng khác nhau.
10. Cho một tập dữ liệu (file), phát hiện ra chỗ nào là comment ( tức là các kí tự đằng
sau "/*" ) và phát phát hin ra những dòng trắng ( những dòng không có tự nào
cả ). Sau đó phải xoá comment và xoá những dòng trắng đi.
I TP ĐỒ HỌA
1. Vẽ mặt đồng hmặt kim
2. Vẽ đồ thị của hàm y=f(x) (f là hàm nào đó)
3. Nhập 3 đỉnh toạ độ và vẽ tam giác sau đó vẽ tam giác sau khi xoay 45 độ quanh 1
đỉnh bất kỳ và tịnh tiến trên 1 vector, các giá tr nhập t bàn phím.
4. Xác định giao điểm 2 đoạn thẳng.
5. Minh hoạ vẽ bánh xe lăn.
6. Vẽ bàn cờ vua.
/#Bài 1 - Vẽ mặt đồng h kim#/
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <dos.h>
/* he so doi tu do sang radian */
#define RADS 0.017453293
#define CIRCLE 200
double xc, yc;
int gio, phut, giay;
void ve_kim_gio(int color)
{
double angle;
setcolor(color);
angle = ((double)360 * gio / 12 + (double)phut / 2 - 90.0) * RADS;
moveto(xc - 20.0 * cos(angle), yc - 20.0 * sin(angle));
lineto(xc - 10.0 * cos(angle + M_PI / 2), yc - 10.0 * sin(angle + M_PI/2));
lineto(xc + 110.0 * cos(angle), yc + 110.0 * sin(angle));
lineto(xc + 10.0 * cos(angle + M_PI / 2), yc + 10.0 * sin(angle + M_PI/2));
lineto(xc - 20.0 * cos(angle), yc - 20.0 * sin(angle));
}
void ve_kim_phut(int color)
{
double angle;
setcolor(color);
angle = ((double)360 * phut / 60 + (double)giay / 10 - 90.0) * RADS;
moveto(xc - 30.0 * cos(angle), yc - 30.0 * sin(angle));
lineto(xc - 8.0 * cos(angle + M_PI / 2), yc - 8.0 * sin(angle + M_PI/2));
lineto(xc + 140.0 * cos(angle), yc + 140.0 * sin(angle));
lineto(xc + 8.0 * cos(angle + M_PI / 2), yc + 8.0 * sin(angle + M_PI/2));
lineto(xc - 30.0 * cos(angle), yc - 30.0 * sin(angle));
}
void ve_kim_giay(int color)
{
double angle;
setcolor(color);
angle = ((double)360 * (giay - 3) / 60) * RADS;
moveto(xc - 40.0 * cos(angle), yc - 40.0 * sin(angle));
lineto(xc + 150.0 * cos(angle), yc + 150.0 * sin(angle));
setfillstyle(SOLID_FILL, color);
fillellipse(xc, yc, 3, 3);
}
void ve_mat_dong_ho()
{
int i, j;
setcolor(YELLOW);
circle(xc, yc, CIRCLE);
setlinestyle(SOLID_LINE, 0, 3);
for (i=0; i<12; i++)
if (i%3 == 0)
{
line(xc + (CIRCLE - 2) * sin(RADS * (30 * i - 1)), yc + (CIRCLE - 2) *
cos(RADS * (30 * i - 1)),
xc + (CIRCLE - 24) * sin(RADS * (30 * i - 1)), yc + (CIRCLE - 24) *
cos(RADS * (30 * i - 1)));
line(xc + (CIRCLE - 2) * sin(RADS * (30 * i + 1)), yc + (CIRCLE - 2) *
cos(RADS * (30 * i + 1)),
xc + (CIRCLE - 24) * sin(RADS * (30 * i + 1)), yc + (CIRCLE - 24) *
cos(RADS * (30 * i + 1)));
}
else
line(xc + (CIRCLE - 2) * sin(RADS * (30 * i)), yc + (CIRCLE - 2) * cos(RADS *
(30 * i)),
xc + (CIRCLE - 24) * sin(RADS * (30 * i)), yc + (CIRCLE - 24) * cos(RADS
* (30 * i)));
}
void run()
{
struct time timep;
ve_mat_dong_ho();
gettime(&timep);
gio = timep.ti_hour;
phut = timep.ti_min;
giay = timep.ti_sec;
setlinestyle(SOLID_LINE, 0, 0);
do {
ve_kim_gio(YELLOW);
ve_kim_phut(GREEN);
ve_kim_giay(RED);
delay(990);
sound(1000);
delay(10);
nosound();
ve_kim_giay(BLACK);
ve_kim_phut(BLACK);
ve_kim_gio(BLACK);
giay++;
if (giay >= 60)
{
giay %= 60;
phut++;
if (phut >= 60)
{
phut %= 60;
gio++;
if (gio >= 12)
gio %= 12;
}
}
} while (!kbhit());
}
void main()
{
int gr_drive = DETECT, gr_mode;
initgraph(&gr_drive, &gr_mode, "");
xc = getmaxx() / 2;
yc = getmaxy() / 2;
run();
getch();
closegraph();
}