国产精品毛片,,大地资源视频在线观看,国产成人亚洲综合色影视,成人毛片100免费观看,国产精品igao视频

2023年軟件工程課程設(shè)計選題(5篇)

格式:DOC 上傳日期:2023-08-23 08:39:18
2023年軟件工程課程設(shè)計選題(5篇)
時間:2023-08-23 08:39:18     小編:zdfb

在日常學(xué)習(xí)、工作或生活中,大家總少不了接觸作文或者范文吧,通過文章可以把我們那些零零散散的思想,聚集在一塊。那么我們該如何寫一篇較為完美的范文呢?下面是小編為大家收集的優(yōu)秀范文,供大家參考借鑒,希望可以幫助到有需要的朋友。

軟件工程課程設(shè)計選題篇一

1、系統(tǒng)的意義與目標(biāo)

網(wǎng)絡(luò)的飛速發(fā)展深刻地影響了人們的日常生活和商業(yè)運作方式。社會的方方面面滲透著互連網(wǎng)的應(yīng)用,使得一向煩瑣的手工程序變得方便,快捷,而學(xué)校網(wǎng)上選課系統(tǒng)正是基于這一思想而發(fā)展起來的。傳統(tǒng)的手工選課不僅復(fù)雜,也牽涉了很多的人力,對管理也造成了諸多不變,而借助網(wǎng)上選課系統(tǒng),學(xué)生在規(guī)定選課時間段內(nèi),可以不受地點和時間的限制完成系統(tǒng)登錄、選修課的申請和查詢,而學(xué)校也可以方便地對系統(tǒng)進行管理和控制,提高工作效率。

2、系統(tǒng)的用戶需求

用戶的需求具體體現(xiàn)在各種學(xué)習(xí)成績的提供、保存、更新和查詢方面,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。學(xué)生選課管理系統(tǒng)的設(shè)計為選課及成績管理提供了一個良好的工具,此系統(tǒng)基本實現(xiàn)的設(shè)計要求有:

(1)用戶登錄系統(tǒng)

提供良好的用戶登錄界面,輸入用戶名,密碼進行登錄。

(2)學(xué)生的需求

網(wǎng)上選課、選課情況查詢、成績查詢。

(3)管理員

(錄入、查詢、修改和刪 除)學(xué)生、課程基本資料。

(4)教師的需求

(錄入、查詢、修改和刪除)學(xué)生所選課程成績,統(tǒng)計每個學(xué)生的總分、平均分以及排名等功能。

3、系統(tǒng)經(jīng)費概算

初步估算使用經(jīng)費15萬元,包括硬件資源、技術(shù)資料、開發(fā)費用、培訓(xùn)費用等。其中,開發(fā)開發(fā)期間約需9萬員,調(diào)試與運行期間約需6萬元。

4、系統(tǒng)開發(fā)計劃

本系統(tǒng)開發(fā)計劃由開發(fā)小組用10個月完成。具體時間安排計劃如下:

(1)系統(tǒng)調(diào)研、系統(tǒng)分析:3個月。

(2)系統(tǒng)設(shè)計:2個月。

(3)系統(tǒng)程序設(shè)計:3個月。

(4)系統(tǒng)調(diào)試:1.5個月。

(5)系統(tǒng)試運行:1.5個月。

軟件工程課程設(shè)計選題篇二

學(xué) 年 設(shè) 計

