Oracle數據庫課程設計報告學生成績管理系統(tǒng).doc
《Oracle數據庫課程設計報告學生成績管理系統(tǒng).doc》由會員分享,可在線閱讀,更多相關《Oracle數據庫課程設計報告學生成績管理系統(tǒng).doc(34頁珍藏版)》請在裝配圖網上搜索。
Oracle數據庫課程設計 題目 學生考試管理系統(tǒng) 班級 11網工2班 姓名 馬路瑤 學號 指導老師 楊超峰 目錄 一、 前言…………………………………………………2 二、 需求分析……………………………………………3 三、 系統(tǒng)設計……………………………………………5 四、 數據庫設計…………………………………………7 五、 編程步驟……………………………………………19 六、 測試…………………………………………………25 七、 課程設計總結………………………………………33 八、 參考資料……………………………………………34 九、 附錄…………………………………………………34 一、前言 學生考試管理是一個學校必不可少的部分,隨著計算機和計算機知識的普及,學生考試管理系統(tǒng)得到了更大的發(fā)展空間,通過對學生考試管理系統(tǒng)的開發(fā),可以提高校務人員的工作效率。 學生成績管理是一個學校不可缺少的部分,一個良好的學生成績管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。學生考試管理系統(tǒng)對學校加強學生考試管理有著極其重要的作用.由于各個大學都在持續(xù)擴招,學生的數量日益龐大,對于如何管理如此龐大的學生考試數據顯得更為復雜,傳統(tǒng)的手工成績管理不僅工作量大,而且容易出現問題,如:效率低、保密性差,另外時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少的困難。已不能適應時代的發(fā)展。 隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。 作為計算機應用的一部分,使用計算機對學生成績信息進行管理,具有手工管理所無法比擬的優(yōu)點。例:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高管理者管理的效率,也是學校走向科學化、正規(guī)化管理,與世界接軌的重要條件。 因此,開發(fā)設計這樣一套學生成考試理軟件成為很有必要的事情. 二、需求分析 1.功能需求 1. 學生基本信息及所選科目成績的錄入或導入。 2. 基本信息的查詢(分系、班級;分科目)與修改。 3. 對每系或每班各科成績進行分析(即求單科平均成績、及格率和優(yōu)秀率); 4. 對所開課程的成績分析(求其平均成績,最高分和最低分); 5. 對學生考試成績進行排名(單科按系別或班級進行排名,對每一個班級,同一學期學生總體成績進行排名,并顯示各科成績信息) 6. 不及格情況的統(tǒng)計、導出、打印 2.系統(tǒng)需求 該學生成績管理系統(tǒng)采用java語言開發(fā)研制, JavaBean作為行為模型,servlet作為響應服務器,DIV+CSS+javascript設計網頁,oracle作為數據存儲。在完成用戶需求同時,完成條件查詢等功能。 針對學生成績及其數據特點,可以全面實現對學生成績的插入、查詢、修改、刪除和輸出等功能的計算機管理。它能使學生成績數據的工作人員從繁重的工作中解脫出來,大大減輕了工作量,減少人為的工作失誤,全面提高學生成績管理的效率,從而使學校對于學生成績的管理水平和技術水平躍上一個新的臺階。 3.系統(tǒng)開發(fā)環(huán)境 1.開發(fā)語言:java+jsp 2.開發(fā)工具: IE 8.0,Tomcat ,jdk 1.7,dreamweaver 3.數據庫:Oracle 10g 4.文檔編寫工具:word 5. 服務器端運行環(huán)境:oracle 10g,Tomcat ,jdk 1.7 6. 客戶端運行環(huán)境:瀏覽器 三、系統(tǒng)設計 1.功能模塊 學生考試管理系統(tǒng) 信息錄入 信息查詢 信息修改 信息刪除 成績統(tǒng)計分析 班級信息錄入 科目信息錄入 學生信息錄入 班級內部排名 按學號查詢 按姓名查詢 學生信息修改 成績信息修改 學生信息刪除 成績信息刪除 單科成績排名 單科成績分析 成績信息錄入 不及格情況統(tǒng)計 學生總成績排名 2.系統(tǒng)流程圖 開始 登陸 密碼正確? 是 否 進入系統(tǒng) 修改密碼 控制面板 退出系統(tǒng)? 結束 是 否 3.數據字典 (1)數據存儲 數據表:用戶表 表組成:用戶名,密碼 數 據 項:用戶名 數據類型:varchar 數據長度:50 數 據 項:密碼 數據類型:varchar 數據長度:50 (2) 數據流定義: 登陸 名 稱: 登陸 簡 述: 用戶登陸系統(tǒng) 數據來源: 用戶 數據去向:用戶表 數據組成:用戶名+密碼 四、數據庫設計 1.數據庫結構設計 院系表(cs) 字段名 數據類型 是否為空 說明 Cs_class Varchar2(50) Not null 班級名(主鍵) Cs_dept Varchar2(50) Not null 系別 Cs_grade Varchar2(50) Not null 年級 成績表(gd) 字段名 數據類型 是否為空 說明 Gd_stu_no Varchar2(15) Not null 學號(聯合主鍵、外鍵) Gd_sub_subject Varchar2(50) Not null 科目(聯合主鍵、外鍵) Gd_grade Number(3) Not null 成績 科目表(sub) 字段名 數據類型 是否為空 說明 Sub_subject Varchar2(50) Not null 科目名(主鍵) Sub_teacher_name Varchar2(10) 任課老師名 學生表(student) 字段名 數據類型 是否為空 說明 Stu_no Varchar2(15) Not null 學號(主鍵) Stu_name Varchar2(10) Not null 學生名 Stu_cs_class Varchar2(50) 班級名(外鍵) Stu_sex Varchar(4) Not null 性別(約束) Stu_birthday Varchar2(50) 出生日期 Stu_phone Varchar2(200) 聯系電話 用戶表(user_) 字段名 數據類型 是否為空 說明 name Varchar2(50) Not null 用戶名(主鍵) Passwd Varchar2(50) notnull 密碼 2.實體聯系圖 學生信息 姓名 出生日期 性別 學號 聯系電話 所在班級 成績信息 科目名 學號 成績 教師用戶 管理 用戶名 密碼 班級信息 班級名 年級 科目信息 科目名 任課老師 系別 管理 管理 管理 3.數據庫源代碼 select userenv(language) from dual; shutdown immediate startup mount ALTER 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 immediate startup create 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 ) as begin 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=1 then s_state_values:=0; end if; exception when 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) as begin select count(*) into c_state_values from student where 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) as begin select count(*) into c_state_values_fk from cs where 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) as begin insert into cs(cs_dept,cs_grade,cs_class) values(p_cs_dept, p_cs_grade, p_cs_class); if sql%rowcount=1 then s_state_values:=0; end if; exception when 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) as begin select count(*) into c_state_values from cs where 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) as begin insert into sub(sub_subject,sub_teacher_name) values(p_sub_subject, p_sub_teacher_name); if sql%rowcount=1 then s_state_values:=0; end if; exception when 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) as begin select count(*) into c_state_values from sub where 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) as begin insert 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=1 then s_state_values:=0; end if; exception when others then s_state_values:=1; if p_gd_grade=null then 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) as begin select count(*) into c_state_values from ( select gd_stu_no from gd where 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) as begin select count(*) into c_state_values_fk1 from student where 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) as begin select count(*) into c_state_values_fk2 from sub where 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) as begin c_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_grade from student, cs where stu_cs_class=cs_class and stu_no=p_stu_no; exception when 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) as begin open cursor_gd for select gd_sub_subject,gd_grade from gd where 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) as begin c_state_values:=0; open cursor_stu for select stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade from student, cs where stu_name=p_stu_name and stu_cs_class=cs_class; exception when others then c_state_values:=2; end; / create or replace procedure p_pm_sum( cursor_gd_sum out sys_refcursor ) as begin open cursor_gd_sum for select distinct sno,stu_name,sum from student,(select gd_stu_no as sno,sum(gd_grade) as sum from gd group by gd_stu_no ) where stu_no=sno order 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 ) as begin open cursor_gd_sub for select gd_stu_no,stu_name,gd_grade from gd,student where gd_sub_subject=p_gd_sub_subject and stu_no=gd_stu_no order 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 ) as begin open cursor_gd_class for select distinct sno,stu_name,sum from 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_class order by sum desc; end; / create or replace procedure p_fx( cursor_fx out sys_refcursor ) as begin open cursor_fx for select 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 youxiulv from gd group by gd_sub_subject; end; / create or replace procedure p_bujige( cursor_bujige out sys_refcursor ) as begin open cursor_bujige for select gd_stu_no,gd_sub_subject,gd_grade from gd where gd_grade<60; 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 ) as begin update student set 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_class where stu_no=p_stu_no; if sql%rowcount=1 then s_state_values:=0; end if; exception when 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) as begin delete from gd where gd_stu_no=p_stu_no; delete from student where stu_no=p_stu_no; s_state_values:=0; exception when 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) as begin update gd set gd_stu_no=p_gd_stu_no,gd_sub_subject=p_gd_sub_subject,gd_grade=p_gd_grade where gd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject; if sql%rowcount=1 then s_state_values:=0; end if; exception when 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) as begin delete from gd where gd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject; if sql%rowcount=1 then s_state_values:=0; end if; exception when 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 ) as begin select count(*) into s_state_values from 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 ) as begin update user_ set passwd= p_passwd where name=p_name; if sql%rowcount=1 then s_state_values:=0; end if; exception when others then s_state_values:=1;rollback; commit; end; / create or replace procedure p_select_no( cursor_stu_no out sys_refcursor ) as begin open cursor_stu_no for select stu_no from student order by stu_no; end; / create or replace procedure p_select_all( cursor_all out sys_refcursor ) as begin open cursor_all for select stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade from student, cs where stu_cs_class=cs_class order by stu_no; end; / create or replace procedure p_select_count( myrowcount out number ) as begin select count(*) into myrowcount from student; end; / 五、編程步驟 1.連接數據庫的javabean 由于在本系統(tǒng)的多個JSP頁面中都需要訪問數據庫,因此使用一個JavaBean來專門完成數據庫的連接。把數據庫連接封裝在一個類中,每次需要訪問數據庫是只需實例化這個類并利用類里面提供的共有方法來完成連接即可。這樣,既可以節(jié)省編碼時間,也提高了代碼的利用率。 1.1模塊描述 負責完成與數據庫的連接 1.2.類的設計與實現 (1)名稱:jdbc.java (2)功能:負責完成與數據庫的連接。 1.3構造方法設計 1.3.1 ① 方法定義:public jdbc() ② IPO圖 輸入:無。 處理:加載驅動程序,若加載中出現異常,則顯示異常描述信息。 輸出:無。 ③ 程序清單: 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圖 輸入:無。 處理:創(chuàng)建驅動程序和指定數據庫間的連接對象,建立語句對象 輸出:無。 ③ 程序清單: 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 名稱:登陸頁面。 功能:系統(tǒng)登錄頁面,獲取用戶登錄系統(tǒng)時的用戶名和密碼。 (2)cl-denglu.jsp 名稱:登錄處理頁面。 功能:主要負責讀取用戶在登錄頁面輸入的用戶名、密碼,判斷是否為合法用戶。若是合法用戶,則將該用戶的用戶名寫入到session中,并重定向到系統(tǒng)內部的功能頁面;否則,重定向到denglu.jsp,阻止該用戶進入系統(tǒng)。 輸入:用戶在登錄頁面輸入的信息(用戶名和密碼)。 處理:連接數據庫,調用存儲過程p_denglu,傳入參數name、password,接收存儲過程返回值s_state_values,如果返回值為1則為合法用戶,將該用戶的用戶名寫入到session中,并重定向到系統(tǒng)主頁面index.jsp;否則,彈出錯誤警告用戶名密碼錯誤,重定向到denglu.jsp,阻止該用戶進入系統(tǒng)。 輸出:根據驗證結果重定向到不同頁面。 程序清單: <% 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(""); cstmt1.close(); conn.close(); %> (3)tuichu.jsp 名稱:用戶退出頁面 功能:主要負責登錄用戶的退出功能,將退出系統(tǒng)的用戶信息從session中清除掉。 輸入:無。 處理:清楚session中存儲的一切信息 輸出:重定向到登錄也頁面。 程序清單: <% session.invalidate(); response.sendRedirect("denglu.jsp"); %> (4)xg-mm.jsp 名稱:修改密碼頁面 功能:主要負責登錄用戶的修改密碼,將用戶密碼傳給cl-xgmm.jsp。 (5)cl-xg-mm.jsp 名稱:處理修改密碼頁面 功能:主要負責登錄用戶的修改密碼功能,首先驗證兩次輸入的新密碼是否一致,然后調用存儲過程p_denglu驗證原密碼是否正確,最后調用存儲過程p_update_passwd修改密碼。 程序清單: <% Connection conn = jdbc.getConnection(); String j_name=request.getParameter("j_name"); String j_passwd=request.getParameter("j_passwd"); String j_passwd_new1=request.getParameter("j_passwd_new1"); String j_passwd_new2=request.getParameter("j_passwd_new2"); if(j_passwd_new1.equals(j_passwd_new2)) { 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) { CallableStatement cstmt2 = conn.prepareCall("{call p_update_passwd(?,?,?)}"); cstmt2.setString(1,j_name); cstmt2.setString(2,j_passwd_new1); cstmt2.registerOutParameter(3,java.sql.Types.INTEGER); cstmt2.execute(); int s_state_values2=(cstmt2.getInt(3)); if (s_state_values2==0) {out.print("恭喜你,密碼修改成功!"); } else {out.print("密碼修改失??!"); } } else if(s_state_values==0) out.print(" 原名密碼錯誤!請重新填寫"); cstmt1.close(); cstmt2.close(); conn.close(); } else { out.print("兩次輸入的密碼不一致,請重新輸入!"); } %> 3.控制面板模塊 3.1.模塊描述 提供信息錄入、查詢、修改、刪除、成績統(tǒng)計分析功能。 3.2.原文件定義 源代碼詳見附件 (1)lr-cs.jsp 名稱:錄入班級信息頁面。 功能:錄入班級信息。 (2)cl-lr-cs.jsp 名稱:處理錄入班級信息頁面。 功能:錄入班級信息。 (3)lr-sub.jsp 名稱:錄入科目信息頁面。 功能:錄入科目信息。 (4)cl-lr-sub.jsp 名稱:處理錄入科目信息頁面。 功能:錄入科目信息。 (5)lr-stu.jsp 名稱:錄入學生信息頁面。 功能:錄入學生信息。 (6)cl-lr-stu.jsp 名稱:處理錄入學生信息頁面。 功能:錄入學生信息。 (7)lr-gd-sub.jsp 名稱:錄入成績信息選擇科目頁面。 功能:錄入成績信息。 (8)lr-gd.jsp 名稱:錄入成績信息頁面。 功能:錄入成績信息。 (9)cl-lr-stu.jsp 名稱:處理錄入成績信息頁面。 功能:錄入成績信息。 (10)cx-by-no.jsp 名稱:通過學號查詢信息頁面。 功能:通過學號查詢信息。 (11) cl-cx-by-no.jsp 名稱:處理通過學號查詢信息頁面。 功能:通過學號查詢信息。 (12) cx-by-name.jsp 名稱:通過姓名查詢信息頁面。 功能:通過姓名查詢信息。 (13) cl-cx-by-name.jsp 名稱:處理通過姓名查詢信息頁面。 功能:通過姓名查詢信息。 (14)xg-stu.jsp 名稱:修改學生信息頁面。 功能:修改學生信息。 (15)cl-xg-stu.jsp 名稱:處理修改學生信息頁面。 功能:修改學生信息。 (16)xg-gd.jsp 名稱:修改成績信息頁面。 功能:修改成績信息。 (17)cl-xg-gd.jsp 名稱:處理修改成績信息頁面。 功能:修改成績信息。 (18)sc-stu.jsp 名稱:刪除學生信息頁面。 功能:刪除學生信息。 (19)cl-sc-stu.jsp 名稱:處理刪除學生信息頁面。 功能:刪除學生信息。 (20)sc-gd.jsp 名稱:刪除成績信息頁面。 功能:刪除成績信息。 (21)cl-sc-gd.jsp 名稱:處理刪除成績信息頁面。 功能:刪除成績信息。 (22)pm-sum.jsp 名稱:學生總成績排名頁面。 功能:顯示學生總成績排名。 (23)pm-sub.jsp 名稱:學生單科成績排名頁面。 功能:選擇科目。 (24)cl-pm-sub.jsp 名稱:顯示學生單科成績排名頁面。 功能:顯示學生單科成績排名。 (25)pm-class.jsp 名稱:班級內部排名頁面。 功能:選擇班級。 (26)cl-pm-sub.jsp 名稱:顯示班級內部排名頁面。 功能:顯示班級內部排名。 (27)cl-fx.jsp 名稱:單科成績頁面。 功能:顯示單科成績分析。 (28)bujigetj.jsp 名稱:不及格情況統(tǒng)計頁面。 功能:顯示不及格情況。 六、測試 1.登陸界面 2.系統(tǒng)主界面 3.修改密碼 4.退出系統(tǒng) 5.錄入信息 6.錄入成績信息 7.成績信息錄入 8.按學號查詢 9.查詢結果 10.學生總成績排名 11.按單科成績排名 12.按單科成績排名 13.班級內部排名 14.單科成績分析 15.不及格情況統(tǒng)計 七、課程設計總結 雖然只是很小很簡單的系統(tǒng),但是不僅僅是對這階段學習的知識的一個鞏固,對項目的開發(fā)又多增了一層了解和領悟。 經過這次課程設計的鍛煉,我對數據庫存儲過程、觸發(fā)器、PL/SQL編程掌握的更加牢固,對oracle10g的體系結構有了更深的理解,對sql語句進行了一次復習,對jsp學習也有很大提升,受益匪淺。 在這次課程設計中,我也發(fā)現了許多不足之處: 1. 前期的準備還不足,需求分析不完善,這就導致了在項目開發(fā)過程中還出現了功能反復修改的情況。 2. 數據庫設計不夠完善,沒多方面的考慮完善,導致在編碼過程中還多次的修改數據庫。 3. 整體項目框架沒規(guī)劃好,項目的前期就應該把項目的整體框架和包類,列出和規(guī)范分類,這樣能使在其后編碼階段統(tǒng)一的模塊化的編碼,也能給整合項目的時候節(jié)省時間。 4. 數據庫文字編碼和項目開發(fā)工具文字編碼不一致,導致中期測試時輸入數據庫的中文數據變成亂碼,經老師指導統(tǒng)一改為utf-8后解決 5. 系統(tǒng)還存在許多問題,如界面不夠友好,美化不好,不符合軟件工程的要求等 最后感謝老師對我的指導和建議,在實訓期間我遇到了許多困難,老師總是很認真的為我解答,通過老師的細心指導使我們在數據庫設計方面的知識得到了擴充,懂得了許多以前不知道的知識,我也在老師的細心指導中體會到了老師對學生那種從內心發(fā)出的關愛,讓我非常感動。在本次課程設計中,我有幸得到了劉老師的細心指導,使我學習到了許多專業(yè)知識及數據庫設計方面的寶貴經驗。通過本次課程設計,我從指導老師身上學到了很多東西,老師認真負責的工作態(tài)度,嚴謹的治學的精神和深厚的理論水平都使我收益匪淺,并給我留下了深刻的印象。老師在整個設計過程中,幫助我解決了不少的難題,給予了我巨大的幫助和鼓勵,并細心的為我介紹在數據庫設計方面的知識,這使我得到不少的長進,這對于我以后的工作和學習都起著巨大的影響。 八、參考資料 1.oracle10g數據庫管理應用與開發(fā) 清華大學出版社 2.jsp使用教程(第二版) 清華大學出版社 3.java程序設計基礎教程 清華大學出版社 4.數據庫原理及應用 河南科學技術出版社 5.網頁設計基礎教程 北京郵電大學出版社 6.網絡資料 九、附錄 1.數據庫源代碼 2.jsp頁面源代碼- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- Oracle 數據庫 課程設計 報告 學生 成績管理系統(tǒng)
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://italysoccerbets.com/p-6522853.html