C++面向?qū)ο笳n程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第1頁(yè)
C++面向?qū)ο笳n程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第2頁(yè)
C++面向?qū)ο笳n程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第3頁(yè)
C++面向?qū)ο笳n程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第4頁(yè)
C++面向?qū)ο笳n程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、面向?qū)ο笳n程設(shè)計(jì)目錄摘要1前言1第一章 系統(tǒng)概述2 1.1 系統(tǒng)需求2 1.2 功能簡(jiǎn)介2 1.3 設(shè)計(jì)思路2第二章 系統(tǒng)功能的分析和設(shè)計(jì)22.1 初始錄入功能32.2 添加函數(shù)32.3 刪除函數(shù)32.4 修改函數(shù)32.5 查詢函數(shù)42.5.1 按學(xué)號(hào)查詢42.5.2 按姓名查詢42.6 顯示函數(shù)42.7 退出系統(tǒng)4第三章 調(diào)試及運(yùn)行結(jié)果53.1 主菜單53.2 顯示功能53.3 增加功能63.4 刪除功能73.5 修改功能73.6 查詢功能8第四章 總結(jié)84.1 遇到的問(wèn)題及解決方法84.2 收獲和體會(huì)9主要參考文獻(xiàn)10附錄: 源代碼11摘要本文主要介紹了學(xué)生信息管理系統(tǒng)程序的設(shè)計(jì)與實(shí)現(xiàn),該

2、程序具有添加函數(shù)、刪除函數(shù)、修改函數(shù)、查詢函數(shù)、顯示函數(shù)等功能。實(shí)際設(shè)計(jì)過(guò)程中,通過(guò)對(duì)類的使用,加深我們面向?qū)ο缶幊趟枷?,有助于以后的學(xué)習(xí)。在課程設(shè)計(jì)中,程序設(shè)計(jì)語(yǔ)言采用visual c+,程序運(yùn)行平臺(tái)為windows 7。采用鏈表的結(jié)構(gòu)對(duì)學(xué)生信息的結(jié)點(diǎn)進(jìn)行增添、刪除、查找等功能。程序通過(guò)調(diào)試運(yùn)行,實(shí)現(xiàn)了最初的設(shè)計(jì)目標(biāo),并且經(jīng)過(guò)適當(dāng)?shù)耐晟坪?,在?shí)際中可以解決更多的問(wèn)題。 關(guān)鍵詞:學(xué)生信息管理系統(tǒng)、信息的增刪查、c+前言學(xué)生信息管理系統(tǒng),是針對(duì)學(xué)校人事處的大量業(yè)務(wù)處理工作而開(kāi)發(fā)的管理軟件,是典型的管理信息系統(tǒng)。它是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校管理者來(lái)說(shuō)是至關(guān)重要的,能有效的幫助學(xué)

3、校和老師掌握學(xué)生的情況。在傳統(tǒng)模式下利用人工進(jìn)行學(xué)生信息管理,存在著較多的缺點(diǎn),如:效率底,保密性差,時(shí)間一長(zhǎng)將產(chǎn)生大量的文件和數(shù)據(jù),更不便于查找,更新,維護(hù)等。諸如這些情況,令學(xué)校管理者對(duì)學(xué)生的信息管理帶來(lái)了很大困難,嚴(yán)重影響了教育工作者的工作效率。隨著科學(xué)技術(shù)的不斷提高,使用日趨成熟的計(jì)算機(jī)技術(shù)來(lái)代替?zhèn)鹘y(tǒng)的人工模式,來(lái)實(shí)現(xiàn)學(xué)生信息的現(xiàn)代化管理,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生信息進(jìn)行管理,具有著手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、易修改、可靠性高、存儲(chǔ)量大、數(shù)據(jù)處理快捷、保密性好、壽命

4、長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生信息管理的效率,也是學(xué)校實(shí)現(xiàn)科學(xué)化、正規(guī)化管理的重要條件。因此,開(kāi)發(fā)這樣一套管理軟件成為很有必要的事情。 第1章 系統(tǒng)概述1.1系統(tǒng)需求 該設(shè)計(jì)要求學(xué)生以學(xué)校學(xué)生信息管理業(yè)務(wù)為背景,設(shè)計(jì)、開(kāi)發(fā)一套“學(xué)生信息管理系統(tǒng)”軟件。通過(guò)該題目的設(shè)計(jì),培養(yǎng)學(xué)生面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,要求學(xué)生達(dá)到熟練掌握c+(或java)語(yǔ)言的基本知識(shí)和技能,基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法,能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問(wèn)題。同時(shí)強(qiáng)調(diào)好的程序設(shè)計(jì)風(fēng)格,提高解決實(shí)際問(wèn)題的能力。1.2 功能簡(jiǎn)介本軟件是一個(gè)簡(jiǎn)單的學(xué)校學(xué)生信息管理系統(tǒng),軟件窗口為dos頁(yè)

