1. Trang chủ
  2. » Giáo án - Bài giảng

LAP TRINH c CO BAN

117 49 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 117
Dung lượng 3,34 MB

Nội dung

Lập trình TỔNG QUAN I MỤC ĐÍCH U CẦU Mơn Lập Trình Căn Bản A cung cấp cho sinh viên kiến thức lập trình thơng qua ngơn ngữ lập trình C Mơn học tảng để tiếp thu hầu hết môn học khác chương trình đào tạo Mặt khác, nắm vững ngôn ngữ C sở để phát triển ứng dụng Học xong môn này, sinh viên phải nắm vấn đề sau: - Khái niệm ngơn ngữ lập trình - Khái niệm kiểu liệu - Kiểu liệu có cấu trúc (cấu trúc liệu) - Khái niệm giải thuật - Ngôn ngữ biểu diễn giải thuật - Ngôn ngữ sơ đồ (lưu đồ), sử dụng lưu đồ để biểu diễn giải thuật - Tổng quan Ngơn ngữ lập trình C - Các kiểu liệu C - Các lệnh có cấu trúc - Cách thiết kế sử dụng hàm C - Một số cấu trúc liệu C II ĐỐI TƯỢNG MƠN HỌC Mơn học lập trình dùng để giảng dạy cho sinh viên sau: - Sinh viên năm thứ chuyên ngành Tin học, Toán Tin, Lý Tin - Sinh viên năm thứ chuyên ngành Điện tử (Viễn thơng, Tự động hóa…) III NỘI DUNG CỐT LÕI Trong khn khổ 45 tiết, giáo trình cấu trúc thành phần: Phần giới thiệu lập trình cấu trúc, khái niệm lập trình, giải thuật… Phần trình bày có hệ thống ngơn ngữ lập trình C, câu lệnh, kiểu liệu… PHẦN 1: Giới thiệu cấu trúc liệu giải thuật PHẦN 2: Giới thiệu ngơn ngữ lập trình - Ngơn ngữ lập trình C Chương 1: Giới thiệu ngơn ngữ C & mơi trường lập trình Turbo C Chương 2: Các thành phần ngôn ngữ C Chương 3: Các kiểu liệu sơ cấp chuẩn lệnh đơn Chương 4: Các lệnh có cấu trúc Chương 5: Chương trình Chương 6: Kiểu mảng Chương 7: Kiểu trỏ Chương 8: Kiểu chuỗi ký tự Chương 9: Kiểu cấu trúc Trang Lập trình Chương 10: Kiểu tập tin IV KIẾN THỨC LIÊN QUAN Để học tốt mơn Lập Trình Căn Bản A, sinh viên cần phải có kiến thức tảng sau: - Kiến thức toán học - Kiến thức kỹ thao tác máy tính V DANH MỤC TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Linh, Giáo trình Tin Học Đại Cương A, Khoa Công Nghệ Thông Tin, Đại học Cần Thơ, 1991 [2] Nguyễn Đình Tê, Hồng Đức Hải , Giáo trình lý thuyết tập ngôn ngữ C; Nhà xuất Giáo dục, 1999 [3] Nguyễn Cẩn, C – Tham khảo toàn diện, Nhà xuất Đồng Nai, 1996 [4] Võ Văn Viện, Giúp tự học Lập Trình với ngơn ngữ C, Nhà xuất Đồng Nai, 2002 [5] Brain W Kernighan & Dennis Ritchie, The C Programming Language, Prentice Hall Publisher, 1988 VI TỪ KHĨA Bài tốn, chương trình, giải thuật, ngơn ngữ giả, lưu đồ, biểu thức, gán, rẽ nhánh, lặp, hàm, mảng, trỏ, cấu trúc, tập tin Trang Lập trình Phần 1: GIỚI THIỆU VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Học xong chương này, sinh viên nắm bắt vấn đề sau: - Khái niệm ngơn ngữ lập trình - Khái niệm kiểu liệu - Kiểu liệu có cấu trúc (cấu trúc liệu) - Khái niệm giải thuật - Ngôn ngữ biểu diễn giải thuật - Ngôn ngữ sơ đồ (lưu đồ), sử dụng lưu đồ để biểu diễn giải thuật Trọng tâm phần giải thuật & cách biểu diễn giải thuật Chính nhờ điều ta giải yêu cầu chương trình máy tính I TỪ BÀI TỐN ĐẾN CHƯƠNG TRÌNH Giả sử cần viết chương trình để giải phương trình bậc có dạng ax + bx + c = hay viết chương trình để lấy bậc n số thực m ( n m ) Công việc phải hiểu biết cách giải toán lời giải thơng thường người làm tốn Để giải tốn máy tính (lập trình cho máy tính giải) cần phải thực qua bước như: o Mô tả bước giải toán o Vẽ sơ đồ xử lý dựa bước o Dựa sơ đồ xử lý để viết chương trình xử lý ngơn ngữ giả (ngơn ngữ bình thường chúng ta) o Chọn ngơn ngữ lập trình chuyển chương trình từ ngơn ngữ giả sang ngơn ngữ lập trình để tạo thành chương trình hồn chỉnh o Thực chương trình: nhập vào tham số, nhận kết Trong nhiều trường hợp, từ toán thực tế phải xây dựng mơ hình tốn xác định bước để giải Vấn đề trình bày chi tiết môn Cấu Trúc Dữ Liệu II GIẢI THUẬT II.1 Khái niệm giải thuật Giải thuật hệ thống chặt chẽ rõ ràng quy tắc nhằm xác định dãy thao tác liệu vào cho sau số hữu hạn bước thực thao tác ta thu kết tốn Trang Lập trình Ví dụ 1: Giả sử có hai bình A B đựng hai loại chất lỏng khác nhau, chẳng hạn bình A đựng rượu, bình B đựng nước mắm Giải thuật để hoán đổi (swap) chất lỏng đựng hai bình là: ƒ u cầu phải có thêm bình thứ ba gọi bình C ƒ Bước 1: Đổ rượu từ bình A sang bình C ƒ Bước 2: Đổ nước mắm từ bình B sang bình A ƒ Bước 3: Đổ rượu từ bình C sang bình B Ví dụ 2: Một giải thuật tìm ước chung lớn hai số a b là: ƒ Bước 1: Nhập vào hai số a b ƒ Bước 2: So sánh số a,b chọn số nhỏ gán cho UCLN ƒ Bước 3: Nếu hai số a b không chia hết cho UCLN thực bước 4, ngược lại (cả a b chia hết cho UCLN) thực bước ƒ Bước 4: Giảm UCLN đơn vị quay lại bước ƒ Bước 5: In UCLN - Kết thúc II.2 Các đặc trưng giải thuật o Tính kết thúc: Giải thuật phải dừng sau số hữu hạn bước o Tính xác định: Các thao tác máy tính phải thực máy tính khác thực bước giải thuật phải cho kết o Tính phổ dụng: Giải thuật phải "vét' hết trường hợp áp dụng cho loạt tốn loại o Tính hiệu quả: Một giải thuật đánh giá tốt đạt hai tiêu chuẩn sau: - Thực nhanh, tốn thời gian - Tiêu phí tài nguyên máy, chẳng hạn tốn nhớ Giải thuật tìm UCLN nêu đạt tính kết thúc qua lần thực bước UCLN giảm đơn vị trường hợp xấu UCLN=1, giải thuật phải dừng Các thao tác trình bày bước, máy tính thực nên có tính xác định Giải thuật đạt tính phổ dụng dùng để tìm UCLN cho hai số nguyeên dương a b Tuy nhiên tính hiệu giải thuật chưa cao; cụ thể thời gian chạy máy tốn nhiều số giải thuật khác mà có dịp trở lại phần lập trình C II.3 Ngơn ngữ biểu diễn giải thuật Để biểu diễn giải thuật, cần phải có tập hợp ký hiệu dùng để biểu diễn, ký hiệu biểu diễn cho hành động Tập hợp ký hiệu lại tạo thành ngôn ngữ biểu diễn giải thuật II.3.1 Ngôn ngữ tự nhiên Ngôn ngữ tự nhiên ngôn ngữ sử dụng, sử dụng ngôn ngữ tự nhiên để mô tả giải thuật giống ví dụ Ví dụ: Ta có giải thuật giải phương trình bậc dạng ax + b = sau: ƒ Bước 1: Nhận giá trị tham số a, b ƒ Bước 2: Xét giá trị a xem có hay khơng? Nếu a=0 làm bước 3, a khác khơng làm bước Trang Lập trình ƒ Bước 3: (a 0) Nếu b ta kết luận phương trình vơ số nghiệm, b khác ta kết luận phương trình vô nghiệm ƒ Bước 4: ( a khác 0) Ta kết luận phương trình có nghiệm x=-b/a II.3.2 Ngơn ngữ sơ đồ (Lưu đồ) Ngôn ngữ sơ đồ (lưu đồ) ngôn ngữ đặc biệt dùng để mô tả giải thuật sơ đồ hình khối Mỗi khối qui định hành động Khối Tác dụng (Ý nghĩa Khối Tác dụng (Ý nghĩa hành động) hành động) Bắt đầu/ Kết thúc Đường Nhập / Xuất Chương trình Thi hành Khối nối Lựa chọn Lời thích Chẳng hạn ta dùng lưu đồ để biểu diễn giải thuật tìm UCLN nêu sau: A Begin a M UCLN Và b M UCLN Nhập a,b Sai aNam); printf("Truy cap qua vung nho tro %d-%d-%d\n", (*p).Ngay,(*p).Thang,(*p).Nam); getch(); return 0; } Kết quả: IV BÀI TẬP IV.1 Mục đích yêu cầu Làm quen biết cách sử dụng kiểu liệu cấu trúc kết hợp với kiểu liệu học Phân biệt kiểu liệu mảng kiểu cấu trúc Thực tập phần nội dung Trang 103 Lập trình IV.2 Nội dung Hãy định nghĩa kiểu: struct Hoso{ char HoTen[40]; float Diem; char Loai[10]; }; Viết chương trình nhập vào họ tên, điểm n học sinh Xếp loại văn hóa theo cách sau: Điểm Xếp loại 9, 10 Giỏi 7, Khá 5, Trung bình Khơng đạt In danh sách lên hình theo dạng sau: XEP LOAI VAN HOA HO VA TEN DIEM XEPLOAI Nguyen Van A Kha Ho Thi B Trung binh Dang Kim C Khong dat Xem phân số cấu trúc có hai trường tử số mẫu số Hãy viết chương trình thực phép tốn cộng, trừ, nhân, chia hai phân số (Các kết phải tối giản ) Tạo danh sách cán công nhân viên, người người xem cấu trúc bao gồm trường Ho, Ten, Luong, Tuoi, Dchi Nhập số người vào danh sách, xếp tên theo thứ tự từ điển, in danh sách xếp theo mẫu sau: DANH SACH CAN BO CONG NHAN VIEN | STT |HO VA TEN | LUONG | TUOI | DIACHI | | Nguyen Van | 333.00 | 26 Tho | | | Dang Kim B | 23 | Vinh Long | Trang 104 | Can 290.00 | | Lập trình Chương 10 KIỂU TẬP TIN Học xong chương này, sinh viên nắm rõ vấn đề sau: ƒ ƒ ƒ ƒ Một số khái niệm tập tin? Các bước thao tác với tập tin Một số hàm truy xuất tập tin văn Một số hàm truy xuất tập tin nhị phân I MỘT SỐ KHÁI NIỆM VỀ TẬP TIN Đối với kiểu liệu ta biết kiểu số, kiểu mảng, kiểu cấu trúc liệu tổ chức nhớ (RAM) máy tính nên kết thúc việc thực chương trình liệu bị mất; cần bắt buộc phải nhập lại từ bàn phím Điều vừa thời gian vừa không giải toán với số liệu lớn Để giải vấn đề, người ta đưa kiểu tập tin (file) cho phép lưu trữ liệu nhớ (đĩa) Khi kết thúc chương trình liệu sử dụng nhiều lần Một đặc điểm khác kiểu tập tin kích thước lớn với số lượng phần tử không hạn chế (chỉ bị hạn chế dung lượng nhớ ngồi) Có loại liệu kiểu tập tin: o Tập tin văn (Text File): loại tập tin dùng để ghi ký tự lên đĩa, ký tự lưu trữ dạng mã Ascii Điểm đặc biệt liệu tập tin lưu trữ thành dòng, dòng kết thúc ký tự xuống dòng (new line), ký hiệu ‘\n’; ký tự kết hợp ký tự CR (Carriage Return - Về đầu dòng, mã Ascii 13) LF (Line Feed - Xuống dòng, mã Ascii 10) Mỗi tập tin kết thúc ký tự EOF (End Of File) có mã Ascii 26 (xác định tổ hợp phím Ctrl + Z) Tập tin văn truy xuất theo kiểu o Tập tin định kiểu (Typed File): loại tập tin bao gồm nhiều phần tử có kiểu: char, int, long, cấu trúc… lưu trữ đĩa dạng chuỗi byte liên tục o Tập tin không định kiểu (Untyped File): loại tập tin mà liệu chúng gồm cấu trúc liệu mà người ta không quan tâm đến nội dung kiểu nó, lưu ý đến yếu tố vật lý tập tin độ lớn yếu tố tác động lên tập tin mà Biến tập tin: biến thuộc kiểu liệu tập tin dùng để đại diện cho tập tin Dữ liệu chứa tập tin truy xuất qua thao tác với thông số biến tập tin đại diện cho tập tin Con trỏ tập tin: Khi tập tin mở để làm việc, thời điểm, có vị trí tập tin mà việc đọc/ghi thơng tin xảy Người ta hình dung có trỏ đến vị trí đặt tên trỏ tập tin Trang 105 Lập trình Sau đọc/ghi xong liệu, trỏ chuyển dịch thêm phần tử phía cuối tập tin Sau phần tử liệu cuối tập tin dấu kết thúc tập tin EOF (End Of File) II CÁC THAO TÁC TRÊN TẬP TIN Muốn thao tác tập tin, ta phải làm theo bước: o Khai báo biến tập tin o Mở tập tin hàm fopen() o Thực thao tác xử lý liệu tập tin hàm đọc/ghi liệu o Đóng tập tin hàm fclose() Ở đây, ta thao tác với tập tin nhờ hàm định nghĩa thư viện stdio.h II.1 Khai báo biến tập tin Cú pháp: FILE Các biến danh sách phải trỏ phân cách dấu phẩy(,) Ví dụ: FILE *f1,*f2; II.2 Mở tập tin Cú pháp: FILE *fopen(char *Path, const char *Mode) Trong đó: - Path: chuỗi đường dẫn đến tập tin đĩa - Type: chuỗi xác định cách thức mà tập tin mở Các giá trị Mode: Chế độ r w a rb wb ab r+ w+ a+ r+b w+b a+b Ý nghĩa Mở tập tin văn để đọc Tạo tập tin văn để ghi Nối vào tập tin văn Mở tập tin nhị phân để đọc Tạo tập tin nhị phân để ghi Nối vào tập tin nhị phân Mở tập tin văn để đọc/ghi Tạo tập tin văn để đọc ghi Nối vào hay tạo tập tin văn để đọc/ghi Mở tập tin nhị phân để đọc/ghi Tạo tập tin nhị phân để đọc/ghi Nối vào hay tạo tập tin nhị phân - Hàm fopen trả trỏ tập tin Chương trình ta khơng thể thay đổi giá trị trỏ Nếu có lỗi xuất mở tập tin hàm trả trỏ NULL Ví dụ: Mở tập tin tên TEST.txt để ghi FILE *f; f = fopen(“TEST.txt”, “w”); if (f!=NULL) { /* Các câu lệnh để thao tác với tập tin*/ Trang 106 Lập trình /* Đóng tập tin*/ } Trong ví dụ trên, ta có sử dụng câu lệnh kiểm tra điều kiện để xác định mở tập tin có thành cơng hay không? Nếu mở tập tin để ghi, tập tin tồn tập tin bị xóa tập tin tạo Nếu ta muốn ghi nối liệu, ta phải sử dụng chế độ “a” Khi mở với chế độ đọc, tập tin phải tồn rồi, không lỗi xuất II.3 Đóng tập tin Hàm fclose() dùng để đóng tập tin mở hàm fopen() Hàm ghi liệu lại vùng đệm vào tập tin đóng lại tập tin Cú pháp: int fclose(FILE *f) Trong f trỏ tập tin mở hàm fopen() Giá trị trả hàm báo việc đóng tập tin thành cơng Hàm trả EOF có xuất lỗi Ngồi ra, ta sử dụng hàm fcloseall() để đóng tất tập tin lại Cú pháp: int fcloseall() Kết trả hàm tổng số tập tin đóng lại Nếu khơng thành công, kết trả EOF II.4 Kiểm tra đến cuối tập tin hay chưa? Cú pháp: int feof(FILE *f) Ý nghĩa: Kiểm tra xem chạm tới cuối tập tin hay chưa trả EOF cuối tập tin chạm tới, ngược lại trả II.5 Di chuyển trỏ tập tin đầu tập tin - Hàm rewind() Khi ta thao tác tập tin mở, trỏ tập tin di chuyển phía cuối tập tin Muốn cho trỏ quay đầu tập tin mở nó, ta sử dụng hàm rewind() Cú pháp: void rewind(FILE *f) III TRUY CẬP TẬP TIN VĂN BẢN III.1 Ghi liệu lên tập tin văn III.1.1 Hàm putc() Hàm dùng để ghi ký tự lên tập tin văn mở để làm việc Cú pháp: int putc(int c, FILE *f) Trong đó, tham số c chứa mã Ascii ký tự Mã ghi lên tập tin liên kết với trỏ f Hàm trả EOF gặp lỗi III.1.2 Hàm fputs() Hàm dùng để ghi chuỗi ký tự chứa vùng đệm lên tập tin văn Cú pháp: int puts(const char *buffer, FILE *f) Trang 107 Lập trình Trong đó, buffer trỏ có kiểu char đến vị trí chuỗi ký tự ghi vào Hàm trả giá trị buffer chứa chuỗi rỗng trả EOF gặp lỗi III.1.3 Hàm fprintf() Hàm dùng để ghi liệu có định dạng lên tập tin văn Cú pháp: fprintf(FILE *f, const char *format, varexpr) Trong đó: format: chuỗi định dạng (giống với định dạng hàm printf()), varexpr: danh sách biểu thức, biểu thức cách dấu phẩy (,) Định dạng Ý nghĩa %d %[.số chữ số thập phân] f Ghi số nguyên Ghi số thực có theo quy tắc làm tròn số %o Ghi số nguyên hệ bát phân %x Ghi số nguyên hệ thập lục phân %c Ghi ký tự %s Ghi chuỗi ký tự %e %E %g Ghi số thực dạng khoa học (nhân 10 mũ x) %G Ví dụ: Viết chương trình ghi chuỗi ký tự lên tập tin văn D:\\Baihat.txt #include #include int main() { FILE *f; clrscr(); f=fopen("D:\\Baihat.txt","r+"); if (f!=NULL) { fputs("Em oi Ha Noi pho.\n",f); fputs("Ta em, mui hoang lan; ta em, mui hoa sua.",f); fclose(f); } getch(); } return 0; Nội dung tập tin Baihat.txt mở trình soạn thảo văn Notepad Trang 108 Lập trình III.2 Đọc liệu từ tập tin văn III.2.1 Hàm getc() Hàm dùng để đọc liệu từ tập tin văn mở để làm việc Cú pháp: int getc(FILE *f) Hàm trả mã Ascii ký tự (kể EOF) tập tin liên kết với trỏ f III.2.2 Hàm fgets() Cú pháp: char *fgets(char *buffer, int n, FILE *f) Hàm dùng để đọc chuỗi ký tự từ tập tin văn mở liên kết với trỏ f đọc đủ n ký tự gặp ký tự xuống dòng ‘\n’ (ký tự đưa vào chuỗi kết quả) hay gặp ký tự kết thúc EOF (ký tự không đưa vào chuỗi kết quả) Trong đó: - buffer (vùng đệm): trỏ có kiểu char đến nhớ đủ lớn chứa ký tự nhận - n: giá trị nguyên độ dài lớn chuỗi ký tự nhận - f: trỏ liên kết với tập tin - Ký tự NULL (‘\0’) tự động thêm vào cuối chuỗi kết lưu vùng đêm - Hàm trả địa vùng đệm không gặp lỗi chưa gặp ký tự kết thúc EOF Ngược lại, hàm trả giá trị NULL III.2.3 Hàm fscanf() Hàm dùng để đọc liệu từ tập tin văn vào danh sách biến theo định dạng Cú pháp: fscanf(FILE *f, const char *format, varlist) Trong đó: format: chuỗi định dạng (giống hàm scanf()); varlist: danh sách biến biến cách dấu phẩy (,) Ví dụ: Viết chương trình chép tập tin D:\Baihat.txt sang tập tin D:\Baica.txt #include #include int main() { FILE *f1,*f2; clrscr(); f1=fopen("D:\\Baihat.txt","rt"); f2=fopen("D:\\Baica.txt","wt"); if (f1!=NULL && f2!=NULL) { int ch=fgetc(f1); while (! feof(f1)) { fputc(ch,f2); ch=fgetc(f1); } Trang 109 Lập trình fcloseall(); } getch(); return 0; } IV TRUY CẬP TẬP TIN NHỊ PHÂN IV.1 Ghi liệu lên tập tin nhị phân - Hàm fwrite() Cú pháp: size_t fwrite(const void *ptr, size_t size, size_t n, FILE *f) Trong đó: - ptr: trỏ đến vùng nhớ chứa thông tin cần ghi lên tập tin - n: số phần tử ghi lên tập tin - size: kích thước phần tử - f: trỏ tập tin mở - Giá trị trả hàm số phần tử ghi lên tập tin Giá trị n trừ xuất lỗi IV.2 Đọc liệu từ tập tin nhị phân - Hàm fread() Cú pháp: size_t fread(const void *ptr, size_t size, size_t n, FILE *f) Trong đó: - ptr: trỏ đến vùng nhớ nhận liệu từ tập tin - n: số phần tử đọc từ tập tin - size: kích thước phần tử - f: trỏ tập tin mở - Giá trị trả hàm số phần tử đọc từ tập tin Giá trị n hay nhỏ n chạm đến cuối tập tin có lỗi xuất IV.3 Di chuyển trỏ tập tin - Hàm fseek() Việc ghi hay đọc liệu từ tập tin làm cho trỏ tập tin dịch chuyển số byte, kích thước kiểu liệu phần tử tập tin Khi đóng tập tin mở lại nó, trỏ ln vị trí đầu tập tin Nhưng ta sử dụng kiểu mở tập tin “a” để ghi nối liệu, trỏ tập tin di chuyển đến vị trí cuối tập tin Ta điều khiển việc di chuyển trỏ tập tin đến vị trí định hàm fseek() Cú pháp: int fseek(FILE *f, long offset, int whence) Trong đó: - f: trỏ tập tin thao tác - offset: số byte cần dịch chuyển trỏ tập tin kể từ vị trí trước Phần tử vị trí - whence: vị trí bắt đầu để tính offset, ta chọn điểm xuất phát là: SEEK_SET Vị trí đầu tập tin Trang 110 Lập trình - Vị trí trỏ tập tin SEEK_CUR Vị trí cuối tập tin SEEK_END Kết trả hàm việc di chuyển thành công Nếu không thành công, giá trị khác (đó mã lỗi) trả IV.4 Ví dụ Ví dụ 1: Viết chương trình ghi lên tập tin CacSo.Dat giá trị số (thực, nguyên, nguyên dài) Sau đọc số từ tập tin vừa ghi hiển thị lên hình #include #include int main() { FILE *f; clrscr(); f=fopen("D:\\CacSo.txt","wb"); if (f!=NULL) { double d=3.14; int i=101; long l=54321; fwrite(&d,sizeof(double),1,f); fwrite(&i,sizeof(int),1,f); fwrite(&l,sizeof(long),1,f); /* Doc tu tap tin*/ rewind(f); fread(&d,sizeof(double),1,f); fread(&i,sizeof(int),1,f); fread(&l,sizeof(long),1,f); printf("Cac ket qua la: %f %d fclose(f); } getch(); return 0; } %ld",d,i,l); Ví dụ 2: Mỗi sinh viên cần quản lý thông tin: mã sinh viên họ tên Viết chương trình cho phép lựa chọn chức năng: nhập danh sách sinh viên từ bàn phím ghi lên tập tin SinhVien.dat, đọc liệu từ tập tin SinhVien.dat hiển thị danh sách lên hình, tìm kiếm họ tên sinh viên dựa vào mã sinh viên nhập từ bàn phím Ta nhận thấy phần tử tập tin SinhVien.Dat cấu trúc có trường: mã họ tên Do đó, ta cần khai báo cấu trúc sử dụng hàm đọc/ghi tập tin nhị phân với kích thước phần tử tập tin kích thước cấu trúc #include #include #include typedef struct { char Ma[10]; char HoTen[40]; Trang 111 Lập trình } SinhVien; void WriteFile(char *FileName) { FILE *f; int n,i; SinhVien sv; f=fopen(FileName,"ab"); printf("Nhap bao nhieu sinh vien? ");scanf("%d",&n); fflush(stdin); for(i=1;i

Ngày đăng: 16/12/2019, 17:08

TỪ KHÓA LIÊN QUAN

w