高級(jí)數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)報(bào)告_第1頁(yè)
高級(jí)數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)報(bào)告_第2頁(yè)
高級(jí)數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)報(bào)告_第3頁(yè)
高級(jí)數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)報(bào)告_第4頁(yè)
高級(jí)數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄1. 設(shè)計(jì)目的和任務(wù)12.開發(fā)環(huán)境12.1硬件環(huán)境12.2軟件環(huán)境13.設(shè)計(jì)題目13.1題目名稱13.2題目詳細(xì)描述13.3功能要求24.相關(guān)技術(shù)及知識(shí)點(diǎn)34.1 SqlConnection對(duì)象34.2 SqlCommand對(duì)象34.3 SqlDataAdapter對(duì)象44.4 DataTable對(duì)象44.5 DataSet對(duì)象55.設(shè)計(jì)與實(shí)現(xiàn)65.1登錄界面65.2教師管理界面75.3管理員管理界面125.4學(xué)生考試界面146.總結(jié)187.參考資料1918 / 20文檔可自由編輯打印1. 設(shè)計(jì)目的和任務(wù) 綜合運(yùn)用 相關(guān)知識(shí),設(shè)計(jì)一個(gè)具有實(shí)用價(jià)值的學(xué)生考試管理系統(tǒng)。 (1)鞏固和加深對(duì)本課

2、程基本知識(shí)的理解和掌握; (2)掌握C#編程和程序調(diào)試的基本技能; (3)掌握設(shè)計(jì)應(yīng)用軟件的基本思路和方法; (4)提高運(yùn)用解決實(shí)際問題的能力; (5)培養(yǎng)撰寫設(shè)計(jì)報(bào)告的能力。 2.開發(fā)環(huán)境2.1硬件環(huán)境筆記本電腦硬件概要CPU 英特爾 Genuine Intel(R) CPU T2130 1.86GHz主板Wistron - 英特爾 945PM (Calistoga-PM) + ICH7-M/U內(nèi)存金士頓 2G DDR2-SDRAM 666 MHz 顯卡nVIDIA GeForce Go 7200 (G72)主硬盤希捷 120GB 聲卡英特爾 82801GB ICH7 - High Defi

3、nition Audio B0網(wǎng)卡英特爾 PRO/Wireless 3945ABG Network Connection (HP - RoW)2.2軟件環(huán)境Microsoft Windows XP操作系統(tǒng);Microsoft SQL Server 2005;Microsoft Visual Studio 2005;3.設(shè)計(jì)題目3.1題目名稱學(xué)生考試管理系統(tǒng)3.2題目詳細(xì)描述1、登錄界面 2、新用戶注冊(cè) 3、教師管理界面 4、管理員管理界面 5、學(xué)生在線考試 3.3功能要求登錄界面 功能: 1) 用戶對(duì)應(yīng)相應(yīng)的權(quán)限進(jìn)行登錄,分教員、學(xué)生、管理員。登錄后根據(jù)選擇的權(quán)限進(jìn)入相應(yīng)的界面; 2) 輸入用

4、戶名框非空,密碼框非空,權(quán)限選擇判斷; 3) 新學(xué)員用戶注冊(cè)。注冊(cè)后需管理員激活才能登錄。教師管理界面 功能(按菜單項(xiàng)說明): 1) 試題管理,子菜單如下: 增加試題; 查詢?cè)囶}:按科目查詢?cè)囶}; 試題列表:按難度查詢?cè)囶}列表,并可增加、修改試題。 2) 考試管理,子菜單如下: 生成試卷; 試卷管理:查看試卷信息、激活/取消試卷。 3) 成績(jī)管理,按試卷名查尋成績(jī)。要算出平均分。管理員管理界面功能(按菜單項(xiàng)說明): 1) 用戶管理,子菜單如下: 新建用戶:新建學(xué)員用戶,新建教員用戶。 查詢及修改學(xué)員。 用戶信息列表,包括查詢以及教員學(xué)員信息 2) 題庫(kù)管理,管理試題庫(kù) 學(xué)生在線考試 1) 維護(hù)