5、面。學(xué)生信息管理系統(tǒng)的功能主要是實(shí)現(xiàn)學(xué)校學(xué)生的信息化管理。通過(guò)學(xué)生信息管理系統(tǒng),教學(xué)管理人員可以實(shí)現(xiàn)對(duì)學(xué)生信息的增加、刪除、修改和查詢等操作。本系統(tǒng)最大的優(yōu)點(diǎn)就是操作簡(jiǎn)便快捷等。1.3 設(shè)計(jì)思路將學(xué)生信息定義為一個(gè)student類,在類中包含私有數(shù)據(jù)成員int num、string name、string sex、string politic、string address,分別表示學(xué)號(hào)、姓名、性別、政治面貌、家庭住址。公有成員函數(shù)包括set( ) ,add( ) ,del( ) ,change( ) ,research( ) ,show( ) ,分別用來(lái)實(shí)現(xiàn)對(duì)學(xué)生信息的數(shù)據(jù)初始錄入、增加數(shù)據(jù)、

6、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)、顯示所有數(shù)據(jù)功能。然后定義了一個(gè)menu( ) 菜單函數(shù),使功能菜單顯示在運(yùn)行窗口以提示用戶如何進(jìn)行操作。主函數(shù)是一個(gè)程序必不可少的,在主函數(shù)中,使用一個(gè)switch語(yǔ)句來(lái)選擇調(diào)用主菜單中的各個(gè)功能函數(shù)。第二章 系統(tǒng)功能的分析和設(shè)計(jì)在本章中,主要是介紹各個(gè)功能函數(shù)的設(shè)計(jì)思路和實(shí)現(xiàn)方法。2.1 初始錄入功能此函數(shù)實(shí)現(xiàn)的功能主要是,對(duì)學(xué)生信息的初始化錄入功能,在初始時(shí),文件中沒(méi)有任何數(shù)據(jù),可以通過(guò)次函數(shù)輸入任意個(gè)學(xué)生的信息,在輸入時(shí)通過(guò)一個(gè)if條件語(yǔ)句來(lái)實(shí)現(xiàn)控制循環(huán),當(dāng)輸入的姓名是“0”時(shí),使用break語(yǔ)句就跳出循環(huán),即停止輸入學(xué)生信息。在此函數(shù)中使用文件處理的方式

7、,先建立一個(gè)文件輸出流對(duì)象,以寫(xiě)的方式打開(kāi)f1.txt文件,使輸入的學(xué)生信息都寫(xiě)入文件。2.2 添加函數(shù) 此函數(shù)實(shí)現(xiàn)的功能主要是,添加一個(gè)學(xué)生的信息,也就是說(shuō)調(diào)用一次這個(gè)函數(shù)只能添加一個(gè)學(xué)生的信息。在此函數(shù)中也使用文件處理的方式,但使用的是以追加的方式打開(kāi)文件,使輸入的學(xué)生信息寫(xiě)在文件里原有信息的后面。2.3 刪除函數(shù) 此函數(shù)實(shí)現(xiàn)的功能主要是,刪除一個(gè)學(xué)生的信息。在此函數(shù)中,先以讀的方式打開(kāi)文件,讀出文件里的信息在顯示在屏幕上,用戶再根據(jù)提示信息輸入想要?jiǎng)h除第幾個(gè)人的信息,關(guān)閉文件。再以寫(xiě)的方式打開(kāi)文件,以一個(gè)if條件語(yǔ)句控制,再重新將學(xué)生信息寫(xiě)入文件(除了打算刪除的那個(gè)學(xué)生的信息),由于是以

