これがベトナム大学院の実態だ!

Trường Đại Học Bách Khoa Thành Phố Hồ Chí Minhの大学院修士課程に社会人入学

Mạng máy tính 期末試験対策

過去問は配布されているんで自動化ソフトを作ろう。
まずはsqliteでデータベースを準備しておく。
ファイル名はMa_exam.dbとする。

テーブル作成

create table exam(
	 id integer
	,question text
	,japanese text
	,selectionA text
	,selectionB text
	,selectionC text
	,selectionD text
	,answer text
);

データ挿入

insert into exam values(1, 'Trong các ứng dụng hội thoại trực tuyến (video conferencing), thông số nào là quan trọng nhất để đảm bảo chất lượng dịch vụ tối ưu?', 'ビデオ会議アプリケーションでは、最適なサービス品質を確保するためにどのパラメーターが最も重要ですか?', 'Độ tin cậy (Reliability).', 'Phần mềm tiện lợi (Software).', 'Thiết bị chất lượng tốt (Devices).', 'Độ trễ của dữ liệu (Delay).', 'D');
insert into exam values(2, 'Phương pháp nào dùng để ngăn chặn các thâm nhập trái phép từ mạng và có thể lọc bỏ các gói tin?', 'ネットワークからの不正アクセスを防ぐためにどのような方法が使用され、パケットをフィルタリングできますか?', 'Encryption', 'Bảo vệ hạ tầng vật lý', 'Firewall', 'Login/ password', 'C');
insert into exam values(3, 'Giả sử ta có một gói tin truyền từ host A đến host B thông qua bộ chuyển mạch (switch). Tốc độ truyền dữ liệu từ A đến switch là R1 và từ switch đến B là R2. Tổng thời gian để chuyển hết gói tin có chiều dài là L từ A đến B là bao nhiêu ? (bỏ qua tất các thời gian trễ tại switch và thời gian lan truyền tín hiệu trong dây dẫn)', 'スイッチを介してホストAからホストBに送信されたパケットがあるとします。 Aからスイッチへのデータ転送速度はR1で、スイッチからBへのデータ転送速度はR2です。 AからBまでの長さLのパケットを完了するための合計時間はどれくらいですか? (スイッチでのすべての遅延時間とコンダクターでの信号伝搬時間を無視します)', 'L /(R1+R2)', 'L/R1 + L/R2', '(R1 + R2) /L', 'R1/L + R2/L', 'B');
insert into exam values(4, 'Mạng chuyển mạch có ưu điểm gì so mới mạng chuyển gói?', 'パケットスイッチングネットワークを超えるスイッチングネットワークの利点は何ですか?', 'Không có ưu điểm gì nổi trội so với mạng chuyển gói', 'Có khả năng đảm bảo lượng băng thông nhất định cho mỗi kết nối', 'Có thể cho phép số lượng người sử dụng lớn hơn', 'Có khả năng bảo mật cao', 'B');
insert into exam values(5, 'TDM ưu điểm gì so với FDM trong mạng chuyển mạch?', 'スイッチドネットワークでTDMがFDMより優れている点は何ですか?', 'Không đòi hỏi yêu cầu cao về phần cứng so với FDM', 'Không có ưu điểm gì so với FDM', 'Tốc độ truyền dẫn nhanh hơn', 'Đảm bảo được độ trễ', 'A');
insert into exam values(6, 'Giả sử ta có host A gửi một file 4000000 byte đến host B. Đường đi từ A đến B gồm 3 liên kết (link) tương ứng với tốc độ truyền dẫn R1 = 500 kbps, R2 = 2 Mbps và R3 = 1 Mbps. Bạn hãy cho biết mất bao lâu để gói tin đi đến B (trong điều kiện không có host nào khác tham gia đường truyền, bỏ qua thời gian đợi ở các router và thời gian lan truyền dữ liệu trong dây dẫn)?', 'ホストAがファイル4000000バイトをホストBに送信するとします。AからBへのパスは、伝送速度R1 = 500 kbps、R2 = 2 Mbps、R3 = 1 Mbpsに対応する3つのリンク(リンク)で構成されています。 パケットがBに到達するまでにかかる時間を教えてください(他のホストがリンクに参加しない場合、ルーターでの待機時間とワイヤでのデータ送信時間を無視します)?', '64 giây', '20 giây', '256 giây', '16 giây', 'A');
insert into exam values(7, 'Hãy cho biết đâu là thứ tự các tầng theo thứ tự từ trên xuống dưới (top-down) trong mô hình Internet:', 'インターネットモデルのトップダウンの順序は何ですか?', 'Message, Segment, Datagram, Fragment, Physical', 'Application, Transport, Network, Data Link, Physical', 'Physical, Link, Network, Transport, Application', 'Physical, Fragment, Datagram, Segment, Message', 'B');
insert into exam values(8, 'Phát biểu nào sau đây SAI khi đề cập đến ứng dụng chia sẻ file P2P:', 'P2Pファイル共有アプリケーションを参照する場合、次のステートメントのうちどれが偽ですか', 'Các máy trong mạng P2P không có vai trò server hay client một cách rõ ràng', 'Các máy trong mạng P2P có vai trò tương tự nhau, nhưng phải có một số máy chạy thường trực', 'Các máy trong mạng P2P đều có server process và client process', 'Cả (A), (B) và (C) đều sai', 'B');
insert into exam values(9, 'Lý do nào trong các lý do sau giải thích cho Câu hỏi “Tại sao các ứng dụng sử dụng giao thức HTTP, POP3, SMTP ở tầng ứng dụng phù hợp hơn với giao thức TCP ở tầng Vận chuyển so với giao thức UDP?”', '次のうち、「アプリケーション層でHTTP、POP3、SMTPプロトコルを使用するアプリケーションが、UDPプロトコルと比較してトランスポート層でTCPプロトコルにより適しているのはなぜですか」という質問の説明はどれですか。', 'Tất cả các ứng dụng trên đều đòi hỏi dữ liệu phải Vận chuyển theo thứ tự và không bị mất gói', 'Tất cả các ứng dụng trên do người lập trình tạo ra', 'Dữ liệu của tất cả các ứng dụng trên cần được bảo mật', 'Cả (A), (B) và (C) đều sai.', 'A');
insert into exam values(10, 'Giả sử rằng bạn An đăng nhập vào email của trường ĐH Bách khoa thông qua trình duyệt Web để gửi thư cho Bình, Bình thường đọc mail trên điện thoại thông qua ứng dụng sử dụng giao thức POP3 để kết nối với mail server. Bạn hãy cho biết đâu là giao thức ở tầng Vận chuyển (Transport) được sử dụng trong tình huống trên?', 'An氏がWebブラウザ経由でPolytechnic Universityの電子メールにログインしてBinhにメールを送信したと仮定すると、通常、POP3プロトコルを使用するアプリケーションを介して電話でメールを読み取り、メールサーバーに接続します。 上記のシナリオで使用されるトランスポート層プロトコルは何ですか?', 'UDP', 'TCP', 'Cả UDP và TCP', 'Không dùng UDP lẫn TCP', 'B');
insert into exam values(11, 'Giao thức TCP có thể kế hợp với giao thức SSL để cung cấp dịch vụ bảo mật thông tin từ tiến trình đến tiến trình (process to process) bằng cách mã hóa thông tin. Bạn hãy cho biết SSL được hiện thực tại tầng nào trong các tầng sau:', 'TCPをSSLと組み合わせて、情報を暗号化することでプロセスごとに情報セキュリティを提供できます。 次のレイヤーに実装されるSSLのレベルを指定してください', 'Tầng ứng dụng', 'Tầng vận chuyển', 'Tầng mạng', 'Tầng data link', 'A');
insert into exam values(12, 'Một TCP server cần bao nhiêu socket để có thể hỗ trợ đồng thời N kết nối từ N client khác nhau?', 'TCPサーバーは、異なるNクライアントからのNの同時接続をサポートするためにいくつのソケットを必要としますか?', '1', 'n', 'n + 1', 'Không xác định', 'C');
insert into exam values(13, 'HTTP Client muốn tải nội dụng của một trang Web theo địa chỉ URL với tên miền xác định, nhưng địa chỉ IP tương ứng với URL chưa được xác định. Bạn hãy cho biết giao thức nào được sử dụng ở tầng Vận chuyển trong trường hợp này để xác định địa chỉ IP tương ứng với trang Web?', 'HTTPクライアントは、指定されたドメイン名を持つURLにWebページのコンテンツをダウンロードしようとしていますが、URLに対応するIPアドレスは決定されていません。 この場合、Webサイトに対応するIPアドレスを決定するためにトランスポート層で使用されるプロトコルを教えてください。', 'UDP', 'TCP', 'Có thể UDP hoặc TCP', 'DNS và TCP', 'C');
insert into exam values(14, 'Dịch vụ DNS sẽ được sử dụng khi bạn sử dụng trình duyệt Web để truy cập vào trang Web theo một địa chỉ URL lần đầu tiên. Giả sử rằng n DNS server được truy vấn trước khi trình duyệt của bạn nhận được địa chỉ IP từ hệ thống DNS với thời gian truy vấn lần lượt là RTT1, RTT2,…RTTn và RTT0 là Round Trip Time (RTT) giữa trình duyệt Web và server chứa trang Web. Bạn hãy cho biết sau bao nhiêu lâu bạn sẽ có được nội dung của trang Web nếu trên trang Web đó chỉ có một đoạn văn nhỏ với 20 ký tự?', 'DNSサービスは、Webブラウザーを使用してURLのWebサイトに初めてアクセスするときに使用されます。 ブラウザがRTT1、RTT2などのクエリ時間でDNSシステムからIPアドレスを受信する前に、n DNSサーバーが照会されると仮定します。RTTnとRTT0はブラウザ間の往復時間(RTT)です。 WebおよびサーバーにはWebページが含まれています。 20文字の小さな段落しかない場合、Webサイトのコンテンツを取得するのにどれくらい時間がかかりますか?', 'RTT0 + RTT1 + …+ RTTn', '2RTT0 + RTT1 + .. RTTn', 'RTT1 + RTT2 + …+ RTTn', 'RTT0', 'B');
insert into exam values(15, 'Chọn phát biểu ĐÚNG:', '正しいのはどれか。', 'Khi người dùng sử dụng Web browser để truy cập vào một trang Web có một vài dòng văn bản và 4 tấm hình thì Web browser chỉ gửi một nội dung yêu cầu đến server và sẽ nhận được 5 nội dung phản hồi từ server tương ứng với các đối tượng trên trang Web đó.', 'Nội dung phản hồi trong gói tin HTTP trả lời từ server (HTTP response) đến Web browser sẽ luôn luôn có nội dung (phần body sẽ luôn luôn có dữ liệu).', 'Nội dung của hai đối tượng khác nhau của một trang Web có thể được gửi từ Web server về Web browser trên cùng một kết nối TCP .', 'Cả (A), (B) và (C) đều sai.', 'C');
insert into exam values(16, 'Hãy cho biết những giá trị của địa chỉ IP và cổng trong gói tin trả về từ phía server đến client A?', 'サーバーからクライアントAに返されるパケットのIPアドレスとポートの値は何ですか?', 'cổng nguồn: 80, IP nguồn: B; cổng đích: 26145, IP đích: A', 'cồng nguồn: 26145, IP nguồn: A; cổng đích 80, IP đích: B', 'cổng nguồn 80, IP nguồn: A; cổng đích: 26145, IP đích: B', 'cổng nguồn 80, IP nguồn C; cổng đích: 7532, IP đích: B ', 'A');
insert into exam values(17, 'Giả sử host A gửi 2 TCP segment kế tiếp nhau cho host B. Segment thứ nhất có SEQ là 120, segment thứ 2 có SEQ là 140. Bạn hãy cho biết có bao nhiêu byte dữ liệu trong segment thứ nhất?', 'ホストAが2つの連続したTCPセグメントをホストBに送信するとします。最初のセグメントのSEQは120、2番目のセグメントのSEQは140です。最初のセグメントには何バイトのデータがありますか?', '120 byte', '20 byte', '140 byte', 'Không xác định', 'B');
insert into exam values(18, 'Giả sử host A gửi 2 segment kế tiếp nhau cho host B theo qua kết nối TCP. Segment thứ nhất có SEQ là 100, segment thứ 2 có SEQ là 110. Gói tin thứ nhất không đến được B, nhưng gói tin thứ 2 đến được B. Bạn hãy cho biết giá trị ACK được host B trả về cho host A khi nhận được gói tin thứ 2 là bao nhiêu?', 'ホストAがTCP接続を介して2つの連続したセグメントをホストBに送信するとします。 最初のセグメントのSEQは100、2番目のセグメントのSEQは110です。最初のパケットはBに到達できませんが、2番目のパケットはBに到達します。 受信した2番目のパケットは何ですか?', '100', '101', '110', '111', 'A');
insert into exam values(19, 'Chọn phát biểu ĐÚNG trong các phát biểu sau:', '正しいのはどれか。', 'Host A gửi dữ liệu cho host B thông qua kết nối TCP. Nếu host B không có dữ liệu gửi cho host A thì sẽ không có bất kỳ gói dữ liệu từ host B gửi về host A.', 'Kích thước của gói tin TCP (segment) không bao giờ thay đổi trong suốt thời gian kết nối.', 'Khi gửi dữ liệu từ host A đến host B thông qua kết nối TCP thì kích thước của gói dữ liệu (segment) không được lớn hơn kích thước bộ nhớ đệm dùng để tiếp nhận dữ liệu của host B.', 'Khi gửi dữ liệu từ host A đến host B thông qua kết nối TCP, nếu số SEQ của segment X là m thì số thứ tự của segment tiếp theo X phải là m + 1.', 'C');
insert into exam values(20, 'Host A và host B trao đổi dữ liệu thông qua kết nối TCP và host B đã nhận được tất cả các byte dữ liệu từ 0 cho đến byte thứ 126 từ host A. Giả sử rằng host A sau đó gửi 2 segment kế tiếp nhau cho host B chứa lần lượt 80 byte và 40 byte dữ liệu. Trong segment đầu tiên có số SEQ là 127, số cổng nguồn là 3033 và số cổng đích là 80. Bạn hãy cho biết segment thứ 2 từ host A gửi về cho host B có chứa SEQ, cổng nguồn, cổng đích là bao nhiêu?', 'ホストAとホストBはTCP接続を介してデータを交換し、ホストBは0からホストAから126番目のバイトまでのすべてのデータバイトを受信します。その後、ホストAは2つの連続したセグメントを送信するとします ホストBには、それぞれ80バイトと40データバイトが含まれます。 最初のセグメントには、127のSEQ番号があり、送信元ポート番号は3033、宛先ポート番号は80です。SEQ、送信元ポート、宛先ポートを含むホストAからホストBに送信される2番目のセグメントを教えてください。', 'SEQ: 207, cổng nguồn: 3033, cổng đích: 80', 'SEQ: 207, cổng nguồn: 80, cổng đích: 3033', 'SEQ: 247, cổng nguồn: 3033, cổng đích: 80', 'SEQ: 247, cổng nguồn: 80, cổng đích: 3033', 'A');
insert into exam values(21, 'Host A và host B trao đổi dữ liệu thông qua kết nối TCP và host B đã nhận được tất cả các byte dữ liệu từ 0 cho đến byte thứ 126 từ host A. Giả sử rằng host A sau đó gửi 2 segment kế tiếp nhau cho host B chứa lần lượt 80 byte và 40 byte dữ liệu. Trong segment đầu tiên có số SEQ là 127, số cổng nguồn là 3033 và số cổng đích là 80. Nếu host B nhận được phân đoạn thứ 2 trước khi nhận phân đoạn thứ nhất thì trong gói tin trả về cho host A có ACK bằng bao nhiêu?', 'ホストAとホストBはTCP接続を介してデータを交換し、ホストBは0からホストAから126番目のバイトまでのすべてのデータバイトを受信します。その後、ホストAは2つの連続したセグメントを送信するとします ホストBには、それぞれ80バイトと40データバイトが含まれます。 最初のセグメントには、127のSEQ番号があり、送信元ポート番号は3033、宛先ポート番号は80です。ホストBが最初のセグメントを受信する前に2番目のセグメントを受信すると、ホストAに返されるパケットのACKは いくらですか?', '127', '207', '247', '167', 'A');
insert into exam values(22, 'Giả sử ta có 3 giá trị tương ứng của SampleRTT theo thứ tự lần lượt là 106 ms, 120 ms, 140 ms. Bạn hãy cho biết giá trị EstimatedRTT của lần sau cùng là bao nhiêu, nếu ta biết được giá trị alpha = 0.125, EstimatedRTT của lần gửi trước khi gửi gói đầu tiên trong 3 gói trên là 100ms?', 'SampleRTTに対応する3つの値、それぞれ106ミリ秒、120ミリ秒、140ミリ秒があるとします。 アルファの値= 0.125がわかっている場合、前回のEstimatedRTT値を教えてください。上記の3つのパッケージの最初を送信する前のEstimatedRTTは100ミリ秒ですか?', '106,71 ms', '105,45 ms', '107,67 ms', '103,15 ms', 'A');
insert into exam values(23, 'Giả sử ta có 2 giá trị tương ứng của SampleRTT theo thứ tự lần lượt là 106 ms, 120 ms. Bạn hãy cho biết giá trị DevRTT của lần sau cùng là bao nhiêu, nếu ta biết được giá trị alpha = 0.125, beta = 0.25, EstimatedRTT, DevRTT của lần gửi trước khi gửi gói đầu tiên trong 2 gói trên tương ứng là 100ms và 5 ms?', 'SampleRTTに対応する2つの値、それぞれ106ミリ秒、120ミリ秒があるとします。 alpha = 0.125、beta = 0.25、EstimatedRTT、2つのパッケージの最初を送信する前の最初の送信のDevRTTの値がそれぞれ100ミリ秒であることがわかっている場合、前回のDevRTTの値を教えてください 5 ms?', '8 ms', '5 ms', '0,12 ms', '10 ms', 'A');
insert into exam values(24, 'Giả sử server A nhận được một yêu cầu từ client B thông qua UDP datagram và server cũng phản hồi lời yêu cầu đó bằng một gói tin thông qua UDP datagram. Nếu client B sử dụng IP giả mạo Y thay vì sử dụng IP thật là X thì server A sẽ gửi gói tin phản hồi về IP nào?', 'サーバーAがクライアントBからUDPデータグラムを介してリクエストを受信し、サーバーがUDPデータグラムを介してパケットでそのリクエストに応答するとします。 クライアントBが実際のIP Xを使用する代わりに偽のIP Yを使用する場合、どのIPサーバーが応答パケットを送信しますか?', 'IP Y', 'Server không gửi được gói tin về client vì xác định được IP giả mạo', 'IP X', 'Server không phản hồi yêu cầu vì đó là gói tin UDP', 'A');
insert into exam values(25, 'Hãy cho biết sự khác nhau cơ bản giữa router và link-layer switch:', 'ルーターとリンク層スイッチの基本的な違いを教えてください', 'Trong router gói tin được chuyển đi dựa vào địa chỉ IP, trong link-layer switch gói tin được chuyển đi dựa vào địa chỉ MAC.', 'Bảng định tuyến trong router do người quản trị thiết lập, bảng định tuyến trong link-layer switch do nhà sản xuất thiết lập.', 'Trong router có bảng map giữa cổng ra và IP, trong link-layer switch không có bảng map giữa MAC và cổng ra.', 'Router và link-layer switch là một.', 'A');
insert into exam values(26, 'Host A kết nối với host B thông qua 3 router. Một gói tin IP datagram được gửi từ host A tới host B sẽ đi qua bao nhiêu network interface nếu bỏ qua việc phân mảnh IP daragram.', 'ホストAは3つのルーターを介してホストBに接続します。 IPダラグラムの断片化が無視された場合、ホストAからホストBに送信されるIPデータグラムパケットは、いくつのネットワークインターフェイスを通過します。', '8', '6', '4', '2', 'A');
insert into exam values(27, 'Host A kết nối với host B thông qua 3 router. Có bao nhiêu bảng định tuyến (forwarding table) được sử dụng để chuyển một gói tin IP datagram được gửi từ host A tới host B.', 'ホストAは3つのルーターを介してホストBに接続します。ホストAからホストBに送信されたIPデータグラムパケットを転送するために使用される転送テーブルの数。', '1', '2', '3', '4', 'C');
insert into exam values(28, 'Phát biểu nào sau đây SAI khi nói về IPv6 header:', 'IPv6ヘッダーについて話すとき、次のステートメントのどれが間違っているか', 'Độ dài của IPv6 header thay đổi tùy theo kích thước gói tin.', 'Header của IPv6 có ít trường dữ liệu hơn header của IPv4.', 'Header của IPv6 sử dụng 128 bit để chứa địa chỉ của nguồn.', 'Cả (A), (B) và (C) đều đúng.', 'A');
insert into exam values(29, 'Phát biểu nào sau đây ĐÚNG khi đề cập đến các router trong cùng một AS (Autonomous System):', '同じAS(自律システム)内のルーターを参照する場合に当てはまるのは次のうちどれですか', 'Các router dùng chung giao thức định tuyến trong nội bộ AS (intra-AS routing protocol).', 'Các router có chung giao thức định tuyến đi ra ngoài AS (extra-AS routing protocol).', 'Các router có chung chi phí khi đi ra ngoài AS.', 'Cả (A), (B) và (C) đều sai.', 'A');
insert into exam values(30, 'Phát biểu nào sau đây là ĐÚNG khi đề cập đến giao thức định tuyến OSPF:', 'OSPFルーティングプロトコルを参照するときに、次のステートメントのいずれがTRUEであるか', 'Router sẽ gửi gói tin quảng bá thông tin định tuyến đến tất cả các router khác trong cùng AS', 'Router chỉ gửi gói tin quảng bá thông tin định tuyến đến các router hàng xóm của nó', 'Router sẽ gửi gói tin quảng bá thông tin định tuyến ra các router ngoài AS', 'Router chỉ gửi gói tin quảng bá thông tin cho những router nào mới gia nhập vào AS', 'A');

