BÀI TẬP LỚN KỸ THUẬT LẬP TRÌNH Mô tả các thư viện sử dụng xử lý file , xâu để xây dựng thư viện và chương trinh xử lí văn bản file văn bản với các chức năng s
Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
111,88 KB
Nội dung
Ky Thuât Lâp Trinh-EE3490 1|Ky T h u ât L âp Tr i n h Ky Thuât Lâp Trinh-EE3490 STT Họ và Tên MSSV Email Bùi Tuấn Anh 20130023 Nguyễn Văn Tài 20133397 Buituananh2 Kiểm tra file 0130023bk tồn tại, đếm @gmail.com số dòng, từ, câu, đếm số lân xuất hiên mỗi từ file văn bản taikaka.27@ Tính điểm sớ gmail.com câu, Gơp file lại 2|Ky T h u ât L âp Tr i n h Công Viêc Hoàn Ghi thành chu Hoàn thành Hoàn thành Ky Thuât Lâp Trinh-EE3490 Nôi dung bai toan: Mô tả thư viện sử dụng xử lý file , xâu để xây dựng thư viện và chương trinh xử lí văn bản file văn bản với chức sau: - Đọc file văn bản với đường dẫn người dung nhập vào, báo lỗi nếu không đung file văn bản, định dạng không đọc - Hiện thơng tin file gờm có : o Số dòng văn bản (số đoạn) o Số câu (phân tách dấu “.” xuống dòng ) o Số từ - Xây dựng từ điển từ cho file văn bản: o Đếm từ khác và số lân xuất mỗi từ file văn bản o Ghi kết quả file văn bản dict.txt với định dạng cột cách ký tự “TAB”, mỗi cột là từ khác STT Từ Số lân xuất - Xắp xếp lại câu, có chứa sớ từ x́t nhiều o Tính điểm sớ câu = tổng sớ lân xuất tất cả từ câu o Ghi file sort.txt với mỗi dòng là câu với điểm từ cao tới thâp Câu Điểm 3|Ky T h u ât L âp Tr i n h Ky Thuât Lâp Trinh-EE3490 - Gộp nhiều file văn bản thành file, sau xếp câu theo cách file gộp - Cấu truc chương trinh: o Thư viện chứa lớp, hàm xử lý (mơ tả chi tiết báo cáo) o Chương trinh để tương tác với người dung, dạng: ♣ Console ♣ Windows application, có giao diện đồ họa ( tùy chọn, +1 điểm nếu thực hiện) 4|Ky T h u ât L âp Tr i n h Ky Thuât Lâp Trinh-EE3490 Sinh viên thực hiên: Bùi Tuấn Anh -Các thư viên sử dụng : stdio.h , conio.h, string, fstream -Để kiểm tra file tồn tại hay ko ta gán trỏ file có trỏ giá trị “NULL“ hay ko nếu có ta hiển thị “Khơng tìm thấy file or file không đung định dạng” - Trong bài đếm số câu-dòng-từ : o Mỗi lân găp dấu xuống dòng(\n) ta tăng dòng lên đơn vị o Ta quy ước mỗi lân găp dấu cách (“ “) ho ăc xuống dòng(\n), dấu(“.”) , dấu hỏi(“?), dấu TAB(“\t”),v.v ta tăng số từ lên đơn vị Ta có biến inword với ý nghĩa inword=0 thi ta có thể hiểu là ta ngoài words(dấu cách,v.v) inword=1 thi ta word Mỗi lân inword=1 ta tăng word lên đơn vị Tương tự: Mỗi lân găp dấu chấm(“.”) hoăc xuống dòng(\n) ta tăng số câu lên đơn vị và ta có biến “incau” tương tự inword - Trong bài đếm từ khác và số lân xuất mỗi từ file văn bản ta thực hiên: o Tạo chuỗi , mảng chuỗi và mảng int (Chuỗi để đọc hết cả file vào chuỗi ,mảng chuỗi để duyệt chuỗi đọc và lập từng từ riêng cho vào mảng, mảng int dùng đẻ ghi lại xem từ xuất lân.) o Tạo cấu truc lưu từ và số lân xuất từ đó: o Trong thân chương trinh ta đọc từ từ file, mỗi lân đọc từ ta duyệt hết toàn danh sách tại Nếu từ có rời 5|Ky T h u ât L âp Tr i n h Ky Thuât Lâp Trinh-EE3490 thi ta tăng biến đếm lên Ngược lại ta thêm phân tử cuối mảng và tăng số phân tử mảng lên Hạn chế : Vẫn còn phải tùy vào cách viết file văn bản mà ta có thể in xác giá trị -*-*-* Sinh viên thực hiên: Nguyễn Văn Tài - Xắp xếp lại câu, có chứa sớ từ x́t nhiều nhất Tính điểm sớ câu = tổng số lân xuất tất cả từ câu Ghi file sort.txt với mỗi dòng là câu với điểm từ cao tới thâp Câu Điểm - Gộp nhiều file văn bản thành file, sau xếp câu theo cách file gộp - Cấu truc chương trinh: o Thư viện chứa lớp, hàm xử lý (mơ tả chi tiết báo cáo) o Chương trinh để tương tác với người dung, dạng: Console Windows application, có giao diện đồ họa Bài làm: +) #include #include #include 6|Ky T h u ât L âp Tr i n h Ky Thuât Lâp Trinh-EE3490 int countLine(char* filename){ FILE* f = fopen(filename, "r"); if(f == NULL){ printf("File %s not found!\n", filename); return -1; } int count = 0; char c; while((c = fgetc(f)) != EOF){ if(c == '\n'){ count += 1; } } fclose(f); return count; } +) #include #include #include 7|Ky T h u ât L âp Tr i n h Ky Thuât Lâp Trinh-EE3490 int countSentence(char* filename){ FILE* f = fopen(filename, "r"); if(f == NULL){ printf("File %s not found!\n", filename); return -1; } int count = 0; char c; while((c = fgetc(f)) != EOF){ if(c == '\n' || c == '.'){ count += 1; } } fclose(f); return count; } +) #include #include #include int countWord(char* filename){ 8|Ky T h u ât L âp Tr i n h Ky Thuât Lâp Trinh-EE3490 FILE* f = fopen(filename, "r"); if(f == NULL){ printf("File %s not found!\n", filename); return -1; } int count = 0; char c; while((c = fgetc(f)) != EOF){ if(c == '\n' || c == '.' || c == ' ' || c == '\t'){ count += 1; } } fclose(f); return count; } +) #include #include #include int main(int argc, char* argv[]){ 9|Ky T h u ât L âp Tr i n h Ky Thuât Lâp Trinh-EE3490 if(argc < 2){ printf("Using: /main readfile filename\n"); return -1; } if(strcmp(argv[1], "readfile") == 0){ int linenums = countLine(argv[2]); if(linenums >= 0){ printf("Number of line: %d\n", linenums); } else{ return -1; } int sennums = countSentence(argv[2]); if(sennums >= 0){ printf("Number of sentence: %d\n", sennums); } int wordnums = countWord(argv[2]); if(wordnums >= 0){ printf("Number of words: %d\n", wordnums); } } } 10 | K y T h u ât L âp Tr i n h Ky Thuât Lâp Trinh-EE3490 11 | K y T h u ât L âp Tr i n h ... từ file văn bản taikaka.27@ Tính điểm sớ gmail.com câu, Gôp file lại 2|Ky T h u ât L âp Tr i n h Công Viêc Hoàn Ghi thành chu Hoàn thành Hoàn thành Ky Thuât Lâp Trinh- EE3490 Nôi dung... với điểm từ cao tới thâp Câu Điểm 3|Ky T h u ât L âp Tr i n h Ky Thuât Lâp Trinh- EE3490 - Gộp nhiều file văn bản thành file, sau xếp câu theo cách file gộp - Cấu truc chương trinh: o Thư... conio.h, string, fstream -Để kiểm tra file tồn tại hay ko ta gán trỏ file có trỏ giá trị “NULL“ hay ko nếu có ta hiển thị “Khơng tìm thấy file or file không đung định dạng” - Trong