學生信息管理系統VFP課程設計_第1頁
學生信息管理系統VFP課程設計_第2頁
學生信息管理系統VFP課程設計_第3頁
學生信息管理系統VFP課程設計_第4頁
學生信息管理系統VFP課程設計_第5頁
已閱讀5頁,還剩27頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實用文檔1引言1.2系統技術及運行環境 1.2.1 Visual Foxpro 6.0 簡介1.2.2 系統開發及運行環境1.3系統分析2.3.1 需求分析 2.3.2 可行性分析2.4總體設計2.4.1 設計目標2.4.2 項目規劃3.4.3 系統功能圖4.5系統詳細設計5.5.1 數據庫設計 5.5.2 登陸界面設計6.5.3 學生信息錄入8.5.4 學生信息修改 9.5.5 學生信息查詢 .1.15.6 系管理表單設計125.7 班級管理1.55.8 學生成績錄入175.9 修改學生成績 .195.10 學生成績查詢 215.11 用戶管理225.12 修改用戶密碼255.13 關于系統

2、266結論27.致凝128.參考文獻29.1 引言學生信息管理系統(Student Information Management System ),以下簡稱SIM§是針對學校人事處的大量業務處理工作而開發的管理軟件,是典型的管理信息系統( ManagementInformation System ) 。它是一個教育單位不可缺少的部分, 它的內容對于學校的決策者和管理者來說都至關重要, 它能夠為用戶提供充足的信息和快捷的查詢手段。 能有效的幫助學校和老師掌握學生的情況,為學生提供成績跟課程方面的查詢。在傳統模式下利用人工進行學生信息管理,存在著較多的缺點,如:效率底,保密性差,時間一長

3、將產生大量的文件和數據,更不便于查找,更新,維護等。諸如這些情況,令學校管理者對學生的信息管理帶來了很大困難,嚴重影響了教育工作者的工作效率。隨著科學技術的不斷提高 , 計算機科學日漸成熟,使用日趨成熟的計算機技術來代替傳統的人工模式,來實現學生信息的現代化管理,其強大的功能已為人們深刻認識 , 它已進入人類社會的各個領域并發揮著越來越重要的作用。 作為計算機應用的一部分, 使用計算機對學生信息進行管理, 具有著手工管理所無法比擬的優點 . 例如 : 檢索迅速、 查找方便、 易修改、 可靠性高、存儲量大、數據處理快捷、保密性好、 壽命長、成本低、便于打印等。 這些優點能夠極大地提高學生信息管理

4、的效率, 也是學校的科學化、正規化管理 , 與世界接軌的重要條件。 用計算機制作的學生信息管理系統還可以通過功能強大的Internet 網及時的向學生的家長傳遞該生在校的最新成績,有助于學校與家長的信息互動,為更好地把握學校的教育方針一定的促進作用!因此,開發這樣一套管理軟件成為很有必要的事情。2 系統技術及運行環境2.1 Visual Foxpro 6.0簡介Visual Foxpro 6.0是計算機優秀的數據管理系統軟件之一,正如其名稱中的“Visual一樣,它采用了可視化的、面向對象的程序設計方法,大大簡化了應用系統的開發過程,并提高了應用系統的開發過程,并提高了系統的模塊性和緊湊型。是

5、新一代的小型數據庫管理系統的杰出代表,它以其強大的性能、完整而又豐富的工具、較高的處理速度、友好的界面以及較完備的兼容性,備受廣大用戶的歡迎。面前, Visual Foxpro 6.0 是用戶收集信息、查詢數據、創建集成數據庫系統、進行應用系統開發較為理想的微機數據庫管理系統。2.2 系統開發及運行環境該運行環境的規定是保證本需求說明的功能得到實際真正體現的基礎。(1)運行環境Windows98或更高版本的操作系統數據庫系統: Microsoft Visual Foxpro 6.0( 2)開發環境:開發工具: Microsoft Visual Foxpro 6.0數據庫系統: Microsof