8、寫(xiě)的方式打開(kāi)的文件,所以文件里原有的輸入就都沒(méi)有了,存入的新的數(shù)據(jù)。2.4 修改函數(shù) 此函數(shù)實(shí)現(xiàn)的功能主要是,修改一個(gè)學(xué)生的信息。此函數(shù)的設(shè)計(jì)方法和刪除函數(shù)的設(shè)計(jì)思想相類似,應(yīng)用的思想都是將學(xué)生信息重新寫(xiě)入文件的方法,將原有數(shù)據(jù)覆蓋。2.5 查詢函數(shù) 在查詢功能中,可以按多條件查詢,本系統(tǒng)分為兩個(gè)查詢條件,即按學(xué)號(hào)查詢和按姓名查詢。使用if語(yǔ)句來(lái)選擇查詢條件。 2.5.1 按學(xué)號(hào)查詢 根據(jù)提示信息輸入學(xué)號(hào)后,然后使用一個(gè)for循環(huán)語(yǔ)句,從第一個(gè)學(xué)生開(kāi)始檢索,如果該學(xué)生的學(xué)號(hào)和輸入的學(xué)號(hào)相等,則輸出該學(xué)生的信息,由于學(xué)生的學(xué)號(hào)是唯一固定的,所以并使用break語(yǔ)句跳出循環(huán)。 當(dāng)無(wú)查詢結(jié)果時(shí),會(huì)輸

9、出一條提示信息“無(wú)此人信息!” 。 2.5.2 按姓名查詢 根據(jù)提示信息輸入姓名后,然后使用一個(gè)for循環(huán)語(yǔ)句,從第一個(gè)學(xué)生開(kāi)始檢索,如果該學(xué)生的姓名和輸入的姓名一樣,則輸出該學(xué)生的信息,由于學(xué)生的姓名有可能重復(fù)出現(xiàn),所以不能使用break語(yǔ)句跳出循環(huán),應(yīng)該從第一個(gè)學(xué)生開(kāi)始檢索直到最后一名學(xué)生。 當(dāng)無(wú)查詢結(jié)果時(shí),會(huì)輸出一條提示信息“無(wú)此人信息!” 。2.6 顯示函數(shù) 此函數(shù)實(shí)現(xiàn)的功能主要是,顯示所有學(xué)生的信息。先是從文件中讀取學(xué)生信息,然后在輸出到顯示窗口中。用一個(gè)for循環(huán)語(yǔ)句,來(lái)把所有學(xué)生的信息都輸出。2.7 退出系統(tǒng) 當(dāng)輸入“0”時(shí),就能退出系統(tǒng),這是通過(guò)while語(yǔ)句來(lái)控制實(shí)現(xiàn)的。第3

10、章 調(diào)試及運(yùn)行結(jié)果3.1 主菜單主菜單顯示如下: 圖3-1 主菜單3.2 顯示功能按6則顯示全部信息,如圖3-2:圖3-2 顯示功能3.3 增加功能進(jìn)入主菜單后選擇2,進(jìn)入增加功能,按要求輸入學(xué)生信息,增加數(shù)據(jù)前顯示如圖3-2:增加后顯示如圖3-3: 圖3-3 增加后3.4 刪除功能進(jìn)入主菜單后選擇3,進(jìn)入刪除功能,按要求輸入要?jiǎng)h除的學(xué)生信息,刪除數(shù)據(jù)前顯示如圖3-3:刪除數(shù)據(jù)后顯示如圖3-4: 圖3-4 刪除后3.5 修改功能進(jìn)入主菜單后選擇4,進(jìn)入修改功能,按要求輸入要修改的學(xué)生信息,修改數(shù)據(jù)前顯示如圖3-4:修改后如圖3-5: 圖3-5 修改后3.6 查詢功能進(jìn)入主菜單后選擇5,進(jìn)入查詢