5、個(gè)人信息 對(duì)個(gè)人信息進(jìn)行查詢, 修改2)在線答題。功能:可以選擇已激活試卷答題。 在線評(píng)分。 保存考試成績(jī)可供教師查詢。4.相關(guān)技術(shù)及知識(shí)點(diǎn)提供了多種對(duì)象模型,比較典型的以下有五種,它們?nèi)繗w類System.Data.SqlClient名稱空間下。4.1 SqlConnection對(duì)象使用SqlConnection對(duì)象與SQL Server進(jìn)行連接。連接字符串的常用形式有兩種:1.使用Windows集成安全身份認(rèn)證, 例如:string connectionString ="IntegratedSecurity=SSPI;Database=MySchool.mdf;Server=lo

6、calhost;"2.在連接字符串中指定服務(wù)器名、用戶id、用戶口令、數(shù)據(jù)庫(kù)名等信息。 例如:string connectionString = "server=localhost; uid=sa; pwd=123; database=MySchool.mdf"然后通過連接字符串直接創(chuàng)建SqlConnection對(duì)象,如SqlConnection conn = new SqlConnection(connectionString);4.2 SqlCommand對(duì)象 在中,有兩種操作數(shù)據(jù)庫(kù)的方式:1.無連接的方式;2.保持連接的方式。不論哪種都可以通過SqlComm

7、and對(duì)象提供的方法傳遞對(duì)數(shù)據(jù)庫(kù)操作的命令,并返回命令執(zhí)行結(jié)果。在保持連接的方式下操作數(shù)據(jù)庫(kù)的一般步驟為:1.創(chuàng)建SqlConnection的實(shí)例;2.創(chuàng)建SqlCommand的實(shí)例;3.打開連接;4.執(zhí)行命令;5.關(guān)閉連接。SqlCommand對(duì)象提供了多種完成對(duì)數(shù)據(jù)庫(kù)操作的方法。常用有:1.ExecuteNonQuery該方法執(zhí)行SQL語句的結(jié)果,但不返回命令執(zhí)行的表數(shù)據(jù),僅返回操作所影響的行數(shù)。2.ExecuteReaderExecuteReader方法提供了只向前的、順序的快速讀取數(shù)據(jù)庫(kù)中數(shù)據(jù)的方法。3.ExecuteScaler()該方法用于執(zhí)行SELECT查詢,得到的返回結(jié)果為一個(gè)

8、值的情況,比如使用count函數(shù)求表中記錄個(gè)數(shù)或者使用sum函數(shù)求和等。4.3 SqlDataAdapter對(duì)象 SqlDataAdapter對(duì)象通過無連接的方式完成數(shù)據(jù)庫(kù)和本地DataSet之間的交互。使用這種方式操作數(shù)據(jù)庫(kù)的一般步驟為:1.創(chuàng)建SqlConnection的實(shí)例;2.創(chuàng)建SqlDataAdapter的實(shí)例,需要的話,根據(jù)select語句生成其他SQL語句;3.創(chuàng)建DataSet的實(shí)例;4.使用Fill方法將數(shù)據(jù)庫(kù)中的表填充到DataSet的表中;5.利用DataGridView或者其他控件對(duì)象編輯或顯示數(shù)據(jù);6.需要的話,使用Update方法更新數(shù)據(jù)庫(kù)。SqlDataAdap

9、ter對(duì)象通過SelectCommand、InsertCommand、UpdateCommand和DeleteCommand屬性為后臺(tái)數(shù)據(jù)庫(kù)提供對(duì)應(yīng)的操作命令,并傳遞需要的參數(shù)。一般情況下,只需要提供SELECT語句和連接字符串創(chuàng)建SqlDataAdapter對(duì)象,然后利用SqlCommandBuilder對(duì)象生成InsertCommand、UpdateCommand和DeleteCommand屬性。4.4 DataTable對(duì)象 可以在與數(shù)據(jù)庫(kù)斷開連接的方式下通過DataSet或DataTable對(duì)象進(jìn)行數(shù)據(jù)處理,當(dāng)需要更新數(shù)據(jù)時(shí)才重新與數(shù)據(jù)源進(jìn)行連接,并更新數(shù)據(jù)源。DataTable對(duì)象表

