TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Viện Công nghệ Thông tin Truyền thông Đề thi cuối kỳ học phần: Lập trình C (nâng cao) (Mã học phần: IT3240) Năm học: 2020-2021 Học kỳ: Ngày thi: 12/09/2021 Kíp thi: 7h00 (Kíp 1) Thời gian làm bài: 120 phút Hình thức: Lập trình, trực tuyến * Ghi chú: Được tái sử dụng mã nguồn có máy tính sử dụng để thi Giả định kịch em phát triển phần mềm hỗ trợ quản lý hệ thống thông tin lớn bao gồm nhiều dịch vụ có mối quan hệ phụ thuộc Về dịch vụ biết thiệt hại ước lượng riêng cho dịch vụ xảy cố/tạm ngừng hoạt động, danh sách dịch vụ phụ thuộc vào dịch vụ Chúng ta định nghĩa quan hệ phụ thuộc dịch vụ quan hệ chiều, dịch vụ A phụ thuộc vào dịch vụ B nghĩa B ngừng hoạt động A ngừng hoạt động theo, khơng có chiều ngược lại (trong phạm vi quan hệ A ngừng hoạt động B hoạt động được) I Mô tả liệu đầu vào Thông tin cấu trúc hệ thống cho tệp văn dichvu.txt với cấu trúc sau: II Mô tả u cầu Chương trình có chức sau: - Giới thiệu tác giả [1 đ] Chương trình in thơng tin sinh viên thực chương trình bao gồm STT (theo bảng điểm), Họ Tên, MSSV - Đếm số cặp phụ thuộc trực tiếp [1 đ] Chương trình xuất số lượng cặp dịch vụ phụ thuộc trực tiếp - Tìm rủi ro cực đại [1 đ] Chương trình xuất tất dịch vụ có thiệt hại tính riêng trường hợp xảy cố lớn - Tìm danh sách dài [1 đ] Chương trình xuất tất danh sách phụ thuộc có độ dài lớn - Kiểm tra lan truyền [2 đ] Chương trình hỏi người dùng nhập vào tên dịch vụ khác nhau, sau in YES dịch vụ thứ phụ thuộc vào dịch vụ thứ kể trực tiếp gián tiếp Chương trình in NO ngược lại - Tính tổng thiệt hại [2 đ] Chương trình hỏi người dùng nhập vào tên dịch vụ, sau xuất tổng thiệt hại trường hợp xảy cố với dịch vụ nhập vào, tính dịch vụ bị ảnh hưởng trực tiếp gián tiếp - Tìm tổng thiệt hại lớn [1 đ] Chương trình đưa tất dịch vụ có tổng thiệt hại lớn trường hợp cố với tổng thiệt hại lớn Ngồi chức liệt kê Chương trình cần cung cấp giao diện người dùng theo hình thức danh mục chức mơi trường dịng lệnh Sau thực chức năng, người dùng tiếp tục lựa chọn thực chức khác theo danh mục, lựa chọn chương trình [1 đ] *Gợi ý: char ***, cgraph_get_shortest_path, cgraph_simple_bfs III Các yêu cầu khác Đường dẫn tệp Các tệp chứa liệu đầu vào nằm thư mục với tệp thực thi Mã nguồn biên dịch Tất mã nguồn phải nằm thư mục với tên Họ Tên sinh viên với MSSV - thư mục dự án Hướng dẫn biên dịch môi trường Linux (Ubuntu) phải cung cấp tệp README nằm thư mục dự án Để nộp sinh viên nén thư mục dự án thành tệp zip, bổ xung thêm số phiên vào tên tệp Sinh viên nộp nhiều lần nhiều phiên khác nhau, giảng viên mặc định chấm phiên Giải phóng nhớ cấp phát động Chương trình phải giải phóng nhớ cấp phát động sau sử dụng GV Ra đề TS Nguyễn Bá Ngọc Minh họa chức Các kết thực chương trình với liệu đề bài: Chức - Giới thiệu tác giả Chương trình sinh viên Nguyễn Văn A có STT = 1, MSSV = 12356 in thông tin sau: STT: Họ Tên: Nguyễn Văn A MSSV: 12356 Chức - Đếm số cặp phụ thuộc trực tiếp Chương trình xuất hình: Chức - Tìm rủi ro cực đại Chương trình xuất hình: ads 200000 Chức 4- Tìm danh sách dài Chương trình xuất hình: auth messenger ads recommender ads news Chức - Kiểm tra lan truyền Nếu nhập auth recommender chương trình in YES Bởi auth ngừng hoạt động dẫn đến messenger ngừng hoạt động, messenger ngừng hoạt động dẫn đến recommender ngừng hoạt động Nếu nhập messenger auth chương trình in NO Chức - Tính tổng thiệt hại Nếu nhập messenger chương trình in 390000 Bởi messenger ngừng hoạt động kéo theo recommender, ads news ngừng hoạt động Tổng thiệt hại 100000 + + 200000 + 90000 = 390000 Chức - Tìm tổng thiệt hại lớn Chương trình in auth 400000 Bởi auth ngừng hoạt động kéo theo tất dịch vụ ngừng hoạt động, tổng thiệt hại 400000 ~Hết~ - ... MSSV = 123 56 in thông tin sau: STT: Họ Tên: Nguyễn Văn A MSSV: 123 56 Chức - Đếm số cặp phụ thuộc trực tiếp Chương trình xuất hình: Chức - Tìm rủi ro cực đại Chương trình xuất hình: ads 20 0000... [2 đ] Chương trình hỏi người dùng nhập vào tên dịch vụ khác nhau, sau in YES dịch vụ thứ phụ thuộc vào dịch vụ thứ kể trực tiếp gián tiếp Chương trình in NO ngược lại - Tính tổng thiệt hại [2. .. messenger ngừng hoạt động kéo theo recommender, ads news ngừng hoạt động Tổng thiệt hại 100000 + + 20 0000 + 90000 = 390000 Chức - Tìm tổng thiệt hại lớn Chương trình in auth 400000 Bởi auth ngừng