Oracle數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告學(xué)生成績(jī)管理系統(tǒng).doc
《Oracle數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告學(xué)生成績(jī)管理系統(tǒng).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《Oracle數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告學(xué)生成績(jī)管理系統(tǒng).doc(34頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
Oracle數(shù)據(jù)庫(kù)課程設(shè)計(jì)題目 學(xué)生考試管理系統(tǒng) 班級(jí) 11網(wǎng)工2班 姓名 馬路瑤 學(xué)號(hào) 指導(dǎo)老師 楊超峰目錄一、 前言2二、 需求分析3三、 系統(tǒng)設(shè)計(jì)5四、 數(shù)據(jù)庫(kù)設(shè)計(jì)7五、 編程步驟19六、 測(cè)試25七、 課程設(shè)計(jì)總結(jié)33八、 參考資料34九、 附錄34一、前言 學(xué)生考試管理是一個(gè)學(xué)校必不可少的部分,隨著計(jì)算機(jī)和計(jì)算機(jī)知識(shí)的普及,學(xué)生考試管理系統(tǒng)得到了更大的發(fā)展空間,通過(guò)對(duì)學(xué)生考試管理系統(tǒng)的開發(fā),可以提高校務(wù)人員的工作效率。學(xué)生成績(jī)管理是一個(gè)學(xué)校不可缺少的部分,一個(gè)良好的學(xué)生成績(jī)管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。學(xué)生考試管理系統(tǒng)對(duì)學(xué)校加強(qiáng)學(xué)生考試管理有著極其重要的作用.由于各個(gè)大學(xué)都在持續(xù)擴(kuò)招,學(xué)生的數(shù)量日益龐大,對(duì)于如何管理如此龐大的學(xué)生考試數(shù)據(jù)顯得更為復(fù)雜,傳統(tǒng)的手工成績(jī)管理不僅工作量大,而且容易出現(xiàn)問(wèn)題,如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。已不能適應(yīng)時(shí)代的發(fā)展。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(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ī)化管理,與世界接軌的重要條件。因此,開發(fā)設(shè)計(jì)這樣一套學(xué)生成考試?yán)碥浖蔀楹苡斜匾氖虑?二、需求分析1.功能需求1. 學(xué)生基本信息及所選科目成績(jī)的錄入或?qū)搿?. 基本信息的查詢(分系、班級(jí);分科目)與修改。3. 對(duì)每系或每班各科成績(jī)進(jìn)行分析(即求單科平均成績(jī)、及格率和優(yōu)秀率);4. 對(duì)所開課程的成績(jī)分析(求其平均成績(jī),最高分和最低分);5. 對(duì)學(xué)生考試成績(jī)進(jìn)行排名(單科按系別或班級(jí)進(jìn)行排名,對(duì)每一個(gè)班級(jí),同一學(xué)期學(xué)生總體成績(jī)進(jìn)行排名,并顯示各科成績(jī)信息)6. 不及格情況的統(tǒng)計(jì)、導(dǎo)出、打印2.系統(tǒng)需求該學(xué)生成績(jī)管理系統(tǒng)采用java語(yǔ)言開發(fā)研制, JavaBean作為行為模型,servlet作為響應(yīng)服務(wù)器,DIV+CSS+javascript設(shè)計(jì)網(wǎng)頁(yè),oracle作為數(shù)據(jù)存儲(chǔ)。在完成用戶需求同時(shí),完成條件查詢等功能。針對(duì)學(xué)生成績(jī)及其數(shù)據(jù)特點(diǎn),可以全面實(shí)現(xiàn)對(duì)學(xué)生成績(jī)的插入、查詢、修改、刪除和輸出等功能的計(jì)算機(jī)管理。它能使學(xué)生成績(jī)數(shù)據(jù)的工作人員從繁重的工作中解脫出來(lái),大大減輕了工作量,減少人為的工作失誤,全面提高學(xué)生成績(jī)管理的效率,從而使學(xué)校對(duì)于學(xué)生成績(jī)的管理水平和技術(shù)水平躍上一個(gè)新的臺(tái)階。3.系統(tǒng)開發(fā)環(huán)境1.開發(fā)語(yǔ)言:java+jsp2.開發(fā)工具: IE 8.0,Tomcat ,jdk 1.7,dreamweaver3.數(shù)據(jù)庫(kù):Oracle 10g4.文檔編寫工具:word5. 服務(wù)器端運(yùn)行環(huán)境:oracle 10g,Tomcat ,jdk 1.76. 客戶端運(yùn)行環(huán)境:瀏覽器三、系統(tǒng)設(shè)計(jì)1.功能模塊學(xué)生考試管理系統(tǒng)信息錄入信息查詢信息修改信息刪除成績(jī)統(tǒng)計(jì)分析班級(jí)信息錄入科目信息錄入學(xué)生信息錄入班級(jí)內(nèi)部排名按學(xué)號(hào)查詢按姓名查詢學(xué)生信息修改成績(jī)信息修改學(xué)生信息刪除成績(jī)信息刪除單科成績(jī)排名單科成績(jī)分析成績(jī)信息錄入不及格情況統(tǒng)計(jì)學(xué)生總成績(jī)排名2.系統(tǒng)流程圖開始登陸密碼正確?是否進(jìn)入系統(tǒng)修改密碼控制面板退出系統(tǒng)?結(jié)束是否3.數(shù)據(jù)字典(1)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)表:用戶表表組成:用戶名,密碼數(shù) 據(jù) 項(xiàng):用戶名數(shù)據(jù)類型:varchar數(shù)據(jù)長(zhǎng)度:50數(shù) 據(jù) 項(xiàng):密碼數(shù)據(jù)類型:varchar數(shù)據(jù)長(zhǎng)度:50(2)數(shù)據(jù)流定義:登陸名 稱:登陸簡(jiǎn) 述:用戶登陸系統(tǒng)數(shù)據(jù)來(lái)源:用戶數(shù)據(jù)去向:用戶表數(shù)據(jù)組成:用戶名+密碼四、數(shù)據(jù)庫(kù)設(shè)計(jì)1.數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)院系表(cs)字段名數(shù)據(jù)類型是否為空說(shuō)明Cs_classVarchar2(50)Not null班級(jí)名(主鍵)Cs_deptVarchar2(50)Not null系別Cs_gradeVarchar2(50)Not null年級(jí)成績(jī)表(gd)字段名數(shù)據(jù)類型是否為空說(shuō)明Gd_stu_noVarchar2(15)Not null學(xué)號(hào)(聯(lián)合主鍵、外鍵)Gd_sub_subjectVarchar2(50)Not null科目(聯(lián)合主鍵、外鍵)Gd_gradeNumber(3)Not null成績(jī)科目表(sub)字段名數(shù)據(jù)類型是否為空說(shuō)明Sub_subjectVarchar2(50)Not null科目名(主鍵)Sub_teacher_nameVarchar2(10)任課老師名學(xué)生表(student)字段名數(shù)據(jù)類型是否為空說(shuō)明Stu_noVarchar2(15)Not null學(xué)號(hào)(主鍵)Stu_nameVarchar2(10)Not null學(xué)生名Stu_cs_classVarchar2(50)班級(jí)名(外鍵)Stu_sexVarchar(4)Not null性別(約束)Stu_birthdayVarchar2(50)出生日期Stu_phoneVarchar2(200)聯(lián)系電話用戶表(user_)字段名數(shù)據(jù)類型是否為空說(shuō)明nameVarchar2(50)Not null用戶名(主鍵)PasswdVarchar2(50)notnull密碼2.實(shí)體聯(lián)系圖學(xué)生信息姓名出生日期性別學(xué)號(hào)聯(lián)系電話所在班級(jí)成績(jī)信息科目名學(xué)號(hào)成績(jī)教師用戶管理用戶名密碼班級(jí)信息班級(jí)名年級(jí)科目信息科目名任課老師系別管理管理管理3.數(shù)據(jù)庫(kù)源代碼select userenv(language) from dual;shutdown immediatestartup mountALTER SYSTEM ENABLE RESTRICTED SESSION;ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;ALTER SYSTEM SET AQ_TM_PROCESSES=0;ALTER DATABASE OPEN;alter database character set INTERNAL_USE UTF8;shutdown immediatestartupcreate user xz105151640043 identified by xz/grant dba to xz/conn xz105151640043/xz/set serveroutput on/create table user_(name varchar(50) primary key,passwd varchar(50) not null)/insert into user_ values(xz,xz);/Commit/create table cs(cs_class varchar(50) primary key,cs_dept varchar(50) not null,cs_grade varchar(50) not null)/create table student(stu_no varchar(15) primary key,stu_name varchar(10) not null,stu_sex varchar(4) not null check (stu_sex=男or stu_sex=女), stu_birthday varchar(50) ,stu_phone varchar(50),stu_cs_class varchar(50),constraint class_fk foreign key(stu_cs_class) references cs(cs_class)on delete cascade)/ create table sub(sub_subject varchar(50) primary key,sub_teacher_name varchar(10)/ create table gd(gd_stu_no varchar(15),gd_sub_subject varchar(50),gd_grade number(3) not null,primary key(gd_stu_no,gd_sub_subject),constraint fk_gd_stu_no foreign key(gd_stu_no) references student(stu_no),constraint fk_gd_sub_subject foreign key(gd_sub_subject) references sub(sub_subject)/create or replace procedure p_insert_stu(p_stu_no in student.stu_no%type,p_stu_name in student.stu_name%type,p_stu_sex in student.stu_sex%type,p_stu_birthday in student.stu_birthday%type,p_stu_phone in student.stu_phone%type,p_stu_cs_class in student.stu_cs_class%type,s_state_values out number) asbegin insert into student(stu_no,stu_name,stu_sex ,stu_birthday,stu_phone,stu_cs_class) values (p_stu_no,p_stu_name,p_stu_sex,p_stu_birthday,p_stu_phone,p_stu_cs_class);if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;commit;end ;/create or replace procedure c_insert_stu(c_stu_no in student.stu_no%type,c_state_values out number)asbeginselect count(*) into c_state_values from studentwhere stu_no=c_stu_no;end ;/create or replace procedure c_insert_stu_fk(c_cs_class in cs.cs_class%type,c_state_values_fk out number)asbeginselect count(*) into c_state_values_fk from cswhere cs_class=c_cs_class;end ;/create or replace procedure p_insert_cs(p_cs_dept in cs.cs_dept%type,p_cs_grade in cs.cs_grade%type,p_cs_class in cs.cs_class%type,s_state_values out number)asbegininsert into cs(cs_dept,cs_grade,cs_class)values(p_cs_dept, p_cs_grade, p_cs_class);if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;commit;end ;/create or replace procedure c_insert_cs(c_cs_class in cs.cs_class%type,c_state_values out number)asbeginselect count(*) into c_state_values from cswhere cs_class=c_cs_class;end ;/create or replace procedure p_insert_sub(p_sub_subject in sub.sub_subject%type,p_sub_teacher_name in sub.sub_teacher_name%type,s_state_values out number)asbegininsert into sub(sub_subject,sub_teacher_name)values(p_sub_subject, p_sub_teacher_name);if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;commit;end;/create or replace procedure c_insert_sub(c_sub_subject in sub.sub_subject%type,c_state_values out number)asbeginselect count(*) into c_state_values from subwhere sub_subject=c_sub_subject;end ;/create or replace procedure p_insert_gd(p_gd_stu_no in gd.gd_stu_no%type,p_gd_sub_subject in gd.gd_sub_subject%type,p_gd_grade in gd.gd_grade%type,s_state_values out number)asbegininsert into gd(gd_stu_no,gd_sub_subject,gd_grade)values(p_gd_stu_no,p_gd_sub_subject,p_gd_grade);if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;if p_gd_grade=nullthen s_state_values:=2;end if;commit;end ;/create or replace procedure c_insert_gd(p_gd_stu_no in gd.gd_stu_no%type,p_gd_sub_subject in gd.gd_sub_subject%type,c_state_values out number)asbeginselect count(*) into c_state_values from (select gd_stu_no from gdwhere gd_sub_subject=p_gd_sub_subject)where gd_stu_no=p_gd_stu_no;end ;/create or replace procedure c_insert_gd_fk1(c_stu_no in student.stu_no%type,c_state_values_fk1 out number)asbeginselect count(*) into c_state_values_fk1 from studentwhere stu_no=c_stu_no;end ;/create or replace procedure c_insert_gd_fk2(c_sub_subject in sub.sub_subject%type,c_state_values_fk2 out number)asbeginselect count(*) into c_state_values_fk2 from subwhere sub_subject=c_sub_subject;end ;/create or replace procedure p_select_stu_no_info(p_stu_no in out student.stu_no%type,p_stu_name out student.stu_name%type,p_stu_sex out student.stu_sex%type,p_stu_birthday out student.stu_birthday%type,p_stu_phone out student.stu_phone%type,p_stu_cs_class out student.stu_cs_class%type,p_cs_dept out cs.cs_dept%type,p_cs_grade out cs.cs_grade%type,c_state_values out number)asbeginc_state_values:=0;select stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade into p_stu_no, p_stu_name, p_stu_sex, p_stu_birthday, p_stu_phone, p_stu_cs_class, p_cs_dept, p_cs_gradefrom student, cswhere stu_cs_class=cs_class and stu_no=p_stu_no;exceptionwhen NO_DATA_FOUND then c_state_values:=1;when others then c_state_values:=2;end ;/create or replace procedure p_select_stu_no_gd(p_stu_no in student.stu_no%type , cursor_gd out sys_refcursor)asbeginopen cursor_gd forselect gd_sub_subject,gd_gradefrom gdwhere gd_stu_no=p_stu_no;end;/create or replace procedure p_select_stu_name(p_stu_name in student.stu_name%type , cursor_stu out sys_refcursor,c_state_values out number)asbeginc_state_values:=0;open cursor_stu forselect stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade from student, cswhere stu_name=p_stu_name and stu_cs_class=cs_class;exceptionwhen others then c_state_values:=2;end;/create or replace procedure p_pm_sum(cursor_gd_sum out sys_refcursor)asbeginopen cursor_gd_sum forselect distinct sno,stu_name,sumfrom student,(select gd_stu_no as sno,sum(gd_grade) as sum from gd group by gd_stu_no)where stu_no=snoorder by sum desc;end;/create or replace procedure p_pm_sub(p_gd_sub_subject in gd.gd_sub_subject%type,cursor_gd_sub out sys_refcursor)asbeginopen cursor_gd_sub forselect gd_stu_no,stu_name,gd_gradefrom gd,studentwhere gd_sub_subject=p_gd_sub_subject and stu_no=gd_stu_noorder by gd_grade desc;end;/create or replace procedure p_pm_class(p_stu_cs_class in student.stu_cs_class%type,cursor_gd_class out sys_refcursor)asbeginopen cursor_gd_class forselect distinct sno,stu_name,sumfrom student,(select gd_stu_no as sno,sum(gd_grade) as sum from gd group by gd_stu_no)where stu_no=sno and stu_cs_class=p_stu_cs_classorder by sum desc;end;/create or replace procedure p_fx(cursor_fx out sys_refcursor)asbeginopen cursor_fx forselect gd_sub_subject,max(gd_grade) as zuigao,min(gd_grade) as zuidi,avg(gd_grade) as pingjun,SUM(CASE WHEN gd_grade=60 THEN 1 ELSE 0 END)/COUNT(*)*100 AS jigelv,SUM(CASE WHEN gd_grade=80 THEN 1 ELSE 0 END)/COUNT(*)*100 AS youxiulvfrom gdgroup by gd_sub_subject;end;/create or replace procedure p_bujige(cursor_bujige out sys_refcursor)asbeginopen cursor_bujige forselect gd_stu_no,gd_sub_subject,gd_gradefrom gdwhere gd_grade60;end;/create or replace procedure p_update_stu(p_stu_no in student.stu_no%type,p_stu_name in student.stu_name%type,p_stu_sex in student.stu_sex%type,p_stu_birthday in student.stu_birthday%type,p_stu_phone in student.stu_phone%type,p_stu_cs_class in student.stu_cs_class%type,s_state_values out number) asbeginupdate studentset stu_name=p_stu_name,stu_sex=p_stu_sex,stu_birthday=p_stu_birthday,stu_phone=p_stu_phone,stu_cs_class=p_stu_cs_classwhere stu_no=p_stu_no; if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;commit;end ;/create or replace procedure p_delete_stu(p_stu_no in student.stu_no%type,s_state_values out number)asbegindelete from gd where gd_stu_no=p_stu_no;delete from student where stu_no=p_stu_no;s_state_values:=0;exceptionwhen others then s_state_values:=1;rollback;commit;end;/create or replace procedure p_update_gd(p_gd_stu_no in gd.gd_stu_no%type,p_gd_sub_subject in gd.gd_sub_subject%type,p_gd_grade in gd.gd_grade%type,s_state_values out number)asbeginupdate gd set gd_stu_no=p_gd_stu_no,gd_sub_subject=p_gd_sub_subject,gd_grade=p_gd_gradewhere gd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject;if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;rollback;commit;end ;/create or replace procedure p_delete_gd(p_gd_stu_no in gd.gd_stu_no%type,p_gd_sub_subject in gd.gd_sub_subject%type,s_state_values out number)asbegindelete from gdwhere gd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject;if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;rollback;commit;end ;/create or replace procedure p_denglu(p_name in user_.name%type,p_passwd in user_.passwd%type,s_state_values out number)asbeginselect count(*) into s_state_valuesfrom user_where name=p_name and passwd=p_passwd;end;/create or replace procedure p_update_passwd(p_name in user_.name%type,p_passwd in user_.passwd%type,s_state_values out number)asbeginupdate user_ set passwd= p_passwdwhere name=p_name;if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;rollback;commit;end;/create or replace procedure p_select_no(cursor_stu_no out sys_refcursor)asbeginopen cursor_stu_no forselect stu_no from studentorder by stu_no;end;/create or replace procedure p_select_all(cursor_all out sys_refcursor)asbeginopen cursor_all forselect stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade from student, cswhere stu_cs_class=cs_classorder by stu_no;end;/create or replace procedure p_select_count(myrowcount out number )asbeginselect count(*) into myrowcountfrom student;end;/五、編程步驟1.連接數(shù)據(jù)庫(kù)的javabean 由于在本系統(tǒng)的多個(gè)JSP頁(yè)面中都需要訪問(wèn)數(shù)據(jù)庫(kù),因此使用一個(gè)JavaBean來(lái)專門完成數(shù)據(jù)庫(kù)的連接。把數(shù)據(jù)庫(kù)連接封裝在一個(gè)類中,每次需要訪問(wèn)數(shù)據(jù)庫(kù)是只需實(shí)例化這個(gè)類并利用類里面提供的共有方法來(lái)完成連接即可。這樣,既可以節(jié)省編碼時(shí)間,也提高了代碼的利用率。1.1模塊描述負(fù)責(zé)完成與數(shù)據(jù)庫(kù)的連接1.2.類的設(shè)計(jì)與實(shí)現(xiàn)(1)名稱:jdbc.java(2)功能:負(fù)責(zé)完成與數(shù)據(jù)庫(kù)的連接。1.3構(gòu)造方法設(shè)計(jì)1.3.1 方法定義:public jdbc() IPO圖輸入:無(wú)。處理:加載驅(qū)動(dòng)程序,若加載中出現(xiàn)異常,則顯示異常描述信息。輸出:無(wú)。 程序清單:public class jdbc private static final String DB_NAME= xz105151640043;private static final String DB_PASSWORD=xz;private static final String DB_URL = jdbc:oracle:thin:localhost:1521:orcl;static try Class.forName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e) e.printStackTrace();System.out.println(class not found!);1.3.2 方法定義:public getConnection() IPO圖輸入:無(wú)。處理:創(chuàng)建驅(qū)動(dòng)程序和指定數(shù)據(jù)庫(kù)間的連接對(duì)象,建立語(yǔ)句對(duì)象輸出:無(wú)。 程序清單:public static Connection getConnection()try return DriverManager.getConnection(DB_URL, DB_NAME, DB_PASSWORD); catch (SQLException e) e.printStackTrace();return null;2.登陸模塊2.1.模塊描述提供用戶登錄、退出、修改密碼功能。2.2.原文件定義(1)denglu.jsp名稱:登陸頁(yè)面。功能:系統(tǒng)登錄頁(yè)面,獲取用戶登錄系統(tǒng)時(shí)的用戶名和密碼。 (2)cl-denglu.jsp名稱:登錄處理頁(yè)面。功能:主要負(fù)責(zé)讀取用戶在登錄頁(yè)面輸入的用戶名、密碼,判斷是否為合法用戶。若是合法用戶,則將該用戶的用戶名寫入到session中,并重定向到系統(tǒng)內(nèi)部的功能頁(yè)面;否則,重定向到denglu.jsp,阻止該用戶進(jìn)入系統(tǒng)。輸入:用戶在登錄頁(yè)面輸入的信息(用戶名和密碼)。處理:連接數(shù)據(jù)庫(kù),調(diào)用存儲(chǔ)過(guò)程p_denglu,傳入?yún)?shù)name、password,接收存儲(chǔ)過(guò)程返回值s_state_values,如果返回值為1則為合法用戶,將該用戶的用戶名寫入到session中,并重定向到系統(tǒng)主頁(yè)面index.jsp;否則,彈出錯(cuò)誤警告用戶名密碼錯(cuò)誤,重定向到denglu.jsp,阻止該用戶進(jìn)入系統(tǒng)。輸出:根據(jù)驗(yàn)證結(jié)果重定向到不同頁(yè)面。 程序清單:%Connection conn = jdbc.getConnection(); String j_name=request.getParameter(j_name);String j_passwd=request.getParameter(j_passwd);CallableStatement cstmt1 = conn.prepareCall(call p_denglu(?,?,?);cstmt1.setString(1,j_name);cstmt1.setString(2,j_passwd);cstmt1.registerOutParameter(3,java.sql.Types.INTEGER); cstmt1.execute();int s_state_values=(cstmt1.getInt(3);if(s_state_values=1)session.setAttribute(user_name,j_name);response.sendRedirect(index.jsp); else if(s_state_values=0)out.println(alert(用戶名密碼錯(cuò)誤!);location.href=denglu.jsp);cstmt1.close(); conn.close(); % (3)tuichu.jsp名稱:用戶退出頁(yè)面功能:主要負(fù)責(zé)登錄用戶的退出功能,將退出系統(tǒng)的用戶信息從session中清除掉。輸入:無(wú)。處理:清楚session中存儲(chǔ)的一切信息輸出:重定向到登錄也頁(yè)面。程序清單: (4)xg-mm.jsp名稱:修改密碼頁(yè)面功能:主要負(fù)責(zé)登錄用戶的修改密碼,將用戶密碼傳給cl-xgmm.jsp。(5)cl-xg-mm.jsp名稱:處理修改密碼頁(yè)面功能:主要負(fù)責(zé)登錄用戶的修改密碼功能,首先驗(yàn)證兩次輸入的新密碼是否一致,然后調(diào)用存儲(chǔ)過(guò)程p_denglu驗(yàn)證原密碼是否正確,最后調(diào)用存儲(chǔ)過(guò)程p_update_passwd修改密碼。程序清單: 3.控制面板模塊3.1.模塊描述提供信息錄入、查詢、修改、刪除、成績(jī)統(tǒng)計(jì)分析功能。3.2.原文件定義源代碼詳見(jiàn)附件(1)lr-cs.jsp名稱:錄入班級(jí)信息頁(yè)面。功能:錄入班級(jí)信息。(2)cl-lr-cs.jsp名稱:處理錄入班級(jí)信息頁(yè)面。功能:錄入班級(jí)信息。(3)lr-sub.jsp名稱:錄入科目信息頁(yè)面。功能:錄入科目信息。(4)cl-lr-sub.jsp名稱:處理錄入科目信息頁(yè)面。功能:錄入科目信息。(5)lr-stu.jsp名稱:錄入學(xué)生信息頁(yè)面。功能:錄入學(xué)生信息。(6)cl-lr-stu.jsp名稱:處理錄入學(xué)生信息頁(yè)面。功能:錄入學(xué)生信息。(7)lr-gd-sub.jsp名稱:錄入成績(jī)信息選擇科目頁(yè)面。功能:錄入成績(jī)信息。(8)lr-gd.jsp名稱:錄入成績(jī)信息頁(yè)面。功能:錄入成績(jī)信息。(9)cl-lr-stu.jsp名稱:處理錄入成績(jī)信息頁(yè)面。功能:錄入成績(jī)信息。(10)cx-by-no.jsp名稱:通過(guò)學(xué)號(hào)查詢信息頁(yè)面。功能:通過(guò)學(xué)號(hào)查詢信息。(11) cl-cx-by-no.jsp名稱:處理通過(guò)學(xué)號(hào)查詢信息頁(yè)面。功能:通過(guò)學(xué)號(hào)查詢信息。(12) cx-by-name.jsp名稱:通過(guò)姓名查詢信息頁(yè)面。功能:通過(guò)姓名查詢信息。(13) cl-cx-by-name.jsp名稱:處理通過(guò)姓名查詢信息頁(yè)面。功能:通過(guò)姓名查詢信息。(14)xg-stu.jsp名稱:修改學(xué)生信息頁(yè)面。功能:修改學(xué)生信息。(15)cl-xg-stu.jsp名稱:處理修改學(xué)生信息頁(yè)面。功能:修改學(xué)生信息。(16)xg-gd.jsp名稱:修改成績(jī)信息頁(yè)面。功能:修改成績(jī)信息。(17)cl-xg-gd.jsp名稱:處理修改成績(jī)信息頁(yè)面。功能:修改成績(jī)信息。(18)sc-stu.jsp名稱:刪除學(xué)生信息頁(yè)面。功能:刪除學(xué)生信息。(19)cl-sc-stu.jsp名稱:處理刪除學(xué)生信息頁(yè)面。功能:刪除學(xué)生信息。(20)sc-gd.jsp名稱:刪除成績(jī)信息頁(yè)面。功能:刪除成績(jī)信息。(21)cl-sc-gd.jsp名稱:處理刪除成績(jī)信息頁(yè)面。功能:刪除成績(jī)信息。(22)pm-sum.jsp名稱:學(xué)生總成績(jī)排名頁(yè)面。功能:顯示學(xué)生總成績(jī)排名。(23)pm-sub.jsp名稱:學(xué)生單科成績(jī)排名頁(yè)面。功能:選擇科目。(24)cl-pm-sub.jsp名稱:顯示學(xué)生單科成績(jī)排名頁(yè)面。功能:顯示學(xué)生單科成績(jī)排名。(25)pm-class.jsp名稱:班級(jí)內(nèi)部排名頁(yè)面。功能:選擇班級(jí)。(26)cl-pm-sub.jsp名稱:顯示班級(jí)內(nèi)部排名頁(yè)面。功能:顯示班級(jí)內(nèi)部排名。(27)cl-fx.jsp名稱:?jiǎn)慰瞥煽?jī)頁(yè)面。功能:顯示單科成績(jī)分析。(28)bujigetj.jsp名稱:不及格情況統(tǒng)計(jì)頁(yè)面。功能:顯示不及格情況。六、測(cè)試1.登陸界面2.系統(tǒng)主界面3修改密碼4退出系統(tǒng)5錄入信息6錄入成績(jī)信息7成績(jī)信息錄入8按學(xué)號(hào)查詢9查詢結(jié)果10學(xué)生總成績(jī)排名11按單科成績(jī)排名12按單科成績(jī)排名13班級(jí)內(nèi)部排名14單科成績(jī)分析15不及格情況統(tǒng)計(jì)七、課程設(shè)計(jì)總結(jié)雖然只是很小很簡(jiǎn)單的系統(tǒng),但是不僅僅是對(duì)這階段學(xué)習(xí)的知識(shí)的一個(gè)鞏固,對(duì)項(xiàng)目的開發(fā)又多增了一層了解和領(lǐng)悟。經(jīng)過(guò)這次課程設(shè)計(jì)的鍛煉,我對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程、觸發(fā)器、PL/SQL編程掌握的更加牢固,對(duì)oracle10g的體系結(jié)構(gòu)有了更深的理解,對(duì)sql語(yǔ)句進(jìn)行了一次復(fù)習(xí),對(duì)jsp學(xué)習(xí)也有很大提升,受益匪淺。在這次課程設(shè)計(jì)中,我也發(fā)現(xiàn)了許多不足之處:1. 前期的準(zhǔn)備還不足,需求分析不完善,這就導(dǎo)致了在項(xiàng)目開發(fā)過(guò)程中還出現(xiàn)了功能反復(fù)修改的情況。2. 數(shù)據(jù)庫(kù)設(shè)計(jì)不夠完善,沒(méi)多方面的考慮完善,導(dǎo)致在編碼過(guò)程中還多次的修改數(shù)據(jù)庫(kù)。3. 整體項(xiàng)目框架沒(méi)規(guī)劃好,項(xiàng)目的前期就應(yīng)該把項(xiàng)目的整體框架和包類,列出和規(guī)范分類,這樣能使在其后編碼階段統(tǒng)一的模塊化的編碼,也能給整合項(xiàng)目的時(shí)候節(jié)省時(shí)間。4. 數(shù)據(jù)庫(kù)文字編碼和項(xiàng)目開發(fā)工具文字編碼不一致,導(dǎo)致中期測(cè)試時(shí)輸入數(shù)據(jù)庫(kù)的中文數(shù)據(jù)變成亂碼,經(jīng)老師指導(dǎo)統(tǒng)一改為utf-8后解決5. 系統(tǒng)還存在許多問(wèn)題,如界面不夠友好,美化不好,不符合軟件工程的要求等最后感謝老師對(duì)我的指導(dǎo)和建議,在實(shí)訓(xùn)期間我遇到了許多困難,老師總是很認(rèn)真的為我解答,通過(guò)老師的細(xì)心指導(dǎo)使我們?cè)跀?shù)據(jù)庫(kù)設(shè)計(jì)方面的知識(shí)得到了擴(kuò)充,懂得了許多以前不知道的知識(shí),我也在老師的細(xì)心指導(dǎo)中體會(huì)到了老師對(duì)學(xué)生那種從內(nèi)心發(fā)出的關(guān)愛(ài),讓我非常感動(dòng)。在本次課程設(shè)計(jì)中,我有幸得到了劉老師的細(xì)心指導(dǎo),使我學(xué)習(xí)到了許多專業(yè)知識(shí)及數(shù)據(jù)庫(kù)設(shè)計(jì)方面的寶貴經(jīng)驗(yàn)。通過(guò)本次課程設(shè)計(jì),我從指導(dǎo)老師身上學(xué)到了很多東西,老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)的精神和深厚的理論水平都使我收益匪淺,并給我留下了深刻的印象。老師在整個(gè)設(shè)計(jì)過(guò)程中,幫助我解決了不少的難題,給予了我巨大的幫助和鼓勵(lì),并細(xì)心的為我介紹在數(shù)據(jù)庫(kù)設(shè)計(jì)方面的知識(shí),這使我得到不少的長(zhǎng)進(jìn),這對(duì)于我以后的工作和學(xué)習(xí)都起著巨大的影響。八、參考資料1.oracle10g數(shù)據(jù)庫(kù)管理應(yīng)用與開發(fā)清華大學(xué)出版社2.jsp使用教程(第二版) 清華大學(xué)出版社3.java程序設(shè)計(jì)基礎(chǔ)教程清華大學(xué)出版社4.數(shù)據(jù)庫(kù)原理及應(yīng)用河南科學(xué)技術(shù)出版社5.網(wǎng)頁(yè)設(shè)計(jì)基礎(chǔ)教程 北京郵電大學(xué)出版社6.網(wǎng)絡(luò)資料九、附錄1.數(shù)據(jù)庫(kù)源代碼2.jsp頁(yè)面源代碼- 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)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- Oracle 數(shù)據(jù)庫(kù) 課程設(shè)計(jì) 報(bào)告 學(xué)生 成績(jī)管理系統(tǒng)
鏈接地址:http://m.appdesigncorp.com/p-6522853.html