學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告.doc
《學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告.doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告.doc(37頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
南 京 理 工 大 學(xué)數(shù)據(jù)庫(kù)課程設(shè)計(jì)作 者:學(xué) 號(hào):學(xué)院(系):計(jì)算機(jī)科學(xué)與工程學(xué)院專(zhuān) 業(yè):網(wǎng)絡(luò)工程題 目:學(xué)生成績(jī)管理系統(tǒng)指導(dǎo)老師:衷宜2013 年 9 月目錄一、概述 3 二、需求分析4三、系統(tǒng)設(shè)計(jì)9四、系統(tǒng)實(shí)施15五、系統(tǒng)測(cè)試29六、收獲和體會(huì) 33七、附錄34八、參考文獻(xiàn)34一、概述1、項(xiàng)目背景當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開(kāi)信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開(kāi)發(fā)密切相關(guān),系統(tǒng)的開(kāi)發(fā)是系統(tǒng)管理的前提。目前隨著個(gè)大高校的擴(kuò)招,在校學(xué)生數(shù)量龐大。擁有一款好的學(xué)習(xí)成績(jī)管理系統(tǒng)軟件,對(duì)于加強(qiáng)對(duì)在校生的成績(jī)管理起到積極作用。并且,可以為在校生隨時(shí)查閱自己的成績(jī)信息、教師錄入成績(jī)、管理員進(jìn)行信息維護(hù)等提供方便,為學(xué)校節(jié)省大量人力資源本系統(tǒng)就是為了管理好學(xué)生成績(jī)信息而設(shè)計(jì)的。2、編寫(xiě)目的首先,學(xué)生成績(jī)管理是一個(gè)學(xué)校不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的管理者和學(xué)生以及學(xué)生家長(zhǎng)來(lái)說(shuō)都至關(guān)重要,所以一個(gè)良好的學(xué)生成績(jī)管理系統(tǒng)應(yīng)該能夠?yàn)橛脩?hù)提供充足的信息和快捷的查詢(xún)手段。學(xué)生成績(jī)管理系統(tǒng)對(duì)學(xué)校加強(qiáng)學(xué)生成績(jī)管理有著極其重要的作用.作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生成績(jī)信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高管理者管理的效率,也是學(xué)校走向科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開(kāi)發(fā)設(shè)計(jì)這樣一套學(xué)生成績(jī)管理軟件成為很有必要的事情。其次,初步掌握軟件開(kāi)發(fā)的流程,熟悉delphi與SQL的使用方法,達(dá)到能夠較好的運(yùn)用兩者制成能實(shí)現(xiàn)初步功能的管理系統(tǒng),鍛煉自己的動(dòng)手能力,同時(shí),在合作中更好的與同學(xué)交流,這些都是必要的。最后,自己動(dòng)手編程序,能更好的提升對(duì)本專(zhuān)業(yè)的愛(ài)好,初步了解本專(zhuān)業(yè)的發(fā)展方向,為將來(lái)的畢業(yè)與找工作奠定基礎(chǔ)。3、軟件定義該學(xué)生管理管理信息系統(tǒng)是基于Internet/Intranet及C+技術(shù),建立以以數(shù)據(jù)庫(kù)為后臺(tái)核心應(yīng)用、以服務(wù)為目的信息平臺(tái),對(duì)資源進(jìn)行科學(xué)的加工整序和管理維護(hù),為教學(xué)和科學(xué)研究提供文獻(xiàn)信息保障和提高管理學(xué)生成績(jī)的效率而設(shè)計(jì)的系統(tǒng)。4、開(kāi)發(fā)環(huán)境 本系統(tǒng)采用windows7,XP作為操作平臺(tái),前臺(tái)開(kāi)發(fā)工具采用delphi7.0,數(shù)據(jù)庫(kù)管理采用SQL SERVER 2008。二、需求分析1、問(wèn)題的提出為了提高高校學(xué)生成績(jī)信息的管理效率,方便學(xué)生和教師對(duì)學(xué)生成績(jī)信息進(jìn)行查詢(xún)、方便學(xué)校里面管理員去管理和查詢(xún)學(xué)生信息,建立一個(gè)學(xué)生成績(jī)管理系統(tǒng),使學(xué)生信息管理工作規(guī)范化,系統(tǒng)化,程序化,避免學(xué)生成績(jī)管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢(xún)和修改學(xué)生信息是必須而且十分迫切的工作。本次課程設(shè)計(jì)題目為學(xué)生成績(jī)管理系統(tǒng),涉及成績(jī)管理系統(tǒng)的登錄界面、老師對(duì)學(xué)生成績(jī)的查詢(xún)、學(xué)生對(duì)學(xué)生成績(jī)的查詢(xún)、教務(wù)員對(duì)學(xué)生成績(jī)的增刪改查統(tǒng)計(jì)等內(nèi)容。本功能實(shí)現(xiàn)對(duì)學(xué)生信息、教師信息情況信息的管理和統(tǒng)計(jì)、課程信息和成績(jī)信息查看及維護(hù)。2、系統(tǒng)的業(yè)務(wù)功能分析學(xué)生成績(jī)管理系統(tǒng)應(yīng)當(dāng)將學(xué)生與教務(wù)員區(qū)分開(kāi)來(lái),因?yàn)樵觥h、改、統(tǒng)計(jì)的權(quán)限應(yīng)當(dāng)只有教務(wù)員才擁有,學(xué)生只能查詢(xún)與自己相關(guān)的記錄,老師查詢(xún)自己所授課程的記錄,而教務(wù)員則錄入數(shù)據(jù),進(jìn)行增刪改與統(tǒng)計(jì)。另外,在日常學(xué)習(xí)生活中,為了方便老師和同學(xué)了解情況,需要提供平均分、最高(低)分、排名等供老師和學(xué)生查詢(xún)。具體分析:按照教師,學(xué)生,管理員三種角色設(shè)計(jì)系統(tǒng)功能。學(xué)生要能夠查詢(xún)自己所學(xué)課程的成績(jī),查看自己不同課程的成績(jī)、GPA以及排名,查看個(gè)人信息、修改個(gè)人登錄密碼等。教師要實(shí)現(xiàn)對(duì)自己所教授課程中所有學(xué)生成績(jī)的查詢(xún)、以及對(duì)自己所教班上同學(xué)的各分?jǐn)?shù)段成績(jī)單人數(shù)成績(jī)的查詢(xún)(排序功能),個(gè)人資料的修改和修改個(gè)人登錄密碼等。管理員要能夠?qū)崿F(xiàn)對(duì)管理員、教師、學(xué)生基本信息的增加、刪除、修改、查詢(xún)以及實(shí)現(xiàn)對(duì)學(xué)生成績(jī)的增加、刪除(按學(xué)號(hào)、按班級(jí)、按課程號(hào)、按院系)、修改、查詢(xún)(按學(xué)號(hào)、按班級(jí)、按課程號(hào)、按院系)和數(shù)據(jù)統(tǒng)計(jì)分析以及對(duì)結(jié)果提供打印功能等。個(gè)人信息3、系統(tǒng)業(yè)務(wù)流程分析修改密碼菜 單退出管理員管理員信息教師信息信 息 管 理登陸次數(shù)必須小于三學(xué)生信息成績(jī)查詢(xún)成 績(jī) 管 理成績(jī)管理成績(jī)統(tǒng)計(jì)系統(tǒng)登錄學(xué)生管理系統(tǒng)顯示制作人和版本幫 助個(gè)人信息修改密碼菜 單退出成 績(jī) 管 理教師成績(jī)查詢(xún)顯示制作人和版本幫 助個(gè)人信息修改密碼菜 單退出學(xué)生成績(jī)查詢(xún)成 績(jī) 管 理顯示制作人和版本幫 助4、完成的功能系統(tǒng)的功能模塊劃分 學(xué)生成績(jī)管理系統(tǒng)包括八個(gè)模塊:系統(tǒng)登錄、學(xué)生基本信息管理、教師基本信息管理、管理員基本信息管理、學(xué)生成績(jī)信息查詢(xún)、學(xué)生成績(jī)信息管理,學(xué)生成績(jī)信息統(tǒng)計(jì),系統(tǒng)退出。 1、系統(tǒng)登錄模塊(1)用戶(hù)人員在登錄界面中輸入用戶(hù)名與密碼。(2)通過(guò)用戶(hù)名與數(shù)據(jù)庫(kù)里的用戶(hù)表相比配,將學(xué)生、教師與管里員區(qū)分開(kāi),三者各自進(jìn)入自己的頁(yè)面,初始密碼為:000000,登錄成功后,可以修改密碼。(3)三者擁有各自權(quán)限,分別擁有不同的功能。2、學(xué)生基本信息管理:管理員對(duì)所有學(xué)生信息進(jìn)行增刪改查,學(xué)生只能查詢(xún)自己的基本信息。3、教師基本信息管理:管理員對(duì)所有教師信息進(jìn)行增刪改查,學(xué)生只能查詢(xún)自己的基本信息。4、管理員基本信息管理:管理員對(duì)所有管理員信息進(jìn)行增刪改查。5、學(xué)生成績(jī)信息查詢(xún):管理員查詢(xún)功能:可以按學(xué)號(hào)、班級(jí)、院系、教師工號(hào)等對(duì)學(xué)生成績(jī)分別進(jìn)行查詢(xún)、查某門(mén)課程的排名、最高分、最低分、績(jī)點(diǎn)、不及格人數(shù)等、查某班級(jí)某科目分?jǐn)?shù)段的人數(shù)。教師查詢(xún)功能:查詢(xún)所教課程的最高分、最低分、各分?jǐn)?shù)段人數(shù)、不及格人數(shù)等。學(xué)生查詢(xún)功能:查某學(xué)生所學(xué)課程的排名、最高分、最低分、績(jī)點(diǎn)、不及格人數(shù)等。6、學(xué)生成績(jī)信息管理:管理員對(duì)學(xué)生成績(jī)進(jìn)行增刪改查。7、學(xué)生成績(jī)信息統(tǒng)計(jì):按學(xué)號(hào)、班級(jí)、院系、教師工號(hào)等分別進(jìn)行統(tǒng)計(jì),并對(duì)結(jié)果提供打印能。8、退出程序:退出該程序。5、數(shù)據(jù)流程圖數(shù)據(jù)流圖信息管理(操作員、教師、學(xué)生)查詢(xún)個(gè)人信息管 理 員學(xué) 生成績(jī)管理(增刪改查)學(xué)生成績(jī)管理系統(tǒng)查詢(xún)個(gè)人成績(jī)、GPA成績(jī)統(tǒng)計(jì)、打印查詢(xún)課程成績(jī)情況查詢(xún)個(gè)人信息教 師6、數(shù)據(jù)字典(1).數(shù)據(jù)流學(xué)院信息,包括學(xué)院編號(hào),學(xué)院名稱(chēng)等信息。班級(jí)信息,包括班級(jí)編號(hào),學(xué)院編號(hào)等信息。學(xué)生信息,包括學(xué)生編號(hào),學(xué)生姓名,性別,班級(jí),聯(lián)系方式等信息。教師信息,包括教師工號(hào),教師姓名,性別,學(xué)院編號(hào),聯(lián)系方式等信息。管理員信息,包括管理員編號(hào),管理員姓名,性別等信息。用戶(hù)信息,包括用戶(hù)名,登錄密碼等信息。課程信息,包括課程號(hào),課程名稱(chēng),學(xué)分,學(xué)時(shí),教師工號(hào)等信息。 (2).數(shù)據(jù)存儲(chǔ)成績(jī)表信息,包括學(xué)生編號(hào),課程編號(hào),課程績(jī)點(diǎn),課程成績(jī)等信息。課程安排信息,包括課程編號(hào),課程名稱(chēng),教師工號(hào)等信息。administrorE/R圖:admininameadmininoownsclassnameownsdepartmentclassnoclassdepartidownsownsusernotnousernameownsdepartidsname snoteacherownstnameuserownssexstudentteach ofcreditStudy ofdepartidsexphonephonectimecoursegrade ofgradetnocnocnameownsGPAscoresnocnamecno三、系統(tǒng)設(shè)計(jì)1、數(shù)據(jù)表:(1)、數(shù)據(jù)庫(kù)的關(guān)系模式:student(sno, sname, sex, classno, departed, phone);teacher(tno, tname, departid, sex, phone);course(cno, cname, credit, ctime, tno);score(sno, sname, cno, cname, grade, GPA);administror(adminino,adimniname,sex);department(departed, departname);class(departed, classno, classname);user(userno,password);屬性名數(shù)據(jù)類(lèi)型是否為主鍵是否為空說(shuō)明缺省值snochar(10)YesNOT NULL學(xué)號(hào)snamechar(20)noNOT NULL姓名Nonamesexchar(10)noNOT NULL性別classnochar(10)noNOT NULL班級(jí)號(hào)(外鍵)departidchar(10)noNOT NULL院系號(hào)(外鍵)phonechar(20)noNULL聯(lián)系方式 (2)、表的物理設(shè)計(jì):表一學(xué)生信息表studentCreate table student(sno char(10) primary key,sname char(20) not null default Noname,sex char(10) not null ,classno char(10) foreign key references class(classno) ,departid char(10) foreign key references department(departid),phone char(20));表二教師信息表teacher屬性名數(shù)據(jù)類(lèi)型是否為主鍵是否為空說(shuō)明缺省值tnochar(10)YesNOT NULL教師工號(hào)tnamechar(10)noNOT NULL教師姓名Nonamedepartidchar(10)noNOT NULL院系號(hào)(外鍵)sexchar(10)noNOT NULL性別phonechar(11)noNULL聯(lián)系方式Create table student(tno char(10) primary key,tname char(10) not null default Noname ,sex char(10) not null ,departid char(10) forgein key refrences department(departid),phone char(20));表三課程信息表course屬性名數(shù)據(jù)類(lèi)型是否為主鍵是否為空說(shuō)明缺省值cnochar(10)YesNOT NULL課程號(hào)cnamechar(20)noNOT NULL課程名creditchar(10)noNOT NULL學(xué)分ctimechar(10)noNOT NULL學(xué)時(shí)數(shù)tnochar(10)YesNOT NULL教師工號(hào)Create table student(cno char(10) ,cname char(20) not null,credi char(10) not null ,ctime char(10) not null,tno char(10) ,primary key(cno, tno);表四學(xué)生成績(jī)表score屬性名數(shù)據(jù)類(lèi)型是否為主鍵是否為空說(shuō)明缺省值snochar(10)YesNOT NULL學(xué)號(hào)snamechar(20)noNOT NULL姓名Nonamecnochar(10)YesNOT NULL課程號(hào)cnamechar(20)noNOT NULL課程名gradechar(10)noNOT NULL成績(jī)GPAFloatnoNULLGPACreate table score (sno char(10) ,sname char(20) not null,cno char(10),cname char(20) not null,Score char(10) not null,GPA float,primary key(sno,cno);表五管理員信息表administror屬性名數(shù)據(jù)類(lèi)型是否為主鍵是否為空說(shuō)明缺省值admininochar(10)YesNOT NULL工號(hào)admininameChar(20)noNOT NULL姓名Nonamesexchar(10)noNOT NULL性別Create table student(adminino char(10) primary key,admininame char(20) not null default Noname,sex char(10) not null);Admininoadmininamesex200000張娜女200001王強(qiáng)男表六院系表department屬性名數(shù)據(jù)類(lèi)型是否為主鍵是否為空說(shuō)明缺省值departidchar(10)yesNOT NULL院系號(hào)departnamechar(20)noNOT NULL院系名Create table student(departid char(10) primary key,departname char(20) not null);表七班級(jí)表class屬性名數(shù)據(jù)類(lèi)型是否為主鍵是否為空說(shuō)明缺省值departidchar(10)noNOT NULL院系號(hào)(外鍵)classnochar(10)yesNOT NULL班級(jí)號(hào)classnamechar(10)noNOT NULL班級(jí)名稱(chēng)Create table class (departid char(10) foreign key references department(departid),classno char(10)primary key ,classname char(10) not null);表八用戶(hù)表user屬性名數(shù)據(jù)類(lèi)型是否為主鍵是否為空說(shuō)明缺省值usernoChar(10)yesNOT NULL用戶(hù)名passwordChar(6)noNOT NULL密碼000000Create table user(userno char(10) primary key,password char(6)not null );2、視圖,索引,數(shù)據(jù)庫(kù)權(quán)限:這些在這個(gè)學(xué)生成績(jī)管理系統(tǒng)中沒(méi)有用到。3、軟件功能設(shè)計(jì)(1)、系統(tǒng)的結(jié)構(gòu)圖修改密碼退出成績(jī)查詢(xún)顯示制作人和版本退出修改密碼成績(jī)查詢(xún)個(gè)人信息顯示制作人和版本個(gè)人信息幫 助成 績(jī) 管 理菜 單幫 助菜 單成 績(jī) 管 理成績(jī)統(tǒng)計(jì)顯示制作人和版本成績(jī)管理學(xué)生信息成績(jī)查詢(xún)管理員信息教師信息退出修改密碼個(gè)人信息幫 助成 績(jī) 管 理信 息 管 理菜 單學(xué)生教師管理員系統(tǒng)登錄學(xué)生管理系統(tǒng)登陸次數(shù)必須小于三(2)、功能表:學(xué) 生 成 績(jī) 管 理 系 統(tǒng)身份功能模塊細(xì)分模塊功能具體描述管 理 員菜單個(gè)人信息顯示登錄管理員的個(gè)人信息(工號(hào)、姓名、性別)修改密碼管理員修改自己的登錄密碼退出管理員退出整個(gè)系統(tǒng)信息管理管理員信息對(duì)所有管理員的信息進(jìn)行增刪改查教師信息對(duì)所有教師的信息進(jìn)行增刪改查學(xué)生信息對(duì)所有學(xué)生的信息進(jìn)行增刪改查成績(jī)管理成績(jī)查詢(xún)可以按學(xué)號(hào)、班級(jí)、院系、教師工號(hào)等分別進(jìn)行查詢(xún)查某學(xué)生所學(xué)課程的排名、最高分、最低分、績(jī)點(diǎn)、不及格人數(shù)等查某班級(jí)某科目分?jǐn)?shù)段的人數(shù)成績(jī)管理對(duì)學(xué)生成績(jī)進(jìn)行增刪改查成績(jī)統(tǒng)計(jì)按學(xué)號(hào)、班級(jí)、院系、教師工號(hào)等分別進(jìn)行統(tǒng)計(jì)對(duì)結(jié)果提供打印能幫助顯示該系統(tǒng)的制作人和版本教 師菜單個(gè)人信息顯示登錄教師個(gè)人信息(工號(hào)、姓名、性別、院系號(hào)、聯(lián)系方式)修改密碼教師修改自己的登錄密碼退出教師退出整個(gè)系統(tǒng)成績(jī)管理成績(jī)查詢(xún)查詢(xún)所教課程的最高分、最低分、各分?jǐn)?shù)段人數(shù)、不及格人數(shù)等成績(jī)統(tǒng)計(jì)按學(xué)號(hào)、班級(jí)、院系、教師工號(hào)等分別進(jìn)行統(tǒng)計(jì)幫助顯示該系統(tǒng)的制作人和版本學(xué) 生菜單個(gè)人信息顯示登錄學(xué)生個(gè)人信息(學(xué)號(hào)、姓名、性別、班級(jí)號(hào)、院系號(hào)、聯(lián)系方式)修改密碼學(xué)生修改自己的登錄密碼退出學(xué)生退出整個(gè)系統(tǒng)成績(jī)管理成績(jī)查詢(xún)查某學(xué)生所學(xué)課程的排名、最高分、最低分、績(jī)點(diǎn)、不及格人數(shù)等幫助顯示該系統(tǒng)的制作人和版本(3)、功能描述:同功能表。四、系統(tǒng)實(shí)施(1)、系統(tǒng)的界面設(shè)計(jì):1、登陸界面2、密碼修改3、個(gè)人信息4、操作頁(yè)面5、信息管理6、成績(jī)查詢(xún)7、成績(jī)管理8、成績(jī)統(tǒng)計(jì)(2)、事件的設(shè)計(jì)過(guò)程:運(yùn)行軟件進(jìn)入主界面,在主界面登錄進(jìn)入各自操作主界面。學(xué)生登錄后可在登錄界面進(jìn)行成績(jī)查詢(xún)、個(gè)人信息查詢(xún)及密碼修改。教師登錄后可在登錄界面進(jìn)行功能選擇來(lái)完成自己所選擇的查詢(xún)與維護(hù)。管理員登錄后可在登錄界面點(diǎn)擊各頁(yè)面標(biāo)簽選擇功能進(jìn)入相應(yīng)頁(yè)面。(3)、主要代碼描述:1、登錄procedure TfrmLogin.btnOKClick(Sender: TObject);var sSQL: string;begin if Trim(Edit1.Text) = then begin gf_MessageBox(請(qǐng)?zhí)顚?xiě)用戶(hù)名!, MB_OK); Edit1.SetFocus; Exit; end else if Trim(Edit2.Text) = then begin gf_MessageBox(請(qǐng)?zhí)顚?xiě)密碼!, MB_OK); Edit2.SetFocus; Exit; end; iErrorCount := iErrorCount + 1; sSQL := select a.userno,a.password,b.tname,b.usertype + from user a + left join (select tno,tname,1 as UserType from teacher + union all + select sno,sname,2 from student + union all + select adminino,admininame,0 from administror) b on a.userno = b.tno + where a.userno = + QuotedStr(Trim(Edit1.Text) + and a.password = + QuotedStr(Trim(Edit2.Text); gf_OpenSQL(sSQL, DM.aqPublic); if DM.aqPublic.IsEmpty then begin if iErrorCount = 3 then begin gf_MessageBox(賬號(hào)或密碼錯(cuò)誤三次,程序自動(dòng)關(guān)閉!,MB_OK); Application.Terminate; end; gf_MessageBox(賬號(hào)或密碼錯(cuò)誤,請(qǐng)重試!還剩 + IntToStr(3 - iErrorCount) + 次將自動(dòng)關(guān)閉程序!,MB_OK); Edit1.SelectAll; Edit1.SetFocus; end else begin gr_LoginUser.sUserID := DM.aqPublic.FieldByName(userno).AsString; gr_LoginUser.sUserName := DM.aqPublic.FieldByName(tname).AsString; gr_LoginUser.iType := DM.aqPublic.FieldByName(usertype).AsInteger; SetLoginInfo; Self.Hide; Application.CreateForm(TfrmStuSource, frmStuSource); case gr_LoginUser.iType of 0: begin frmStuSource.sbMain.Panels0.Text := 工號(hào): + gr_LoginUser.sUserID; frmStuSource.sbMain.Panels1.Text := 姓名: + gr_LoginUser.sUserName; frmStuSource.sbMain.Panels2.Text := 登錄身份:管理員; end; 1: begin frmStuSource.S1.Visible := False; frmStuSource.N3.Visible := False; frmStuSource.N10.Visible := False; frmStuSource.sbMain.Panels0.Text := 工號(hào): + gr_LoginUser.sUserID; frmStuSource.sbMain.Panels1.Text := 姓名: + gr_LoginUser.sUserName; frmStuSource.sbMain.Panels2.Text := 登錄身份:教師; end; 2: begin frmStuSource.S1.Visible := False; frmStuSource.N10.Visible := False; frmStuSource.N11.Visible := False; frmStuSource.sbMain.Panels0.Text := 學(xué)號(hào): + gr_LoginUser.sUserID; frmStuSource.sbMain.Panels1.Text := 姓名: + gr_LoginUser.sUserName; frmStuSource.sbMain.Panels2.Text := 登錄身份:學(xué)生; end; end; frmStuSource.ShowModal; end;end;procedure TfrmLogin.FormShow(Sender: TObject);begin iErrorCount := 0;end;procedure TfrmLogin.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if Key = 13 then Edit2.SetFocus;end;procedure TfrmLogin.Edit2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if Key = 13 then btnOKClick(Sender);end;2、修改密碼function TfrmChangPwd.ChangePwd: Boolean;var sSQL: string; OldPwd,NewPwd: string;begin Result := True; if Trim(edtNewPwd1.Text) = Trim(edtNewPwd2.Text) then begin gf_MessageBox(兩次輸入的新密碼不相同,MB_OK); edtNewPwd2.SetFocus; Result := False; Exit; end; OldPwd := Trim(edtOldPsw.Text); NewPwd := Trim(edtNewPwd1.Text); sSQL := update user set password = + QuotedStr(NewPwd) + where userno = + QuotedStr(gr_LoginUser.sUserID); gf_ExecSQL(sSQL,DM.aqSQL);end;procedure TfrmChangPwd.btnOKClick(Sender: TObject);begin if not ChangePwd then begin gf_MessageBox(密碼修改成功!, MB_OK); Exit; end;end;3、查詢(xún)數(shù)據(jù)procedure TfrmScoreMange.SearchData;var sSQL: string;begin sSQL := select a.sno,a.sname,b.sex,b.phone,a.cno,a.cname,a.score,a.GPA,d.departname,c.classname + from score a + left join student b on a.sno = b.sno + left join class c on b.classno = c.classno + left join department d on b.departid = d.departid + where 1 = 1; case gr_LoginUser.iType of 0: begin end; 1: begin sSQL := sSQL + and exists(select 1 from course where cno = a.cno and tno = + QuotedStr(gr_LoginUser.sUserID) + ); end; 2: begin sSQL := sSQL + and a.sno = + QuotedStr(gr_LoginUser.sUserID); end; end; if Trim(edtSNo.Text) then sSQL := sSQL + and a.sno = + QuotedStr(Trim(edtSNo.Text); if Trim(edtSName.Text) then sSQL := sSQL + and a.sName = + QuotedStr(Trim(edtSName.Text); if Trim(edttno.Text) then sSQL := sSQL + and exists(select * from course where cno = a.cno and tno = + QuotedStr(Trim(edttno.Text) + ); if Trim(cbxSDepart.Text) 全部 then sSQL := sSQL + and d.departname = + QuotedStr(Trim(cbxSDepart.Text); if Trim(cbxSClass.Text) 全部 then sSQL := sSQL + and c.ClassName = + QuotedStr(Trim(cbxSClass.Text); gf_OpenSQL(sSQL, aqMaster);end;4、增加記錄procedure TfrmScoreMange.AddData;var sSQL: string; fScore: Double;begin if Trim(edtNo.Text) = then begin gf_MessageBox(插入數(shù)據(jù)時(shí)未填寫(xiě)學(xué)號(hào)!,MB_OK); edtNo.SetFocus; Exit; end else if Trim(edtName.Text) = then begin gf_MessageBox(插入數(shù)據(jù)時(shí)未填寫(xiě)姓名!,MB_OK); edtName.SetFocus; Exit; end else if Trim(edtCourse.Text) = then begin gf_MessageBox(插入數(shù)據(jù)時(shí)未填寫(xiě)課程號(hào)!,MB_OK); edtCourse.SetFocus; Exit; end else if Trim(edtCourseName.Text) = then begin gf_MessageBox(插入數(shù)據(jù)時(shí)未填寫(xiě)課程名稱(chēng)!,MB_OK); edtCourseName.SetFocus; Exit; end else if Trim(edtScore.Text) = then begin gf_MessageBox(插入數(shù)據(jù)時(shí)未填寫(xiě)成績(jī)!,MB_OK); edtScore.SetFocus; Exit; end else if Trim(edtGPA.Text) = then begin gf_MessageBox(插入數(shù)據(jù)時(shí)未填寫(xiě)平均績(jī)點(diǎn)!,MB_OK); edtGPA.SetFocus; Exit; end; if not TryStrToFloat(Trim(edtScore.Text),fScore) then begin gf_MessageBox(成績(jī)輸入不合法,請(qǐng)重輸!,MB_OK); edtScore.SetFocus; Exit; end else if not TryStrToFloat(Trim(edtGPA.Text),fScore) then begin gf_MessageBox(平均績(jī)點(diǎn)輸入不合法,請(qǐng)重輸!,MB_OK); edtGPA.SetFocus; Exit; end; if gf_MessageBox(是否新增所輸數(shù)據(jù)?,MB_YESNO + MB_ICONWARNING) = IDNO then Exit; sSQL := sSQL + insert into score(sno,sname,cno,cname,score,GPA) + values(%s,%s,%s,%s,%s,%s); sSQL := Format(sSQL,QuotedStr(Trim(edtNo.Text),QuotedStr(Trim(edtName.Text),QuotedStr(Trim(edtCourse.Text) ,QuotedStr(Trim(edtCourseName.Text),QuotedStr(Trim(edtScore.Text),QuotedStr(Trim(edtGPA.Text); try gf_ExecSQL(sSQL,aqPublic); except on E: Exception do begin gf_MessageBox(保存數(shù)據(jù)發(fā)生錯(cuò)誤。錯(cuò)誤信息: + E.Message,MB_OK); end; end; SearchData;end;5、刪除記錄procedure TfrmScoreMange.DelData;var sSQL: string;begin if (aqMaster.IsEmpty) or (not aqMaster.Active) then begin gf_MessageBox(沒(méi)有數(shù)據(jù)可以刪除!,MB_OK + MB_ICONWARNING); Exit; end; if gf_MessageBox(刪除數(shù)據(jù)后將不能恢復(fù),是否刪除?,MB_YESNO + MB_ICONWARNING) = IDNO then Exit; sSQL := delete from score where sno = + QuotedStr(aqMaster.FieldByName(sno).AsString) + and cno = + QuotedStr(aqMaster.FieldByName(cno).AsString); gf_ExecSQL(sSQL,aqPublic); SearchData;end;6、修改記錄procedure TfrmScoreMange.EditData;var sSQL: string; sno: string;begin if (aqMaster.IsEmpty) or (not aqMaster.Active) then begin gf_MessageBox(沒(méi)有數(shù)據(jù)可以修改!,MB_OK + MB_ICONERROR); Exit; end; sno := aqMaster.FieldByName(sno).AsString; sSQL := update score set sno = %s,sname = %s, cno = %s, cname = %s, score = %s, GPA = %s where sno = + QuotedStr(aqMaster.FieldByName(sno).AsString) + and cno = + QuotedStr(aqMaster.FieldByName(cno).AsString); sSQL := Format(sSQL,QuotedStr(Trim(edtNo.Text),QuotedStr(Trim(edtName.Text),QuotedStr(Trim(edtCourse.Text) ,QuotedStr(Trim(edtCourseName.Text),QuotedStr(Trim(edtScore.Text),QuotedStr(Trim(edtGPA.Text); try gf_ExecSQL(sSQL,aqPublic); except on E: Exception do begin gf_MessageBox(修改數(shù)據(jù)發(fā)生錯(cuò)誤。錯(cuò)誤信息: + E.Message,MB_OK); end; end; SearchData; aqMaster.Locate(sno,sno,);end;7、統(tǒng)計(jì)procedure TfrmScoreStat.StatData(iType: Integer);var sSQL: string; sCondition1,sCondition2: string; i: Integer;begin for i := 0 to dgMaster.Columns.Count - 1 do dgMaster.Columnsi.Visible := True; sSQL := from score a + left join student b on a.sno = b.sno + left join class c on b.classno = c.classno + left join department d on b.departid = d.departid ; case iType of 1: begin sCondition1 := select a.sno,a.sname,c.classname,d.departname,a.cno,a.cname,max(a.score) as MaxScore, + min(a.score) as MinScore,convert(decimal(18,2),avg(convert(float,a.score) as avgScore, + sum(case when convert(float,a.score) 60 then 0 else 1 end) as Fail ; sCondition2 := group by a.sno,a.sname,c.classname,d.departname,a.cno,a.cname; end; 2: begin dgMaster.Columns0.Visible := False; dgMaster.Columns1.Visible := False; sCondition1 := select c.classname,d.departname,a.cno,a.cname,max(a.score) as MaxScore, + min(a.score) as MinScore,convert(decimal(18,2),avg(convert(float,a.score) as avgScore, + sum(case when convert(float,a.score) 60 then 0 else 1 end) as Fail ; sCondition2 := group by c.classname,d.departname,a.cno,a.cname; end; 3: begin dgMaster.Columns0.Visible := False; dgMaster.Columns1.Visible := False; dgMaster.Columns2.Visible := False; sCondition1 := select d.departname,a.cno,a.cname,max(a.score) as MaxScore, + min(a.score) as MinScore,convert(decimal(18,2),avg(convert(float,a.score) as avgScore, + sum(case when convert(float,a.score) 60 then 0 else 1 end) as Fail ; sCondition2 := group by d.departname,a.cno,a.cname; end; 4: begin dgMaster.Columns0.Visible := False; dgMaster.Columns1.Visible := False; dgMaster.Columns2.Visible := False; dgMaster.Columns3.Visible := False; sCondition1 := select a.cno,a.cname,max(a.score) as MaxScore, + min(a.score) as MinScore,convert(decimal(18,2),avg(convert(float,a.score) as avgScore, + sum(case when convert(float,a.score) 60 then 0 else 1 end) as Fail ; sCondition2 := group by a.cno,a.cname; end; end; sSQL := sCondition1 + sSQL + sCondition2; gf_OpenSQL(sSQL, aqMaster);end;8、打印procedure CopyDbDataToExcel(Args: array of const);var iCount, jC- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 學(xué)生 成績(jī)管理系統(tǒng) 設(shè)計(jì) 報(bào)告
鏈接地址:http://m.appdesigncorp.com/p-6529254.html