10、示保存在本機(jī)內(nèi)存中的表,它提供了對(duì)表中行列數(shù)據(jù)對(duì)象的各種操作??梢灾苯訉?shù)據(jù)從數(shù)據(jù)庫(kù)填充到DataTable對(duì)象中,也可以將DataTable對(duì)象添加到現(xiàn)有的DataSet對(duì)象中。在斷開連接的方式下,DataSet對(duì)象提供了和關(guān)系數(shù)據(jù)庫(kù)一樣的關(guān)系數(shù)據(jù)模型,代碼中可以直接訪問DataSet對(duì)象中的DataTable對(duì)象,也可以添加、刪除DataTable對(duì)象。1. 創(chuàng)建DataTable對(duì)象可以通過以下兩種方式創(chuàng)建DataTable對(duì)象:1) 通過DataTable類的構(gòu)造函數(shù)創(chuàng)建DataTable對(duì)象,例如:DataTable table = new DataTable();2) 通過Data

11、Set的Tables對(duì)象的Add方法創(chuàng)建DataTable對(duì)象,例如:DataSet dataset = new DataSet();DataTable table = dataset.Tables.Add("MyTableName");2. 在DataTable對(duì)象中添加列在DataTable對(duì)象中添加列的最常用的方法是通過DataTable對(duì)象的Column屬性中的Add方法。添加后的每一列都是一個(gè)DataColumn對(duì)象。3. 設(shè)置DataTable對(duì)象的主鍵關(guān)系數(shù)據(jù)庫(kù)中的表一般都有一個(gè)主鍵,用來惟一標(biāo)識(shí)表中的每一行記錄。通過DataTable對(duì)象的PrimaryKe

12、y屬性可以設(shè)置Datatable的主鍵。主鍵可以是一個(gè)或者多個(gè)DataColumn對(duì)象組成的數(shù)組。例如:DataColumn key = new DataColumn1;/dt是一個(gè)DataTable對(duì)象key0 = dt.Columns0;dt.PrimaryKey = key;4. 在DataTable對(duì)象中創(chuàng)建行DataTable對(duì)象的每一行都是一個(gè)DataRow對(duì)象,所以創(chuàng)建行時(shí)可以先利用DataTable對(duì)象的NewRow方法創(chuàng)建一個(gè)DataRow對(duì)象,并設(shè)置新行中各列的數(shù)據(jù),然后利用Add方法將DataRow對(duì)象添加到表中5. 將SQL Server數(shù)據(jù)庫(kù)中的表填充到DataTab

13、le中除了可以直接創(chuàng)建DataTable對(duì)象的行列信息外,也可以通過DateAdapter對(duì)象的Fill方法將SQL Server數(shù)據(jù)庫(kù)中的表填充到DataTable對(duì)象中。4.5 DataSet對(duì)象1. 創(chuàng)建DataSet對(duì)象使用創(chuàng)建的DataSet對(duì)象可以完成各種數(shù)據(jù)操作,利用向?qū)傻臄?shù)據(jù)庫(kù)數(shù)據(jù)源是一個(gè)強(qiáng)類型的DataSet以及一對(duì)或多對(duì)強(qiáng)類型的DataTable和TableAdapter的組合。類型化的DataSet是一個(gè)生成的類,是從.NET Framework的一般DataSet類衍生來的,但提供了已定義的架構(gòu)以及特定于該架構(gòu)的屬性和方法。同時(shí),對(duì)于DataSet中的每個(gè)表,還生成

14、了特定于該DataSet的附加衍生類,而且每個(gè)類都為相關(guān)的表提供了特定的架構(gòu)、屬性和方法。當(dāng)然,也可以直接創(chuàng)建一般的DataSet對(duì)象,例如:DataSet myDataset = new DataSet();2. 填充DataSet對(duì)象創(chuàng)建DataSet后,就可以使用SqlDataAdapter對(duì)象把數(shù)據(jù)導(dǎo)入到DataSet對(duì)象中,比如通過Fill方法將數(shù)據(jù)填充到DataSet中的某個(gè)表中。5.設(shè)計(jì)與實(shí)現(xiàn)(包括每個(gè)設(shè)計(jì)點(diǎn)的文字描述,圖表,關(guān)鍵代碼) (該說明在最終報(bào)告里面要?jiǎng)h除!)5.1登錄界面在登錄界面(圖5-1)用戶對(duì)應(yīng)相應(yīng)的權(quán)限選擇用戶類型進(jìn)行登錄,分教員、學(xué)生、管理員。登錄后根據(jù)選擇