11、功能,如圖3-6:圖3-6選擇查詢條件按學(xué)號(hào)查詢?nèi)鐖D3-7:按姓名查詢?nèi)鐖D3-8: 圖3-7 按學(xué)好查詢:圖3-8按姓名查詢第四章 總結(jié)4.1 遇到的問(wèn)題及解決方法 首先,是對(duì)文件的處理不夠熟練,通過(guò)看書(shū)和搜集一些資料解決了這個(gè)問(wèn)題;其次,是在編寫(xiě)程序的過(guò)程中出現(xiàn)了一些語(yǔ)法錯(cuò)誤,后通過(guò)調(diào)試逐一解決。4.2 收獲和體會(huì)此次c+面向?qū)ο笳n程設(shè)計(jì),在指導(dǎo)教師的精心教導(dǎo)下,我們學(xué)會(huì)了如何用c+編寫(xiě)一個(gè)簡(jiǎn)單的應(yīng)用程序。首先要對(duì)程序的設(shè)計(jì)要求有一個(gè)比較明確的認(rèn)識(shí),然后系統(tǒng)分析與系統(tǒng)設(shè)計(jì),最后是代碼設(shè)計(jì)與調(diào)試。程序?qū)崿F(xiàn)上,設(shè)計(jì)了簡(jiǎn)單的菜單界面,將各個(gè)功能集中出現(xiàn)在主菜單中,便于調(diào)用。根據(jù)c+課程所學(xué)的概念、

12、理論和方法,按照c+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序;進(jìn)一步加深對(duì)c+語(yǔ)言的理解和掌握。理論聯(lián)系實(shí)際,加深和鞏固所學(xué)的理論知識(shí),提高實(shí)踐能力和計(jì)算機(jī)的綜合運(yùn)用能力。我們編寫(xiě)程序的過(guò)程是辛苦與快樂(lè)的,程序的編寫(xiě)原則很重要,只要我們?cè)诰幊?,就必須不斷改進(jìn),才能更好提高編程能力。參考文獻(xiàn)1 c+語(yǔ)言程序設(shè)計(jì)(第三版),鄭莉,清華大學(xué)出版社,2004 2c+語(yǔ)言程序設(shè)計(jì)案例教程,鄭莉,清華大學(xué)出版社,20053c+程序設(shè)計(jì)教程,錢(qián)能主編,清華大學(xué)出版社,1999.4 4c+程序設(shè)計(jì),譚浩強(qiáng),清華大學(xué)出版社,20045c+程序設(shè)計(jì)實(shí)踐指導(dǎo),譚浩強(qiáng),清華大學(xué)出版社,20056c+程序設(shè)計(jì)課程設(shè)

13、計(jì),劉振安,機(jī)械工業(yè)出版社,2004.8 附錄:程序代碼#include#include#include#includeusing namespace std;#define m 200 /可以存信息總量int n=0; /學(xué)生總量class studentpublic:student();void set(); /初始化信息,第一次對(duì)信息的錄入void add(); /添加學(xué)生信息void del(); /刪除某學(xué)生信息void change(); /修改某學(xué)生信息 void search(); /查詢某學(xué)生信息void display(); /顯示全部學(xué)生信息private:static

14、int num,age;long tel; string name,sex,politic,address;int student:num;student:student() void student:set()int i;int setnum,setage;long settel; string setname,setsex,setpolitic,setaddress;ofstream outfile;outfile.open(e:/f1.txt,ios:out); /-打開(kāi)文件-if(!outfile)cerr open errorendl; exit(1);/-依次錄入相應(yīng)個(gè)數(shù)的學(xué)生信息

15、-for(i=0;im;i+)cout當(dāng)姓名輸入為0時(shí),停止輸入!endl;cout請(qǐng)輸入姓名:setname; name=setname;if(setname=0) break;if(setname!=0)n+;num+; outfilenum ; cout請(qǐng)輸入學(xué)號(hào):setnum; sex=setnum; outfilesetname ; cout請(qǐng)輸入年齡:setage; sex=setage; outfilesetsex ; cout請(qǐng)輸入性別:setsex; sex=setsex; outfilesetsex ; cout請(qǐng)輸入政治面貌:setpolitic; politic=set

16、politic; outfilesetpolitic ; cout請(qǐng)輸入電話號(hào)碼:settel; politic=settel; outfilesettel ; cout請(qǐng)輸入家庭住址:setaddress; address=setaddress; outfilesetaddressendl;coutendl;outfile.close(); /-關(guān)閉文件-void student:add() int addnum,addage; long addtel; string addname,addsex,addpolitic,addaddress;/-以追加的方式錄入信息,直接將信息追加到以前文件

17、的末尾-ofstream outfile(e:/f1.txt,ios:app);if(!outfile) cerr open errorendl; exit(1); n=n+1;/-依次輸入相應(yīng)的數(shù)據(jù),并且追加到之前的文件中去-cout請(qǐng)輸入您要添加的數(shù)據(jù)endl; num+; cout請(qǐng)輸入學(xué)號(hào):addnum; outfilenum ;cout請(qǐng)輸入姓名:addname;outfileaddname ; outfileaddage ;cout請(qǐng)輸入年齡:addage;cout請(qǐng)輸入性別:addsex;outfileaddsex ;cout請(qǐng)輸入政治面貌:addpolitic;outfilea

