美国九九精品动态图_青青青国产依人在在线观看高_在线120秒观看视频日本大片_国产在线看片免费人成视频

  • <dfn id="xv8h3"></dfn>
    <address id="xv8h3"></address>
  • <address id="xv8h3"><var id="xv8h3"></var></address>

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

      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)基本實(shí)現(xiàn)的設(shè)計要求有:

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

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

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

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

      (3)管理員

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

      (4)教師的需求

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

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

      初步估算使用經(jīng)費(fèi)15萬元,包括硬件資源、技術(shù)資料、開發(fā)費(fèi)用、培訓(xùn)費(fèi)用等。其中,開發(fā)開發(fā)期間約需9萬員,調(diào)試與運(yùn)行期間約需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)試運(yùn)行:1.5個月。

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

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

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

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

      ??????????????????????????? 3 1.2 開發(fā)目的 ?????????????????????????? 3 1.3 開發(fā)運(yùn)行境 ?????????????????????????? 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.詳細(xì)設(shè)計 ??????????????????????????? 8 5.1 學(xué)生登錄模塊的設(shè)計與實(shí)現(xiàn) ??????????????????? 8 5.2 學(xué)生注冊模塊的設(shè)計與實(shí)現(xiàn) ??????????????????? 9 5.3 學(xué)生查詢模塊的設(shè)計與實(shí)現(xiàn)??????????????????? 9

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

      internet 的飛速發(fā)展深刻地影響了人們的日常生活和商業(yè)運(yùn)作方式。人們打 開網(wǎng)頁瀏覽當(dāng)天的新聞,發(fā)電子郵件給遠(yuǎn)方的朋友,使用搜索引擎查找資料, 進(jìn)入網(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),可以不受地點(diǎn)和時間的 限制完成選修課的申請,而學(xué)校也可以方便地對系統(tǒng)進(jìn)行管理和控制,提高工 作效率。

      1.3 開發(fā)運(yùn)行環(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)主要實(shí)現(xiàn)學(xué)生信息管理和選課查詢。學(xué)生信息包括學(xué)號、姓名、班級;課程信息包括課程名;2.3 業(yè)務(wù)流程圖 3.總體設(shè)計

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

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

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

      3.4模塊設(shè)計

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

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

      (4 用戶查詢模塊:可以進(jìn)行查看所選課程的操作。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)用程序編程接口實(shí)現(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ù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu): 1.名稱:用戶信息表

      2.名稱:課程信息表

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

      一個真正的、完整的站點(diǎn)是離不開數(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 ”選項(xiàng)卡,單擊“添加”按鈕。如下圖所示。

      在“創(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.詳細(xì)設(shè)計

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

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

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

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

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

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

      5.4 學(xué)生選課模塊的設(shè)計與實(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)以及地方電力集團(tuán)進(jìn)行開發(fā);該軟件基于自主cad平臺、功能強(qiáng)大、設(shè)計效率高、使用范圍廣同時符合設(shè)計標(biāo)準(zhǔn),并能實(shí)時配網(wǎng)設(shè)計與造價的一體化;能滿足城網(wǎng)設(shè)計、農(nóng)網(wǎng)改造設(shè)計、電纜線路設(shè)計以及戶表設(shè)計工作的計算機(jī)輔助設(shè)計軟件。

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

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

      用戶只需要通過錄入基本信息、氣象區(qū)、測量數(shù)據(jù),軟件就可以自動根據(jù)設(shè)計規(guī)則自動進(jìn)行桿型選型,并根據(jù)設(shè)計標(biāo)準(zhǔn)對桿進(jìn)行結(jié)構(gòu)驗(yàn)算,從而實(shí)現(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è)計、智能識別圖紙等功能。

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

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

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

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

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

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

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

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

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

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

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

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

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

      軟件界面:

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

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

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

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

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

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

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

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

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

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

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

      題目

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

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

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

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

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

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

      第六部分:心得體會

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

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

      目錄

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      本程序功能模塊根據(jù)程序設(shè)計的需求,綜合程序的實(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è)計、程序運(yùn)行結(jié)果應(yīng)在程序的

      運(yùn)用中得以體現(xiàn),現(xiàn)在通過一個程序的運(yùn)用事例來對程序運(yùn)行結(jié)果進(jìn)行演示與實(shí)現(xiàn)?!拒浖\(yùn)用舉例】

      1、程序開始界面如下:

      選擇某個選項(xiàng),如進(jìn)行管理員登錄,進(jìn)行課程的增加 進(jìn)入管理員界面:

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

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

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

      第二頁:

      4、課程查詢

      查找結(jié)果:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      第六部分:心得體會

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

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

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

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

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

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

      第七部分:附錄

      一、參考文獻(xiàn):

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

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

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

      4、譚浩強(qiáng)主編,程序設(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ù)不等于選項(xiàng)的時候打印畫面

      {

      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沒有這項(xiàng)服務(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沒有這項(xiàng)服務(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();//進(jìn)入學(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();//進(jìn)入學(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已到達(dá)首頁 t按任意鍵返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n-1;

      }

      break;

      }

      case 2:

      {

      if(n==i-2)

      {

      printf(“nt已到達(dá)尾頁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();//進(jìn)入學(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已到達(dá)首頁 t按任意鍵返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n-1;

      }

      break;

      }

      case 2:

      {

      if(n==i-2)

      {

      printf(“nt已到達(dá)尾頁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沒有這項(xiàng)服務(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沒有這項(xiàng)服務(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沒有這項(xiàng)服務(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沒有這項(xiàng)服務(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é)計算機(jī)學(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é)都是為了“選課”而選課,完全沒有實(shí)現(xiàn)鼓勵同學(xué)發(fā)展個性,學(xué)各自之所愛的效果。不僅如此,每當(dāng)選課的時候,同學(xué)們忙,老師更忙,學(xué)校和系里都需要投入大量的人力、物力對整個選課過程進(jìn)行管理。

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

      1.2 項(xiàng)目背景

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

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

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

      用戶:寧夏大學(xué)

      1.3 定義

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

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

      1.4 參考資料

      《軟件工程》

      2.可行性研究的前提

      2.1 要求

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

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

      輸出要求:簡單、快捷、實(shí)時。

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

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

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

      2.2目標(biāo)

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

      2.3條件、假定何限制

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

      開發(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工作負(fù)荷

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

      3.3人員

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

      3.4設(shè)備

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

      3.5局限性

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

      4.技術(shù)可行性

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

      身為計算機(jī)科學(xué)與技術(shù)專業(yè)大三的學(xué)生,通曉一些計算機(jī)軟件知識是肯定的,運(yùn)用軟件編寫程序的能力也是必備的。當(dāng)然,我們畢竟還是學(xué)生,能力還是有限的,但我們計算機(jī)系最不缺乏的就是計算機(jī)人才,向知識淵博、誨人不倦的鄭小玲老師必會給我們以極大的幫助。更何況,俗語說的好:三個臭皮匠賽過諸葛亮。我們組有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)的缺點(diǎn)。而我們的系統(tǒng)將充分利用學(xué)校為我們提供的寶貴信息,在繼承其優(yōu)點(diǎn)的基礎(chǔ)上,開發(fā)出一套更為可行的學(xué)生管理系統(tǒng)。這套學(xué)生選課管理系統(tǒng)在今后的應(yīng)用中再經(jīng)過不斷的修正與改進(jìn),將會使我學(xué)生選課更加完善、盡美。

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

      成本方面,關(guān)于各種軟、硬件及輔助設(shè)備的購置、調(diào)試、機(jī)房及輔助設(shè)施(電源等)以及系統(tǒng)維護(hù),內(nèi)務(wù)開銷這些費(fèi)用都可以忽略不計,因?yàn)槲覀冇凶约旱碾娔X。

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

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

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

      近幾年來,我們寧夏大學(xué)一直都在擴(kuò)招學(xué)生,外地生源的比例也比以前大了許多,而且還有日益增多的外國留學(xué)生,在管理上更增加了管理人員的勞動量,如此多的檔案資料,以原有的工作人員數(shù)量要管理好實(shí)在不容易,但如果增加工作人員,管理成本必然也會增加,得不償失,而我們這套系統(tǒng)這時就會發(fā)揮出它大大的作用,讓實(shí)用這領(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é)校的話,既費(fèi)時

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

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

      7.其他可供選擇的方案

      暫無

      【本文地址:http://zhuhaihb.com/zuowen/1092404.html】

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

      下載此文檔