版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、教學(xué)點(diǎn)名神器(shn q)隨機(jī)(su j)點(diǎn)名器3.0 隨機(jī)點(diǎn)名器功能又一大提升,而且之前(zhqin)若干bug均已修復(fù)。修復(fù)內(nèi)容:1.當(dāng)默認(rèn)開(kāi)啟的txt文本文件被刪除或的文件名被更改或由于某種未知的原因不能訪問(wèn)時(shí),程序不會(huì)報(bào)錯(cuò),而是將一些提示信息以學(xué)生名導(dǎo)入。例如:程序默認(rèn)訪問(wèn)“電科一班.txt”:如果在可執(zhí)行文件的路徑下有 “電科一班.txt”文件,則運(yùn)行正常。如果在可執(zhí)行文件的路徑下沒(méi)有找到 “電科一班.txt”文件,則運(yùn)行提示信息。 在這種非正常情況下,如果仍然點(diǎn)擊正式記錄,則彈出提示幫助信息窗口。 這樣,用戶在看到提示信息后,會(huì)自行修復(fù)該問(wèn)題。修復(fù)2:若讀取的文件中存在空行,則程序
2、在讀取文件內(nèi)容的時(shí)候會(huì)自動(dòng)刪除空行。 現(xiàn)在,我把先前文件名“電科一班121314.txt”修改為“電科一班.txt”,然后在文件內(nèi)容中加兩個(gè)空行,如下圖所示: 程序在運(yùn)行的時(shí)候再也不會(huì)出現(xiàn)空姓名。程序運(yùn)行一圈后,會(huì)給出提示信息。 功能提升:1.可以選擇班級(jí),班級(jí)內(nèi)容自定義?,F(xiàn)在,我又新建了一個(gè)班級(jí)文件“1班.txt”,文件內(nèi)容如下: 現(xiàn)在可以選擇班級(jí),我就把“1班.txt”選進(jìn)來(lái)。 一般,“選擇班級(jí).”,在程序打開(kāi)后只會(huì)用一次,點(diǎn)擊“打開(kāi)”后,“選擇班級(jí).”按鈕被隱藏。 2.增加出勤記錄,答問(wèn)記錄功能。若沒(méi)有點(diǎn)擊“正式記錄”按鈕,抽取信息不會(huì)被記錄,也沒(méi)有彈出出勤相關(guān)的選擇按鈕。功能與舊版一樣
3、。一旦點(diǎn)擊正式記錄,由于這個(gè)記錄涉及到學(xué)生的平時(shí)成績(jī),因此非常重要,所以彈出是否確定選擇對(duì)話框。 點(diǎn)擊確定后,”正式記錄“按鈕被隱藏。 再次抽取后,會(huì)彈出“缺勤”和“差評(píng)”兩個(gè)選擇按鈕,并自動(dòng)在該班級(jí)目錄下新建一個(gè)“班級(jí)名+點(diǎn)名記錄清單”文本文件。 文本內(nèi)容自動(dòng)記錄第一次被點(diǎn)到的學(xué)生,并創(chuàng)建時(shí)間,原創(chuàng)者,班級(jí)信息相關(guān)信息。如下所示: 若點(diǎn)擊差評(píng)或缺勤,記錄會(huì)自動(dòng)加一,而且,一旦選擇之后,該兩個(gè)按鈕即被隱藏,防止誤操作。當(dāng)然你也可以不行,直接抽下一個(gè)人,但選擇按鈕照樣被隱藏,同樣該學(xué)生的點(diǎn)名信息也會(huì)被記錄。 重復(fù)抽取后所有記錄都會(huì)自動(dòng)保存到該文件。 如果點(diǎn)擊確定,或關(guān)閉程序再次打開(kāi)程序選擇該班級(jí)
4、,同樣執(zhí)行上述步驟,則記錄會(huì)在原來(lái)的基礎(chǔ)上累加。 經(jīng)過(guò)一系列操作后得到的記錄表如下: 當(dāng)然,如果你選擇其他班級(jí),照樣會(huì)執(zhí)行相應(yīng)的操作?,F(xiàn)在,舉個(gè)典型的例子,我在桌面上新建一個(gè)文本文件,內(nèi)容如下: 選擇該文件,執(zhí)行同樣的操作,立即生成“2班點(diǎn)名記錄清單.txt”文件。 重復(fù)點(diǎn)名后,實(shí)時(shí)記錄的點(diǎn)名內(nèi)容: C#部分源程序:(本軟件完全由個(gè)人編寫(xiě),未經(jīng)本人允許,請(qǐng)勿用于商業(yè)目的)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;
5、using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;using System.Drawing.Drawing2D;namespace 隨機(jī)抽樣 public partial class Form1 : Form static int step = 0; static bool Startload = false; static string pathstudent = System.AppDomain.CurrentDomain.S
6、etupInformation.ApplicationBase+/,電科一班(y bn).txt; static string name = getName(); static int ppp = GetRandomArray(name.Length); public Form1() InitializeComponent(); Timer t = new Timer(); t.Interval =2000; t.Tick += new EventHandler(changeBackground); t.Start(); Timer t2 = new Timer(); t2.Interval
7、= 100; t2.Tick += new EventHandler(changestudent); t2.Start(); static int iiii = 0; void changestudent(object sender, EventArgs e) if (name = null) return; if (this.startrand.Text=停 止 抽 取) iiii+; this.disinf.Text =nameppp(step+iiii)%name.Length; int q = GetRandomArray(3); int colorval = 0, 100, new
8、Random().Next(100) ; this.disinf.ForeColor = Color.FromArgb(255, colorvalq0, colorvalq1, colorvalq2); void changeBackground(object sender, EventArgs e) /int i = DateTime.Now.Second/15; switch (GetRandomArray(18)0) case 0: BackgroundImage =imageList1.Images0; break; case 1: BackgroundImage = imageLis
9、t1.Images1; break; case 2: BackgroundImage = imageList1.Images2; break; case 3: BackgroundImage = imageList1.Images3; break; case 4: BackgroundImage = imageList1.Images4; break; case 5: BackgroundImage = imageList1.Images5; break; case 6: BackgroundImage = imageList1.Images6; break; case 7: Backgrou
10、ndImage = imageList1.Images7; break; case 8: BackgroundImage = imageList1.Images8; break; case 9: BackgroundImage = imageList1.Images9; break; case 10: BackgroundImage = imageList1.Images10; break; case 11: BackgroundImage = imageList1.Images11; break; case 12: BackgroundImage = imageList1.Images12;
11、 break; case 13: BackgroundImage = imageList1.Images13; break; case 14: BackgroundImage = imageList1.Images14; break; case 15: BackgroundImage = imageList1.Images15; break; case 16: BackgroundImage = imageList1.Images16; break; case 17: BackgroundImage = imageList1.Images17; break; default: break; p
12、rivate void startrand_Click(object sender, EventArgs e)/開(kāi)始(kish)暫停按鈕 this.button1.Visible = false; this.button2.Visible = false; /獲取(huq)對(duì)比度大的隨機(jī)深彩色 int q = GetRandomArray(3); int colorval = 170, 255, new Random().Next(80)+170 ; startrand.FlatAppearance.MouseOverBackColor = Color.FromArgb(255, colorv
13、alq0, colorvalq1, colorvalq2);/隨機(jī)(su j)設(shè)置鼠標(biāo)懸停在按鈕上的顏色 startrand.FlatAppearance.MouseDownBackColor = Color.FromArgb(255, colorvalq0 - 50, colorvalq1 - 50, colorvalq2 - 50);/隨機(jī)設(shè)置鼠標(biāo)按下按鈕后的顏色 try if (this.startrand.Text=開(kāi) 始 抽 取)/判斷字符串檢測(cè)鼠標(biāo)是否按下 this.startrand.Text = 停 止 抽 取;/如果按下,將字符串的顏色修改 else String abcd=
14、; StreamWriter sw; step=step+1; this.startrand.Text = 開(kāi) 始 抽 取; this.disinf.Text = namepppstep - 1; if (Startload=true) try abcd = File.ReadAllLines(pathstudent0 + pathstudent1.Replace(.txt, 點(diǎn)名記錄清單.txt);/編碼格式 catch sw = File.AppendText(pathstudent0 + pathstudent1.Replace(.txt, 點(diǎn)名記錄清單.txt); sw.Write(p
15、athstudent1.Replace(.txt, ) + 點(diǎn)名記錄清單 + 創(chuàng)建日期: + DateTime.Today.ToString(yyyy + 年 + MM + 月 + dd + 日) + 隨機(jī)點(diǎn)名器原創(chuàng)者:陳鵬 + rn); sw.Write(學(xué)生(xu sheng)姓名(學(xué)號(hào)).PadRight(30 - 8, ) + 被點(diǎn)次數(shù)(csh).PadRight(20 - 4, ) + 缺勤(qu qn)次數(shù).PadRight(20 - 4, ) + 老師不滿意次數(shù)r); sw.Close(); abcd = Array.FindAll(abcd, line = !string.Is
16、NullOrEmpty(line);/ 去除是null或是的string string n; n = findn(abcd, this.disinf.Text); sw = File.AppendText(pathstudent0 + pathstudent1.Replace(.txt, 點(diǎn)名記錄清單.txt); if (n = 1) sw.Write(n + this.disinf.Text.PadRight(30, ) + n.PadRight(20, ) + 0.PadRight(20, ) + 0.PadRight(5, ) + r);/string1.PadLeft(100, )這句
17、話的意思是如果string1的長(zhǎng)度不夠100位,則在前面加空格,知道補(bǔ)夠100位。 else sw.Write(n + this.disinf.Text.PadRight(30, ) + n + r); sw.Close(); /sw.Flush(); this.button1.Visible = true; this.button2.Visible = true; catch this.disinf.Text = 木有了咦(;); MessageBox.Show(人已經(jīng)抽完了,重新開(kāi)始吧?); ppp = GetRandomArray(name.Length);/重新排序 step = 0;
18、 iiii = 0; return; string findn(string f,string w) int n = 1; string a; for (int i = 0; i f.Length; i+)/查找文件夾中是否存在該學(xué)生的信息 try a=fi.Substring(0,w.Length);/從第m個(gè)位置(wi zhi),截取n個(gè)長(zhǎng)度(chngd) if (a = w)/如果找到了學(xué)生(xu sheng)的信息,刷新學(xué)生的得分 a = fi.Substring(25, 10).Replace( , ); n=Convert.ToInt32(a); StreamWriter sw =
19、 new StreamWriter(pathstudent0 + pathstudent1.Replace(.txt, 點(diǎn)名記錄清單.txt), false); for (int j = 0; j f.Length; j+) if (i != j) sw.WriteLine(fj); /sw.Flush(); sw.Close(); /sw.Dispose(); return (n + 1).ToString() .PadRight(20, )+ fi.Substring(50,25); catch continue; return n.ToString(); static int GetRa
20、ndomArray(int length)/獲取一個(gè)隨機(jī)數(shù)組,元素長(zhǎng)度為1length,值包含1length double rnds = new doublelength; int num = new intlength; int newNum = new intnum.Length; for (int i = 0; i length; i+) numi = i; List numCopy = new List(); foreach (int i in num) numCopy.Add(i); Random random = new Random(); for (int i = 0; i !s
21、tring.IsNullOrEmpty(line);/ 去除是null或是的string return lines; catch/如果路徑文件搜索失敗,則賦值如下語(yǔ)句。 string lines = 貌似沒(méi)找到你想要的文件哦!,2015年5月, 湖北工業(yè)大學(xué), 隨機(jī)點(diǎn)名器, 陳鵬, D=, D=0, =3.14159265358979323846264338328,電氣學(xué)院,電科一班; pathstudent=null; return lines; private void disinf_TextChanged(object sender, EventArgs e) private void
22、Form1_Load(object sender, EventArgs e) private void btnchooseclass_Click(object sender, EventArgs e)/ 如果點(diǎn)擊了選擇班級(jí)按鈕 this.button1.Visible = false; this.button2.Visible = false; OpenFileDialog dlg = new OpenFileDialog();/就打開(kāi)一個(gè)對(duì)話框,讓你選擇班級(jí)文件 if (dlg.ShowDialog() = System.Windows.Forms.DialogResult.OK)/如果選好
23、了文件,并點(diǎn)擊了確定按鈕 if (File.ReadAllLines(dlg.FileName, Encoding.Default).Length!=0)/如果文件內(nèi)容(nirng)不為空 name = File.ReadAllLines(dlg.FileName, Encoding.Default);/逐行讀入所有(suyu)的內(nèi)容,更新(gngxn)變量name; name= Array.FindAll( name, line = !string.IsNullOrEmpty(line);/ 去除是null或是的string ppp = GetRandomArray(name.Length)
24、;/重新排序 step = 0;/初始化點(diǎn)名次數(shù) btnchooseclass.Visible = false;/一般該按鈕只會(huì)用一次,故使用后將其隱藏,避免占用空間。 pathstudent1 = dlg.SafeFileName; pathstudent0 = dlg.FileName.Remove(dlg.FileName.Length-pathstudent1.Length); return; else this.button1.Visible = true; this.button2.Visible = true; private void button1_Click(object
25、sender, EventArgs e) if (Startload=true) String abcd = ; StreamWriter sw; this.button1.Visible = false; this.button2.Visible = false; try abcd = File.ReadAllLines(pathstudent0 + pathstudent1.Replace(.txt, 點(diǎn)名記錄清單.txt);/編碼格式 catch sw = File.AppendText(pathstudent0 + pathstudent1.Replace(.txt, 點(diǎn)名記錄清單.t
26、xt); sw.Write(pathstudent1.Replace(.txt, ) + 點(diǎn)名記錄清單 + 創(chuàng)建日期: + DateTime.Today.ToString(yyyy + 年 + MM + 月 + dd + 日) + 隨機(jī)點(diǎn)名器原創(chuàng)者:陳鵬 + rn); sw.Write(學(xué)生姓名(學(xué)號(hào)).PadRight(30 - 8, ) + 被點(diǎn)次數(shù).PadRight(20 - 4, ) + 缺勤次數(shù).PadRight(20 - 4, ) + 老師不滿意次數(shù)r); sw.Close(); abcd = Array.FindAll(abcd, line = !string.IsNullOrE
27、mpty(line);/ 去除(q ch)是null或是(hu sh)的string string n; n = findqueqing(abcd, this.disinf.Text); sw = File.AppendText(pathstudent0 + pathstudent1.Replace(.txt, 點(diǎn)名記錄(jl)清單.txt); if (n = 1) sw.Write(n + this.disinf.Text.PadRight(30, ) + n.PadRight(20, ) + 1.PadRight(20, ) + 0.PadRight(5, ) + r);/string1.
28、PadLeft(100, )這句話的意思是如果string1的長(zhǎng)度不夠100位,則在前面加空格,知道補(bǔ)夠100位。 else sw.Write(n + n + r); sw.Close(); string findqueqing(string f, string w) int n = 1; string a; for (int i = 0; i f.Length; i+)/查找文件夾中是否存在該學(xué)生的信息 try a = fi.Substring(0, w.Length);/從第m個(gè)位置,截取n個(gè)長(zhǎng)度 if (a = w)/如果找到了學(xué)生的信息,刷新學(xué)生的得分 a = fi.Substring
29、(45, 10).Replace( , ); n = Convert.ToInt32(a); StreamWriter sw = new StreamWriter(pathstudent0 + pathstudent1.Replace(.txt, 點(diǎn)名記錄清單.txt), false); for (int j = 0; j !string.IsNullOrEmpty(line);/ 去除是null或是的string string n; n = nchaping(abcd, this.disinf.Text); sw = File.AppendText(pathstudent0 + pathst
30、udent1.Replace(.txt, 點(diǎn)名記錄清單.txt); if (n = 1) sw.Write(n + this.disinf.Text.PadRight(30, ) + n.PadRight(20, ) + 0.PadRight(20, ) + 1.PadRight(5, ) + r);/string1.PadLeft(100, )這句話的意思(y s)是如果string1的長(zhǎng)度(chngd)不夠100位,則在前面加空格(kn ),知道補(bǔ)夠100位。 else sw.Write(n + n + r); sw.Close(); string nchaping(string f, string w) int n = 1; string a; for (int i = 0; i f.Length; i+)/查找文件夾中是否存在該學(xué)生的信息 try a = fi.Substring(0, w.Length);/從第m個(gè)位置,截取n個(gè)長(zhǎng)度 if (a = w)/如果找到了
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 戶外探索課程設(shè)計(jì)意圖
- 邁達(dá)斯懸臂法課程設(shè)計(jì)
- 運(yùn)籌學(xué)課課程設(shè)計(jì)搭配
- 轉(zhuǎn)向臂課程設(shè)計(jì)夾具CATIA圖紙
- 機(jī)械修理工操作規(guī)程(3篇)
- 船舶和海洋工程課程設(shè)計(jì)
- 2025版股權(quán)投資與退出機(jī)制協(xié)議書(shū)3篇
- 自動(dòng)裝箱機(jī)課程設(shè)計(jì)
- 2025年度線下書(shū)店連鎖加盟合同協(xié)議3篇
- 2025年度濟(jì)南城市更新項(xiàng)目合作協(xié)議3篇
- 新版中國(guó)食物成分表
- 浙江省溫州市溫州中學(xué)2025屆數(shù)學(xué)高二上期末綜合測(cè)試試題含解析
- 2024河南鄭州市金水區(qū)事業(yè)單位招聘45人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 食物損失和浪費(fèi)控制程序
- TCI 373-2024 中老年人免散瞳眼底疾病篩查規(guī)范
- 2024四川太陽(yáng)能輻射量數(shù)據(jù)
- 石油鉆采專用設(shè)備制造考核試卷
- 法人變更股權(quán)轉(zhuǎn)讓協(xié)議書(shū)(2024版)
- 研究生中期考核匯報(bào)模板幻燈片
- 培訓(xùn)機(jī)構(gòu)與學(xué)校合作協(xié)議書(shū)范本
- 留置導(dǎo)尿法操作評(píng)分標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論