18、ddpolitic ;outfileaddsex ;cout請(qǐng)輸入電話號(hào)碼:addtel;outfileaddtel ;cout請(qǐng)輸入家庭住址:addaddress;outfileaddaddressendl;outfile.close();cout已添加成功!endl;void student:del()int k,i;int numm,agem ;long telm;string namem,sexm,politicm,addressm;ifstream infile(f1.txt,ios:in);if(!infile)cerr open errorendl;exit(1);for(i=0

19、;in;i+)coutnumi;coutsetw(9)namei;coutsetw(9)agei;coutsetw(9)sexi;coutsetw(9)politici;coutsetw(9)teli;coutsetw(9)addressi;coutsetw(9)addressiendl;cout你想刪除第幾個(gè)?k;k=k-1;infile.close();ofstream outfile(e:/f1.txt,ios:out);if(!outfile)cerr open errorendl; exit(1); /退出程序/-將數(shù)組存取的信息輸出到文件中去-for(i=0;in;i+)if(i!

20、=k)outfilenumi ;outfilenamei ;outfileagei ;outfilesexi ;outfilepolitici ;outfileteli ;outfileaddressi endl;outfile.close();n=n-1;cout已刪除成功!endl;void student:change()int i,k;int numm,agem;long telm;string namem,sexm,politicm,addressm;ifstream infile(e:/f1.txt,ios:in); if(!infile)cerr open errorendl;e

21、xit(1);for(i=0;in;i+)coutnumi;coutsetw(9)namei;coutsetw(9)agei;coutsetw(9)sexi;coutsetw(9)politici;coutsetw(9)teli;coutsetw(9)addressi;coutsetw(9)addressiendl;infile.close();ofstream outfile(e:/f1.txt,ios:out);if(!outfile) cerr open errorendl; exit(1); cout你想修改第幾個(gè)數(shù)據(jù)?k;k=k-1;cout請(qǐng)輸入新的數(shù)據(jù):endl;cout請(qǐng)輸入學(xué)

22、號(hào):numk;cout請(qǐng)輸入姓名:namek;cout請(qǐng)輸入年齡:agek;cout請(qǐng)輸入性別:sexk;cout請(qǐng)輸入政治面貌:politick;cout請(qǐng)輸入電話號(hào)碼:telk;cout請(qǐng)輸入家庭住址:addressk;for(i=0;in;i+) outfilenumi ;outfilenamei ;outfileagei ;outfilesexi ;outfilepolitici ;outfileteli ;outfileaddressi endl;outfile.close();cout已修改成功!endl;void student:search()int i,n,w=0,numm,

23、am,agem;char ch;long telm ;string searchname,namem,sexm,politicm,addressm,bm4; couta.按學(xué)號(hào)查找 b.按姓名查找endl;ifstream infile(e:/f1.txt,ios:in); if(!infile)cerr open errorendl;exit(1);for(i=0;inumi;ai=numi;infilenamei;bi0=namei;infileagei;bi1=agei;infilesexi;bi2=sexi;infilepolitici;bi3=politici;infileteli;

24、bi4=teli;infileaddressi;bi5=addressi;cout請(qǐng)輸入a或者b!ch; if(ch=a)cout請(qǐng)輸入學(xué)號(hào)!n;for(i=0;in;i+)if(ai=n)w=1;cout 學(xué)號(hào) 姓名 年齡 性別 政治面貌 電話號(hào)碼 家庭住址endl;cout ;coutsetw(9)ai; coutsetw(9)bi0; coutsetw(9)bi1; coutsetw(9)bi2; coutsetw(9)bi3; coutsetw(9)bi4; coutsetw(9)bi5endl;if(w=0) cout無(wú)此人信息!endl;else if(ch=b)cout請(qǐng)輸入姓名!searchname;for(i=0;in;i+)if(namei=searchname)w=1;cout 學(xué)號(hào) 姓名 年齡 性別 政治面貌 電話號(hào)碼 家庭住址endl;cout ;coutsetw(9)ai; coutsetw(9)bi0; coutsetw(9)bi1; coutsetw(9)bi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論