c语言答题程序设计
項目設計:
單位:
懷化學院計算機科學與工程學院
計算機科學與技術專業(yè)
| 班級,組號 | 1901班,第二組 |
| 團隊名稱 | 我行,我C! |
| 組員 | 袁年財(組長),王樂,楊令 |
| 課題 | 多功能測驗程序 |
一、課程設計題目基本要求介紹
功能模塊一:登錄
1)連接服務器,限制賬號要以10位學號+姓名的方式登錄,否則就重新登錄
2)登錄成功后將基本信息發(fā)送給服務器
3)登錄成功后將窗口標題修改為賬號名
功能模塊二:預備工作
1)修改窗口名之后,輸出測驗相關的提示信息、限時信息等
2)生成以用戶名命名的TXT文件
3)輸出測驗的相關提示信息(如限時與限 題)
4)答題前倒計時5秒(若為單機版聯(lián)系版,可由用戶自行設定)
功能模塊三:答題與記錄
1)從題庫中抽取隨機不重復的題(按一定的難易比例抽取)
2)輸出相應的題號與題目
3)提示用戶輸入答案
4)處理用戶的答案去掉開頭的誤輸空格與回車,還有中間的空格
5)判斷用戶答案正誤,輸出比較結果,正確則用綠色表示,錯誤則用紅色表示(便于用戶識別)
6)同時輸出所耗時間,所耗總時間,以答題數(shù),正確題數(shù)
7)并將以上答題的過程信息記錄至TXT文檔之中
8)超時或者答完所有題之后,輸出總成績與評價,但不關閉程序,由用戶自行輸入一定指令后退出程序
功能模塊四:上傳成績
1)若考生成績達到某個級別,將生成【學生基本_EXAM.TXT】在服務器之下,記錄保存。
——————————————————————————————————————
二、流程圖
——————————————————————————————————————
三、項目進展
已實現(xiàn)功能:
1、連接服務器
①實現(xiàn)思想:利用Socket
②核心代碼:如下
③效果圖:
2、發(fā)送信息至服務器
①實現(xiàn)思想:從標準輸入讀取要發(fā)送的數(shù)據
②核心代碼:如下
//向服務器發(fā)送消息ret = send(sClient , array , strlen(array) , 0);//其中array為你想要發(fā)送到服務器的信息所存放的數(shù)組if (ret == 0) {break;}else if (ret == SOCKET_ERROR) {printf("send() 失敗: %d\n" , WSAGetLastError());break;}`③效果圖:
3、限制賬號要以10位學號+姓名的方式登錄,否則重新登錄
①實現(xiàn)思想:判斷前十位是否為數(shù)字即可
②核心代碼:如下
③效果圖:
4、將窗口標題修改為賬號名
①實現(xiàn)思想:調用庫函數(shù)SetConsoleTitle
②核心代碼:如下
③效果圖:
5、生成TXT文件,并向其中輸入答題過程信息
①實現(xiàn)思想:實現(xiàn)對文件的創(chuàng)建、打開和關閉并向其中輸入信息
②核心代碼:如下
③效果圖:
6、每次答完題后都將內容輸入至文件中
①實現(xiàn)思想:在每答完一道題之后清空緩沖區(qū),以保證答題過程信息及時的記錄其中
②核心代碼:如下
③效果圖:
7、可限制時間答題
①實現(xiàn)思想:利用時間函數(shù)
②核心代碼:如下
③效果圖:
8、從題庫中隨機抽題
①實現(xiàn)思想:產生隨機數(shù)
②核心代碼:如下
③效果圖:
以下只是產生隨機數(shù)的例子并不是上面的程序執(zhí)行的結果,用于抽題時,則表現(xiàn)為每出一道的題都為隨機抽取
9、去除用戶開頭誤輸?shù)目崭?、回車和答案中的空?/strong>
①實現(xiàn)思想:運用getschar
②核心代碼:如下
③效果圖:
10、用不同的顏色輸出相關信息
①實現(xiàn)思想:調用庫函數(shù)
②核心代碼:如下
③效果圖:如圖可見到多種顏色,便于識別的同時不至于顯得單調
11、設置相應的評分標準
①實現(xiàn)思想:利用分支語句
②核心代碼:如下
③效果圖:
12、將改顏色的函數(shù)、輸出的函數(shù)和輸入信息至文檔的函數(shù)封裝為一個函數(shù)
①實現(xiàn)思想:參照鏈接:此處為示例封裝函數(shù)的地址
②核心代碼:如下
③效果圖:
—————————————————————————————————————
四、項目未完成的功能
正在實現(xiàn)功能:
1.按百分比輸出難題和簡單的題
還未實現(xiàn),仍然需要時間去摸索更為的簡便方法
今后打算實現(xiàn)的功能::
1.若考生成績達到某個級別,將發(fā)送到服務器的答題過程信息保存在服務器下
還需要系統(tǒng)的學習關于網絡編程的相關知識,并靈活運用
——————————————————————————————————————
五、項目版本更新日志
| V2.0.1 | 實現(xiàn)了聯(lián)機版:可以自定義連接服務器,并向服務器發(fā)送一定的信息 | 袁年財 | 11/24/ 02:10 | 5% |
| V1.5.5 | 答完題后顯示評分細則 | 王樂 | 11/23/ 22:30 | 3.4% |
| V1.5.4 | 在用戶答完題后,按任意鍵不會退出,在輸入一定內容后才可退出 | 王樂,袁年財 | 11/23/ 23:30 | 4.2% |
| V1.5.3 | 精確判斷學號格式只能是 1(8或9)00130XXX 的形式使程序僅限于計院的18和19級學生使用 | 袁年財 | 11/23/ 19:30 | 4.2% |
| V1.5.2 | 優(yōu)化了文件輸入功能,可在答完每一道題后,將答題過程信息輸入至文件夾文件夾,以防在失誤關閉程序后答題過程信息丟失 | 袁年財 | 11/23/ 18:30 | 4.2% |
| V1.5.1 | 優(yōu)化了界面,在完成準備流程后的答題前清空屏幕 | 楊令 | 11/22/ 12:20 | 4.2% |
| V1.5.0 | 優(yōu)化了題庫,利用分割數(shù)組的方法將答案與原題綁在一起,便于添加題目,同時又可防止比較答案時題目與答案錯位 | 袁年財 | 11/22/ 1:10 | 4.2% |
| V1.4.6 | 在題庫中新增了大量難題和易題 | 楊令 | 11/21/18:10 | 4.2% |
| V1.4.5 | 完善了防誤輸功能,可以防止因用戶在答題時在開頭誤輸回車而導致答題錯誤 | 袁年財 | 11/21/18:10 | 4.2% |
| V1.4.4 | 在用戶輸入學號+姓名之后,判定學號格式是否為10位數(shù)字的格式 | 袁年財 | 11/21/ 9:30 | 4.2% |
| V1.4.3 | 新增了評級判定功能 | 王樂 | 11/20/20:50 | 4.2% |
| V1.4.2 | 增加了防誤輸功能,防止因用戶在答案中誤輸空格而導致答題錯誤 | 袁年財 | 11/19/18:10 | 2.6% |
| V1.4.1 | 新增了記錄用戶答題過程信息,并記錄在相應路徑的以用戶名為名的TXT文件中 | 王樂 | 11/18/21:12 | 4.2% |
| V1.3.2 | 新增了輸入用戶信息之后,將窗口改為用戶名 | 袁年財 | 11/18/21:12 | 4.2% |
| V1.3.1 | 完善了計時功能,每答出一道題后輸出所用總時間的同時,輸出回答該題所用時間 | 袁年財 | 11/17/20:40 | 4.2% |
| V1.3.0 | 新增更改字體顏色函數(shù),使程序在視覺上不會過于單調 | 袁年財 | 11/17/18:30 | 4.2% |
| V1.2.1 | 新增了開始答題前倒計時5秒功能 | 袁年財 | 11/17/16:10 | 4.2% |
| V1.2.0 | 新增計時功能:每答出一道題輸出總時間。新增了每次回答題目后都輸出已答對提數(shù) | 王樂,袁年財 | 11/17/13:30 | 4.2% |
| V1.1.1 | 完善隨機出題功能:不再重復出相同的題 | 袁年財 | 11/16/21:09 | 4.2% |
| V1.1.0 | 新增隨機出題功能(可能重復),顯示完成題目后的總成績 | 袁年財 | 11/16/13:36 | 5% |
| V1.0.0 | 完成簡單答題程序總架構 | 袁年財 | 11/16/13:00 | 5% |
| 總計 | 共發(fā)布21個版本 | \ | 耗時8天 | 共完成90% |
—————————————————————————————————————
六、課程設計報告
鏈接:此鏈接為此次項目的課程設計報告PPT
—————————————————————————————————————
七、每位成員的過程體會
1:袁年財:
自我感悟: 在這次的項目中,我確實是收益頗豐啊!我在不斷的調用、定義中加深了對函數(shù)的理解,同時也更為體會到了指針的魅力。
在敲幾百行代碼的過程中我意識到了結構化程序的重要性,以及宏定義的方便性。在開始任務之前老師讓我們寫出了任務需求表和流程圖以及函數(shù)詳細設計表,開始時我還覺得沒有什么太大的必要性,而在開始任務的過程中,我便越發(fā)覺得老師的明智,當你在敲代碼時經常會需要問接下來需要做什么,而在寫出了任務需求表及其流程圖之后,你會覺得任務極其的明確,絲毫不會覺得自己像一個無頭蒼蠅??偟膩碚f在這次項目中是受益良多,回味無窮!
自我檢討: 在這次的項目中,我有個極大的缺點就是包攬了太多的任務,導致自己經常熬夜敲代碼,絲毫沒有團隊意識,沒有學會和隊友們分擔作業(yè),這是我在擔任組長這個位置的極大失責。
2:王樂:
我的體會是:剛開始時是最難的,沒有思緒和目標,然后在寫需求分析的時候有了一點想法,后面我在敲文件的輸入輸出時,總是有錯誤,然后回過頭把書看一遍,總之:書讀百遍其義自見,然后我想說的是,我們第二組最優(yōu)秀!
3:楊令:
過程體會:編寫這個程序時,我只做了很少一部分。但還是感覺挺難搞的。在編寫過程中也參與得少,但是我感覺我們的程序還棒的。希望下次能多參與這些偏程。給自己加個油。
—————————————————————————————————————
八、最后
這篇博文,只是供大家大致的參考,其中貼上的代碼,是其中重要函數(shù)的代碼,如果有博友對這個多功能答題程序想要更為詳細的了解,或者提出寶貴的意見的話,歡迎大家評論在下方!
總結
- 上一篇: mnist数据集百度云链接
- 下一篇: 显卡知识简介