6、t Visual Foxpro 6.023 系統分析3.1 需求分析21 世紀以來,人類經濟高速發展,人們發生了日新月異的變化,特別是計算機的應用及普及到經濟和社會生活的各個領域。使原本的舊的管理方法越來越不適應現在社會的發展。許多人還停留在以前的手工操作。這大大地阻礙了人類經濟的發展。為了適應現代社會人們高度強烈的時間觀念,學校信息管理系統軟件為學校辦公室帶來了極大的方便。(一)教育系統學生管理現狀分析學校工作流程分析學校工作總體規劃由教務人員在學生信息管理系統中完成對運行教務處所需的基本數據的維護,包括這些信息的增加、修改及對各項信息的變動都將在這進行操作。新的學年,教務人員首先加入年級信

7、息,然后編排班級,再對來校學生進行基本的信息錄入,新生入學后由教務人員在學籍系統中完成新學生信息的維護。(二)學校具體需求分析學生:對各科成績的查詢任課老師:輸入并維護所教科目的學生成績教務處: 學校全體成員的信息管理,并對任課老師,班主任等輸入的信息進行存庫,對學生的信息進行必要的維護。通過研究調查,本系統需以下功能:綜合學生信息、學生成績以及信息查詢等信息。方便用戶了解和管理學生的全面動態信息。良好的界面設計,更人性化的設計理念,使用戶擁有更輕松的使用心情。3.2 可行性分析目的:可行性研究的目的是用最小的代價在盡可能的時間內確定問題是否能解決。經濟性:由于學校等中小型管理系統并不復雜,且

8、Visual Foxpro 6.0 本身要求的運行環境不高,所以一般 Windows 2000 以上的系統環境都可以使用。實用性:本學生信息管理系統管理系統無太多復雜的操作要求,也沒有過分花哨的裝飾品,人性化的設計界面可以使操作者輕易運用自如4 總體設計4.1 設計目標本系統可以能減少很多不必要的資源,不用象以前那樣用冗余的紙張式的管理。大節省了學校能源。并且計算機的存儲與快速查詢功能大大提高了學籍管理的效率,并且還提高了學籍信息管理的精確度。方便快速的操作,可減少學籍信息管理的漏洞,又減少因工作的冗余出現的錯誤,并且操作非常簡單,可減少許多不很必要的人員,這無論從物質上還是工作人員的工資上都

9、為學校節約了開支。為學校增加了財富。數據庫分析用戶需求具體有學籍管理系統提供保存、更新、查詢、維護,這就需求數據庫結構能充分滿足各種信息的輸入與輸出,實現有組織地、動態地存儲大量關聯數據,方便用戶訪問系統中的數據,它與文件系統的重要區別是數據的充分共享,交叉訪問,與應用程序的高度獨立性。4.2 項目規劃學生管理系統是各大中專院校不可缺少的一部分,是一個VF 數據庫開發應用程序,它主要包括用戶登錄、學生信息輸入修改、學生信息查詢以及學生成績輸入、學生成績查詢、系統用戶管理等幾個頁面,因而該系統具有較強的實用性。204.3系統功能圖5系統詳細設計5.1 數據庫設計(1) deandma.dbf,見

10、表 1表1字段名數據類型備注班級Char (8)主鍵 Not null系Char (10)Not null專業Char (14)Not null(2) grade.dbf ,見表 2表2字段名數據類型備注學號Char (8)主鍵 Not null班級Char (10)Not null課程Char (18)Not null成績Int (5)Not null學期Char (2)Not null備注MemoNull(3) stduents.dbf ,見表 3表3字段名數據類型備注班級Char (8)主鍵 Not null學號Char (8)Not null姓名Char (8)Not null性別Ch

