You are on page 1of 4

Thực hành 1- nhập xuất dữ liệu trên tệp

TH1_1: Nhập dãy số thưc từ tệp và in kết quả ra màn hình


Bước 1: tạo tệp daythuc.txt
10
1 2 3 4.5 5 6 -7 8 9 10
Bước 2: tạo tệp chương trình
#include"stdio.h"
int main()
{
int n,i,j;
float a[100];
FILE *fname;
fname=fopen("daythuc.txt","rt");
fscanf(fname,"%d\n",&n);
for(i=0;i<n;i++)
fscanf(fname,"%f",&a[i]);
fclose(fname);
for(i=0;i<n;i++)
printf("%16.1f",a[i]);
}
Bước 3: chạy chương trình
Bước 5: bổ sung chức năng tính trung bình cộng các phần tử nằm trong đoạn [-10,10] và chạy lại chương
trình
TH1_2: Nhập xuất ma trận nguyên vuông
Bước 1: tạo tệp matran.txt
3
123
321
11 12 0
Bước 2: tạo tệp chương trình như sau
#include"stdio.h"
int main()
{
int n,i,j;
int mt[20][20];
FILE *fname;
fname=fopen("matran.txt","rt");
fscanf(fname,"%d\n",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
fscanf(fname,"%d",&mt[i][j]);
fscanf(fname,"\n");
}
fclose(fname);
puts("ma tran doc dc tu tep");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%5d", mt[i][j]);
puts("");
}
//bổ sung tính trung bình cộng các phần tử chẵn của ma trận nằm ở phía trên đường chéo chính
}
Bước 3: tạo tệp matran2.txt có 5 hàng 5 cột như cấu trúc matran.txt để chạy lại chương trình trên
TH1_3: bài toán gửi tiết kiệm
Bước 1: tạo file code như sau:
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
//dinh nghia cua truc khach hang gui tk
typedef struct {
char ma[12],ht[30],sdt[11];
int tgg;
long sotien;
}TTKhachTK;
int main()
{
int dem,i,n;
TTKhachTK *ds;
char dienthoai[11];
FILE *f;
f = fopen("khanhguitietkiem.txt","r");
if(f!=NULL)
{

fscanf(f,"%d\n",&n);
printf("n=%d\n",n);
ds = (TTKhachTK*)malloc (sizeof (TTKhachTK)*(n+1));
for(int i=0 ; i<n ; ++i){
fgets(ds[i].ma,12,f);
fgets(ds[i].ht,30,f);
fgets(ds[i].sdt,11,f);
fscanf(f,"%ld\n",&ds[i].sotien);
ds[i].sdt[strlen(ds[i].sdt)-1]='\0';
fscanf(f,"%d\n",&ds[i].tgg);
printf("%s %s %s %ld %d\n",ds[i].ma,ds[i].ht,ds[i].sdt,ds[i].sotien,ds[i].tgg);
}
}puts("loi doc tep");
fclose(f);
printf("nhap so dien thoai cua khach can tim ");
gets(dienthoai);
dem=0;
for(i=0;i<n;i++)
if(strcmp(ds[i].sdt,dienthoai)==0)//(ds[i].sdt==dienthoai)
{
float ls;
switch(ds[i].tgg)
{
case 1:{
ls=0.03;
break;
}
case 2:{
ls=0.04;
break;
}case 3:{
ls=0.045;
break;
}
case 6:{
ls=0.05;
break;
}
case 9:{
ls=0.06;
break;
}
case 12:{
ls=0.07;
break;
}
}
float lai=ds[i].sotien*ls*ds[i].tgg/12;
printf("ho ten %s sdt: %s tien lai %.0f tong tien %.0f",
ds[i].ht,ds[i].sdt,lai,lai+ds[i].sotien);
dem=1;
}
if(dem==0) puts("k tim thay");
//tao tepj khach hang than thiet
//FILE *f;
f=fopen("khachhangthanthiet.txt","w");
dem=0;
for(i=0;i<n;i++)
if(ds[i].tgg>6 && ds[i].sotien>1000000000)
{
fprintf(f,"%s %s %s %ld %d\n",ds[i].ma,ds[i].ht,ds[i].sdt,ds[i].sotien,ds[i].tgg);
dem++;
}
if(dem==0)
fputs("k co khach hang than thiet",f);
fclose(f);
}
Bước 2: Tạo tệp khanhguitietkiem.txt như sau:
2
KH01
Ten 1
091233333
6
500000000
KH02
Ten 2
031233333
12
5000000000
Bước 3: chạy chương trình
Bước 4: tạo tệp inputKH.txt có 5 khách hàng và chạy là chương trình để theo dõi kết quả
Bước 5: Bổ sung thêm chức năng tìm khách hàng có số tiền gửi nhiều nhất

You might also like