




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程設計說明書題目:學生信息管理系統(tǒng)學院:信息工程學院班級:軟件09-12011年1月21日XX大學課程設計(論文)任務書課程名稱:面向對象程序設計課程設計學院:信息工程學院班級:軟件09-1學生姓名:XXX___學號:0000指導教師:XXX一、題目學生信息管理系統(tǒng)二、目的與意義《面向對象程序設計課程設計》課程設計是計算機科學與技術專業(yè)實踐性環(huán)節(jié)之一,通過課程設計的綜合訓練可以使學生進一步理解和掌握面向對象程序設計課程的基本知識;掌握面向對象程序設計的思路和方法;基本具有利用面向對象的方法以及C++的編程思想來完成系統(tǒng)設計的能力。三、要求(包括原始數(shù)據(jù)、技術參數(shù)、設計要求、圖紙量、工作量要求等)要求利用面向對象的方法以及C++的編程思想來完成系統(tǒng)的設計;要求在設計的過程中,建立清晰的類層次;在系統(tǒng)中至少要定義一個類,類中要有各自的屬性和方法;在系統(tǒng)的設計中,至少要用到面向對象的一種機制。四、工作內容、進度安排根據(jù)課程設計的要求,確定設計題目;(0.5天)查找相關資料,進行應用程序總體結構、使用功能的設計;(0.5天)進行應用程序的界面設計和源程序代碼的編寫;(2.5天)設計說明書的撰寫、答辯(1.5天)五、主要參考文獻[1]《C++語言程序設計(第三版)》,鄭莉,清華大學出版社,2004[2]《C++程序設計教程》,錢能主編,清華大學出版社,1999.4[3]《C++程序設計課程設計》,劉振安,機械工業(yè)出版社,2004.8審核意見系(教研室)主任(簽字)指導教師下達時間2011年1月17日指導教師簽字:_______________目錄前言 1第一章系統(tǒng)概述 21.1功能簡介 21.2設計思路 2第二章系統(tǒng)功能的分析和設計 32.1初始錄入功能 32.2添加函數(shù) 32.3刪除函數(shù) 32.4修改函數(shù) 32.5查詢函數(shù) 42.5.1按學號查詢 42.5.2按姓名查詢 42.6顯示函數(shù) 42.7退出系統(tǒng) 4第三章調試及運行結果 53.1主菜單 53.2顯示功能 53.3增加功能 53.4刪除功能 63.5修改功能 63.6查詢功能 6第四章總結 84.1遇到的問題及解決方法 84.2收獲和體會 8前言學生信息管理系統(tǒng),是針對學校人事處的大量業(yè)務處理工作而開發(fā)的管理軟件,是典型的管理信息系統(tǒng)。 它是一個教育單位不可缺少的部分,它的內容對于學校管理者來說是至關重要的,能有效的幫助學校和老師掌握學生的情況。在傳統(tǒng)模式下利用人工進行學生信息管理,存在著較多的缺點,如:效率底,保密性差,時間一長將產生大量的文件和數(shù)據(jù),更不便于查找,更新,維護等。諸如這些情況,令學校管理者對學生的信息管理帶來了很大困難,嚴重影響了教育工作者的工作效率。隨著科學技術的不斷提高,使用日趨成熟的計算機技術來代替?zhèn)鹘y(tǒng)的人工模式,來實現(xiàn)學生信息的現(xiàn)代化管理,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對學生信息進行管理,具有著手工管理所無法比擬的優(yōu)點。例如:檢索迅速、查找方便、易修改、可靠性高、存儲量大、數(shù)據(jù)處理快捷、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學生信息管理的效率,也是學校實現(xiàn)科學化、正規(guī)化管理的重要條件。因此,開發(fā)這樣一套管理軟件成為很有必要的事情。第一章系統(tǒng)概述1.1功能簡介本軟件是一個簡單的學校學生信息管理系統(tǒng),軟件窗口為DOS頁面。學生信息管理系統(tǒng)的功能主要是實現(xiàn)學校學生的信息化管理。通過學生信息管理系統(tǒng),教學管理人員可以實現(xiàn)對學生信息的增加、刪除、修改和查詢等操作。本系統(tǒng)最大的優(yōu)點就是操作簡便快捷等。1.2設計思路將學生信息定義為一個student類,在類中包含私有數(shù)據(jù)成員intnum、stringname、stringsex、stringpolitic、stringaddress,分別表示學號、姓名、性別、政治面貌、家庭住址。公有成員函數(shù)包括set(),add(),del(),change(),research(),show(),分別用來實現(xiàn)對學生信息的數(shù)據(jù)初始錄入、增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)、顯示所有數(shù)據(jù)功能。然后定義了一個menu()菜單函數(shù),使功能菜單顯示在運行窗口以提示用戶如何進行操作。主函數(shù)是一個程序必不可少的,在主函數(shù)中,使用一個switch語句來選擇調用主菜單中的各個功能函數(shù)。第二章系統(tǒng)功能的分析和設計在本章中,主要是介紹各個功能函數(shù)的設計思路和實現(xiàn)方法。2.1初始錄入功能此函數(shù)實現(xiàn)的功能主要是,對學生信息的初始化錄入功能,在初始時,文件中沒有任何數(shù)據(jù),可以通過次函數(shù)輸入任意個學生的信息,在輸入時通過一個if條件語句來實現(xiàn)控制循環(huán),當輸入的姓名是“0”在此函數(shù)中使用文件處理的方式,先建立一個文件輸出流對象,以寫的方式打開f1.txt文件,使輸入的學生信息都寫入文件。2.2添加函數(shù)此函數(shù)實現(xiàn)的功能主要是,添加一個學生的信息,也就是說調用一次這個函數(shù)只能添加一個學生的信息。在此函數(shù)中也使用文件處理的方式,但使用的是以追加的方式打開文件,使輸入的學生信息寫在文件里原有信息的后面。2.3刪除函數(shù)此函數(shù)實現(xiàn)的功能主要是,刪除一個學生的信息。在此函數(shù)中,先以讀的方式打開文件,讀出文件里的信息在顯示在屏幕上,用戶再根據(jù)提示信息輸入想要刪除第幾個人的信息,關閉文件。再以寫的方式打開文件,以一個if條件語句控制,再重新將學生信息寫入文件(除了打算刪除的那個學生的信息),由于是以寫的方式打開的文件,所以文件里原有的輸入就都沒有了,存入的新的數(shù)據(jù)。2.4修改函數(shù)此函數(shù)實現(xiàn)的功能主要是,修改一個學生的信息。此函數(shù)的設計方法和刪除函數(shù)的設計思想相類似,應用的思想都是將學生信息重新寫入文件的方法,將原有數(shù)據(jù)覆蓋。2.5查詢函數(shù)在查詢功能中,可以按多條件查詢,本系統(tǒng)分為兩個查詢條件,即按學號查詢和按姓名查詢。使用if語句來選擇查詢條件。2.5.1按學號查詢根據(jù)提示信息輸入學號后,然后使用一個for循環(huán)語句,從第一個學生開始檢索,如果該學生的學號和輸入的學號相等,則輸出該學生的信息,由于學生的學號是唯一固定的,所以并使用break語句跳出循環(huán)。當無查詢結果時,會輸出一條提示信息“無此人信息!”。2.5.2按姓名查詢根據(jù)提示信息輸入姓名后,然后使用一個for循環(huán)語句,從第一個學生開始檢索,如果該學生的姓名和輸入的姓名一樣,則輸出該學生的信息,由于學生的姓名有可能重復出現(xiàn),所以不能使用break語句跳出循環(huán),應該從第一個學生開始檢索直到最后一名學生。當無查詢結果時,會輸出一條提示信息“無此人信息!”。2.6顯示函數(shù)此函數(shù)實現(xiàn)的功能主要是,顯示所有學生的信息。先是從文件中讀取學生信息,然后在輸出到顯示窗口中。用一個for循環(huán)語句,來把所有學生的信息都輸出。2.7退出系統(tǒng)當輸入“0”第三章調試及運行結果3.1主菜單主菜單顯示如下:圖3-1主菜單3.2顯示功能按6則顯示全部信息,如圖3-2:圖3-2顯示功能3.3增加功能進入主菜單后選擇2,進入增加功能,按要求輸入學生信息,增加數(shù)據(jù)前顯示如圖3-2:增加后顯示如圖3-3:圖3-3增加后3.4刪除功能進入主菜單后選擇3,進入刪除功能,按要求輸入要刪除的學生信息,刪除數(shù)據(jù)前顯示如圖3-3:刪除數(shù)據(jù)后顯示如圖3-4:圖3-4刪除后3.5修改功能進入主菜單后選擇4,進入修改功能,按要求輸入要修改的學生信息,修改數(shù)據(jù)前顯示如圖3-4:修改后如圖3-5:圖3-5修改后3.6查詢功能進入主菜單后選擇5,進入查詢功能,如圖3-6:圖3-6選擇查詢條件按學號查詢如圖3-7:按姓名查詢如圖3-8:圖3-7按學好查詢:圖3-8按姓名查詢第四章總結4.1遇到的問題及解決方法首先,是對文件的處理不夠熟練,通過看書和搜集一些資料解決了這個問題;其次,是在編寫程序的過程中出現(xiàn)了一些語法錯誤,后通過調試逐一解決。4.2收獲和體會此次c++面向對象課程設計,在指導教師的精心教導下,我們學會了如何用C++編寫一個簡單的應用程序。首先要對程序的設計要求有一個比較明確的認識,然后系統(tǒng)分析與系統(tǒng)設計,最后是代碼設計與調試。程序實現(xiàn)上,設計了簡單的菜單界面,將各個功能集中出現(xiàn)在主菜單中,便于調用。根據(jù)C++課程所學的概念、理論和方法,按照C++程序設計的基本步驟,設計出一個適當規(guī)模的程序;進一步加深對C++語言的理解和掌握。理論聯(lián)系實際,加深和鞏固所學的理論知識,提高實踐能力和計算機的綜合運用能力。我們編寫程序的過程是辛苦與快樂的,程序的編寫原則很重要,只要我們在編程,就必須不斷改進,才能更好提高編程能力。參考文獻[1]《C++語言程序設計(第三版)》,鄭莉,清華大學出版社,2004[2]《C++語言程序設計案例教程》,鄭莉,清華大學出版社,2005[3]《C++程序設計教程》,錢能主編,清華大學出版社,1999.4[4]《C++程序設計》,譚浩強,清華大學出版社,2004[5]《C++程序設計實踐指導》,譚浩強,清華大學出版社,2005[6]《C++程序設計課程設計》,劉振安,機械工業(yè)出版社,2004.8附錄:程序代碼#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;#defineM200//可以存信息總量intN=0;//學生總量classstudent{public: student(); voidset();//初始化信息,第一次對信息的錄入 voidadd();//添加學生信息 voiddel();//刪除某學生信息 voidchange();//修改某學生信息voidsearch();//查詢某學生信息 voiddisplay();//顯示全部學生信息private: staticintnum; stringname,sex,politic,address;};intstudent::num=110;student::student(){}voidstudent::set(){ inti; stringsetname,setsex,setpolitic,setaddress; ofstreamoutfile; outfile.open("f1.txt",ios::out);//打開文件 if(!outfile) { cerr<<"openerror"<<endl; exit(1); }//依次錄入相應個數(shù)的學生信息 for(i=0;i<M;i++) { cout<<"當姓名輸入為'0'時,停止輸入?。?!"<<endl; cout<<"請輸入姓名:"<<endl; cin>>setname; name=setname; if(setname=="0")break; if(setname!="0") { N++; num++;outfile<<num<<""; outfile<<setname<<""; cout<<"請輸入性別:"<<endl; cin>>setsex; sex=setsex; outfile<<setsex<<""; cout<<"請輸入政治面貌:"<<endl;cin>>setpolitic; politic=setpolitic; outfile<<setpolitic<<""; cout<<"請輸入家庭住址:"<<endl; cin>>setaddress; address=setaddress; outfile<<setaddress<<endl; } } outfile.close();//關閉文件}voidstudent::add(){ stringaddname,addsex,addpolitic,addaddress; //以追加的方式錄入信息,直接將信息追加到以前文件的末尾 ofstreamoutfile("f1.txt",ios::app); if(!outfile) { cerr<<"openerror"<<endl; exit(1); } N=N+1;//依次輸入相應的數(shù)據(jù),并且追加到之前的文件中去 cout<<"請輸入您要添加的數(shù)據(jù)"<<endl;num++;outfile<<num<<""; cout<<"請輸入姓名:"<<endl; cin>>addname; outfile<<addname<<""; cout<<"請輸入性別:"<<endl; cin>>addsex; outfile<<addsex<<""; cout<<"請輸入政治面貌:"<<endl; cin>>addpolitic; outfile<<addpolitic<<""; cout<<"請輸入家庭住址:"<<endl; cin>>addaddress; outfile<<addaddress<<endl; outfile.close(); cout<<"已添加成功!"<<endl;}voidstudent::del(){ intk,i; intnum[M]; stringname[M],sex[M],politic[M],address[M]; ifstreaminfile("f1.txt",ios::in); if(!infile) { cerr<<"openerror"<<endl; exit(1); } for(i=0;i<N;i++) { cout<<""; infile>>num[i]; cout<<setw(9)<<num[i]; infile>>name[i]; cout<<setw(9)<<name[i]; infile>>sex[i]; cout<<setw(9)<<sex[i]; infile>>politic[i]; cout<<setw(9)<<politic[i]; infile>>address[i]; cout<<setw(9)<<address[i]<<endl; } cout<<"你想刪除第幾個?"<<endl; cin>>k; k=k-1; infile.close(); ofstreamoutfile("f1.txt",ios::out); if(!outfile) { cerr<<"openerror"<<endl; exit(1);//退出程序 }//將數(shù)組存取的信息輸出到文件中去 for(i=0;i<N;i++) { if(i!=k) { outfile<<num[i]<<""; outfile<<name[i]<<""; outfile<<sex[i]<<""; outfile<<politic[i]<<""; outfile<<address[i]<<""<<endl; } } outfile.close(); N=N-1; cout<<"已刪除成功!"<<endl;}voidstudent::change(){ inti,k; intnum[M]; stringname[M],sex[M],politic[M],address[M]; ifstreaminfile("f1.txt",ios::in); if(!infile) { cerr<<"openerror"<<endl; exit(1); } for(i=0;i<N;i++) { cout<<""; infile>>num[i]; cout<<setw(9)<<num[i]; infile>>name[i]; cout<<setw(9)<<name[i]; infile>>sex[i]; cout<<setw(9)<<sex[i]; infile>>politic[i]; cout<<setw(9)<<politic[i]; infile>>address[i]; cout<<setw(9)<<address[i]<<endl; } infile.close(); ofstreamoutfile("f1.txt",ios::out); if(!outfile) { cerr<<"openerror"<<endl; exit(1); } cout<<"你想修改第幾個數(shù)據(jù)?"<<endl; cin>>k; k=k-1; cout<<"請輸入新的數(shù)據(jù):"<<endl; cout<<"請輸入姓名:"<<endl; cin>>name[k]; cout<<"請輸入性別:"<<endl; cin>>sex[k]; cout<<"請輸入政治面貌:"<<endl; cin>>politic[k]; cout<<"請輸入家庭住址:"<<endl; cin>>address[k]; for(i=0;i<N;i++) {outfile<<num[i]<<""; outfile<<name[i]<<""; outfile<<sex[i]<<""; outfile<<politic[i]<<""; outfile<<address[i]<<""<<endl; } outfile.close(); cout<<"已修改成功!"<<endl;}voidstudent::search(){ inti,n,w=0,num[M],a[M];charch; stringsearchname,name[M],sex[M],politic[M],address[M],b[M][4];cout<<"a.按學號查找b.按姓名查找"<<endl; ifstreaminfile("f1.txt",ios::in); if(!infile) { cerr<<"openerror"<<endl; exit(1); } for(i=0;i<N;i++) { infile>>num[i];a[i]=num[i]; infile>>name[i];b[i][0]=name[i]; infile>>sex[i];b[i][1]=sex[i]; infile>>politic[i];b[i][2]=politic[i]; infile>>address[i];b[i][3]=address[i]; } cout<<"請輸入a或者b!"<<endl; cin>>ch;if(ch=='a') { cout<<"請輸入學號!"<<endl; cin>>n; for(i=0;i<N;i++) if(a[i]==n) { w=1; cout<<"學號姓名性別政治面貌家庭住址"<<endl; cout<<""; cout<<setw(9)<<a[i]; cout<<setw(9)<<b[i][0]; cout<<setw(9)<<b[i][1]; cout<<setw(9)<<b[i][2]; cout<<setw(9)<<b[i][3]<<endl; } if(w==0) cout<<"無此人信息!"<<endl; } elseif(ch=='b') { cout<<"請輸入姓名!"<<endl; cin>>searchname; for(i=0;i<N;i++) if(name[i]==searchname) { w=1; cout<<"學號姓名性別政治面貌家庭住址"<<endl; cout<<""; cout<<setw(9)<<a[i]; cout<<setw(9)<<b[i][0]; cout<<setw(9)<<b[i][1]; cout<<setw(9)<<b[i][2]; cout<<setw(9)<<b[i][3]<<endl; } if(w==0) cout<<"無此人信息!"<<endl; } elsecout<<"沒有此選項!"<<endl;}voidstu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年冬季日語考試試題及答案
- 湖畔大學課件
- 視頻委托制作合同
- 2025年金融市場行業(yè)金融體系改革與風險防范研究報告
- 2025年數(shù)字化營銷行業(yè)發(fā)展策略與趨勢研究報告
- 2025年數(shù)字化營銷行業(yè)發(fā)展路徑及趨勢研究報告
- 2025年數(shù)字貨幣行業(yè)加密數(shù)字貨幣投資趨勢研究報告
- 2025年區(qū)塊鏈技術在金融業(yè)的應用市場報告
- 2025年時尚產業(yè)數(shù)字化趨勢與可持續(xù)發(fā)展研究報告
- 2025年人工智能客戶服務行業(yè)技術創(chuàng)新與市場應用案例研究報告
- 2025年“10.13建隊日”分批入隊活動總結:強國復興有我爭當新時代好少年
- 2024年服裝時裝項目資金籌措計劃書代可行性研究報告
- 施工三方協(xié)議7篇
- 2025年數(shù)字娛樂行業(yè)數(shù)字化娛樂內容與虛擬現(xiàn)實體驗研究報告
- 法學專業(yè)考試題型及答案
- 2.1流水地貌課件高中地理湘教版必修一
- 外科學考試大綱
- 使用吹風機勞動課件
- 2024版2025秋貴州黔教版綜合實踐活動二年級上冊全冊教案教學設計
- 3D打印簡介課件
- 2025年貴州省貴陽市輔警考試題庫(附答案)
評論
0/150
提交評論