11、ar (6)Not Null出生日期DatetimeNull政治面貌Char (8)Null身份證號碼Char (16)Null入學時間DatetimeNull籍貫Char (16)Null家庭住址Char (28)Null郵政編碼Char (6)Null照片GeneralNull備注MemoNull.dbf ,見表4表4用戶信息表字段名數據類型備注姓名Char (8)主鍵 Not null密碼Char (6)Not null標識LogicalNot null5.2 登陸界面設計取消為空,請輸入!進入“進入”按鈕的click事件添加如下的代碼:sele yonghuif allt(thisfo

12、rm.text1.value尸二”"messagebox(left(allt(thisform.label1.caption),6)+",64,"提示")thisform.text1.setfocus elseif allt(thisform.text2.value)=""messagebox("密碼為空,請輸入!”,64,"提示")thisform.text2.setfocus elsen=n+1locate for allt(姓名尸allt(thisform.text1.value);.and. al

13、lt( 密碼 )=allt(thisform.text2.value)if found()if thisform.check1.value=1 .and. 標識checked=1thisform.releasedo menu.mprelseif thisform.check1.value=1.and.! 標識messagebox("你不是管理員! ",48,"警告")thisform.check1.value=0elsechecked=0cyonghu=allt( 姓名 )cmima=allt( 密碼 )thisform.releasedo menu.m

14、prendifendifelseif n>=3messagebox("你不是合法用戶,請與管理員聯系!”,48,"警告”)thisform.releaseclear eventquitelsemessagebox(left(allt(thisform.label1.caption),6)+"或密碼錯誤, 請重新輸入! ",64," 提示 ") thisform.text1.value=""thisform.text1.setfocusthisform.text2.value=""endif

15、endifendifendif“取消”按鈕的 click 事件添加如下的代碼nr=messagebox(" 你選擇了退出登錄,是否退出? ",68," 用戶登錄 ") if nr=6thisform.releasequit endif5.3 學生信息錄入“增加”按鈕的click事件添加如下的代碼:if this.caption=" 增加"if(bo3.displayvalue="(選 擇)").or.(alltrim(thisform.text1.value)=""); .or.(alltrim

16、(thisform.text2.value)="") messagebox("班級、學號和姓名必須填充! !",64,"提示")else locate for alltrim(thisform.text1.value)=alltrim(students.學號)if !eof() =messagebox("此學號已經存在,請重新輸入!",64,"提示")thisform.text1.value="" thisform.text1.setfocus else sele stude

17、nts append blank replace 班 級 with alltrim(bo3.value), 學 號 with alltrim(thisform.text1.value);姓名 with alltrim(thisform.text2.value),出生日期 withctod(alltrim(thisform.text4.value); 入學時間 with ctod(alltrim(thisform.text6.value),籍貫 withalltrim(thisform.text7.value);家 庭 住 址 with alltrim(thisform.text8.value)

18、,身 份 證 號 碼 withalltrim(thisform.text8.value);備 注 with alltrim(thisform.edit1.value),郵 政 編 碼 withalltrim(thisform.text3.value)if alltrim(bo4.value)=""replace 性別with alltrim(bo4.displayvalue)elsereplace 性別with alltrim(bo4.value)endifif alltrim(bo5.value)=""replace 政治面貌with alltrim(

19、bo5.displayvalue)elsereplace 政治面貌with alltrim(bo5.value)endif&& if .not.alltrim(thisform.label17.caption)=""if !pictemp=""wait windows " 正在導入相片,請等待! "at 100,40 timeout 2 nowait&& pictemp=thisform.label17.captionappend general students. 照片 from "&

20、;pictemp"endifpictemp=""this.caption=" 繼續 "endifendifelsemand2.clickthis.caption=" 增加 "endif5.4 學生信息修改“修改”按鈕的click事件添加如下的代碼ith thisformsele studentslocate for allt(學號尸allt(.textl.value)if allt( 學號)=allt(.text1.value)replace 學號 with allt(.textl.value), 姓名 with allt(

21、.text2.value),郵政編碼 with allt(.text3.value),;出生日期 with .text4.value, 入學時間 with .text6.value, 籍貫 with allt(.text7.value),;家庭住址 with allt(.text8.value),身份證號碼 with allt(.text9.value),性別 with allt(.combo4.value),;政治面貌 with allt(.combo5.value), 備注 with allt(.edit1.value)if !pictemp=""wait window

22、s ”正在導入相片,請等待! "at 100,40 timeout 2 nowaitappend general 照片 from "&pictemp” endifendifsele lslocate for allt( 學號尸allt(.text1.value)if allt( 學號)=allt(students. 學號)replace 學號 with students. 學號,姓名 with students. 姓名,郵政編碼 with students.郵政編碼,;出生日期with students.出生日期,入學時間with students.入學時間,籍貫

23、with students. 籍貫,;家庭住址with students.家庭住址,身份證號碼with students.身份證號碼,性別 with students.性別,;政治面貌 with students.政治面貌,備注 with students. 備注,照片 withstudents.照片endifpictemp=""this.enabled=.f.endwith5.5學生信息查詢“定位查詢”按鈕的click事件添加如下的代碼if allt(thisform.text1.value)=""messagebox("請輸入學號或姓名!&

24、quot;,64,"提示")thisform.textl.setfocuselsesele stulslocate for allt(學號尸allt(thisform.text1.value);.or.allt( 姓名尸allt(thisform.text1.value)if found()go recn()elsewait window at 18,38 nowait ' 沒有找到你要查詢的信息! endifendifthisform.gridl.refreshthisform.refresh“第一個"按鈕的click事件添加如下的代碼 sele stu

25、lsskip -1 if bof() this.enabled=.f.mand3.enabled=.f. messagebox("已經到第一條記錄了!",64,"提示")go top elsego recn()endifmand2.enabled=.t. mand4.enabled=.t.“單個查詢”按鈕的click事件添加如下的代碼 nxx=1do form xxxg5.6系管理表單設計“增加”按鈕的click事件添加如下的代碼set order to tagset safety offif alltrim(thisform.text1.value)=

26、""messagebox(" 系名為空,請輸入! ",64," 提示 ")thisform.text1.setfocus elselocate for deandma. 系=alltrim(thisform.text1.value) if .not.eof() messagebox(" 系名已經存在,請重新輸入! ",48," 提示 ") thisform.text1.value="" thisform.text1.setfocus else append blankrepl

27、ace deandma. 系 with alltrim(thisform.text1.value)thisform.text1.value=""thisform.text1.setfocus endif thisform.list1.clearthisform.list1.init && 重新顯示 list 列表thisform.list1.value="" endif“刪除”按鈕的 click 事件添加如下的代碼Set safety offif this.caption=" 取消 "thisform.text2.va

28、lue=""thisform.text2.enabled=.f.thisform.label3.enabled=.f.this.caption=" 刪除 "mand1.enabled=.t.mand2.caption=" 修改 " elseif alltrim(thisform.text1.value)=""messagebox("缺少完整信息,無法刪除! ",0+48,"警告")thisform.text1.setfocus elsethisform.list1.value

29、=alltrim(thisform.text1.value)nn=messagebox("是否確定刪除此系單位,其所屬的專業班級的數據庫都將刪 除! ",1+48," 警告 ")if nn=1t=0use datadeandmago topdo while .not.eof()if alltrim( 系)=alltrim(thisform.text1.value)deletepackt=1endifskipenddoif t=0messagebox("將刪除的內容不存在,請重新輸入。”,60,"提示”)thisform.text1.s

30、etfocusendifendifthisform.text1.value=""thisform.list1.requerythisform.list1.clearthisform.list1.init && 重新顯示 List 列表thisform.text1.value=alltrim(thisform.list1.value)endifendifthisform.refresh5.7班級管理“增加”按鈕的click事件添加如下的代碼set order to tagset safety offif alltrim(thisform.text1.value

31、尸=”"messagebox("班級名為空,請輸入!”,64,"提示")thisform.textl.setfocuselselocate for deandma.班級=alltrim(thisform.text1.value)if .not.eof()messagebox("班級名已經存在,請重新輸入! ”,48,"提示")thisform.text1.value=""thisform.text1.setfocuselselocate for deandma. 專業=alltrim(bo2.value)

32、if alltrim(deandma.班級)=""replace deandma. 班級 with alltrim(thisform.text1.value)elseappend blankreplace deandma. 系 with alltrim(bo1.value)replace deandma. 專業 with alltrim(bo2.value)replace deandma. 班級 with alltrim(thisform.text1.value) endifthisform.text1.value=""thisform.text1.se

33、tfocusendifbo2.click && 重新顯示 list 列表thisform.list1.value="" endif“刪除”按鈕的 click 事件添加如下的代碼Set safety offif this.caption=" 取消 "thisform.text2.value=""thisform.text2.enabled=.f.thisform.label5.enabled=.f.this.caption=" 刪除 "mand1.enabled=.t.mand2.caption=&q

34、uot; 修改 " elseif alltrim(thisform.text1.value)=""=messagebox("缺少完整信息,無法刪除!",0+48,"警告")thisform.text1.setfocuselseuse deandma exclusivethisform.list1.value=alltrim(thisform.text1.value)",1+48,"nn=messagebox("是否確定刪除此班級,與其相關的數據都將刪除!警告 ) if nn=1t=0locate

35、 for alltrim(deandma. 班級 )=alltrim(thisform.text1.value) deletepackt=1if t=0messagebox("將刪除的內容不存在,請重新輸入。”,64,"提示”)thisform.text1.setfocusendifendifthisform.text1.value=""thisform.list1.requerybo2.click && 重新顯示 List 列表thisform.text1.value=alltrim(thisform.list1.value)endif

36、 endif thisform.refresh5.8學生成績錄入“確定”按鈕的click事件添加如下的代碼xuehao=allt(thisform.text1.value) banji=allt(bo3.value) kecheng=allt(bo4.value) xueqi=allt(bo5.value) chengji=allt(thisform.text2.value) sele grade if chengji=""tt=messagebox("想輸入單科成績嗎? ",4+32,"提示") if tt=6thisform.te

37、xt2.setfocuselse endif else*locate for allt( 學號尸xuehao*if eof()locate for allt(課程)=kechengif allt( 學號)="".and.allt(班級)=banjirepl 學號 with xuehao repl 成績 with val(chengji) repl 學期 with xueqielse* append blank* repl學號withxuehao* repl班級withbanji* repl課程withkecheng* repl成績withval(chengji)* repl

38、學期withxueqi*endif*elselocate for allt( 學號 )=xuehao .and. allt( 課程 )=kecheng .and. allt( 學 期 )=xueqiif eof()append blankrepl學號with xuehaorepl班級with banjirepl課程with kechengrepl成績with val(chengji)repl學期with xueqielsett=messagebox(" 該科的成績已存在,是否覆蓋? ",4+32+256," 提示 ")if tt=6repl 成績 wit

39、h val(chengji)endifendifendifthisform.Command2.clickmand3.enabled=.f.endif“查詢”按鈕的 click 事件添加如下的代碼 sele lsif allt(thisform.text3.value)=""messagebox("請輸入學號或姓名!",64,"提示")elselocate for 學 號 =allt(thisform.text3.value).or.姓 名=allt(thisform.text3.value)if eof()messagebox(&qu

40、ot;該班級沒有此人! ! ",64,"提示")thisform.text3.value=""thisform.text3.setfocusgo nhereelsethisform.text1.value= 學號endifendif5.9修改學生成績第年期上一位下一位第一位最后一位姓名二小紅 學號,07040401全部課程倨改返回選擇系、專業、班級而I彳算機系 3 專業:W麗露訪日 眄|口711網絡 3 學期:m輸入學號或姓名:(07040401 - 1快速查詢:“快速查詢”按鈕的click事件添加如下的代碼sele lsbjif allt(t

41、hisform.text1.value尸二”"messagebox("請輸入學號或姓名!",16,"提示")thisform.textl.setfocus elselocate for 學 號 =allt(thisform.text1.value).or.姓 名=allt(thisform.text1.value)if eof()messagebox("本班級沒有此人,請重新輸入!”,64,"提示")thisform.text1.value=""thisform.text1.setfocusel

42、sexuehao=allt(學號)thisform.label8.caption=姓名thisform.label9.caption=學號bo4.clickendifendif“下一位”按鈕的 click 事件添加如下的代碼mand2.enabled=.t.mand4.enabled=.t.if !allt(bo3.value)=""sele lsbjskip 1if eof()this.enabled=.f.mand5.enabled=.f.messagebox(" 已經到最后一條記錄了!",48," 提示 ")go bottome

43、ndifxuehao=allt( 學號 )thisform.label8.caption=allt(姓名)thisform.label9.caption=allt(學號 )“補考統計”按鈕的click事件添加如下的代碼if allt(bo3.value尸=”"messagebox("請選擇班級!",64,"提示")elsebkbj=bo3.valuebkxq=bo4.valuedo form bukaoendif“定位查詢”按鈕的click事件添加如下的代碼if allt(thisform.text1.value尸二”"message

44、box("請輸入學號或姓名! ",64,"提示")thisform.text1.setfocuselselocate for allt(students. 學號)=allt(thisform.text1.value).or.;allt(students.姓名尸allt(thisform.text1.value)if found()lsxh=allt(students.學號)lsxm=allt(students.姓名)buxq=allt(bo4.value)do form dgcjelsemessagebox("沒有此人,請重新輸入",

45、64,"提示")endifendif5.11用戶管理Listl的init事件中添加的代碼如下sele yonghuthis.additem("管理員") locate for標識二.T.do while found()this.additem("-"+ 姓名)continueenddogo toplocate for標識二.F.this.additem("普通用戶")do while found() this.additem("-"+ 姓名) continueenddo“注冊”按鈕的click事

46、件添加如下的代碼24Set safety offsele yonghuif alltrim(thisform.text1.value)=""messagebox("用戶名不能為空!",0+48,"警告")thisform.text1.setfocuselselocate for 姓名 =alltrim(thisform.text1.value)if(.not. eof()messagebox("此用戶已存在,請重新輸入!",64,"警告")thisform.text1.value="&

47、quot;thisform.text1.setfocuselseif alltrim(thisform.text2.value)=""messagebox("密碼不能為空!",0+48," 警告")thisform.text2.setfocuselseif (thisform.text2.value)=(thisform.text3.value)append blankrepl 姓名 with alltrim(thisform.text1.value),;密碼 with alltrim(thisform.text2.value)if

48、thisform.check1.value=1repl 標識with .T.elserepl 標識with .F.endifthisform.text1.value=""thisform.text2.value=""thisform.text3.value=""thisform.text1.setfocusthisform.text3.enabled=.f.thisform.label4.enabled=.f.thisform.list1.clearthisform.list1.initelsett=messagebox("

49、 確認密碼錯誤,請重新輸入! ",0+48," 警告 ")if tt=1thisform.text3.enabled=.t.thisform.label4.enabled=.t.thisform.text3.value=""thisform.text3.setfocusendifendifendifendifendif“刪除”按鈕的 click 事件添加如下的代碼if allt(thisform.text1.value)=""messagebox("請選擇或輸入用戶名",64,"提示"

50、)thisform.text1.setfocuselseuse yonghulocate for 姓名 =allt(thisform.text1.value);.and. 密碼 =allt(thisform.text2.value)if eof()messagebox("請選擇或輸入正確的用戶名",64,"提示")thisform.text1.value=""thisform.text2.value=""thisform.text1.setfocuselsett=messagebox(" 一定要刪除嗎?

51、",4+48," 刪除確認 ")if tt=6deletepackendifthisform.list1.clearthisform.list1.initthisform.list1.clickendifendif5.12修改用戶密碼“修改”按鈕的click事件添加如下的代碼sele yonghuif allt(thisform.text1.value尸二”"thisform.textl.setfocuselselocate for allt(姓名尸allt(thisform.textl.value)if eof()messagebox("此用戶不存在,請重新輸入!",64,"提示")thisform.text1.value=""thisform.text1.setfocus()elseif !allt(密碼)=allt(thisform.text2.value)messagebox("密碼錯誤,請重新輸入!”,64,"提示")thisform.text2.value=""thisform.text2.setfocus()elseif allt(thisform.text3.value尸二”&q

溫馨提示

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

評論

0/150

提交評論