15、的權(quán)限進(jìn)入相應(yīng)的界面。輸入用戶名框非空,密碼框非空,權(quán)限選擇判斷;登錄界面還有新用戶注冊(cè),同樣是選擇不同用戶類型進(jìn)行注冊(cè)。注冊(cè)后需管理員激活才能登錄。還有一個(gè)就是找回密碼,用戶通過輸入用戶名和姓名等信息找回密碼。 圖5-1登錄界面代碼: if (ValidateInput() / 驗(yàn)證輸入成功 string message = "" / 驗(yàn)證輸入的密碼 if (loginBll.ValidateUser(txtLoginId.Text.Trim(), txtLoginPwd.Text, cboLoginType.Text, ref message) / 記錄登錄用戶名和登錄

16、類型 UserHelper.loginId = txtLoginId.Text; UserHelper.loginType = cboLoginType.Text; if (cboLoginType.Text = "教師") / 創(chuàng)建教員主窗體對(duì)象 TeacherForm teacherForm = new TeacherForm(); / 顯示窗體 teacherForm.Show(); else if (cboLoginType.Text = "學(xué)生") StudentForm studentForm = new StudentForm(); stu

17、dentForm.Show(); else AdminForm adminForm = new AdminForm(); adminForm.Show(); / 登錄窗體隱藏 this.Visible = false; 5.2教師管理界面在教師管理界面(圖5-2)中有以下菜單和按鈕:*選擇題目(圖5-3):右鍵選擇題目加入到新建的試卷中;*成績(jī)管理(圖5-4)選擇不同的試卷進(jìn)行查詢,讀取數(shù)據(jù)到DataSet,然后用DataSet中數(shù)據(jù)計(jì)算該試卷的平均分;也可以直接修改DataSet中表的數(shù)據(jù),然后保存。增加試題:先輸入好題目,然后提交,將數(shù)據(jù)插入數(shù)據(jù)庫(kù)中;還有一些其它的功能,查詢?cè)囶}:按科目查

18、詢?cè)囶};試題管理:按難度查詢?cè)囶}列表,并可增加、修改試題。試題列表,按難度查詢?cè)囶}列表,并可增加、修改試題然后保存,將數(shù)據(jù)保存到數(shù)據(jù)庫(kù); 圖5-2 圖5-3 圖5-4教師管理界面代碼:/ 點(diǎn)擊時(shí),打開新增試題窗體 private void tsmiAddQuestion_Click(object sender, EventArgs e) / 創(chuàng)建窗體對(duì)象 AddQuestionForm addQuestionForm = new AddQuestionForm(); / 設(shè)置 MDI 主窗體 addQuestionForm.MdiParent = this; / 顯示窗體 addQuestio

19、nForm.Show(); / 點(diǎn)擊菜單中的“幫助”->”關(guān)于”,以模式窗口顯示 About 窗體 private void tsmiAbout_Click(object sender, EventArgs e) AboutForm aboutForm = new AboutForm(); aboutForm.MdiParent = this; aboutForm.Show(); / 以模式窗口顯示 / 窗體加載事件處理 private void TeacherForm_Load(object sender, EventArgs e) / 設(shè)置狀態(tài)欄標(biāo)簽顯示的文字 lblTeacher.

20、Text = string.Format("教員0登錄了!", UserHelper.loginId); private void TeacherForm_FormClosed(object sender, FormClosedEventArgs e) Application.Exit(); private void btnSearchQuestion_Click(object sender, EventArgs e) CheckTitles CT = new CheckTitles(); CT.Show(); private void btnQuestionList_Cl

21、ick(object sender, EventArgs e) / 創(chuàng)建窗體對(duì)象 TestList tForm = new TestList(); / 設(shè)置 MDI 主窗體 tForm.MdiParent = this; / 顯示窗體 tForm.Show(); 選擇題目代碼: /選擇題目窗口 private void TestList_Load(object sender, EventArgs e) dataSet=getDataSetBll.GetAllQuestion(ref dataAdapter); dataSet2 = getDataSetBll.GetSelectedQuesti