課程名稱:學(xué)年設(shè)計(論文(軟件工程 實驗項目:學(xué)生選課系統(tǒng) 姓 名:xxx 專 業(yè):計算機科學(xué)與技術(shù) 班 級:xx 班 學(xué) 號:xxx 指導(dǎo)教師 xxx 計算機科學(xué)與技術(shù)學(xué)院 實驗教學(xué)中心 xxxx 年 xx月 xx日 目 錄

1.項目概述 ??????????????????????????? 3 1.1開發(fā)背景

??????????????????????????? 3 1.2 開發(fā)目的 ?????????????????????????? 3 1.3 開發(fā)運行境 ?????????????????????????? 3

1.4 系統(tǒng)功能 ??????????????????????????? 3

2.需求分析 ???????????????????????????? 3 2.1 系統(tǒng)需求

??????????????????????????? 3 2.2 功能需求 ??????????????????????????? 3

2.3 業(yè)務(wù)流圖 ??????????????????????????? 3

3.總體設(shè)計 ???????????????????????????? 4 3.1 基本設(shè)計概念和處理流程 ???????????????????? 4 3.2 系統(tǒng)層次模圖 ????????????????????????? 4 3.3系統(tǒng)層次模塊圖 ???????????????????????? 4

3.4模塊設(shè)計 ??????????????????????????? 5

4.數(shù)據(jù)庫計 ???????????????????????????? 5 4.1 數(shù)據(jù)庫的邏輯設(shè)計 ??????????????????????? 5

4.2數(shù)據(jù)庫的配置?????????????????????????? 6

5.詳細設(shè)計 ??????????????????????????? 8 5.1 學(xué)生登錄模塊的設(shè)計與實現(xiàn) ??????????????????? 8 5.2 學(xué)生注冊模塊的設(shè)計與實現(xiàn) ??????????????????? 9 5.3 學(xué)生查詢模塊的設(shè)計與實現(xiàn)??????????????????? 9

5.4 學(xué)生選課模塊的設(shè)計與實現(xiàn)??????????????????? 10 6 測試及提交 ?????????????????????????? 10 1.項目概述 1.1 開發(fā)背景

internet 的飛速發(fā)展深刻地影響了人們的日常生活和商業(yè)運作方式。人們打 開網(wǎng)頁瀏覽當(dāng)天的新聞,發(fā)電子郵件給遠方的朋友,使用搜索引擎查找資料, 進入網(wǎng)上商城購買商品 —— 這一切都是在使用 internet。社會的方方面面滲透著 互連網(wǎng)的應(yīng)用,使得一向煩瑣的手工程序變得方便,快捷,而學(xué)校網(wǎng)上選課系 統(tǒng)正是基于這一思想而發(fā)展起來的。

1.2 開發(fā)目的

傳統(tǒng)的手工選課不僅復(fù)雜,也牽涉了很多的人力,對管理也造成了諸多不 變,而借助網(wǎng)上選課系統(tǒng),學(xué)生在規(guī)定選課時間段內(nèi),可以不受地點和時間的 限制完成選修課的申請,而學(xué)校也可以方便地對系統(tǒng)進行管理和控制,提高工 作效率。

1.3 開發(fā)運行環(huán)境 : 開發(fā)工具 :java語言

開發(fā)環(huán)境 :jdk 1.4 系統(tǒng)功能:(1 登錄、注冊功能.(2 選課功能(3 查詢功能 2.需求分析 2.1 系統(tǒng)需求

用戶的需求具體體現(xiàn)在各種學(xué)習(xí)成績的提供、保存、更新和查詢方面,這 就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié) 構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。

2.2 功能需求

通過系統(tǒng)功能分析,針對一般的網(wǎng)上選課系統(tǒng),總結(jié)出如下的需求信息:(1 學(xué)生的需求:網(wǎng)上選課、選課情況查詢;(2 本系統(tǒng)主要實現(xiàn)學(xué)生信息管理和選課查詢。學(xué)生信息包括學(xué)號、姓名、班級;課程信息包括課程名;2.3 業(yè)務(wù)流程圖 3.總體設(shè)計

3.1 基本設(shè)計概念和處理流程

互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展, java 等設(shè)計工具的方便實用,以及數(shù)據(jù)庫技術(shù)的 發(fā)展給本系統(tǒng)的設(shè)計和實現(xiàn)提供了技術(shù)上的支持。

系統(tǒng)基本的流程是:用戶登錄->主界面->選擇各項子系統(tǒng)。3.2 系統(tǒng)層次模塊圖 3.3系統(tǒng)層次模塊圖

3.4模塊設(shè)計

(1 用戶注冊模塊:填寫用戶名、密碼、確認密碼

(2 用戶登錄模塊:填寫已注冊的用戶名稱,填寫正確的密碼,進入主控 制頁面。(3 用戶選課模塊:。

(4 用戶查詢模塊:可以進行查看所選課程的操作。4.數(shù)據(jù)庫設(shè)計

4.1 數(shù)據(jù)庫的邏輯設(shè)計

我們選用了 microsoft access 2000。

數(shù)據(jù)通信接口采用 odbc。odbc 是微軟開發(fā)的一套讀取數(shù)據(jù)庫的解決方 案,它的目的是將所有對數(shù)據(jù)庫的底層操作全部隱藏在 odbc 的驅(qū)動程序內(nèi)核 里。對于程序員來說,只要構(gòu)建了一個指向數(shù)據(jù)庫的連接,就可以采用統(tǒng)一的 應(yīng)用程序編程接口實現(xiàn)對數(shù)據(jù)庫的讀寫。目前 odbc 驅(qū)動已經(jīng)提供了對大多數(shù) 常見類型數(shù)據(jù)庫的支持,包括 dbase , informix , access , sql server和 oracle 等。也包括了對其它類型的數(shù)據(jù)庫的支持,如文本, excel 電子表格等的支持。根據(jù)系統(tǒng)功能設(shè)計的要求以及功能模塊的劃分,對于系統(tǒng)信息數(shù)據(jù)庫,可 以列出以下數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu): 1.名稱:用戶信息表

2.名稱:課程信息表

4.2數(shù)據(jù)庫的配置

一個真正的、完整的站點是離不開數(shù)據(jù)庫的。odbc 為應(yīng)用程序提供了一 種標(biāo)準(zhǔn)方法來操作相關(guān)的數(shù)據(jù)庫:管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫的位置、數(shù) 據(jù)庫類型及 odbc 驅(qū)動程序等信息,建立起 odbc 與具體數(shù)據(jù)庫的聯(lián)系。這 樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給 odbc , odbc 就能建立起與相應(yīng)數(shù)據(jù)庫 的連接。

按如下步驟可以建立一個新的系統(tǒng)數(shù)據(jù)源。

首先,在控制面板中雙擊 odbc 圖標(biāo),打開“ odbc 數(shù)據(jù)源管理器”對話 框,選擇“系統(tǒng) dsn ”選項卡,單擊“添加”按鈕。如下圖所示。

在“創(chuàng)建新數(shù)據(jù)源”對話框中,選擇“ driver do microsoft access(*.mdb”作為數(shù)據(jù)庫驅(qū)動程序并單擊“完成”按鈕。如下圖所示。

在“ odbc microsoft access安裝”對話框中,數(shù)據(jù)源名稱填寫為

“ student ”,這是程序中將要引用的。單擊“選擇 … ”按鈕,從彈出的文件窗 口中選擇 文件所在的位置。如下圖所示。

然后單擊“確定”按鈕,這樣就完成了 access 數(shù)據(jù)庫的 odbc 數(shù)據(jù)源設(shè) 置。以上步驟,通過 odbc 管理器注冊了一個名字為 student 的數(shù)據(jù)源,并且指 定了數(shù)據(jù)庫的驅(qū)動程序。

5.詳細設(shè)計

5.1 學(xué)生登錄模塊的設(shè)計與實現(xiàn) 5.1.1.登錄模塊

功能:本模塊主要用于對用戶身份進行鑒別。用戶通過表單提供用戶名和 密碼信息,系統(tǒng)根據(jù)用戶提供的登錄信息對用戶進行身份查詢鑒別。如果身份 合法,則將用戶導(dǎo)向系統(tǒng)的選課頁面。

輸入:用戶名、密碼 處理:(1 輸入用戶的登錄信息:在頁面提供的表單出輸入用戶的用戶名和密碼信 息,點擊“登錄”按鈕提交表單信息到身份驗證頁面?;螯c擊“重置”按鈕, 重新輸入。

(2 用戶身份進行驗證:連接數(shù)據(jù)庫,打開用戶數(shù)據(jù)表 login ,檢驗用戶登 錄信息。以輸入數(shù)據(jù)“用戶名”為查詢條件創(chuàng)建數(shù)據(jù)集查看輸入用戶名是否存 在。如果存在,繼續(xù)檢驗輸入的密碼是否正確。密碼和用戶名都正確,則進入 選課頁面;如果用戶名不存在或密碼不正確,則給出登錄失敗的提示框。輸出:學(xué)生選課頁面

5.1.2.學(xué)生登錄頁面圖如下圖所示:

5.2 學(xué)生注冊模塊的設(shè)計與實現(xiàn) 5.3 學(xué)生查詢模塊的設(shè)計與實現(xiàn)

5.4 學(xué)生選課模塊的設(shè)計與實現(xiàn)

軟件工程課程設(shè)計選題篇三

配電網(wǎng)工程設(shè)計軟件 概況介紹:

《配電網(wǎng)工程設(shè)計軟件》根據(jù)國家電網(wǎng)公司《配電網(wǎng)標(biāo)準(zhǔn)化設(shè)計系統(tǒng)功能規(guī)范》、南方電網(wǎng)公司v1.0標(biāo)準(zhǔn)以及地方電力集團進行開發(fā);該軟件基于自主cad平臺、功能強大、設(shè)計效率高、使用范圍廣同時符合設(shè)計標(biāo)準(zhǔn),并能實時配網(wǎng)設(shè)計與造價的一體化;能滿足城網(wǎng)設(shè)計、農(nóng)網(wǎng)改造設(shè)計、電纜線路設(shè)計以及戶表設(shè)計工作的計算機輔助設(shè)計軟件。

1.國內(nèi)首創(chuàng)的不用畫圖自動出圖技術(shù):

配網(wǎng)工程具用項目多工程小的特點,設(shè)計工作量非常大,為了提高設(shè)計工作效率,我們調(diào)查及歸納了以往的設(shè)計經(jīng)驗,創(chuàng)新性的提出不用畫圖也能出設(shè)計圖紙的數(shù)學(xué)模型并結(jié)合最新的軟件技術(shù),真正的實現(xiàn)設(shè)計的智能化。

用戶只需要通過錄入基本信息、氣象區(qū)、測量數(shù)據(jù),軟件就可以自動根據(jù)設(shè)計規(guī)則自動進行桿型選型,并根據(jù)設(shè)計標(biāo)準(zhǔn)對桿進行結(jié)構(gòu)驗算,從而實現(xiàn)設(shè)計合理、結(jié)構(gòu)安全并幫助客戶一鍵生成設(shè)計圖紙及統(tǒng)計材料,最終一鍵生成設(shè)計成果、設(shè)計說明書及計算工程造價。

通過此功能創(chuàng)新大大提高工作效率及設(shè)計標(biāo)準(zhǔn),受到了廣大設(shè)計人員的信賴。

2.專業(yè)的線路設(shè)計:

為了滿足設(shè)計繪圖需要,軟件可以支持多種測量數(shù)據(jù)導(dǎo)入、自動平斷面繪制、自動生成導(dǎo)線弧垂表、自動繪制地下電纜、自動排桿、排桿校核、自動連線、自動布桿、自動布拉線、自動金具選型、桿上設(shè)備繪制、手工繪制線路、批量繪制線路、高低壓共桿設(shè)計、智能識別圖紙等功能。

繪圖模式我們通過多項功能創(chuàng)新,通過軟件解決繪圖有規(guī)律的畫法,實現(xiàn)繪圖的自動化,從而讓繪圖更專業(yè)、更高效。

3.平斷面設(shè)計: 軟件采用平斷面設(shè)計功能專業(yè),可以滿足10kv以上線路的設(shè)計要求,軟件支持導(dǎo)入測量數(shù)據(jù)及手工添加數(shù)據(jù)兩種模式,并自動生成平斷面圖。

在平斷面設(shè)計中提供插入布桿、自動布桿、自動生成地下電纜、繪制懸鏈線、排桿校核、自動計算埋深、呼稱高、自動計算對地距離。

4.桿型組裝設(shè)計: 軟件根據(jù)規(guī)則庫以及桿高、條件、排列方式、氣象區(qū)、耐張類型、檔距自動進行桿型設(shè)計并生成桿型、桿頭,最后組裝成對應(yīng)材料。

5.電纜工程設(shè)計: 城網(wǎng)工程以電纜線路為主,為了滿足城網(wǎng)設(shè)計需要,軟件采用地形圖模式進行繪圖,用戶只需根據(jù)地形圖進行電纜的設(shè)計,通過電纜井、電纜溝、電纜敷設(shè)、電纜頭繪制,并結(jié)合線路優(yōu)化算法實現(xiàn)材料及工程量的自動統(tǒng)計。

6.戶表工程設(shè)計: 在農(nóng)網(wǎng)改造中,需要進行戶表設(shè)計,如進行一戶一表的設(shè)計,設(shè)計的工程量很大,為了提高工作效率,軟件提供導(dǎo)入excel數(shù)據(jù)實現(xiàn)自動繪制戶表功能,同時通過接戶線繪制、戶表繪制、墻擔(dān)繪制、電線繪制實現(xiàn)自動生成戶表明細表、自動標(biāo)注表箱等功能。關(guān)鍵特性:

該軟件可以進行10kv線路設(shè)計、0.4.22kv線路設(shè)計、戶表設(shè)計、電纜設(shè)計以及電氣設(shè)計并可以根據(jù)設(shè)計成果一鍵生成預(yù)算成果,是一款符合cad操作習(xí)慣、功能專業(yè)、操作方便、設(shè)計安全性好、符合設(shè)計標(biāo)準(zhǔn)的配網(wǎng)設(shè)計軟件。

★更智能:

配網(wǎng)工程項目多,時間緊,設(shè)計人員重復(fù)勞動多,同樣技經(jīng)人員編制預(yù)算也是工作量很大,這也是配網(wǎng)與主網(wǎng)的最大差別;為了提供設(shè)計的標(biāo)準(zhǔn)化及效率,軟件提供自動布桿、自動連線、自動布拉線、自動接地、自動金具選型、自動繪制戶表等多項功能?!锔唵?

在設(shè)計過程中所有數(shù)據(jù)采用可視化設(shè)計、可視可改,直接明了;如選中批量修改、批量修改屬性、批量修改組件材料、批量修改材料。

★更方便: 線路設(shè)計出圖是很麻煩的事,為了讓用戶可以高效出圖,軟件提供自動生成標(biāo)注功能、批量縮放圖塊、批量生成組裝圖以及提供按線路走向分幅、選擇分幅、布局分幅功能。

同時提供插入圖例、設(shè)計說明、圖例、坐標(biāo)表、統(tǒng)計表等功能,讓我們的設(shè)計圖更專業(yè)。

★更高效: 配網(wǎng)工程項目多,用戶可以按工程進行報表統(tǒng)計,也可以按項目批次進行統(tǒng)計。

★更容易: 軟件可以根據(jù)導(dǎo)入測量數(shù)據(jù)自動進行繪圖,也可以打開已有dwg文件進行自動識圖。

★更專業(yè): 軟件可以自動生成各種格式的桿塔明細表、材料統(tǒng)計表、工程量統(tǒng)計表、一戶一表、現(xiàn)場材料清查表、電纜工程量表、桿型統(tǒng)計表等。

軟件界面:

本產(chǎn)品適用于承擔(dān)20kv及以下電壓等級設(shè)計的供電局市、區(qū)、縣設(shè)計室(生技部,基建部,農(nóng)電部)以及電力設(shè)計院(輸配電線路設(shè)計室,電力設(shè)計室,變配電設(shè)計室)工程施工單位;承擔(dān)線路檢修維護任務(wù)的線路工區(qū)、農(nóng)電工區(qū)等。★自主cad平臺:

自主、開放的cad設(shè)計平臺,全面兼容autocad2002—2010,用戶可以進行設(shè)計數(shù)據(jù)的管理同時也解決了客戶的cad正版化問題。

★實現(xiàn)設(shè)計與造價一體化:

配網(wǎng)設(shè)計成果與配網(wǎng)造價模塊實現(xiàn)一鍵生成,數(shù)據(jù)準(zhǔn)確性高達98%,真正實現(xiàn)預(yù)算不用管,造價軟件專業(yè)、強大,好用。

★開放的設(shè)計平臺: 典設(shè)標(biāo)準(zhǔn)只是一個標(biāo)準(zhǔn),但配網(wǎng)設(shè)計需要根據(jù)工程特點、地區(qū)、使用習(xí)慣進行適當(dāng)?shù)男薷?;所以不可能一成不? 所以軟件采用開放的設(shè)計平臺。

用戶可以自行進行數(shù)據(jù)維護及定義,軟件提供圖塊庫、組件維護、物料庫維護、繪圖設(shè)置、線材庫、氣象區(qū)維護。

★提供vip服務(wù)(標(biāo)準(zhǔn)化產(chǎn)品+二次開發(fā)+現(xiàn)場實施): 5年多各大設(shè)計院使用經(jīng)驗、5年的客戶案例積累、鑄就國內(nèi)最實用最專業(yè)的配網(wǎng)設(shè)計軟件。

本產(chǎn)品免費為每個客戶提供進行二次開發(fā)及15天的現(xiàn)場實施服務(wù),保證每個客戶的成功上線。

提供免費建庫、免費設(shè)計報表、免費修改功能等vip服務(wù)。

★國內(nèi)使用成功率最高的設(shè)計軟件: 本產(chǎn)品已在江西省電力公司、廣西水利電業(yè)集團、陜西省地方電力集團、云南電網(wǎng)、四川省、內(nèi)蒙古、浙江省廣泛使用。

軟件工程課程設(shè)計選題篇四

題目

一、學(xué)生選課管理系統(tǒng)

第一部分:課程設(shè)計名稱、目的、要求

第二部分:程序總體設(shè)計思路

第三部分:程序功能劃分、圖示及流程圖

第四部分:程序設(shè)計數(shù)據(jù)、運行結(jié)果

第五部分:程序的優(yōu)缺點

第六部分:心得體會

第七部分:附錄(源程序)

第八部分:附錄(參考文獻)

目錄

..............................................................................第一部分:課程設(shè)計名稱、目的、要求

名稱:學(xué)生選修課程系統(tǒng)設(shè)計

目的:運用c語言提高解決實際問題的能力 實驗環(huán)境:microsoft visual c++ 6.0 內(nèi)容:

假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì),總學(xué)時,授課學(xué)時,實驗或上機學(xué)時,學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課?!竟δ堋?/p>

系統(tǒng)以菜單方式工作?

課程信息錄入功能(課程信息用文件保存)--輸入? 課程信息瀏覽功能--輸出?

查詢功能:(至少一種查詢方式)--算法? 按學(xué)分查詢? 按課程性質(zhì)查詢? 學(xué)生選修課程(可選項)?

第二部分:程序總體設(shè)計思路

由于c語言是面對過程的語言,故我的設(shè)計思路是根據(jù)目標(biāo)程序運行的過程來編寫的。

具體的設(shè)計思路如下:

程序的要求是設(shè)計學(xué)生選修課管理系統(tǒng),對選修課程能夠進行錄入和修改操作等,要求有菜單界面和退出功能。首先,考慮到程序的數(shù)據(jù)輸入,可以設(shè)置一個管理員登陸選項,通過該選項進入管理員界面,進行選修課的錄入和修改操作,最后將錄入的課程保存到相應(yīng)的文件中。然后定義各種函數(shù)的功能包括查看,查詢,刪除等。另一個為學(xué)生登陸界面,該界面學(xué)生可以進行課程選擇和瀏覽查詢等操作。在進行該操作之前需要對管理員保存的文件進行讀取,然后對其中的內(nèi)容進行查詢等,在學(xué)生選好課程以后,可以將其選好的課程保存于相應(yīng)的文件中,以便下次進行修改。通過函數(shù)的層層調(diào)用來實現(xiàn)程序的邏輯結(jié)構(gòu)。中間通過文件的打開和關(guān)閉實現(xiàn)對文件內(nèi)部所包含的數(shù)據(jù)的操作。

整個程序的設(shè)計思路到此結(jié)束。

第三部分:程序功能劃分、圖示及流程圖

【功能模塊劃分及其流程圖】

本程序功能模塊根據(jù)程序設(shè)計的需求,綜合程序的實用性、人性化、智能化的考慮,將程序劃分為6個部分分別編寫,程序主體功能將由這9個部分來完成。這9個部分依次是:

1.登錄界面函數(shù);void login()2.學(xué)生登錄界面據(jù)函數(shù):void stu_login()3.管理員登錄界面函數(shù):void man_login()4.退出界面函數(shù):void bye_sys()

5.課程選擇函數(shù):void c_select()6.課程瀏覽函數(shù):void c_view()7.課程查詢函數(shù):void c_search()8.課程增加函數(shù):void c_add()9.課程刪除函數(shù):void c_delete()10.菜單函數(shù):void index()11.主函數(shù)部分; main()

總體設(shè)計:

學(xué)生選課系統(tǒng)管理員登錄學(xué)生登錄新增課程刪除課程課程瀏覽查詢課程學(xué)生選課課程瀏覽課程查詢c_add函數(shù)c_delete函數(shù)c_view函數(shù)c_search函數(shù)c_select函數(shù)c_view函數(shù)c_search函數(shù)

系統(tǒng)功能模塊圖

部分函數(shù)流程圖:

1、課程選擇函數(shù):

開始輸入要選擇的課程的編號j=0;j

2、課程查詢函數(shù)

開始輸入要查詢的課程的編號j=0;j

3、課程增加函數(shù)

開始輸入要增加的課程的編號j=0;j

4、課程刪除函數(shù)

開始輸入要刪除的課程的編號nj=0;j

本程序是一款應(yīng)用軟件,故數(shù)據(jù)設(shè)計、程序運行結(jié)果應(yīng)在程序的

運用中得以體現(xiàn),現(xiàn)在通過一個程序的運用事例來對程序運行結(jié)果進行演示與實現(xiàn)。【軟件運用舉例】

1、程序開始界面如下:

選擇某個選項,如進行管理員登錄,進行課程的增加 進入管理員界面:

2、再選擇所要進行的操作,如進行課程增加,結(jié)果如下:

下面可以進行繼續(xù)增加課程或者退出:

3、選擇課程瀏覽,可以分頁查看相應(yīng)的課程信息: 第一頁:

第二頁:

4、課程查詢

查找結(jié)果:

4、管理員課程刪除操作:

刪除后可以進行瀏覽,觀察刪除后的結(jié)果:

可見刪除后只有一條記錄。刪除操作完成正確。下面進行學(xué)生操作的使用方法:

1、學(xué)生登陸界面:

2、選擇學(xué)生選課選項:

3、學(xué)生登陸也可進行課程瀏覽和查詢函數(shù),其結(jié)果與管理員登陸相同,不再演示。

第五部分:程序的優(yōu)缺點

【程序的優(yōu)點】

算法是程序的靈魂,程序的優(yōu)點首先表現(xiàn)在算法上的優(yōu)點,其次才是功能上的。

[算法上的優(yōu)點]主要體現(xiàn)在以下三點:

1.程序采用main主函數(shù)方式設(shè)計,程序的主體的功能大都由該功能

完成。程序如此設(shè)計有利于程序的進一步改進及有助于程序執(zhí)行效率的提高。

2.程序?qū)ξ募?shù)據(jù)的讀寫采用了fread和fwrite塊讀寫函數(shù),能夠?qū)⑽募械臄?shù)據(jù)完全讀出,然后賦到定義的數(shù)組中,再在相應(yīng)的數(shù)組中進行一系列操作,最終再寫入文件。

3.插入操作在本程序中將課程信息直接插入數(shù)組最后一個節(jié)點,從而減少了數(shù)據(jù)的相互移動,節(jié)省了時間。

[功能上的優(yōu)點] 主要體現(xiàn)在以下兩點:

1. 簡潔明了的程序菜單。程序主要采用了層次不同的菜單,相互獨立又相互聯(lián)系,巧妙相接,符合用戶的使用習(xí)慣與思維。2. 人性化的程序提示語言,程序提示語言較人性化,不僅大多為祈使語句、疑問句,而且提示明確,具有較強的明確的指導(dǎo)作用。程序提示不僅層次分明,提示方式多樣,而且提示信息井然有序,更加有利于用戶順利、準(zhǔn)確地看懂程序并進行操作。

【程序的缺點】 主要表現(xiàn)在以下兩點:

1、本程序沒有進行相應(yīng)的密碼操作,所以對于使用者來說可能存在比較大的不保密性。需要改善。

2、本程序沒有使用文本讀寫函數(shù)fscanf和fprintf,所以的到的課程文件和選課文件都是二進制形式。

第六部分:心得體會

選課系統(tǒng)程序比起通訊錄程序來講好寫一些,由于本程序用到了數(shù)組,對于數(shù)組的操作掌握的比較熟練,所以在編寫程序的時候困難沒有那么多。

本程序在編寫的過程中用到了許多通訊錄中的模塊化設(shè)計和函數(shù)互相調(diào)用的思想,使得編寫比較方便和好用。

通過該系統(tǒng)的課程設(shè)計分析,我掌握了模塊化設(shè)計的方法,理解和運用了結(jié)構(gòu)化程序設(shè)計的思想和方法,掌握和提高了運用c語言進行程序設(shè)計的能力。

程序設(shè)計的過程,實際上是確定解決問題的詳細步驟,而這個步驟通常叫做流程,在程序設(shè)計過程中理清楚整個問題的流程很重要,然后采取逐步細化的方法實現(xiàn)整個程序。

對于一個較大的應(yīng)用程序,一般不可能一次就設(shè)計出一個很完善的系統(tǒng)。通常要先設(shè)計滿足基本要求的系統(tǒng),然后再測試或者在使用的過程中不斷完善,慢慢地做成一個功能很完善選修課程管理系統(tǒng)。所以在進行調(diào)試的時候需要對許多變量理解和掌握其變化規(guī)律等,這對于我更好的掌握visual c中調(diào)試的工具有很大的幫助。

總之經(jīng)過這次課程設(shè)計,我對c語言的使用和理解都有了很大的加深,對于編程的思想也有了很多新的理解和感受。

第七部分:附錄

一、參考文獻:

1、李麗娟主編,c語言程序設(shè)計教程(第二版),人民郵電出版社

2、嚴(yán)蔚敏主編,數(shù)據(jù)結(jié)構(gòu)(c語言),清華大學(xué)出版社

3、崔單主編,c語言程序設(shè)計案例精粹,電子工業(yè)出版社

4、譚浩強主編,程序設(shè)計(第三版),清華大學(xué)出版社

二、源程序

#include“stdio.h” #include“stdlib.h” #include“windows.h” #include“string.h”

void index();//首頁 void login();void bye_sys();//退出界面

void stu_login();//學(xué)生登錄菜單

void c_select();void c_view();//課程瀏覽

void c_add();//增加課程 void c_delete();void c_searchs();//學(xué)生查詢函數(shù) void c_searchm();//管理員查詢函數(shù) void c_viewm();//管理員瀏覽函數(shù) void c_views();//學(xué)生瀏覽函數(shù)

struct course//定義課程結(jié)構(gòu)體

{

int c_num;

char c_name[20];

int c_score;

int c_nelepeo;//課程已選人數(shù)

int c_melepeo;//課程人數(shù)上限 };struct student { char s_number[10];

char s_password[10];};struct manager { char m_name[10];char m_password[10];};

void index()//首頁 {

char input;

printf(“nnttt*****************************n”);

printf(“ttt

湖南大學(xué)學(xué)生選課系統(tǒng)n”);

printf(“ttt*****************************nnn”);

printf(“ttt*****************************nnn”);

printf(“ttt*****************************nnn”);

printf(“ttt*****************************nnn”);

printf(“ttt**********設(shè)計者:劉曉斌******nnn”);

input=getchar();

system(“cls”);} void login()//登陸界面

{

void stu_login();

void man_login();

void bye_sys();

int input;

do

{

system(“cls”);

printf(“nnnt1.學(xué)生登錄n”);

printf(“t2.管理員登陸n”);

printf(“t3.退出本系統(tǒng)n”);

printf(“t請選擇服務(wù)類別:”);

scanf(“%d”,&input);

if(input!=1&&input!=2&&input!=3)//輸入數(shù)不等于選項的時候打印畫面

{

printf(“nt輸入出錯!請重新選擇~n”);

printf(“nt按任意鍵返回選擇頁面~nt”);

getchar();getchar();

system(“cls”);

}

if(input==3)//如果輸入3退出系統(tǒng)

{

bye_sys();

}

}while(input!=1&&input!=2&&input!=3);

switch(input)

{

case 1:stu_login();break;

case 2:man_login();break;

} }

void bye_sys()//退出界面 { exit(0);}

void man_login(){

void c_add();

void c_delete();

void c_view();

void c_searchm();

int in;

do

{

system(“cls”);

printf(“nnt1.新增課程n”);

printf(“t2.刪除課程n”);

printf(“t3.課程瀏覽n”);

printf(“t4.課程查詢n”);

printf(“t5.退出n”);

printf(“nnt請選擇服務(wù)種類:”);

scanf(“%d”,∈);

if(in!=1&∈!=2&∈!=3&∈!=4&∈!=5)

{

printf(“nt沒有這項服務(wù)t按任意重新選擇”);

getchar();getchar();

}

}while(in!=1&∈!=2&∈!=3&∈!=4&∈!=5);

switch(in)

{

case 1:c_add();break;

case 2:c_delete();break;

case 3:c_viewm();break;

case 4:c_searchm();break;

case 5:login();break;

} }

void stu_login()//學(xué)生登錄菜單

{

void c_select();

void c_view();

void c_searchs();

void login();

int input;

do

{

system(“cls”);

printf(“nnnt--學(xué)生登陸--”);

printf(“nnt1.學(xué)生選課n”);

printf(“t2.課程瀏覽n”);

printf(“t3.課程查詢n”);

printf(“t4.退出n”);

scanf(“%d”,&input);

if(input!=1&&input!=2&&input!=3&&input!=4)

{

printf(“nt沒有這項服務(wù)~n”);

printf(“t按任意鍵重新選擇”);

getchar();

getchar();

}

}while(input!=1&&input!=2&&input!=3&&input!=4);

switch(input)

{

case 1:c_select();break;

case 2:c_views();break;

case 3:c_searchs();break;

case 4:login();break;

} }

void c_select(){

int n,in,i=0,j;int flag=0;

file *fp;

file *fp1;

char input;

struct course courses[10];

if((fp=fopen(“”,“rb”))==null)//判斷是否存在課程

{

printf(“nnnt課程不存在nn”);

printf(“t<按任意鍵返回管理菜單>nt”);

input=getchar();

input=getchar();

stu_login();//進入學(xué)生登陸菜單

}

else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件讀完后關(guān)閉

}

printf(“nntt請輸入你要選課程的編號:”);

scanf(“%d”,&n);

if((fp1=fopen(“”,“rb”))==null)

{

fp1=fopen(“”,“wb”);

}

else

{

fclose(fp1);

fp1=fopen(“”,“ab”);

}

for(j=0;j

if(courses[j].c_num==n)

flag++;

if(flag==0)

{

printf(“nntt不存在對應(yīng)課程n”);

printf(“nntt繼續(xù)選課請按1,退出請按2:n”);

scanf(“%d”,∈);

switch(in)

{

case 1:c_select();break;

case 2:stu_login();break;

default:

printf(“輸入錯誤,將返回登錄界面!n”);

login();break;

}

}

else

{

fwrite(&courses[j],sizeof(struct course),1,fp1);

fclose(fp1);

printf(“nntt選課成功t請選擇:”);

printf(“nntt1.繼續(xù)選課”);

printf(“nntt2.退出,返回登錄界面!”);

scanf(“%d”,∈);

switch(in)

{

case 1:c_select();break;

case 2:stu_login();break;

default:break;

}

} }

void c_viewm()//課程瀏覽

{

void stu_login();

void c_view();

int

inp,i=0,n=0;

file *fp;

char input;

struct course courseview[10];

if((fp=fopen(“”,“rb”))==null)//判斷是否存在課程

{

system(“cls”);

printf(“nnnt課程不存在nn”);

printf(“t<按任意鍵返回管理菜單>nt”);

getchar();getchar();

stu_login();//進入學(xué)生登陸菜單

}

else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

{

do

{

fread(&courseview[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件讀完后關(guān)閉

do

{

system(“cls”);

if(i==1)

{

printf(“nnnttt沒有記錄!n”);

getchar();getchar();

man_login();

}

else

{

printf(“nt------共有%d條記錄-------”,i-1);

printf(“nnt課程編號: %dn”,courseview[n].c_num);

printf(“nnt課程名字: %sn”,courseview[n].c_name);

printf(“nnt課程學(xué)分: %dn”,courseview[n].c_score);

printf(“nnt課程已選人數(shù): %dn”,courseview[n].c_nelepeo);

printf(“nnt課程人數(shù)上限: %dn”,courseview[n].c_melepeo);

printf(“nnt1.上一頁t2.下一頁t3.回目錄”);

printf(“n請選擇:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(“nt已到達首頁 t按任意鍵返回”);

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(“nt已到達尾頁t按人意見返回”);

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{man_login();break;}

default:

{

printf(“nt操作錯誤t按任意鍵返回”);

getchar();getchar();

break;

}

}

}

}while(inp!=3);

} }

void c_views()//課程瀏覽

{

void stu_login();

void c_view();

int

inp,i=0,n=0;

file *fp;

char input;

struct course courseview[10];

if((fp=fopen(“”,“rb”))==null)//判斷是否存在課程

{

system(“cls”);

printf(“nnnt課程不存在nn”);

printf(“t<按任意鍵返回管理菜單>nt”);

getchar();getchar();

stu_login();//進入學(xué)生登陸菜單

}

else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

{

do

{

fread(&courseview[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件讀完后關(guān)閉

do

{

system(“cls”);

if(i==1)

{

printf(“nnnttt沒有記錄!n”);

getchar();getchar();

stu_login();

}

else

{

printf(“nt------共有%d條記錄-------”,i-1);

printf(“nnt課程編號: %dn”,courseview[n].c_num);

printf(“nnt課程名字: %sn”,courseview[n].c_name);

printf(“nnt課程學(xué)分: %dn”,courseview[n].c_score);

printf(“nnt課程已選人數(shù): %dn”,courseview[n].c_nelepeo);

printf(“nnt課程人數(shù)上限: %dn”,courseview[n].c_melepeo);

printf(“nnt1.上一頁t2.下一頁t3.回目錄”);

printf(“n請選擇:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(“nt已到達首頁 t按任意鍵返回”);

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(“nt已到達尾頁t按人意見返回”);

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{stu_login();break;}

default:

{

printf(“nt操作錯誤t按任意鍵返回”);

getchar();getchar();

break;

}

}

}

}while(inp!=3);

} }

void c_searchs(){

void stu_login();

void c_searchs();

int id,i=0,j,inp,k;

int flag=0;

file *fp;

struct course coursesear[10];

if((fp=fopen(“”,“rb”))==null)

//判斷課程信息是否存在 {

system(“cls”);

printf(“nnt課程不存在t按任意鍵返回”);

getchar();getchar();

stu_login();

}

else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

{

do

{

fread(&coursesear[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

system(“cls”);

printf(“nnttt請輸入你要查詢的課程編號:”);

scanf(“%d”,&id);

do//檢查輸入是否符合要求

{

for(j=0;j

{

if(id==coursesear[j].c_num)

{

flag++;

k=j;

}

}

if(flag==1)

{

system(“cls”);

printf(“nnt課程編號:%dn”,coursesear[k].c_num);

printf(“nnt課程名字:%sn”,coursesear[k].c_name);

printf(“nnt課程學(xué)分:%dn”,coursesear[k].c_score);

printf(“nnt課程已選人數(shù):%dn”,coursesear[k].c_nelepeo);

printf(“nnt課程人數(shù)上限:%dn”,coursesear[k].c_melepeo);

getchar();getchar();

printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

printf(“請選擇:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(“nt沒有這項服務(wù)t請按任意鍵重新輸入”);

getchar();getchar();

}

}

}

else

{

system(“cls”);

printf(“nnt不存在對應(yīng)記錄n”);

printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

printf(“請選擇:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(“nt沒有這項服務(wù)t請按任意鍵重新輸入”);

getchar();getchar();

}

}

}

}while(inp!=1);

}

void c_searchm(){

void stu_login();

void c_searchm();

int id,i=0,j,inp,k;

int flag=0;

file *fp;

struct course coursesear[10];

if((fp=fopen(“”,“rb”))==null)

//判斷課程信息是否存在 {

system(“cls”);

printf(“nnt課程不存在t按任意鍵返回”);

getchar();getchar();

stu_login();

}

else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

{

do

{

fread(&coursesear[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

system(“cls”);

printf(“nnttt請輸入你要查詢的課程編號:”);

scanf(“%d”,&id);

do//檢查輸入是否符合要求

{

for(j=0;j

{

if(id==coursesear[j].c_num)

{

flag++;

k=j;

}

}

if(flag==1)

{

system(“cls”);

printf(“nnt課程編號:%dn”,coursesear[k].c_num);

printf(“nnt課程名字:%sn”,coursesear[k].c_name);

printf(“nnt課程學(xué)分:%dn”,coursesear[k].c_score);

printf(“nnt課程已選人數(shù):%dn”,coursesear[k].c_nelepeo);

printf(“nnt課程人數(shù)上限:%dn”,coursesear[k].c_melepeo);

getchar();getchar();

printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

printf(“請選擇:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(“nt沒有這項服務(wù)t請按任意鍵重新輸入”);

getchar();getchar();

}

}

}

else

{

system(“cls”);

printf(“nnt不存在對應(yīng)記錄n”);

printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

printf(“請選擇:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(“nt沒有這項服務(wù)t請按任意鍵重新輸入”);

getchar();getchar();

}

}

}

}while(inp!=1);}

void c_add()//增加課程 {

void c_add();

void man_login();

int i=0,j,inp;

file *fp;

struct course course_new;

struct course courses[10];

system(“cls”);

printf(“nntt請輸入課程信息”);

printf(“nntt1.課程編號:”);

scanf(“%d”,&course_new.c_num);

printf(“nntt2.課程名字:”);

scanf(“%s”,course_new.c_name);

printf(“nntt3.課程學(xué)分:”);

scanf(“%d”,&course_new.c_score);

printf(“nntt4.課程已選人數(shù):”);

scanf(“%d”,&course_new.c_nelepeo);

printf(“nntt5.課程人數(shù)上限:”);

scanf(“%d”,&course_new.c_melepeo);

if((fp=fopen(“”,“rb”))!=null)

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

for(j=0;j<=i-1;j++)

if(course_new.c_num==courses[j].c_num)

{

system(“cls”);

printf(“nnttt對不起,這個編號已經(jīng)使用過nntt按任意鍵返回管理菜單”);

getchar();getchar();

man_login();

break;

}

}

if((fp=fopen(“”,“rb”))==null)

{

fp=fopen(“”,“wb”);

}

else

{

fclose(fp);

fp=fopen(“”,“ab”);

}

fwrite(&course_new,sizeof(struct course),1,fp);

fclose(fp);

printf(“nntt信息輸入完畢t按任意鍵繼續(xù)”);

getchar();getchar();

do

{

system(“cls”);

printf(“nntt1.繼續(xù)輸入”);

printf(“nntt2.返回管理菜單”);

printf(“nntt請選擇”);

scanf(“%d”,&inp);

if(inp!=1&&inp!=2)

{

printf(“輸入不符合要求t按任意鍵重新選擇”);

getchar();getchar();

}

}while(inp!=1&&inp!=2);

switch(inp)

{

case 1:c_add();break;

case 2:man_login();break;

} }

void c_delete()//查詢后刪除 {

file *fp;

int i=0,j,n,k,flag=0;

struct course courses[10];

void c_delete();

void man_login();

printf(“nntt請輸入你要刪除的課程編號:”);

scanf(“%d”,&n);

if((fp=fopen(“”,“rb”))!=null)

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

else

{

printf(“nntt不存在任何課程t按任意鍵返回”);

getchar();getchar();

man_login();

}

for(j=0;j

{

if(courses[j].c_num==n)

{

flag=1;

fp=fopen(“”,“wb”);

for(k=0;k

fwrite(&courses[k],sizeof(struct course),1,fp);

fclose(fp);

fp=fopen(“”,“ab”);

for(k=j+1;k

{

fwrite(&courses[k],sizeof(struct course),1,fp);

}

printf(“nntt記錄已刪除!t按任意鍵返回ntt”);

getchar();getchar();

man_login();

fclose(fp);

}

}

if(flag==0)

{

printf(“nntt不存在對應(yīng)的課程t按任意鍵返回”);

getchar();getchar();

man_login();

} // printf(“nntt記錄已刪除!t按任意鍵返回ntt”);

}

int main(){

index();login();return 0;}

軟件工程課程設(shè)計選題篇五

學(xué)生選課系統(tǒng)可行性分析報告

學(xué)院:數(shù)學(xué)計算機學(xué)院組長:馬琴

組員:許慕霄、伏敏潤、王佩軍

1.引言

1.1編寫目的每學(xué)期的課程都是學(xué)校安排的,學(xué)生沒有選擇的自由,而且課程的安排由于各方面諸多的原因經(jīng)常有不適之處,尤其是先行課的問題。另外,每學(xué)期考完試,同學(xué)們都要一次又一次的往系里跑,大家擠在一個小小的布告欄前面,在幾張a4紙上尋找自己的名字和成績。雖然從去年開始,全學(xué)校也改成了“學(xué)分制”,但整個選課過程的管理從我們學(xué)生的角度來看,變得更加混亂。同學(xué)們不知道每學(xué)期有什么課可以選,哪些是選修,哪些是必修,哪些是專業(yè)課;也不確定每門課多少學(xué)分,自己已經(jīng)修了多少學(xué)分;更不用說考慮一下哪門課要先學(xué),哪門課要后學(xué),哪些課屬于一系列。所以說,大部分同學(xué)都是為了“選課”而選課,完全沒有實現(xiàn)鼓勵同學(xué)發(fā)展個性,學(xué)各自之所愛的效果。不僅如此,每當(dāng)選課的時候,同學(xué)們忙,老師更忙,學(xué)校和系里都需要投入大量的人力、物力對整個選課過程進行管理。

隨著科學(xué)技術(shù)的發(fā)展,計算機已經(jīng)是日常生活中不可或缺的工具,將學(xué)生選課系統(tǒng)從人工管理方式轉(zhuǎn)變成為計算機軟件控制。具有檢索迅速、查找方便、可靠性高、存儲量達、保密性好、壽命長、成本低等巨大優(yōu)點。如今,學(xué)生選課系統(tǒng)已成為日常教學(xué)工作中必不可少的管理軟件,可對學(xué)生信息、選修課程、科目成績進行各方面的管理,為用戶提供充足的信息和快捷的查詢、修改手段。選課管理系統(tǒng)。既面向教務(wù)處,又面向教師和學(xué)生。不同的人,不同的身份操作的權(quán)限也不同。作為教師,他可以向教務(wù)處申請增加、刪除、修改課程信息,并隨時了解選修本課的學(xué)生名單,還可以輸入并分析考試成績。作為教務(wù)處管理員,它的權(quán)限是最寬的。他可以對教師提出的課程設(shè)置申請進行審批,同時對教學(xué)進行安排(包括時間和教室分配、選課結(jié)果管理)。作為學(xué)生,他可以查詢可以選什么課,已有多少學(xué)分,還差多少學(xué)分。最后進行選課,在學(xué)期末還可以隨時進行成績查詢?,F(xiàn)籌劃一學(xué)生選課系統(tǒng)管理軟件以代替人工管理方式,最大程度的滿足各方面用戶的需求。

1.2 項目背景

項目名稱:學(xué)生選課系統(tǒng)軟件。

項目提出者:寧夏大學(xué)

項目開發(fā)者:開發(fā)小組

用戶:寧夏大學(xué)

1.3 定義

sql:結(jié)構(gòu)化查詢語言

eclipse:開發(fā)源代碼的、基于java的可擴展開發(fā)平臺。

1.4 參考資料

《軟件工程》

2.可行性研究的前提

2.1 要求

主要功能:教師對學(xué)生資料、成績以及所選課程進行修改管理;學(xué)生可通過查詢自身成績,自主選擇相關(guān)課程;管理員(教務(wù)處)統(tǒng)管所有學(xué)生、教師的相關(guān)信息。

性能要求:所有數(shù)據(jù)實時更新保持同步,且定時備份。

輸出要求:簡單、快捷、實時。

輸入要求:及時的修改和更新學(xué)生、教師和課程的信息。

安全與保密要求:系統(tǒng)本身配備一定的安全機制,保證各項數(shù)據(jù)的完整、正確。

每類用戶進入系統(tǒng)時,均需輸入唯一的用戶名和密碼;教師有權(quán)對學(xué)生所選課程成績進行錄入、查詢和修改;學(xué)生有權(quán)對選修課程進行修改;管理員有權(quán)對學(xué)生信息、所選課程、科目成績進行管理、修改。

2.2目標(biāo)

近幾年來,我們寧夏大學(xué)一直都在擴招學(xué)生,外地生源的比例也比以前大了許多,而且還有日益增多的外國留學(xué)生,在管理上更增加了管理人員的勞動量,如此多的檔案資料,以原有的工作人員數(shù)量要管理好實在不容易,但如果增加工作人員,管理成本必然也會增加,得不償失,而我們這套系統(tǒng)這時就會發(fā)揮出它大大的作用,讓實用這領(lǐng)會到它的優(yōu)越之處,幫助老師輕輕松松管理好學(xué)生各方面的資料,無論學(xué)生是多是少,一切都會被管理得井井有條。節(jié)省更多的人力與設(shè)備,讓學(xué)生選課管理成為一項很直接人性化的管理。

2.3條件、假定何限制

運行環(huán)境:windows98/2000/xp/vista/7,與windows office軟件高度兼容。硬件環(huán)境:奔4以上計算機。

開發(fā)環(huán)境:sql server、eclipse等。

該系統(tǒng)預(yù)期壽命五年。

2.4決定可行性的主要因素

學(xué)生選課系統(tǒng)軟件滿足各方用戶需求。

成本/效益分析結(jié)果:效益>成本。

3.對現(xiàn)有系統(tǒng)的分析

3.1處理流程和數(shù)據(jù)流程

教師登錄:可上傳、修改、管理學(xué)生選課和成績的查詢。

學(xué)生登錄:;學(xué)生可通過查詢自身成績,自主選擇相關(guān)課程,查詢各科成績。學(xué)校登錄:可查詢、管理所有信息。

3.2工作負荷

當(dāng)前系統(tǒng)負擔(dān)全校將近20000余名教師、學(xué)生的日常選課管理工作。

3.3人員

當(dāng)前系統(tǒng)需要4位管理員,對其專業(yè)技術(shù)要求不高,熟悉基本的電腦操作即可。

3.4設(shè)備

一臺服務(wù)器,兩臺pc機。

3.5局限性

由于當(dāng)前系統(tǒng)開發(fā)技術(shù)過于老舊,穩(wěn)定性、安全性能尤為不佳,致使系統(tǒng)頻繁遭遇惡意攻擊。系統(tǒng)反應(yīng)過慢,運行效率低。由此分析得出,需要開發(fā)新的學(xué)生選課系統(tǒng)軟件。

4.技術(shù)可行性

我們身為首都經(jīng)濟貿(mào)易大學(xué)信息系的學(xué)生,最驕傲的就是擁有令其他系羨慕、向往的系機房。因特爾奔騰四的中央處理器,40g大容量的硬盤,加上256m的內(nèi)存,配上經(jīng)久耐用、定位準(zhǔn)確的光電鼠標(biāo),這都為系統(tǒng)的開發(fā)與運行提供了良好的硬件環(huán)境,就是這樣一臺臺先進傲人的電腦躺在機房里供我們隨時使用,便利程度真是如此了得啊!

身為計算機科學(xué)與技術(shù)專業(yè)大三的學(xué)生,通曉一些計算機軟件知識是肯定的,運用軟件編寫程序的能力也是必備的。當(dāng)然,我們畢竟還是學(xué)生,能力還是有限的,但我們計算機系最不缺乏的就是計算機人才,向知識淵博、誨人不倦的鄭小玲老師必會給我們以極大的幫助。更何況,俗語說的好:三個臭皮匠賽過諸葛亮。我們組有4個人,起碼也頂兩個諸葛亮呢。相信通過我們大家的集思廣益,相得益彰,我們的系統(tǒng)將會以最完美的姿態(tài)展現(xiàn)在大家的面前。

我校自建校至今已有幾十年的歷史,各種課程比較齊備,且比較有條理。學(xué)分制度也比較完善。教師整體水平較高。這使我們開發(fā)這一對我們來說比較復(fù)雜的系統(tǒng)成為可能。雖然有如此好的客觀條件,但始終沒有一套完善簡單易用的管理系統(tǒng)?,F(xiàn)行系統(tǒng)雖然擁有了比較規(guī)范、科學(xué)的管理方法,并積累了大量的數(shù)據(jù)信息,具有一定的可行性,但是并不能掩蓋其工作量大,管理不夠系統(tǒng)的缺點。而我們的系統(tǒng)將充分利用學(xué)校為我們提供的寶貴信息,在繼承其優(yōu)點的基礎(chǔ)上,開發(fā)出一套更為可行的學(xué)生管理系統(tǒng)。這套學(xué)生選課管理系統(tǒng)在今后的應(yīng)用中再經(jīng)過不斷的修正與改進,將會使我學(xué)生選課更加完善、盡美。

5.經(jīng)濟可行性

成本方面,關(guān)于各種軟、硬件及輔助設(shè)備的購置、調(diào)試、機房及輔助設(shè)施(電源等)以及系統(tǒng)維護,內(nèi)務(wù)開銷這些費用都可以忽略不計,因為我們有自己的電腦。

學(xué)生選課管理系統(tǒng)省去了老師為學(xué)生展示學(xué)校為學(xué)生提供的選修課程,并作介紹,考試后把分?jǐn)?shù)抄錄多次以做備案和公告這些大量繁雜而由單一枯燥的勞動,可以讓老師把精力放在教學(xué)和組織教學(xué)等更重要更具創(chuàng)造性的事情上,這就顯著的提高了他們的工作效率。

取消了抄錄成績后,學(xué)校里也不會再出現(xiàn)殘破的成績單一層蓋一層的貼在公告欄或黑板上的情景,校園環(huán)境也會因此而變得更整潔,而且也為學(xué)校省下了大量的紙張,雖然數(shù)量并不是很多,但將來系統(tǒng)擴展到整個學(xué)校也將是很可觀的。況且,在資源日益缺乏的今天,節(jié)省紙張已不僅僅是為學(xué)校減少辦公費用這一單純的意義。

眾所周知,學(xué)校的的學(xué)生多,管理起來非常困難。相應(yīng)的也加大了老師的工作量,又因為教學(xué)制度的不斷變動和改革,因此,總能及時統(tǒng)計出一份內(nèi)容清晰,條理性強的學(xué)籍學(xué)分選課分析報表對老師來說真是難于登天。但如果缺少這份報表,同學(xué)們就無法清楚了解自己的學(xué)分情況,盲目選課,打亂了學(xué)習(xí)計劃,加重了課業(yè)負擔(dān),而那些基本順從課程安排的同學(xué)則浪費了許多去學(xué)習(xí)有用知識的時間,甚至臨畢業(yè)時卻發(fā)現(xiàn)未修夠?qū)W分而畢不了業(yè)。這個關(guān)系到每個人命運的問題絕對馬虎不得。不能再坐以待斃了,我們這套學(xué)生選課管理系統(tǒng)將提供一份完整的學(xué)分選課報表,并會利用管理系統(tǒng)的易修改性及時進行更新,讓同學(xué)們在選擇課程,計算學(xué)分中更加游刃有余。

近幾年來,我們寧夏大學(xué)一直都在擴招學(xué)生,外地生源的比例也比以前大了許多,而且還有日益增多的外國留學(xué)生,在管理上更增加了管理人員的勞動量,如此多的檔案資料,以原有的工作人員數(shù)量要管理好實在不容易,但如果增加工作人員,管理成本必然也會增加,得不償失,而我們這套系統(tǒng)這時就會發(fā)揮出它大大的作用,讓實用這領(lǐng)會到它的優(yōu)越之處,幫助老師輕輕松松管理好學(xué)生各方面的資料,無論學(xué)生是多是少,一切都會被管理得井井有條。

6.社會可行性

經(jīng)過我們的調(diào)查,絕大部分的任課老師,行政人員和校領(lǐng)導(dǎo)都為現(xiàn)行系統(tǒng)的繁瑣和冗雜的工作量所深深困擾著。在得知我們開發(fā)這套系統(tǒng)的計劃后,他們都有一種守得云開見月明的感覺,并表示非常愿意在系統(tǒng)的開發(fā)過程中給予全力支持以及積極的配合。

我們這套學(xué)生選課管理系統(tǒng)不僅能夠讓老師更清晰的掌握自己學(xué)生的信息,同時也讓學(xué)生自己更容易的知道如何準(zhǔn)確的選課,如何計算學(xué)分及盡早得知自己的考試成績。這就大大的為老師提供了便利。比如,在每學(xué)期期末考試后,大多數(shù)學(xué)生都已回到家中,如果為了獲取考試成績又不得不再返回學(xué)校的話,既費時

又費力,學(xué)生牢騷滿腹,老師也不能提早放假休息。而我們的系統(tǒng)可以提供網(wǎng)上查分,同學(xué)們在家中只需要上網(wǎng)就可以在第一時間知道自己的成績。還有,學(xué)生們也可通過我們的系統(tǒng)進行選課來湊夠?qū)W分完成學(xué)業(yè)。在系統(tǒng)中會顯示出個門課程的性質(zhì)(如必修、限選、任選),其所占學(xué)分及任課老師的資料,其應(yīng)用性之強得到充分發(fā)揮。

我們學(xué)校的電腦普及率已達到了很高的水平,尤其是我們系擁有設(shè)備先進管理完善的系機房,而學(xué)院的老師和學(xué)生們對電腦的操作也是駕輕就熟。因此,只要我們這套學(xué)生選課系統(tǒng)操作簡單,實用,合理,大家肯定是樂于接受并積極響應(yīng)和支持的。對于這一點,我們是很有信心的。隨著信息時代的來臨,學(xué)籍學(xué)分 選課等信息管理的自動化,一體化正是大勢所趨。

7.其他可供選擇的方案

暫無

【本文地址:http://www.85550.com.cn/zuowen/1092404.html】

全文閱讀已結(jié)束,如果需要下載本文請點擊

下載此文檔