第一篇:學(xué)生管理系統(tǒng) 設(shè)計(jì)總結(jié)
概述
隨著計(jì)算機(jī)技術(shù)的發(fā)展,特別是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,使用人們的生活與工作方式發(fā)生了很大的改變?,F(xiàn)代化管理高效、簡(jiǎn)潔,數(shù)據(jù)庫(kù)始于20世紀(jì)60年代,經(jīng)過40多年的發(fā)展,現(xiàn)在已經(jīng)形成了理論體系,成為計(jì)算機(jī)軟件的一個(gè)重要分支。數(shù)據(jù)庫(kù)技術(shù)體現(xiàn)了當(dāng)代先進(jìn)的數(shù)據(jù)管理方法,使計(jì)算機(jī)的應(yīng)用真正滲透到國(guó)民經(jīng)濟(jì)各個(gè)部門,在數(shù)據(jù)處理領(lǐng)域發(fā)揮著越來越大的作用。
而互聯(lián)網(wǎng)技術(shù)的出現(xiàn),更是進(jìn)一步豐富的人類生活,數(shù)字化生存已經(jīng)一步步走進(jìn)我們的生活與工作?;ヂ?lián)網(wǎng)技術(shù)與數(shù)據(jù)庫(kù)技術(shù)的結(jié)合為計(jì)算的在人類生活中的應(yīng)用帶來了巨大的影響。產(chǎn)業(yè)信息化,管理現(xiàn)代化,科學(xué)化已經(jīng)成為行業(yè)發(fā)展的重要課題,這不僅是企業(yè)提高自身競(jìng)爭(zhēng)力,甚至是國(guó)家提高綜合國(guó)力,走向國(guó)民富強(qiáng)的重要手段。
我國(guó)人口眾多,學(xué)生數(shù)目龐大,要進(jìn)行信息化管理就需要建立合適的信息管理系統(tǒng),在實(shí)現(xiàn)基礎(chǔ)的管理功能的同時(shí)做好數(shù)據(jù)的整理、安全功能。通過使用信息管理系統(tǒng),可以極大提高工作效率。
背景分析
學(xué)生信息是學(xué)校管理中一項(xiàng)繁瑣的工作。管理人員需要建立學(xué)生的學(xué)籍,匯總每學(xué)期沒有拿到規(guī)定學(xué)分的學(xué)生,及這些學(xué)生的詳細(xì)情況;學(xué)生完成一門課程的學(xué)習(xí)后,教師學(xué)要錄入學(xué)生的考試成績(jī),計(jì)算平均成績(jī),匯總各分?jǐn)?shù)段的人數(shù);學(xué)生需要查詢已結(jié)業(yè)的各門課程的成績(jī);班主任需要查詢本班學(xué)生的學(xué)習(xí)情況,包括每個(gè)課程的平均成績(jī)和每個(gè)學(xué)生的考試通過情況。為此,設(shè)計(jì)一套實(shí)用的學(xué)生信息管理系統(tǒng)就可以大大簡(jiǎn)化管理人員、班主任和任課教師的工作,方便學(xué)生查詢自己的學(xué)習(xí)情況。此外還需要具備良好的擴(kuò)充能力,以應(yīng)付未來可能添加的新需求。
在賬戶管理方面需要分別處理老師和學(xué)生的賬戶,合理分配權(quán)限,做好系統(tǒng)安全。
總結(jié)
學(xué)生管理系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)用。在制作過程中遇到的困難并不太多,主要是規(guī)劃文檔期間經(jīng)驗(yàn)不足的問題,需要改很多遍。
接觸了軟件工程這門課程,我認(rèn)為軟件工程和我們平時(shí)上專業(yè)課相對(duì)來講一個(gè)是宏觀一個(gè)是微觀。平時(shí)寫軟件是一個(gè)微觀的,講的是如何來實(shí)現(xiàn)各個(gè)功能的細(xì)微細(xì)節(jié)。而軟件工程就相對(duì)來講是一個(gè)宏觀調(diào)控,從整體方面來分析系統(tǒng)的結(jié)構(gòu),可行性等等。
寫軟件我們是照著一定的思想一定思路去寫下去,有人說其實(shí)寫軟件并不難,只要給你一個(gè)思路你就可以不斷地往下寫。我覺得確是如此,其實(shí)我們平時(shí)寫軟件我覺得并不是很難的事,平時(shí)即使遇到處理不了的技術(shù)問題,哪里編譯出現(xiàn)錯(cuò)誤等等其實(shí)都可以在網(wǎng)上提問。技術(shù)問題一般我們都可以在網(wǎng)上得到答案,但軟件的思想不是我們看了一下就能真正理解的。
不論采用哪種方法來開發(fā)軟件,分析的過程都是提取系統(tǒng)需求的過程。分析工作主要包括3項(xiàng)內(nèi)容,這就是理解,表達(dá)和驗(yàn)證。首先,系統(tǒng)分析員通過用戶及領(lǐng)域?qū)<业某浞纸涣?,力求完全理解用戶需求和該?yīng)用鄰域中的關(guān)鍵性的背景知識(shí),并用某種無二義性的方式把這種理解表達(dá)成文檔資料。分析過程得出的最重要的文檔資料是軟件需求規(guī)格說明(在面向?qū)ο蠓治鲋?,主要由?duì)象模型,動(dòng)態(tài)模型和功能模型組成)。
由于問題復(fù)雜,而且人與人之間的交流帶有隨意性和非形式化的特點(diǎn),上述理解過程通常不能一次就達(dá)到理解的效果。因此,還必須進(jìn)一步驗(yàn)證軟件需求規(guī)格說明的正確性,完整性和有效性,如果發(fā)現(xiàn)了問題則進(jìn)行修正。顯然,需求分析過程是系統(tǒng)分析員與用戶及領(lǐng)域
專家反復(fù)交流和多次修正的過程。也就是說,理解和驗(yàn)證的過程通常交替進(jìn)行,反復(fù)迭代,而且往往需要利用原型系統(tǒng)作為輔助工具。
由此可見,軟件工程在構(gòu)筑、編寫文檔方面的工作實(shí)際上并不比編寫代碼的工作量要少,相反,有時(shí)候編寫代碼尤其是初步編寫代碼的工作量在整個(gè)工程中只占了很少的一部分工作。我們需要改變傳統(tǒng)的編寫軟件的觀點(diǎn),從軟件工程的角度來看待問題,這也是我學(xué)習(xí)軟件工程這門課最大的收獲。
第二篇:學(xué)生管理系統(tǒng)個(gè)人總結(jié)
學(xué)生管理系統(tǒng)個(gè)人總結(jié)
概述
隨著計(jì)算機(jī)技術(shù)的發(fā)展,特別是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,使用人們的生活與工作方式發(fā)生了很大的改變?,F(xiàn)代化管理高效、簡(jiǎn)潔,數(shù)據(jù)庫(kù)始于20世紀(jì)60年代,經(jīng)過40多年的發(fā)展,現(xiàn)在已經(jīng)形成了理論體系,成為計(jì)算機(jī)軟件的一個(gè)重要分支。數(shù)據(jù)庫(kù)技術(shù)體現(xiàn)了當(dāng)代先進(jìn)的數(shù)據(jù)管理方法,使計(jì)算機(jī)的應(yīng)用真正滲透到國(guó)民經(jīng)濟(jì)各個(gè)部門,在數(shù)據(jù)處理領(lǐng)域發(fā)揮著越來越大的作用。
而互聯(lián)網(wǎng)技術(shù)的出現(xiàn),更是進(jìn)一步豐富的人類生活,數(shù)字化生存已經(jīng)一步步走進(jìn)我們的生活與工作。互聯(lián)網(wǎng)技術(shù)
與數(shù)據(jù)庫(kù)技術(shù)的結(jié)合為計(jì)算的在人類生活中的應(yīng)用帶來了巨大的影響。產(chǎn)業(yè)信息化,管理現(xiàn)代化,科學(xué)化已經(jīng)成為行業(yè)發(fā)展的重要課題,這不僅是企業(yè)提高自身競(jìng)爭(zhēng)力,甚至是國(guó)家提高綜合國(guó)力,走向國(guó)民富強(qiáng)的重要手段。
我國(guó)人口眾多,學(xué)生數(shù)目龐大,要進(jìn)行信息化管理就需要建立合適的信息管理系統(tǒng),在實(shí)現(xiàn)基礎(chǔ)的管理功能的同時(shí)做好數(shù)據(jù)的整理、安全功能。通過使用信息管理系統(tǒng),可以極大提高工作效率。
背景分析
學(xué)生信息是學(xué)校管理中一項(xiàng)繁瑣的工作。管理人員需要建立學(xué)生的學(xué)籍,匯總每學(xué)期沒有拿到規(guī)定學(xué)分的學(xué)生,及這些學(xué)生的詳細(xì)情況;學(xué)生完成一門課程的學(xué)習(xí)后,教師學(xué)要錄入學(xué)生的考試成績(jī),計(jì)算平均成績(jī),匯總各分?jǐn)?shù)段的人數(shù);學(xué)生需要查詢已結(jié)業(yè)的各門課程的成績(jī);班主任需要查詢本班學(xué)生的學(xué)習(xí)情況,包括每個(gè)課程的平均成績(jī)和
每個(gè)學(xué)生的考試通過情況。為此,設(shè)計(jì)一套實(shí)用的學(xué)生信息管理系統(tǒng)就可以大大簡(jiǎn)化管理人員、班主任和任課教師的工作,方便學(xué)生查詢自己的學(xué)習(xí)情況。此外還需要具備良好的擴(kuò)充能力,以應(yīng)付未來可能添加的新需求。
在賬戶管理方面需要分別處理老師和學(xué)生的賬戶,合理分配權(quán)限,做好系統(tǒng)安全。
總結(jié)
學(xué)生管理系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)用。在制作過程中遇到的困難并不太多,主要是規(guī)劃文檔期間經(jīng)驗(yàn)不足的問題,需要改很多遍。
接觸了軟件工程這門課程,我認(rèn)為軟件工程和我們平時(shí)上專業(yè)課相對(duì)來講一個(gè)是宏觀一個(gè)是微觀。平時(shí)寫軟件是一個(gè)微觀的,講的是如何來實(shí)現(xiàn)各個(gè)功能的細(xì)微細(xì)節(jié)。而軟件工程就相對(duì)來講是一個(gè)宏觀調(diào)控,從整體方面來分析系統(tǒng)的結(jié)構(gòu),可行性等等。
寫軟件我們是照著一定的思想一
定思路去寫下去,有人說其實(shí)寫軟件并不難,只要給你一個(gè)思路你就可以不斷地往下寫。我覺得確是如此,其實(shí)我們平時(shí)寫軟件我覺得并不是很難的事,平時(shí)即使遇到處理不了的技術(shù)問題,哪里編譯出現(xiàn)錯(cuò)誤等等其實(shí)都可以在網(wǎng)上提問。技術(shù)問題一般我們都可以在網(wǎng)上得到答案,但軟件的思想不是我們看了一下就能真正理解的。
不論采用哪種方法來開發(fā)軟件,分析的過程都是提取系統(tǒng)需求的過程。分析工作主要包括3項(xiàng)內(nèi)容,這就是理解,表達(dá)和驗(yàn)證。首先,系統(tǒng)分析員通過用戶及領(lǐng)域?qū)<业某浞纸涣?,力求完全理解用戶需求和該?yīng)用鄰域中的關(guān)鍵性的背景知識(shí),并用某種無二義性的方式把這種理解表達(dá)成文檔資料。分析過程得出的最重要的文檔資料是軟件需求規(guī)格說明。
由于問題復(fù)雜,而且人與人之間的交流帶有隨意性和非形式化的特點(diǎn),上述理解過程通常不能一次就達(dá)到理解的
效果。因此,還必須進(jìn)一步驗(yàn)證軟件需求規(guī)格說明的正確性,完整性和有效性,如果發(fā)現(xiàn)了問題則進(jìn)行修正。顯然,需求分析過程是系統(tǒng)分析員與用戶及領(lǐng)域
專家反復(fù)交流和多次修正的過程。也就是說,理解和驗(yàn)證的過程通常交替進(jìn)行,反復(fù)迭代,而且往往需要利用原型系統(tǒng)作為輔助工具。
由此可見,軟件工程在構(gòu)筑、編寫文檔方面的工作實(shí)際上并不比編寫代碼的工作量要少,相反,有時(shí)候編寫代碼尤其是初步編寫代碼的工作量在整個(gè)工程中只占了很少的一部分工作。我們需要改變傳統(tǒng)的編寫軟件的觀點(diǎn),從軟件工程的角度來看待問題,這也是我學(xué)習(xí)軟件工程這門課最大的收獲。
個(gè)人總結(jié)
--------學(xué)生信息管理系統(tǒng)小結(jié)經(jīng)過大家的努力,學(xué)生管理系統(tǒng)終于做完了,經(jīng)過這次實(shí)習(xí)系統(tǒng)設(shè)計(jì),自己總結(jié)了這個(gè)學(xué)生信息管理系統(tǒng)的一些問題,不過收獲還是頗為豐富的,再有理論知
識(shí)上結(jié)合實(shí)踐,使我學(xué)到了更多。
首先,更進(jìn)一步的了解了數(shù)據(jù)庫(kù)的基本操作,在這之前,數(shù)據(jù)庫(kù)的學(xué)習(xí)僅僅剛開了個(gè)頭,我們只是在了解一些概念性的東西。在做這個(gè)系統(tǒng)之前,我連基本的連接數(shù)據(jù)庫(kù),配文件dsn,數(shù)據(jù)庫(kù)查詢語(yǔ)句等這些東西都不熟練。現(xiàn)在對(duì)于數(shù)據(jù)庫(kù)的增刪改查操作比較熟練了,對(duì)于初學(xué)者來說,比較頭疼的就是對(duì)于單引號(hào)的處理。我的建議是如果不理解先把按照課本上正確的語(yǔ)句敲,然后在多次進(jìn)行數(shù)據(jù)庫(kù)的鏈接,增刪改查操作中不斷總結(jié)規(guī)律。這次設(shè)計(jì)的學(xué)生信息管理系統(tǒng),全在自己所掌握的知識(shí)下,進(jìn)行編程設(shè)計(jì),完全體現(xiàn)了自己在數(shù)據(jù)庫(kù)語(yǔ)言和程序設(shè)計(jì)課程學(xué)習(xí)狀況,充分地為自己以后更深入了數(shù)據(jù)庫(kù)語(yǔ)言奠下深厚的基礎(chǔ)。
縱觀此學(xué)生信息管理系統(tǒng)的整體概況,目前,自我認(rèn)為設(shè)計(jì)良好,相關(guān)功能都能夠?qū)崿F(xiàn),功能強(qiáng)大,條理清晰,界面可觀性比較好。并且特色在于,所
設(shè)計(jì)的表單都在一個(gè)表單系統(tǒng)桌面中運(yùn)行,比較符合系統(tǒng)的觀念。
在系統(tǒng)設(shè)計(jì)的過程中,我從中發(fā)現(xiàn),學(xué)習(xí)數(shù)據(jù)庫(kù)要細(xì)心和有耐性,并且要不斷地從外界學(xué)習(xí)更多的技術(shù)才能設(shè)計(jì)出一套完美的系統(tǒng)
劉小慧2014年7月15日
學(xué)生管理系統(tǒng)開發(fā)總結(jié)報(bào)告
項(xiàng)目承擔(dān)部門:07級(jí)漢本2本
本組成員:田維祝胡鵬躍周延強(qiáng)馬勇 王飛霞
撰寫人:田維祝
完成日期:2014年12月22日
本文檔使用部門:項(xiàng)目組主管領(lǐng)導(dǎo)客戶維護(hù)人員用戶 評(píng)審人:
評(píng)審日期:
實(shí)際開發(fā)結(jié)果:
功能基本實(shí)現(xiàn)。
1、軟件產(chǎn)品描述
此項(xiàng)目主要是有關(guān)于學(xué)生的成績(jī)進(jìn)行管理的應(yīng)用軟件,他的主要適用對(duì)象是老師和學(xué)生,能夠減少老師的工作
時(shí)間和壓力同時(shí)能夠及時(shí)的讓學(xué)生對(duì)自己的成績(jī)等私人信息及時(shí)了解!
軟件模塊清單
文檔清單
進(jìn)度
工作評(píng)價(jià)
對(duì)技術(shù)評(píng)價(jià):
采用了以前沒有使用過的技術(shù):如jsp ,mvc架構(gòu)等 對(duì)質(zhì)量評(píng)價(jià):
由于時(shí)間較短所以很多東西沒有完善,產(chǎn)品少有瑕疵!技術(shù)總結(jié)積累:
通過這次實(shí)例我們把過去所學(xué)的java只靈活運(yùn)用到了項(xiàng)目中,同時(shí)涉及到了數(shù)據(jù)庫(kù)的一些技術(shù),網(wǎng)頁(yè)的設(shè)計(jì)美化,jsp網(wǎng)頁(yè)設(shè)計(jì),讓我們受益匪淺。同時(shí)小組內(nèi)技術(shù)交流大家學(xué)會(huì)了很多過去沒有怎么使用的技術(shù)或者軟件,如ps,eclipse,jdbc數(shù)據(jù)庫(kù)連接等等。經(jīng)驗(yàn)教訓(xùn):
通過這次實(shí)例開發(fā),增進(jìn)了團(tuán)隊(duì)協(xié)作能力,增強(qiáng)了我們的編程思
想,鍛煉了我們的溝通能力。重要 的是我們學(xué)習(xí)了很多只是,加深了一些書本知識(shí)的理解,體驗(yàn)了軟件的開發(fā)流程。
我們的缺陷在于,由于是初次合作所以彼此分工不明確。合作不夠密切!
最深體會(huì):學(xué)無止境,多動(dòng)手多思考!
asp.net課程設(shè)計(jì)
-----成績(jī)管理系統(tǒng)
韓
旭
強(qiáng)
計(jì)算機(jī)系應(yīng)用技術(shù)1001班 2014年六月二十七日
學(xué)生成績(jī)管理系統(tǒng)總結(jié)
成員介紹
組長(zhǎng):韓旭強(qiáng) 組員:岳瑞杰
牛津
成員分工合作
岳瑞杰
韓旭強(qiáng) 牛津 功能實(shí)現(xiàn)
c#課程設(shè)計(jì)
實(shí)
訓(xùn)
總
結(jié)
姓名: 班級(jí):
學(xué)號(hào):指導(dǎo)教師:
一學(xué)期很快就過去了,在這一學(xué)期中,我通過對(duì)visual c# 2014程序設(shè)計(jì)的學(xué)習(xí)獲得了很多知識(shí)。在本次c#課程設(shè)計(jì)中,我學(xué)習(xí)到了許多書本上沒有的知識(shí),是我了解到程序開發(fā)的艱難。雖然這次實(shí)訓(xùn)中有許多的不足,但起碼是了解了圖書管理系統(tǒng)開發(fā)的部分過程。這次課程設(shè)計(jì)給我提供了一個(gè)很好的機(jī)會(huì),在設(shè)計(jì)中發(fā)現(xiàn),有很多已經(jīng)學(xué)過的東西我們沒有理解到位不能靈活運(yùn)用于實(shí)際,不能很好的用來解決問題,這就需要自己不斷的大量的實(shí)踐,通過不斷的自學(xué),不斷地發(fā)現(xiàn)問題,思考問題,進(jìn)而解決問題。在這個(gè)過程中我們將深刻理解所學(xué)知識(shí),同時(shí)也可以學(xué)到不少很實(shí)用的東西。
一 實(shí)訓(xùn)選題
圖書管理系統(tǒng)的設(shè)計(jì)
二 實(shí)訓(xùn)設(shè)計(jì)作品內(nèi)容
這次的課程設(shè)計(jì),我們需要做一個(gè)圖書管理系統(tǒng)的登錄界面及主界面。
三 設(shè)計(jì)中遇到的問題及解決方案
這次的課程設(shè)計(jì),我們需要做一個(gè)圖書管理系統(tǒng)的登錄界面及主界面。在制作過程中,我親身體驗(yàn)了一回系統(tǒng)的設(shè)計(jì)開發(fā)過程,很多東西書上寫的很清楚,貌似看著也很簡(jiǎn)單,思路非常清晰。但真正需要自己想辦法去設(shè)計(jì)一個(gè)系統(tǒng)的時(shí)候才發(fā)現(xiàn)其中的難度。本次實(shí)訓(xùn)中,在做到各個(gè)頁(yè)面之間的跳轉(zhuǎn)中,不知如何制作,在我像同學(xué)及老師的不斷請(qǐng)教中終于學(xué)會(huì)了。
四 作品的優(yōu)點(diǎn)及不足
通過本次課程設(shè)計(jì),我感覺我的作品的優(yōu)點(diǎn)在于,各頁(yè)面之間的背景設(shè)計(jì)還是不錯(cuò)的,不足在于設(shè)計(jì)頁(yè)面過于簡(jiǎn)單,有的設(shè)計(jì)不是很合理。希望以后能改正,更加努力學(xué)習(xí)。
五 對(duì)實(shí)訓(xùn)的意見及建議
通過這次課程設(shè)計(jì)的完成,使我對(duì)自己所學(xué)知識(shí)進(jìn)一步的了解,同時(shí)通過實(shí)踐發(fā)現(xiàn)自己的不足,對(duì)知識(shí)的掌握及運(yùn)用存在諸多的不完善。本系統(tǒng)也存在著很多不足,如系統(tǒng)十分簡(jiǎn)單,實(shí)現(xiàn)功能也不夠完善。所以在今后的學(xué)習(xí)中我會(huì)繼續(xù)努力,完善自我。在本次的實(shí)訓(xùn)中我感覺實(shí)訓(xùn)的時(shí)間有點(diǎn)短,有些設(shè)計(jì)是需要時(shí)間來思考的,但兩天的時(shí)間過于短,由許多的功能無法實(shí)現(xiàn)及更改,希望學(xué)校加長(zhǎng)對(duì)實(shí)訓(xùn)時(shí)間的延長(zhǎng)。還有就是實(shí)訓(xùn)環(huán)境有點(diǎn)簡(jiǎn)陋,實(shí)訓(xùn)室沒辦法上網(wǎng),有些東西不會(huì)而無法及時(shí)的上網(wǎng)查詢。希望領(lǐng)導(dǎo)能夠改善。對(duì)于建議,希望領(lǐng)導(dǎo)能給實(shí)訓(xùn)室裝上風(fēng)扇,最好能裝上空調(diào)。
第三篇:學(xué)生管理系統(tǒng)
import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;
public class Xsglxt extends JFrame implements ActionListener { JPanel mb1,mb2;JLabel bq1;JTextField wbk1;JButton an1,an2,an3,an4;JTable bg1;
JScrollPane gd1;Xsxx xsxx2;
public static void main(String[] args)
{
Xsglxt xs=new Xsglxt();}
public Xsglxt(){
mb1=new JPanel();
bq1=new JLabel(“請(qǐng)輸入姓名”);
wbk1=new JTextField(10);
an1=new JButton(“查詢”);
an1.addActionListener(this);
an1.setActionCommand(“chaxun”);
mb1.add(bq1);mb1.add(wbk1);mb1.add(an1);
mb2=new JPanel();
an2=new JButton(“添加”);
an2.addActionListener(this);
an2.setActionCommand(“tianjia”);
an3=new JButton(“修改”);
an3.addActionListener(this);
an3.setActionCommand(“xiugai”);
an4=new JButton(“刪除”);
an4.addActionListener(this);
an4.setActionCommand(“shanchu”);
mb2.add(an2);mb2.add(an3);mb2.add(an4);
xsxx2=new Xsxx();
bg1=new JTable(xsxx2);gd1=new JScrollPane(bg1);
this.add(gd1);this.add(mb1,“North”);this.add(mb2,“South”);
this.setTitle(“學(xué)生管理系統(tǒng)”);this.setSize(500,400);this.setLocation(201,181);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);
} public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals(“chaxun”)){
String xingming=this.wbk1.getText().trim();
String sql=“select * from xuesheng where xingming='”+xingming+“'”;
xsxx2=new Xsxx(sql);
bg1.setModel(xsxx2);} else if(e.getActionCommand().equals(“tianjia”)){
Tianjia tj=new Tianjia(this,“添加學(xué)生信息”,true);
xsxx2=new Xsxx();
bg1.setModel(xsxx2);
} else if(e.getActionCommand().equals(“xiugai”)){
int ii=this.bg1.getSelectedRow();
if(ii==-1)
{
JOptionPane.showMessageDialog(this,“請(qǐng)選中要修改的行”);
return;
}
new Xiugai(this,“修改學(xué)生信息”,true,xsxx2,ii);
xsxx2=new Xsxx();
bg1.setModel(xsxx2);}
else if(e.getActionCommand().equals(“shanchu”))
{
int ii=this.bg1.getSelectedRow();
if(ii==-1)
{
JOptionPane.showMessageDialog(this,“請(qǐng)選中要?jiǎng)h除的行”);
return;
}
String st=(String)xsxx2.getValueAt(ii,0);
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;
Statement sm=null;
try {
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
ct=DriverManager.getConnection(“jdbc:odbc:sql server”,“sa”,“ydyd4488321”);
ps=ct.prepareStatement(“delete from xuesheng where xuehao=?”);
ps.setString(1,st);
ps.executeUpdate();
} catch(Exception e2){}
finally
{
try {
if(rs!=null)
{
rs.close();
}
if(ps!=null)
{
ps.close();
}
if(ct!=null)
{
ct.close();
}
} catch(Exception e3){}
}
xsxx2=new Xsxx();
bg1.setModel(xsxx2);
} } }
第四篇:oracle學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
階段1.1成績(jī)管理系統(tǒng)實(shí)體關(guān)系設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康暮鸵?/p>
(1)熟練掌握實(shí)體關(guān)系設(shè)計(jì)的方法。(2)通過需求分析結(jié)果,掌握E-R圖。
二、實(shí)驗(yàn)內(nèi)容和原理
實(shí)體關(guān)系設(shè)計(jì)是在需求分析的一個(gè)環(huán)節(jié)過程,在這一過程中產(chǎn)生E-R圖,該圖由實(shí)體、屬性和聯(lián)系三個(gè)要素構(gòu)成。邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念設(shè)計(jì)階段建立的基本E-R圖按照選定的系統(tǒng)軟件支持的數(shù)據(jù)模型,轉(zhuǎn)換成相應(yīng)的邏輯模型。這種轉(zhuǎn)換要符合關(guān)系數(shù)據(jù)模型的原則。
E-R圖向關(guān)系模型轉(zhuǎn)換時(shí)要解決如何將實(shí)體和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系,并確定這些關(guān)系的屬性和碼,這種轉(zhuǎn)換一般按下面的原則進(jìn)行。
(1)一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。
(2)一個(gè)聯(lián)系也轉(zhuǎn)換為一個(gè)關(guān)系,聯(lián)系的屬性及聯(lián)系所連接的實(shí)體的碼都轉(zhuǎn)換為關(guān)系的屬性,但關(guān)系的碼會(huì)根據(jù)聯(lián)系的類型變化。
三、主要儀器設(shè)備
計(jì)算機(jī)一臺(tái)、Powerdesinger運(yùn)行環(huán)境
四、操作方法與實(shí)驗(yàn)步驟
在成績(jī)管理系統(tǒng)中,需要管理學(xué)生、課程和成績(jī),以及它們之間的聯(lián)系。因此在該系統(tǒng)的E-R圖中,實(shí)體分別為學(xué)生、老師、課程。為了便于掌握,學(xué)生實(shí)體的屬性分別有學(xué)號(hào)、姓名、性別;課程實(shí)體的屬性有課程編號(hào)、課程名稱、學(xué)期、課程學(xué)分;教師實(shí)體的屬性有教師編號(hào)、姓名、性別。學(xué)生實(shí)體與課程實(shí)體有選課關(guān)系,而且一個(gè)學(xué)生可以選擇多門課程,一門課程也可以被多個(gè)學(xué)生選擇,因此學(xué)生和課程之間的聯(lián)系是m:n聯(lián)系。教師實(shí)體與課程實(shí)體有教授關(guān)系,一名教師可以教多門課程,一門課程也可以被多個(gè)教師教授,因此教師和課程之間的聯(lián)系是m:n聯(lián)系。學(xué)生在選課后會(huì)產(chǎn)生成績(jī),教師授課后會(huì)產(chǎn)生授課地點(diǎn)及授課學(xué)期。根據(jù)上述分析,繪出的E-R圖如下圖所示。
階段1.2 成績(jī)管理系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康暮鸵?/p>
1.了解數(shù)據(jù)庫(kù)中列的屬性以及各個(gè)屬性的含義。2.掌握為不同的列選擇不同的屬性及范圍。
二、實(shí)驗(yàn)內(nèi)容和原理
在管理信息系統(tǒng)中,物理結(jié)構(gòu)設(shè)計(jì)主要是指如何將通過邏輯結(jié)構(gòu)設(shè)計(jì)所得的系統(tǒng)邏輯結(jié)構(gòu)型轉(zhuǎn)換為物理模型,并明確地指出系統(tǒng)的物理存儲(chǔ)結(jié)構(gòu)。本實(shí)驗(yàn)主要是利用CASE工具集PowerDesigner對(duì)成績(jī)管理系統(tǒng)進(jìn)行物理結(jié)構(gòu)的設(shè)計(jì)。
三、主要儀器設(shè)備
計(jì)算機(jī)一臺(tái)、Powerdesinger 運(yùn)行環(huán)境、Oracle運(yùn)行環(huán)境
四、操作方法與實(shí)驗(yàn)步驟
在物理結(jié)構(gòu)設(shè)計(jì)中需要考慮為每列設(shè)計(jì)合適的數(shù)據(jù)類型。成績(jī)管理系統(tǒng)中,學(xué)生(學(xué)號(hào)、姓名、性別)關(guān)系里,學(xué)號(hào)采用int來表示就可以了,而姓名設(shè)置成varchar2(20),性別只需要設(shè)置為char(2)。因?yàn)樾詣e不是男就是女,因此只會(huì)占用兩個(gè)字節(jié)。所以最終我們可以將其物理表結(jié)構(gòu)設(shè)置為:t_student(stuid int,stuname varchar2(20),sex char(2)。依照上述,課程的物理表結(jié)構(gòu)為:t_course(couid int,couname varchar2(20),term char(2),credit number(3,1))。教師的物理存儲(chǔ)表結(jié)構(gòu)為:t_teacher(teaid int,teaname varchar2(20),sex char(2))。選課的物理表結(jié)構(gòu)為:t_selcour(sid int,cid int,score number.(4,2))。教課的物理表結(jié)構(gòu)為:t_teacour(tid int,cid int,teaaddr varchar2(30),term char(2))。
(1)通過手動(dòng)編寫SQL語(yǔ)句方式建立數(shù)據(jù)庫(kù)后臺(tái)
上述創(chuàng)建了代表學(xué)生實(shí)體的表t_student,其中stuid設(shè)置為主鍵,唯一標(biāo)識(shí)一個(gè)學(xué)生。
表t_course用來代表課程實(shí)體,其中采用couid來標(biāo)識(shí)一門課程。當(dāng)課程名稱的長(zhǎng)度大于20個(gè)字符時(shí),varchar2可以自動(dòng)擴(kuò)展。
物理實(shí)體在物理結(jié)構(gòu)中用t_teacher表來表示,teaid用來唯一標(biāo)識(shí)一位教師,因此其不能空
選課表t_selcour中學(xué)生編號(hào)參考t_student表中的stuid,此時(shí)sid為外鍵,課程編號(hào)cid也作為外鍵參考t_course中的couid(2)通過PowerDesigner建立數(shù)據(jù)庫(kù)后臺(tái)。
第四步:到此,系統(tǒng)的概念模型就全部設(shè)計(jì)好了。接下來單擊菜單“工具”→“生成物理屬性模型”選項(xiàng),就會(huì)彈出“物理數(shù)據(jù)模型生成選項(xiàng)”對(duì)話框,如下圖:
在“常規(guī)”選項(xiàng)卡中選擇“生成新的物理模型”單選鈕,并選擇DBMS為“OPACLE Version 10g”,“名稱”文本“MyPhysicalDataModel”,并單擊“確認(rèn)”按鈕,在彈出得到路徑選擇對(duì)話框中輸入你想要放置生成的物理數(shù)據(jù)模型文件的位置,系統(tǒng)就會(huì)自動(dòng)在指定的路徑下生成一個(gè)名為“MyPhysicalDataModal.pdm”的文件,并生成系統(tǒng)的物理模型,如下圖
CONGC
從菜單中選擇 Database---Generate Database選項(xiàng)。PowerDesigner將會(huì)在指定的路徑下生成一個(gè)名字為*.sql 的文本文件。里面存放可供Oracle 執(zhí)行的用來建立數(shù)據(jù)庫(kù)實(shí)體的SQL語(yǔ)句。
階段1.3 成績(jī)管路系統(tǒng)存儲(chǔ)過程設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康暮鸵?/p>
(1)了解存儲(chǔ)過程的設(shè)計(jì)目的以及方法。(2)掌握存儲(chǔ)過程的創(chuàng)建。
二、實(shí)驗(yàn)內(nèi)容和原理
存儲(chǔ)過程是在數(shù)據(jù)中定義的程序塊,它存放在數(shù)據(jù)庫(kù)服務(wù)端數(shù)據(jù)字典里。采用存儲(chǔ)過程可以提高過程代碼程序的執(zhí)行速度和代碼共享度。具體有以下幾個(gè)特點(diǎn)。(1)過程存放在服務(wù)器端,減少了網(wǎng)絡(luò)傳輸?shù)难訒r(shí),提高了速度。(2)過程在執(zhí)行一次之后,會(huì)駐留內(nèi)存,后續(xù)的執(zhí)行無需再經(jīng)編譯過程,提高了執(zhí)行效率。
三、主要儀器設(shè)備
計(jì)算機(jī)一臺(tái),Oracle運(yùn)行環(huán)境
四、操作方法與實(shí)驗(yàn)步驟
1、創(chuàng)建存儲(chǔ)過程先向表t_student中插入數(shù)據(jù),具體如下所示
2、每次向表t_student中插入數(shù)據(jù)時(shí),只需要運(yùn)行該過程就可以了。具體如下所示。表t_student中的列stuid被設(shè)置為主鍵,因此不可以存在重復(fù)值。在第二次運(yùn)行時(shí),因?yàn)檩斎氲牡谝粋€(gè)參數(shù)id與表中已存在的數(shù)據(jù)相同,所以插入時(shí)出現(xiàn)錯(cuò)誤。
3、繼續(xù)向表中插入兩條記錄,其中當(dāng)參數(shù)id不重復(fù)時(shí),過程成功完成。
4、不僅可以通過存儲(chǔ)過程向表中插入數(shù)據(jù),也可以通過一般的SQL語(yǔ)句向表中插入數(shù)據(jù),如下所示。
5、向表中插入數(shù)據(jù)時(shí),需要注意數(shù)據(jù)類型以及長(zhǎng)度都需要與表中定義的相符,否則會(huì)出現(xiàn)錯(cuò)誤,具體如下所示。
6、t_course表中列term被定義為char且長(zhǎng)度為2,因此在插入數(shù)據(jù)時(shí)該列最大長(zhǎng)度為2,超過該值會(huì)出現(xiàn)錯(cuò)誤。課程表中只有已經(jīng)存在的課程編號(hào)才能被插入到選課表中,否則會(huì)出錯(cuò),這樣就保證了數(shù)據(jù)的一致性。
7、t_selcour表的另外一個(gè)外鍵為第一列sid,在插入時(shí)只有當(dāng)該值存在于學(xué)生表中的學(xué)生編號(hào)時(shí),才能被成功插入,否則也會(huì)出現(xiàn)錯(cuò)誤,具體如下所示。
8、對(duì)于向表t_teacour中插入數(shù)據(jù)時(shí),同樣需要滿足外鍵參考主鍵的約束條件,具體如下所示。
9、向表t_teacour中插入一行記錄,其中tid存在于表t_teacher的列teaid中,cid存在于表t_course列couid中。如果插入的值不符合外鍵約束條件,會(huì)出現(xiàn)錯(cuò)誤,具體如下所示。
10、在完成對(duì)表插入值后,可以關(guān)聯(lián)表查詢記錄。比如:查詢教師編號(hào)為1的教師所帶的課程編號(hào)、教師姓名、課程名稱、課程學(xué)分信息,具體如下所示。實(shí)現(xiàn)了查詢編號(hào)為1的老師所帶的課程編號(hào)、課程名稱等信息。在查詢時(shí),為表命名別名時(shí)為了方便,各個(gè)表的連接通過主鍵外鍵約束來實(shí)現(xiàn)。
查看t_course及t_selcourse中的值
五、實(shí)驗(yàn)結(jié)果與分析
實(shí)驗(yàn)結(jié)果如上截圖所示。
六、討論、心得
grant select不支持對(duì)表中選定的幾列授權(quán),只能將整個(gè)表的select權(quán)限授權(quán)出去。所以實(shí)驗(yàn)中先建立了基于選課信息表的視圖SelectiveInfo1,視圖中包含成績(jī)列,學(xué)號(hào)列以及班級(jí)列(不包含其他的列)再將對(duì)視圖SelectiveInfo1的select權(quán)限授予角色teacher。
不同的用戶可以創(chuàng)建相同的表格,teacher用戶創(chuàng)建了table1,student用戶也創(chuàng)建了table1,且這兩個(gè)表格式完全相同的,那么其他用戶需要用這兩個(gè)表格時(shí),可以用teacher.table1和student.table1加以區(qū)分。
實(shí)驗(yàn)中遇到的問題可以上網(wǎng)百度,網(wǎng)上資源很豐富。
第五篇:學(xué)生考勤管理系統(tǒng)設(shè)計(jì)報(bào)告
C/C++程序設(shè)計(jì)專題實(shí)驗(yàn)
報(bào)告
題目:學(xué)生考勤管理系統(tǒng)設(shè)計(jì)
班級(jí):電子信息科學(xué)與技術(shù)131 姓名: 鄔
帥
斌
目錄
目錄......................................................................1 摘要........................................................................2 1.設(shè)計(jì)要求和目的.........................................................................................錯(cuò)誤!未定義書簽。
1.1設(shè)計(jì)目的................................................................3 1.2問題描述................................................................3 1.3功能要求................................................................3 1.4問題的解決方案..........................................................3 2 設(shè)計(jì)思路和方法...........................................................................................................................4 3 主模塊設(shè)計(jì)....................................................................................................................................5 4.運(yùn)行測(cè)試及結(jié)果.........................................................................................................................13 5.總結(jié)...........................................................................................................................................16 參考文獻(xiàn).........................................................................................................................................16 源代碼..............................................................................................................................................17
摘要
隨著信息技術(shù)在管理上越來越深入的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已經(jīng)逐步成熟。管理信息系統(tǒng)是一個(gè)不斷發(fā)展的學(xué)科,任何單位要生存要發(fā)展,要提高效率地把內(nèi)部活動(dòng)有機(jī)地組織起來,就必須建立與自身特點(diǎn)相適應(yīng)的信息管理系統(tǒng)。
由于學(xué)校的學(xué)生管理系統(tǒng)缺乏開發(fā),而學(xué)生人數(shù)不斷增加,學(xué)生信息的不斷更新,所以,學(xué)生考勤管理系統(tǒng)的建立就顯得非常重要了。
本設(shè)計(jì)是基于Visual basic C++ 6.0開發(fā)環(huán)境,至上而下,層次化地設(shè)計(jì)學(xué)生考勤管理,綜合考慮學(xué)生考勤管理所涉及的多方面問題,結(jié)合學(xué)校和教師的情況,有步驟,條理清晰的設(shè)計(jì),操作簡(jiǎn)單,很方便的實(shí)現(xiàn)了學(xué)校和老師對(duì)學(xué)生考勤的管理。
關(guān)鍵詞:學(xué)生考勤管理 C++ 信息錄入 查詢
1.設(shè)計(jì)要求和目的
1.1設(shè)計(jì)目的
(1)進(jìn)一步鍛煉學(xué)生對(duì)C++課程基礎(chǔ)知識(shí)和實(shí)踐技能的掌握和運(yùn)用;
(2)要求學(xué)生基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;
(3)要求學(xué)生能夠利用所學(xué)的基礎(chǔ)知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο笤O(shè)計(jì)問題。
1.2問題描述
學(xué)生信息包括:學(xué)號(hào)、姓名、性別、年齡、班級(jí)等信息。
考勤信息包括:缺課日期、第幾節(jié)課、課程名稱、學(xué)生姓名、缺課類型(遲到、早退、請(qǐng)假和曠課)。
1.3功能要求
(1)添加功能:程序能夠添加學(xué)生的記錄和缺課記錄,提供選擇界面供用戶選擇所要添加的類別。添加學(xué)生記錄時(shí),要求學(xué)號(hào)要唯一,如果添加了重復(fù)學(xué)號(hào)的記錄時(shí),則提示數(shù)據(jù)添加重復(fù)并取消添加。
(2)查詢功能:可根據(jù)學(xué)號(hào)、姓名等信息對(duì)已添加的學(xué)生記錄進(jìn)行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息。還可以按課程名、學(xué)生姓名對(duì)缺課記錄進(jìn)行查詢。
(3)顯示功能:可顯示當(dāng)前系統(tǒng)中所有學(xué)生的記錄和缺課記錄,每條記錄占據(jù)一行。
(4)編輯功能:可根據(jù)查詢結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意學(xué)號(hào)的唯一性。
(5)刪除功能:主要實(shí)現(xiàn)對(duì)已添加的學(xué)生記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒有相應(yīng)的記錄,則提示“記錄為空!”并返回操作。
(6)統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行統(tǒng)計(jì)。能按課程名統(tǒng)計(jì)出學(xué)生曠課的信息、還可以按姓名統(tǒng)計(jì)出任一學(xué)生的曠課情況。需要排序。
(7)保存功能:可將當(dāng)前系統(tǒng)中各類記錄存入文件中,存入方式任意。(8)讀取功能:可將保存在文件中的信息讀入到當(dāng)前系統(tǒng)中,供用戶進(jìn)行使用。
1.4問題的解決方案
根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:
(1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);(2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系;(3)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次;(4)完成類層次中各個(gè)類的描述;(5)完成類中各個(gè)成員函數(shù)的定義;
(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;
(8)完成系統(tǒng)總結(jié)報(bào)告。(7)功能調(diào)試;
(8)完成系統(tǒng)總結(jié)報(bào)告。
2.設(shè)計(jì)思路和方法
2.1設(shè)計(jì)思路
根據(jù)設(shè)計(jì)要求,經(jīng)分析可將整個(gè)系統(tǒng)劃分為7個(gè)功能模塊。數(shù)據(jù)管理中可以對(duì)學(xué)生的基本信息、課程的基本信息、學(xué)生缺課的查詢、添加、刪除和修改。查詢管理通過根據(jù)學(xué)生姓名,課程姓名 時(shí)間段兒等信息,查詢單個(gè)學(xué)生的缺課記錄,單科課的曠課記錄,單個(gè)學(xué)生的曠課記錄。功能模塊圖如下圖所示:
學(xué)生考勤管理程序建立學(xué)生缺課記錄修改學(xué)生缺課記錄查詢學(xué)生缺課記錄查看單科曠課記錄查看學(xué)生曠課記錄載入學(xué)生曠課記錄儲(chǔ)存學(xué)生曠課記錄
2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
struct xueke {char xueke_name[50];int people_num;};這是定義了一個(gè)xueke結(jié)構(gòu)體,用來存放一個(gè)學(xué)科名及其相應(yīng)的曠課人數(shù);
struct student { char name[50];long time;int lesson_time;char lesson_name[50];int chidao_num;
int zaotui_num;int qingjia_num;int kuangke_num;struct student *next;};這是定義了一個(gè)student的結(jié)構(gòu)體,用來存放一個(gè)學(xué)生的考勤記錄,其中有,字符數(shù)組name[50],lesson_name[50],分別存放學(xué)生名字,缺課課程名字;int型變量lesson_time,chidao_num,zaotui_num,qingjia_num, kuangke_num,分別來存放,缺課節(jié)次,遲到次數(shù),早退次數(shù),請(qǐng)假次數(shù),曠課次數(shù) long型變量time,記錄時(shí)間。
3.主模塊設(shè)計(jì)
3.1建立學(xué)生缺課記錄子模塊
建立的學(xué)生人數(shù),學(xué)生基本信息(包括缺課時(shí)間、學(xué)生姓名、課程名稱、節(jié)次、遲到次數(shù)、早退次數(shù)、請(qǐng)假次數(shù)、曠課次數(shù)),用creat()函數(shù),如下圖:
開始int i,b;struct student *head,*p1,*p2;printf(“請(qǐng)輸入要建立資料的學(xué)生人數(shù):”);scanf(“%d”,&b);head=p2=NULL;p1=(struct student *)malloc(LEN);輸入第一個(gè)學(xué)生成績(jī)head=p1;p2=p1;i=0;student_num++;inext=p1;p2=p1;student_num++;i++p2->next=NULL結(jié)束
3.2修改學(xué)生缺課記錄子模塊
開始char xiugai_name[50];char xiugai_xueke_name[50];int k;printf(”請(qǐng)輸入要修改的學(xué)生姓名與學(xué)科名稱:“);scanf(”%s%s“,xiugai_name,xiugai_xueke_name);struct student *p1,*p2;p2=(struct student *)malloc(LEN);p1=head;p1=p1->next;strcmp(xiugai_name,p1->name)!=0&&(p1->next!=NULL)&&strcmp(xiugai_xueke_name,p1->lesson_name)!strcmp(xiugai_name,p1->name)==0&&strcmp(xiugai_xueke_name,p1->lesson_name)==0顯示修改菜單選擇修改項(xiàng)目并完成修改結(jié)束
3.3修改學(xué)生缺課記錄子模塊
開始int i=0;char chaxun_name[50];struct student *p;p=head;printf(”請(qǐng)輸入要查詢的人名:“);scanf(”%s“,chaxun_name);i
3.4查看單科曠課記錄子模塊
根據(jù)學(xué)科名稱和時(shí)間范圍查出所有在該范圍內(nèi)曠課的學(xué)生以及次數(shù),如下圖:
開始struct student *p1,*p2,*p3;char lesson[50];long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);p1=head;p2=p1->nextxunhuan_num
3.5查看學(xué)生曠課記錄子模塊
根據(jù)要查詢的學(xué)科名稱及時(shí)間段查出在改時(shí)間段內(nèi)該門課上曠課的人數(shù),如下圖:
開始int n,i,j,zhongjian;struct student *p1;char zhongjian_name[50];long look_time1,look_time2;printf(”請(qǐng)輸入第%d個(gè)學(xué)科名稱:“,i+1);scanf(”%s“,a[i].xueke_name);a[i].people_num=0;printf(”請(qǐng)輸入要查看的時(shí)間范圍由小到大“);scanf(”%ld%ld“,&look_time1,&look_time2);p1=head;i=0;Yi 3.6載入學(xué)生曠課記錄子模塊 可以載入實(shí)現(xiàn)儲(chǔ)存在當(dāng)前文件夾中txt文件中所儲(chǔ)存的數(shù)據(jù),如下圖: 開始struct student *p1=NULL,*p2=NULL,*head=NULL;struct student student_ziliao[100];int i=0,n=0;打開文件!feof(fp1)將文件里的數(shù)據(jù)存入結(jié)構(gòu)體數(shù)組通過結(jié)構(gòu)體數(shù)組建立鏈表結(jié)束 3.7儲(chǔ)存學(xué)生曠課記錄子???/p> 進(jìn)入系統(tǒng)界面,進(jìn)行數(shù)據(jù)的輸入,信息的保存調(diào)用相應(yīng)的函數(shù)打開相應(yīng)的地址,查詢各項(xiàng)信息。如下圖: 開始struct student *p1;p1=head;打開文件xueshengziliao.txtp1!=NULLN將數(shù)據(jù)寫入文件p1=p1->next;結(jié)束 Y 4.運(yùn)行測(cè)試與結(jié)果 4.1開始菜單 4.2主菜單 4.3創(chuàng)建學(xué)生缺課記錄庫(kù) 4.4修改學(xué)生缺課記錄 4.5查詢學(xué)生缺課記錄 4.6查看單科曠課記錄 4.7查看學(xué)生曠課記錄 4.8載入曠課記錄 4.9儲(chǔ)存曠課記錄 5.總結(jié) 在老師同學(xué)的細(xì)心幫助下,結(jié)合網(wǎng)上的參考資料,這次設(shè)計(jì)總算順利完成。通過本次設(shè)計(jì),讓我對(duì)C++基礎(chǔ)課程有了更加深刻的理解,在相關(guān)的能力上有了很大的提高,雖然在設(shè)計(jì)過程中遇到很大的困難,但是經(jīng)過不斷的修改和調(diào)試,在此過程中受益匪淺。 這次的程序設(shè)計(jì)相對(duì)于平時(shí)的訓(xùn)練還是有了進(jìn)步的。學(xué)生考勤管理系統(tǒng)要求至少要有四個(gè)類,在起初,對(duì)于定義哪四個(gè)類我是不清楚的,通過仔細(xì)的研讀問題描敘終于在腦海里確定了這四個(gè)類。既然是學(xué)生考勤管理系統(tǒng),那由學(xué)生缺課信息中的日期我想到了時(shí)間類,這是一個(gè)很簡(jiǎn)單的類。從系統(tǒng)的幾大功能我又想到了系統(tǒng)的基礎(chǔ)就是缺課學(xué)生的缺課信息,于是我又想到了一個(gè)信息類,還有兩個(gè)類是根據(jù)兩個(gè)統(tǒng)計(jì)功能想到的,在現(xiàn)在看來似乎有些不妥。通過這次的課程設(shè)計(jì)我明白了學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言必須要勤做實(shí)驗(yàn),通過實(shí)驗(yàn)總結(jié)經(jīng)驗(yàn)。 平時(shí)遇到的一些小問題一定要重視,越是基礎(chǔ)的知識(shí)越要理解透徹。比如指針與數(shù)組方面的知識(shí),一旦沒有弄清楚,在設(shè)計(jì)程序時(shí)就會(huì)吃虧。這次的課設(shè)中,我遇到了很多的問題,有的通過思考或查看書本解決了,有的還留在腦子里,只有通過孜孜不倦的求索我們才會(huì)有進(jìn)步,不懂得思考就不能真正的掌握一門知識(shí)。這次的實(shí)驗(yàn)給以了我警示,讓我明白我所掌握的知識(shí)還很欠缺,對(duì)于繼承與派生這一章的知識(shí),我以為自己勉強(qiáng)掌握了,這次實(shí)驗(yàn)后我發(fā)現(xiàn)我掌握得還不夠?;惖谋Wo(hù)成員公有繼承到派生類,類外是否可以通過對(duì)象來訪問呢,原先我認(rèn)為是可以的,經(jīng)過這次程序設(shè)計(jì),我知道我錯(cuò)了??傊?,我覺得做學(xué)問不應(yīng)該馬虎,對(duì)于所學(xué)一定要有深入的理解,這也是我這次課設(shè)得到的啟示。 參考文獻(xiàn): 劉銳宇.Visual C++從入門到精通.清華大學(xué)出版社 譚浩強(qiáng).C++語(yǔ)言程序設(shè)計(jì).清華大學(xué)出版社 設(shè)計(jì)源程序代碼: #include //stdio.h的內(nèi)容用C++頭文件的形式表示 #include #include //動(dòng)態(tài)內(nèi)存分配 #include #include //I/O流控制頭文件 #define NULL 0 #define guding 10 #define LEN sizeof(struct student) //定義了一個(gè)常數(shù)宏LEN,它的值等于結(jié)構(gòu)體student的所占內(nèi)存大小 using namespace std;int student_num;FILE *fp1; //定義指針類型文件 struct xueke { char xueke_name[50];int people_num;}; struct student { char name[50];long time;int lesson_time;char lesson_name[50];int chidao_num;int zaotui_num;int qingjia_num;int kuangke_num;struct student *next;};void chaxun(struct student *head){ int i;char chaxun_name[50];cout<<”請(qǐng)輸入要查詢的人名:“; cin>>chaxun_name;struct student *p; if(head==NULL) cout<<”聯(lián)系人為空“;p=head;for(i=0;i if(strcmp(chaxun_name,p->name)==0){ cout<<”缺課時(shí)間:“< time<<”學(xué)生姓名:“< name<<”課程名稱:“< lesson_name<<”節(jié)次:“< lesson_time< 早退次數(shù):“< zaotui_num<<”請(qǐng)假次數(shù):“< qingjia_num<<”曠課次數(shù):“< kuangke_num< p=p->next; //p的指針內(nèi)容變成了p->next } } struct student *xiugai(struct student *head){ char xiugai_name[50];char xiugai_xueke_name[50];int k;cout<<”請(qǐng)輸入要修改的學(xué)生姓名與學(xué)科名稱【格式:學(xué)生姓名(空格)學(xué)科名稱】:“;cin>>xiugai_name>>xiugai_xueke_name;struct student *p1,*p2; p2=(struct student *)malloc(LEN);p1=head;if(head==NULL){ cout<<”沒有學(xué)生信息n“; return head;} while((strcmp(xiugai_name,p1->name)!=0||strcmp(xiugai_xueke_name,p1->lesson_name)!=0)&&(p1->next!=NULL)) p1=p1->next; if(strcmp(xiugai_name,p1->name)==0&&strcmp(xiugai_xueke_name,p1->lesson_name)==0){ cout<<”===================================修改信息 =================================n“; cout<<” 1-修改缺課時(shí)間 n“; cout<<” 2-修改學(xué)生姓名 n“; cout<<” 3-修改課程名稱 n“; cout<<” 4-修改第幾節(jié)缺課 n“; cout<<” 5-修改遲到次數(shù)n“; cout<<” 6-修改早退次數(shù)n“; cout<<” 7-修改請(qǐng)假次數(shù)n“; cout<<” 8-修改曠課次數(shù)nn“; cout<<”==================================n“; cin>>k; switch(k) { case 1: cout<<”請(qǐng)輸入新的缺課時(shí)間:“; cin>>p1->time; break; case 2: cout<<”請(qǐng)輸入新的學(xué)生姓名:“; cin>>p1->name; break; case 3: cout<<”請(qǐng)輸入新的課程名稱:“; cin>>p1->lesson_name; break; case 4: cout<<”請(qǐng)輸入新的缺課節(jié)次:“; cin>>p1->lesson_time; break; case 5: cout<<”請(qǐng)輸入新的遲到次數(shù):“; cin>>p1->chidao_num; break; case 6: cout<<”請(qǐng)輸入新的早退次數(shù):“; cin>>p1->zaotui_num; break; case 7: cout<<”請(qǐng)輸入新的請(qǐng)假次數(shù):“; cin>>p1->qingjia_num; break; case 8: cout<<”請(qǐng)輸入新的曠課次數(shù):“; cin>>p1->kuangke_num; break; } } return head; } struct student *creat(){ int i,b; struct student *head,*p1,*p2; cout<<”請(qǐng)輸入要建立資料的學(xué)生人數(shù):“; cin>>b; head=p2=NULL; p1=(struct student *)malloc(LEN); cout<<”【輸入格式:缺課時(shí)間(空格)學(xué)生姓名(空格)課程名稱(空格)第幾節(jié)(空格)遲到次數(shù)(空格)早退次數(shù)(空格)請(qǐng)假次數(shù)(空格)曠課次數(shù)】n“; cout<<”請(qǐng)輸入第1名學(xué)生信息:“; cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1->chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1->kuangke_num; head=p1; p2=p1; student_num+=1; for(i=1;i { p1=(struct student*)malloc(LEN); cout<<”請(qǐng)輸入第“< cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1->chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1->kuangke_num; p2->next=p1; p2=p1; student_num+=1; } p2->next=NULL; return head;} void print(struct student *head){ struct student *p;p=head;if(p==NULL) cout<<”沒有學(xué)生信息n“;while(p!=NULL) { cout<<”缺課時(shí)間:“< time<<”學(xué)生姓名:“< lesson_name<<”節(jié)次:“< lesson_time< zaotui_num<<請(qǐng)假次數(shù):”< qingjia_num<<曠課次數(shù):“< kuangke_num< p=p->next;} } struct student *tongji_lesson(struct student *head){ struct student *p1,*p2,*p3;char lesson[50];long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);if(head==NULL){ cout<<”沒有學(xué)生信息“; return(head);} p1=head;p2=p1->next;while(xunhuan_num while(p2!=NULL) { if(p2->kuangke_num>p1->kuangke_num) { p3->chidao_num=p2->chidao_num; p3->kuangke_num=p2->kuangke_num; p3->qingjia_num=p2->qingjia_num; p3->zaotui_num=p2->zaotui_num; p3->lesson_time=p2->lesson_time; p3->time=p2->time; strcpy(p3->lesson_name,p2->lesson_name); strcpy(p3->name,p2->name); p2->chidao_num=p1->chidao_num; p2->kuangke_num=p1->kuangke_num; p2->qingjia_num=p1->qingjia_num; p2->zaotui_num=p1->zaotui_num; p2->lesson_time=p1->lesson_time; p2->time=p1->time; strcpy(p2->lesson_name,p1->lesson_name); strcpy(p2->name,p1->name); p1->chidao_num=p3->chidao_num; p1->kuangke_num=p3->kuangke_num; p1->qingjia_num=p3->qingjia_num; p1->zaotui_num=p3->zaotui_num; p1->lesson_time=p3->lesson_time; p1->time=p3->time; strcpy(p1->lesson_name,p3->lesson_name); strcpy(p1->name,p3->name); } p1=p2; p2=p2->next; } p1=head; p2=p1->next; xunhuan_num++;} cout<<”請(qǐng)輸入要查看的學(xué)科名稱:“;cin>>lesson;cout<<”請(qǐng)輸入要查看的時(shí)間范圍【輸入格式:時(shí)間(空格)時(shí)間】“;cin>>look_time1>>look_time2;p1=head; while(p1!=NULL){ if(strcmp(lesson,p1->lesson_name)==0&&look_time1<=p1->time&&p1->time<=look_time2) cout<<”學(xué)生姓名:“< name<<” 曠課次數(shù):“< kuangke_num< p1=p1->next;} return head;} struct student *tongji_student(struct student *head){ struct xueke a[10];int n,i,j,zhongjian;struct student *p1;char zhongjian_name[50];long look_time1,look_time2;if(head==NULL){ cout<<”沒有學(xué)生信息n“;return head; } cout<<”請(qǐng)輸入一共的學(xué)科數(shù):“;cin>>n;for(i=0;i cout<<”請(qǐng)輸入第“<>a[i].xueke_name;a[i].people_num=0; }