22、on(ref dataAdapter2, ExamId); dgvTest.DataSource =dataSet.Tables"Question" txtExamName.Text = CreateTestForm.ExamName; ExamId = CreateTestForm.ExamId; /刷新 private void button1_Click_1(object sender, EventArgs e) dataSet.Tables"Question".Clear(); dgvTest.DataSource = getDataSetBll

23、.GetQuestionByDifficulty(cboDifficulty.Text.Trim(), ref dataAdapter); /將選中的題目加入試卷中 private void tsmAddQuestion_Click(object sender, EventArgs e) string message="" int sum = dgvTest.SelectedCells.Count; for (int i = 0; i < sum;i+) string QuestionId = dgvTest.SelectedCellsi.Value.ToString

24、(); message = createTestBll.AddQuestion(ExamId, QuestionId, ref ExamSum); txtExamSum.Text = ExamSum.ToString(); MessageBox.Show(message); /將選中的題目從試卷中刪除 private void tsmDeleteQuestion_Click(object sender, EventArgs e) string message="" int sum = dgvTest.SelectedCells.Count; for (int i = 0;

25、i < sum; i+) string QuestionId = dgvTest.SelectedCellsi.Value.ToString(); message = createTestBll.DeleteQuestion(ExamId, QuestionId, ref ExamSum); txtExamSum.Text = ExamSum.ToString(); MessageBox.Show(message); /已選擇題目列表 private void btn_Click(object sender, EventArgs e) dataSet2.Tables"Quest

26、ion".Clear(); dataSet2 = getDataSetBll.GetSelectedQuestion(ref dataAdapter2,ExamId); dgvSelectedQuestion.DataSource = dataSet2.Tables"Question" private void button3_Click(object sender, EventArgs e) this.Close(); 成績(jī)管理代碼:/成績(jī)管理的窗口 private void TestGradeManageForm_Load(object sender, Eve

