版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、人員分組生成工具1. 項(xiàng)目論證和計(jì)劃1.1. 系統(tǒng)設(shè)計(jì)目標(biāo)設(shè)計(jì)一個(gè)可選擇性的人員分組工具。1.2. 開(kāi)發(fā)和運(yùn)行環(huán)境采用現(xiàn)有的硬件環(huán)境,windows 7等pc機(jī)上安裝 visual studio 2012與Microsoft Office Excel 2007進(jìn)行開(kāi)發(fā)。在客服端,安裝windows xp、window 7和windows 8系統(tǒng)的PC機(jī)均可直接運(yùn)行。1.3. 系統(tǒng)功能模塊人員分組工具導(dǎo)入表格條件分組導(dǎo)出表格圖1-1人員分組系統(tǒng)的總體結(jié)構(gòu)1.4. 系統(tǒng)的總體功能需求和性能需求1.4.1. 導(dǎo)入表格可將某張格式特定的表格導(dǎo)入到軟件界面,必須包含學(xué)號(hào),姓名,成績(jī)(如果需要按此分組)等
2、列名或字段名。1.4.2. 條件分組 按所給條件進(jìn)行分組,可按學(xué)號(hào),姓名,成績(jī)或隨機(jī)生成分組名單。1.4.3. 導(dǎo)出表格將分組后得到的名單進(jìn)行輸出,導(dǎo)入到新建Excel表格當(dāng)中,進(jìn)行保存與打印等操作。1.5. 業(yè)務(wù)流程分析由系統(tǒng)的工作、流程分析可以得出,該系統(tǒng)的功能主要有導(dǎo)入數(shù)據(jù),進(jìn)行分組,導(dǎo)出數(shù)據(jù)三個(gè)部分。為了進(jìn)一步了解和分析現(xiàn)有的系統(tǒng),并以概括的形式表達(dá)對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí),先采用結(jié)構(gòu)化的描述工具業(yè)務(wù)流程圖描述系統(tǒng)的業(yè)務(wù)流程。其業(yè)務(wù)流程圖如下圖所示:導(dǎo)入Excel文件分組選擇成績(jī)分組學(xué)號(hào)分組姓名分組隨機(jī)分組輸入組數(shù)N判斷組數(shù)大于一且小于總?cè)藬?shù)Y只導(dǎo)出基本信息 導(dǎo)出Excel文件 圖1-5-1概
3、括業(yè)務(wù)流程圖2. 需求分析 現(xiàn)對(duì)某張學(xué)生信息表對(duì)其中人員分組,如果使用人工分組,效率低、易出錯(cuò)、耗費(fèi)人力?,F(xiàn)在希望設(shè)計(jì)一個(gè)可以根據(jù)某些要求進(jìn)行人員分組,即可以進(jìn)行隨意的分組,也可以根據(jù)學(xué)生姓名,學(xué)生學(xué)號(hào)或者某科成績(jī)進(jìn)行分組。2.1. 需求規(guī)格說(shuō)明書(shū)2.1.1. 系統(tǒng)開(kāi)發(fā)項(xiàng)目概述 本系統(tǒng)為一般學(xué)校開(kāi)發(fā)一個(gè)可以進(jìn)行人員分組,包括學(xué)號(hào),名字和成績(jī),或者隨機(jī)生成。并對(duì)獲得的名單進(jìn)行導(dǎo)出,且可以打印2.1.2. 需求說(shuō)明 通過(guò)使用該工具可能遇到的情況,充分考慮并進(jìn)行了各方面的完善,比如當(dāng)輸入的組數(shù)小于零或者大于總?cè)藬?shù)時(shí),提示錯(cuò)誤。當(dāng)只要求保存最基本的信息,比如學(xué)號(hào)和姓名,可以對(duì)選項(xiàng)進(jìn)行勾選。2.1.3.
4、 系統(tǒng)實(shí)施計(jì)劃 由單人單機(jī)完成程序,在規(guī)定的十天的時(shí)間內(nèi)完成。3. 系統(tǒng)設(shè)計(jì) 該階段的主要任務(wù)是根據(jù)系統(tǒng)的總體目標(biāo)出發(fā),根據(jù)系統(tǒng)分析階段對(duì)系統(tǒng)的邏輯功能要求和運(yùn)行環(huán)境方法的條件,確定系統(tǒng)的總體結(jié)構(gòu)和系統(tǒng)各組成部分的技術(shù)方案,合理選擇計(jì)算機(jī)和通信的軟硬件設(shè)備,提出系統(tǒng)的實(shí)施計(jì)劃,確??傮w目標(biāo)的實(shí)現(xiàn)。主要分兩個(gè)階段進(jìn)行:3.1. 系統(tǒng)詳細(xì)設(shè)計(jì)報(bào)告3.1.1. 打開(kāi)文件獲得文件路徑代碼設(shè)計(jì) 定義一個(gè)DataSet方法,Excel數(shù)據(jù)填充DataSetprivate DataSet ExcelToDS1(string Path) string strConn = "Provider=Micr
5、osoft.ace.OLEDB.12.0;" + "Data Source=" + Path + "" + "Extended Properties='Excel 8.0;IMEX=1;hdr=yes;'" OleDbConnection conn = new OleDbConnection(strConn); conn.Open();/打開(kāi)excel連接OleDbDataAdapter myCommand = null;System.Data.DataTable table = conn.GetOleDbS
6、chemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);string tableName = table.Rows0"Table_Name".ToString();/獲取表名string strExcel = "select * from " + tableName + ""myCommand = new OleDbDataAdapter(strExcel, strConn);DataSet ds = new DataSet();/實(shí)例化一個(gè)DataSetmyCommand
7、.Fill(ds); return ds;/鏈接excel表格,獲得第一張表的表名,并將Excel里的數(shù)據(jù)填充到DataSet中的Table0中點(diǎn)擊“導(dǎo)入Excel文件”,具體代碼如下:private void button1_Click(object sender, EventArgs e) OpenFileDialog openExcel = new OpenFileDialog(); openExcel.Filter = "Excel文件|*.xls|Excel文件|*.xlsx"if (openExcel.ShowDialog() = DialogResult.Ca
8、ncel)/沒(méi)有打開(kāi)文件return;/打開(kāi)excel表路徑FilePath = openExcel.FileName;DataSet ds1 = ExcelToDS1("" + FilePath + "");dataGridView1.DataSource = ds1.Tables0.DefaultView;/dataGridView的數(shù)據(jù)源dataSet的dataTable0里 3.1.2. 排序選擇代碼設(shè)計(jì)定義一個(gè)DataSet方法,將按要求選出的Excel數(shù)據(jù)填充DataSet,具體代碼如下:private DataSet ExcelToDS(s
9、tring Path, string orderBy)string strConn = "Provider=Microsoft.ace.OLEDB.12.0;" + "Data Source=" + Path + "" + "Extended Properties='Excel 8.0;IMEX=1;hdr=yes;'"OleDbConnection conn = new OleDbConnection(strConn);conn.Open();OleDbDataAdapter myCommand
10、= null;DataSet ds = new DataSet();System.Data.DataTable table = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); string tableName = table.Rows0"Table_Name".ToString();string strExcel = "select * from " + tableName + " order by " + orderBy + &quo
11、t; " /按選擇類(lèi)型排序 myCommand = new OleDbDataAdapter(strExcel, strConn);myCommand.Fill(ds);return ds;選擇“選擇分組條件”后點(diǎn)擊“按條件分組”,具體代碼如下:private void button2_Click(object sender, EventArgs e) if (string)cbSelect.SelectedItem = "隨機(jī)" | cbSelect.SelectedItem = null) orderBy = "rnd(id-TIMER()"
12、; else orderBy = "Name" /獲取分組排序的類(lèi)型 DataSet ds = ExcelToDS("" + FilePath + "", orderBy); dataGridView2.DataSource = ds.Tables0.DefaultView;/分組后的表格導(dǎo)入DataGridView2中3.1.3. 導(dǎo)出數(shù)據(jù)到Excel分組代碼設(shè)計(jì) 首先填入組數(shù),且需大于0小于總?cè)藬?shù),否則會(huì)報(bào)錯(cuò)圖3-1-1 人數(shù)錯(cuò)誤是報(bào)錯(cuò)代碼如下:private void btnConfirm_Click(object sender
13、, EventArgs e)int groupCount = Int32.Parse(txtGroup.Text);if (groupCount > 0 && groupCount < dataGridView2.RowCount)exportToExcel(dataGridView2, groupCount); else if (groupCount >=dataGridView2.RowCount)MessageBox.Show("組數(shù)必須小于總?cè)藬?shù)", "出錯(cuò)了", MessageBoxButtons.OK, Me
14、ssageBoxIcon.Error); /判斷分組人數(shù)是否正確/定義一個(gè)導(dǎo)出excel的bool類(lèi)型的方法public bool exportToExcel(DataGridView dgv, int groupCount)/導(dǎo)出到新建Excel中 if (dgv.Rows.Count = 0) return false;Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();excel.Application.Workbooks.Add(true)
15、;excel.Visible = true;excel.Cells1, 3 = "姓名"excel.Cells1, 2 = "學(xué)號(hào)"excel.Cells1, 1 = "分組"/導(dǎo)出,設(shè)置表頭int Show;if (checkBox1.Checked)/勾選之后只導(dǎo)出姓名與學(xué)號(hào) Show = 3; else Show = dgv.ColumnCount; excel.Cells1, 4 = "性別" excel.Cells1, 5 = "班級(jí)" excel.Cells1, 6 = "
16、成績(jī)" /不勾選所以信息 int m = dgv.RowCount / groupCount;/每組最少多少人int q = 1;/顯示組數(shù)int remainder = (dgv.RowCount - 1) % groupCount;/ 人數(shù)和組數(shù)相除取余int c;/隔c個(gè)表格顯示組數(shù)if (remainder = 0)/當(dāng)人數(shù)和組數(shù)能整除時(shí)平均分組 for (c = 1; c < dgv.RowCount; c += m) excel.Cellsc + 1, 1 = "第" + q + "組"q+; else/當(dāng)人數(shù)和組數(shù)不能整除時(shí)
17、再前幾組各添加一人 for (c = 1; c <= 2 * m; c = c + m + 1) excel.Cellsc + 1, 1 = "第" + q + "組"q+; /前幾組添加人for (c = c + 1; c < dgv.RowCount; c += m) excel.Cellsc, 1 = "第" + q + "組"q+; Range oCells = excel.get_Range("A1");/寫(xiě)入數(shù)據(jù),第一列(學(xué)號(hào))與第二列(姓名) (Range)oCells
18、.Cells1, 2).EntireColumn.ColumnWidth = 10;/設(shè)置學(xué)號(hào)列寬for (int i = 0; i < dgv.RowCount - 1; i+) for (int j = 1; j < Show; j+) if (dgvj, i.ValueType = typeof(string) excel.Cellsi + 2, j + 1 = dgvj, i.Value.ToString(); else excel.Cellsi + 2, j + 1 = dgvj, i.Value.ToString(); return true;/填充數(shù)據(jù)圖3-1-2 主
19、界面3.1.4. 關(guān)于軟件界面設(shè)計(jì)圖3-1-3 關(guān)于軟件3.1.5. 操作軟件優(yōu)化設(shè)計(jì)添加通知欄右鍵圖3-1-4通知欄添加氣球通知:圖3-1-5氣球通知代碼:notifyIcon1.ShowBalloonTip(5000); 退出窗體的設(shè)置圖3-1-6退出界面代碼如下: DialogResult rst = MessageBox.Show(this, "您確定退出該工具嗎?", "提示 " , MessageBoxButtons.YesNo, MessageBoxIcon.Question); switch (rst) case DialogResult.Yes: System.Windows.Forms.Application.ExitThread(); System.Windows.Forms.Application.Exit(); break; case DialogResult.No: e.Cancel = true; break; 添加按下Esc按鈕退出選擇與Enter鍵快速導(dǎo)出,代碼如下: if (e.KeyChar =(char)027) System.Windows.Forms.Application.Ex
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科貿(mào)職業(yè)學(xué)院《物理化學(xué)實(shí)驗(yàn)上》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東警官學(xué)院《西方哲學(xué)原著》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東交通職業(yè)技術(shù)學(xué)院《材料科學(xué)與工程專業(yè)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東技術(shù)師范大學(xué)《勞動(dòng)教育2》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東海洋大學(xué)《建設(shè)工程項(xiàng)目管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 防突培訓(xùn)課件
- 培訓(xùn)課件內(nèi)容分析
- 小學(xué)生讀名著分享課件
- 廣東碧桂園職業(yè)學(xué)院《人工智能技術(shù)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 共青科技職業(yè)學(xué)院《機(jī)械CAD》2023-2024學(xué)年第一學(xué)期期末試卷
- 安全生產(chǎn)事故舉報(bào)獎(jiǎng)勵(lì)制度
- 冠心病健康教育完整版課件
- 國(guó)家開(kāi)放大學(xué)《理工英語(yǔ)1》單元自測(cè)8試題答案
- 重癥患者的容量管理課件
- 期貨基礎(chǔ)知識(shí)TXT
- 六年級(jí)上冊(cè)道德與法治課件-第一單元 我們的守護(hù)者 復(fù)習(xí)課件-人教部編版(共12張PPT)
- 《尖利的物體會(huì)傷人》安全教育課件
- 安全管理體系及保證措施
- 大學(xué)生自主創(chuàng)業(yè)證明模板
- 啟閉機(jī)試運(yùn)行記錄-副本
- 少兒美術(shù)畫(huà)畫(huà) 童畫(huà)暑假班 7歲-8歲 重彩 《北京烤鴨》
評(píng)論
0/150
提交評(píng)論