同じフォルダにma_exam_gui.pyという名前でプログラムを作成。

'''
python ma_exam_gui.py
'''
import sqlite3
import random
import tkinter
from tkinter import messagebox

# function
def getQuery(seq):
	cur = con.cursor()
	sql = "select * from exam where id = " + str(seq);
	cur.execute(sql)
	result = cur.fetchone()
	return result
# OKボタンを押した時 --- (*3)
def clickNext():
	quizNumber = random.randint(1, 30)
	question = getQuery(quizNumber)
	textQuestion.delete('1.0', 'end')
	textQuestion.insert(tkinter.END, question[1])
	if(textTranslation.get("1.0","end-1c") != ""):
		textTranslation.delete('1.0', 'end')
		textTranslation.insert(tkinter.END, question[2])
	buttonA["text"] = question[3]
	buttonB["text"] = question[4]
	buttonC["text"] = question[5]
	buttonD["text"] = question[6]
	textAnswer.delete('1.0', 'end')
	textAnswer.insert(tkinter.END, question[7])
def clickA():
	if(textAnswer.get("1.0","end-1c") == "A"):
		textRecord.insert(tkinter.END, "〇")
	else:
		textRecord.insert(tkinter.END, "×")
def clickB():
	if(textAnswer.get("1.0","end-1c") == "B"):
		textRecord.insert(tkinter.END, "〇")
	else:
		textRecord.insert(tkinter.END, "×")