27、ntArgs e) ExamId = cboExamId.Text.ToString(); dataSet = getDataSetBll.GetScore(ref dataAdapter,ExamId); /加載examId foreach (DataRow row in dataSet.Tables"Score".Rows) foreach(string item in cboExamId.Items) if (item.ToString().Equals(row"examId".ToString() goto con; cboExamId.Item

28、s.Add(row"examId".ToString(); con: ; dgvScore.DataSource = dataSet.Tables"Score" private void btnSearch_Click(object sender, EventArgs e) /查詢成績(jī) ExamId = cboExamId.Text.ToString(); dataSet.Tables"Score".Clear(); dataSet = getDataSetBll.GetScore(ref dataAdapter, ExamId);

29、dgvScore.DataSource = dataSet.Tables"Score" int sum = 0,i=0,avgScore=0; foreach (DataRow row in dataSet.Tables"Score".Rows) sum += int.Parse(row"scorevalue".ToString(); i+; if(i!=0) avgScore = sum / i; txtAvgScore.Text = avgScore.ToString(); /刷新 private void btnRefresh_

30、Click(object sender, EventArgs e) dataSet.Tables"Score".Clear(); dataSet = getDataSetBll.GetScore(ref dataAdapter, ExamId); /保存 private void btnSave_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show("確定"); if (result = DialogResult.OK) SqlCommandBuilder buil

31、der = new SqlCommandBuilder(dataAdapter); dataAdapter.Update(dataSet, "Score"); 5.3管理員管理界面管理員管理界面(圖5-5):通過選擇不同的菜單和按鈕進(jìn)入不同的界面,用戶管理,其中有新建用戶(新學(xué)員用戶,新建教員用戶)。 查詢及修改學(xué)員(圖5-6):用DataSet讀取數(shù)據(jù)到DataGridView。 用戶信息列表,包括查詢以及教員學(xué)員信息。 題庫(kù)管理,管理試題庫(kù) 。 圖5-5 圖5-6學(xué)員信息界面代碼:/學(xué)員窗口 private void TestList_Load(object sende

32、r, EventArgs e) dataSet=StudentListBll.GetAllQuestion(ref dataAdapter); dgvTest.DataSource = dataSet.Tables"Student" /刷新 private void button1_Click(object sender, EventArgs e) dataSet.Tables"Student".Clear(); dataAdapter.Fill(dataSet, "Student"); /保存 private void button

33、2_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show("確定"); if (result = DialogResult.OK) SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter); dataAdapter.Update(dataSet, "Student"); /按性別查詢 private void cboDifficulty_SelectedIndexChanged(object sen

34、der, EventArgs e) dataSet.Tables"Student".Clear(); dgvTest.DataSource = StudentListBll.GetQuestionByDifficulty(cboDifficulty.Text.Trim(), ref dataAdapter); private void button3_Click(object sender, EventArgs e) this.Close(); 5.4學(xué)生考試界面學(xué)生在線考試界面(圖5-8):通過選擇不同的菜單和按鈕進(jìn)入不同的界面:在線答題界面(圖5-9):可以選擇已激活試

35、卷答題。還有維護(hù)個(gè)人信息 :對(duì)個(gè)人信息進(jìn)行查詢,修改 ;在線評(píng)分。保存考試成績(jī)可供教師查詢。 圖5-8 圖5-9學(xué)生在線考試界面代碼: public partial class StudentForm : Form public StudentForm() InitializeComponent(); private void tsbOnlineAnswer_Click(object sender, EventArgs e) SelectExamForm sExamForm = new SelectExamForm(); sExamForm.MdiParent = this; sExamFor

36、m.Show(); private void tsbOnlineAnswer_Click(object sender, EventArgs e) AnswerQuestionForm aQuestionForm = new AnswerQuestionForm(); aQuestionForm.MdiParent = this; aQuestionForm.Show(); 回答問題界面代碼: /“答題卡”按鈕 private void btnAnswerCard_Click(object sender, EventArgs e) AnswerCardForm answerCardForm=ne

37、w AnswerCardForm(); answerCardForm.Show(); /窗體加載事件 private void AnswerQuestionForm_Load(object sender, EventArgs e) dataSet = getDataSetBll.ExamLoad(ref dataAdapter, ref ExamId); /將題目放入strExam中 foreach (DataRow row in dataSet.Tables"Question".Rows) strExamj, 0 = row"Question".ToS

38、tring(); strExamj, 1 = row"OptionA".ToString(); strExamj, 2 = row"OptionB".ToString(); strExamj, 3 = row"OptionC".ToString(); strExamj, 4 = row"OptionD".ToString(); strExamj, 5 = row"Answer".ToString(); j+; lblQuestion.Text += Convert.ToString(questi

39、onIndex + 1); DisplayQuestion(questionIndex); /顯示題目及選項(xiàng) public void DisplayQuestion(int i) txtQuestion.Text = strExami,0; rdoA.Text = rdoA.Text+strExami,1; rdoB.Text = rdoB.Text+strExami,2; rdoC.Text = rdoC.Text+strExami,3; rdoD.Text = rdoD.Text+strExami,4; /“下一題”按鈕事件,為studentAnswers數(shù)組賦值 private void

40、 btnNext_Click(object sender, EventArgs e) lblQuestion.Text = "問題" rdoA.Text = "A." rdoB.Text = "B." rdoC.Text = "C." rdoD.Text = "D." if (questionIndex < QuizHelper.questionNum) QuizHelper.studentAnswersquestionIndex = GetStudentAnswer(); questio

41、nIndex+; rdoA.Checked = false; rdoB.Checked = false; rdoC.Checked = false; rdoD.Checked = false; if (questionIndex > j-1) MessageBox.Show("試題已答完,你可以點(diǎn)擊<答題卡>按鈕進(jìn)行查看", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; lblQuestion.Text += Convert.ToString(quest

42、ionIndex + 1); DisplayQuestion(questionIndex); /記時(shí)器控件的Tick事件 private void tmrCostTime_Tick(object sender, EventArgs e) int minute; int second; if (QuizHelper.remainSeconds > 0) QuizHelper.remainSeconds-; minute = QuizHelper.remainSeconds / 60; second = QuizHelper.remainSeconds % 60; lblTimer.Text

43、 = string.Format("0:00:1:00", minute, second); else tmrCostTime.Stop(); MessageBox.Show("時(shí)間到了,該交卷了!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning); QuizResultForm quizResultForm=new QuizResultForm(); quizResultForm.MdiParent=this.MdiParent; quizResultForm.Show(); this.Close(); /判斷用戶選擇的答案 public string GetStudentAnswer() string answer = "" if (rdoA.Checked) answer = "A" else if (rdoB.Checked) answer = "B" else if (rdoC.Checked) answer = "C" else if (r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論