def clickC():
	if(textAnswer.get("1.0","end-1c") == "C"):
		textRecord.insert(tkinter.END, "〇")
	else:
		textRecord.insert(tkinter.END, "×")
def clickD():
	if(textAnswer.get("1.0","end-1c") == "D"):
		textRecord.insert(tkinter.END, "〇")
	else:
		textRecord.insert(tkinter.END, "×")
# main
con = sqlite3.connect('./Ma_exam.db')
# ウィンドウを作成 --- (*1)
win = tkinter.Tk()
win.title('Mạng máy tính - ĐỀ THI CUỐI KỲ 2 NĂM HỌC 2018-2019')
win.geometry("900x480") # サイズを指定
win.option_add('*font', ('Times New Roman', 14))
textTranslation = tkinter.Text(win, height=6)
textTranslation.insert(tkinter.END, '日本語訳')
textTranslation.pack(fill = 'x')
textQuestion = tkinter.Text(win, height=6)
textQuestion.insert(tkinter.END, 'chuyển gói')
textQuestion.pack(fill = 'x')
okButton = tkinter.Button(win, text='Read', command=clickNext, anchor='w')
okButton.pack(anchor='w')
buttonA = tkinter.Button(win, text='A', command=clickA, anchor='w')
buttonA.pack(fill = 'x')
buttonB = tkinter.Button(win, text='B', command=clickB, anchor='w')
buttonB.pack(fill = 'x')
buttonC = tkinter.Button(win, text='C', command=clickC, anchor='w')
buttonC.pack(fill = 'x')
buttonD = tkinter.Button(win, text='D', command=clickD, anchor='w')
buttonD.pack(fill = 'x')
textRecord = tkinter.Text(win, height=2)
textRecord.pack(fill = 'x')
textAnswer = tkinter.Text(win, height=0, width=0)
textAnswer.pack()
# ウィンドウを動かす
win.mainloop()
con.close()