《C++程序設(shè)計》課程設(shè)計報告
《《C++程序設(shè)計》課程設(shè)計報告》由會員分享,可在線閱讀,更多相關(guān)《《C++程序設(shè)計》課程設(shè)計報告(30頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 《C++程序設(shè)計》課程設(shè)計報告 題 目: 學(xué)生學(xué)籍管理系統(tǒng) 學(xué) 院:計算機(jī)科學(xué)與工程學(xué)院 專 業(yè):計算機(jī)科學(xué)與技術(shù) 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 2012年 06 月 20 日 目 錄 10.學(xué)生學(xué)籍管理系統(tǒng) II 1.前言 1 2.需求分析 1 3.概要設(shè)計 1 4.詳細(xì)設(shè)計 1 5.測試 1 6.總結(jié) 2 附錄 2 1. 前言
2、 題目:學(xué)生學(xué)籍信息管理系統(tǒng) 1 前言 21世紀(jì)隨著計算機(jī)技術(shù)的不斷成熟,帶來了信息技術(shù)的高速發(fā)展。信息技術(shù)的發(fā)展極大地推動了整個社會信息化的進(jìn)程。在日益龐大的信息管理領(lǐng)域,信息管理自動化直接地改變了傳統(tǒng)的文檔管理方式,極大地提高了工作效率和管理水平。 2. 需求分析 鑒于高等院校在校學(xué)生、教職員工、日常事務(wù)處理信息數(shù)據(jù)的繁多,學(xué)校信息管理部門通常感到無法高效的進(jìn)行管理。就高等院校學(xué)生學(xué)籍管理這一方面,由于院校學(xué)生人數(shù)眾多,專業(yè)不同,學(xué)校所安排的教學(xué)計劃也就因人而異。這對于管理學(xué)生學(xué)籍信息的教務(wù)老師來說,無疑是一項龐大和復(fù)雜的工作。不僅要考慮學(xué)校對某一專業(yè)整體的教學(xué)計劃安
3、排,也要對各專業(yè)相關(guān)老師的教學(xué)任務(wù)進(jìn)行統(tǒng)一協(xié)調(diào),還要考慮某些學(xué)生的特別學(xué)籍變化。為解決學(xué)校上述的學(xué)生學(xué)籍管理難題,提高教務(wù)老師的信息管理效率,以及為了方便學(xué)生更好、更便捷的查看自己的學(xué)籍信息;讓老師的教學(xué)工作更加順利和對教學(xué)信息的及時掌握。本系統(tǒng)特參照一般高等院校對在校學(xué)生課程選修的數(shù)據(jù)庫管理辦法,結(jié)合實踐,設(shè)計出學(xué)生,教師和管理員三大功能模塊,根據(jù)賦予系統(tǒng)權(quán)限不同,分別對系統(tǒng)進(jìn)行相關(guān)操作,方便了學(xué)生、教師對學(xué)籍信息的查看,同時,也大大減少了管理員的信息管理工作量,提高了系統(tǒng)效率。 3 概要設(shè)計 1)、通過對高等院校管理學(xué)生學(xué)籍的管理模式和步驟流程,設(shè)計出系統(tǒng)的總體結(jié)構(gòu)和各主要功能模塊。
4、 2)、了解面向?qū)ο笳Z言的編程風(fēng)格,以及數(shù)據(jù)庫對數(shù)據(jù)信息處理的特點,確定好系統(tǒng)的設(shè)計語言和數(shù)據(jù)庫平臺。 3)、及時與學(xué)校管理信息老師和課程設(shè)計指導(dǎo)老師溝通,進(jìn)一步熟悉學(xué)生學(xué)籍信息管理系統(tǒng)的數(shù)據(jù)流程、數(shù)據(jù)處理以及操作步驟。提出自己的設(shè)計想法,征求老師意見,改正不合理的地方,為下面的概念設(shè)計和詳細(xì)設(shè)計奠定基礎(chǔ)。 3.1 概要設(shè)計階段總體結(jié)構(gòu)設(shè)計 1)、確定系統(tǒng)的總體結(jié)構(gòu)以及子結(jié)構(gòu): 系統(tǒng)根據(jù)用戶模式的不同,實現(xiàn)不同的系統(tǒng)功能。系統(tǒng)功能層次圖如下: 1.登記學(xué)生信息 登錄學(xué)生信息系統(tǒng) 學(xué)生學(xué)籍管理系統(tǒng) 6.退出 3.查找學(xué)生信息 2.刪除學(xué)生信息 5.按要求輸出信息 4.
5、修改學(xué)生信息 退出系統(tǒng) 保存信息 學(xué)生信息管理(選擇操作) 3.2 概要設(shè)計階段成果 系統(tǒng)登錄界面 信息修改編輯界面 信息瀏覽界面 信息保存退出界面 4詳細(xì)設(shè)計 4.1 界面設(shè)計 系統(tǒng)開始運行后自動從當(dāng)前目錄下的xueshen
6、文件中讀取信息,并實時顯示信息的讀取情況。用戶登錄系統(tǒng)主界面,輸入用戶名和密碼,。系統(tǒng)對用戶進(jìn)行安全驗證,若通過,則跳轉(zhuǎn)到相應(yīng)操作界面;若失敗,則提示相應(yīng)錯誤信息。系統(tǒng)主界面如下圖所示,各功能模塊前面都標(biāo)注了編碼 ,用戶只要輸入相應(yīng)的編碼就可以選擇相應(yīng)的功能模塊,方便了各層次用戶對系統(tǒng)的功能操作。同時界面中也顯示了整體的結(jié)構(gòu)圖,以便用戶對系統(tǒng)的整個功能結(jié)構(gòu)有著清晰的認(rèn)識。在用戶選擇每一個具體的功能模塊后,系統(tǒng)都會提示用戶做出相應(yīng)的操作,并根據(jù)用戶的指令反饋相應(yīng)的信息處理結(jié)果。另外在顯示新的菜單時,都會將之前的內(nèi)容清空,使系統(tǒng)的操作界面簡潔,提高用戶使用系統(tǒng)的效率。 圖1 功能描
7、述: 圖1為學(xué)生學(xué)籍管理系統(tǒng)操作界面 選擇1:進(jìn)入學(xué)生信息登記界面,可查看學(xué)生的學(xué)籍信息,對信息進(jìn)行添 加 選擇2:進(jìn)入學(xué)生信息刪除界面,輸入學(xué)生學(xué)號,進(jìn)行學(xué)生信息刪除功 提示。 選擇3:進(jìn)入學(xué)生信息查找界面,錄入學(xué)生學(xué)號,對學(xué)生的相關(guān)信息進(jìn)行查找。 選擇4:進(jìn)入學(xué)生信息修改界面,錄入要修改的學(xué)生編號,選擇要修改的信息,輸入新信息。 選擇5:按
8、要求輸出學(xué)生信息界面,輸入要輸出的學(xué)生信息進(jìn)行相同信 息學(xué)生的統(tǒng)計輸出。 選擇6:退出操作界面,退出系統(tǒng)操作。 圖2 功能描述: 圖2為是否進(jìn)行操作界面 選擇Y:返回學(xué)生學(xué)籍管理系統(tǒng)操作界面 選擇N:退出操作界面 圖3 功能描述: 圖3為信息保存界面。 選擇Y:進(jìn)行信息保存退出系統(tǒng) 選擇N:不保存信息退出系統(tǒng) 4.2 編碼。 1)頭文件代碼 //MyStudent.h
9、
#ifndef MYSTUDENT_H_
#define MYSTUDENT_H_
#include
10、Class;
string bianhua;
Student *next;};
#endif
//MyLIST.h
#include
11、 LIST() { head=new Student; head->next=NULL; }; int length(); bool isempty(){ return head->next==NULL?true:false;} bool get_data(int i,Student &x); bool get_succ(int i,Student &
12、x); bool get_prior(int i,Student &x); //取前驅(qū)元素函數(shù) bool replace_data(double i); //置換元素 bool insert_data(Student data,int i); //插入元素函數(shù) bool delete_data(double i); //刪除元素函數(shù) bool find_data(double i,Student &result); v
13、oid tongji(Student x);//查找函數(shù) void print_list(); void shuchu(); ~LIST() //析構(gòu)函數(shù) { Student *p; while(head) //將鏈表中所有元素占用空間釋放 { p = head; head = head->next; delete p; } }
14、
};
#endif
//Myvoid.h
#include
15、stream in("xuesheng");
if(!in){cout<<"不能打開!"<
16、uan =Jiguan;
chuandi[j].Xibie =Xibie;
chuandi[j].Zuanye =Zuanye;
chuandi[j].Class =Class;
chuandi[j].bianhua =bianhua;
}
}
void changdu(LIST lis)
{
ofstream out("len");
out<
17、
void output()
{
cout< 18、 <<" * *"< 19、 * 4.修改學(xué)生信息 *"< 20、 * *"< 21、##################################"< 22、 #"< 23、##############################"< 24、 #"< 25、 系別 專業(yè) 班級 學(xué)籍變化
11003 小虎 男 21 廣西 計算機(jī) 軟件 102 入學(xué)
09002 小華 女 23 湖北 機(jī)電 制作 301 畢業(yè)
10004 小東 男 22 湖南 材料 開發(fā) 501 轉(zhuǎn)專業(yè)
6.總結(jié)
課程設(shè)計總結(jié):
學(xué)習(xí)C++課程兩個學(xué)期,現(xiàn)在剛剛學(xué)完,學(xué)校安排大一下學(xué)期做面向?qū)ο笳Z言程序設(shè)計。知識的掌握和了解還不是很到位,應(yīng)用起來不靈活,拿起書本不斷的翻看查找,復(fù)習(xí)一下所學(xué)的知識,開始在腦海中醞釀要做一個什么樣的系統(tǒng)。經(jīng)過一周 26、的努力,算是完成了任務(wù)吧。馬上進(jìn)入大二了,還沒有完全鞏固學(xué)習(xí)過的知識,所以只能每天白天查閱資料,基本上都是晚上敲一些代碼,所以會有許多不足之處,也遇到了不少問題。例如:在測試連接數(shù)據(jù)庫時,對學(xué)生信息的更新總是失敗。我對程序執(zhí)行過程進(jìn)行了細(xì)致分析,沒有發(fā)現(xiàn)任何邏輯上的問題,于是我在所有的地方都添加斷點,多次調(diào)試后,發(fā)現(xiàn)問題出在類的構(gòu)造函數(shù)和析構(gòu)函數(shù)被多次調(diào)用,而且每次調(diào)用對象時,都會建立類的臨時對象。后來我弄明白了在對對象進(jìn)行操作時,沒有使用引用方式,所以任何操作都不會對其產(chǎn)生實質(zhì)作用。當(dāng)我把菜單函數(shù)中對類對象的調(diào)用方式都改成引用后,問題迎刃而解。在完成課程設(shè)計的過程中,這種問題還有很多,加上時 27、間緊迫,中途時不時會灰心喪氣,但是最后還是堅持了下來。這次的課程設(shè)計經(jīng)歷告訴我,做一件事情,只要自己不放棄,就一定能得到自己所要的。
參考文獻(xiàn)
[1] 張俊.王慶春.面向?qū)ο蟪绦蛟O(shè)計(C++).武漢:武漢大學(xué)出版社.2009
[2] 譚浩強(qiáng).語言程序設(shè)計.北京:清華大學(xué)出版社.2004
[3] 李普曼.C++ Primer中文版(第4版).北京:人民郵電出版社.2008
[4] 錢雪忠.黃建華.數(shù)據(jù)庫原理及應(yīng)用第二版.北京:北京郵電大學(xué)出版社.2005
[5] 羅建軍. 朱丹軍.顧剛.劉路放. 高等教育出版社__2版
附錄 部分代碼
//MyLIST.cpp 28、
#include"MyLIST.h"
int LIST::length()
{
int counter=0;
Student *current;
current=head->next;
while(current!=NULL)
{
current=current->next;
counter++;
}
return counter;
}
bool LIST::get_data(int i,Student &x)
{ Student *current;
int j=1;
if((i<1)||(i>lengt 29、h()))
{
cout<<"非法位置讀取元素,不能讀取! \n";
return false;
}
current=head->next;
while(current!=NULL&&jnext;
}
x=*current;
return true;
}
bool LIST::get_succ (int i, Student &x)
{
Student *current ;
int j=1;
if((i<1)||(i>length()))
{ cout 30、<<"非法位置讀取元素,不能讀?。?\n";
return false;
}
current=head->next;
while(current!=NULL&&jnext;
}
if(current->next!=NULL)
{
x=*current->next;
return true;
}
else
{
cout<<"第"<
31、(int i, Student &x)
{
Student*current ,*previous;
int j=1;
if((i<1)||(i>length()))
{ cout<<"非法位置讀取元素,不能讀取! \n";
return false;
}
previous=head;
current=head->next;
while(current!=NULL&&jnext;
}
if( previous!=head) 32、
{
x=*previous;
return true;
}
else
{
cout<<"第"<next;
while(current!=NULL&¤t->Num !=i)
{
j++;
current=current->next;
}
if(j= 33、=length())
{
cout<<"沒有找到該學(xué)號相關(guān)信息!"< 34、
{
case 1:
double num;
cout<<"您將修改學(xué)號,請輸入新的學(xué)號"< 35、gbie;
break;
case 4:
int nianling;
cout<<"您將修改年齡,請輸入新的年齡"< 36、 current->Xibie=xibie;
break;
case 7:
cout<<"您將修改專業(yè),請輸入新專業(yè)"< 37、 current->bianhua =bianhua;
break;
}
return true;
}
bool LIST::insert_data ( Student data,int i)
{
Student*current ,*previous,*newnode;
int j=1;
newnode=new Student;
if( newnode==NULL)
{
cout<<"內(nèi)存無空閑空間,不能插入:";
return false;
}
newnode->Age =data.Age 38、 ;
newnode->Num =data.Num ;
newnode->Class =data.Class;
newnode->Jiguan =data.Jiguan;
newnode->Name =data.Name;
newnode->Sex =data.Sex;
newnode->Xibie =data.Xibie;
newnode->Zuanye =data.Zuanye;
newnode->bianhua =data.bianhua ;
newnode->next=NULL;
previ 39、ous=head;
current=head->next;
while(current!=NULL&&jnext;
j++;
};
newnode->next=current;
previous->next=newnode;
return true;
}
bool LIST::delete_data (double i)
{
Student *current ,*previous;
int j=0;
if(isempty())
{
40、
cout<<"表已空,不能刪除!\n";
return false;
};
previous=head;
current=head->next;
while(current!=NULL&¤t->Num !=i)
{
previous=current;
current=current->next;
j++;
};
if(j==length())
{
cout<<"沒有該學(xué)號信息,不能刪除!"< 41、next;
delete current;
return true;
}
bool LIST::find_data (double i,Student &result)
{
Student *current ;
current=head->next;
while(current!=NULL)
{
if(current->Num !=i )
current=current->next;
else
{
result.Age =current->Age ;
result.Num =current->Nu 42、m ;
result.Class=current->Class;
result.Jiguan=current->Jiguan;
result.Name=current->Name;
result.Sex=current->Sex;
result.Xibie=current->Xibie;
result.Zuanye=current->Zuanye;
result.bianhua =current->bianhua 43、;
cout<<"查找結(jié)果如下:"< 44、 <<"\t"< 45、;
string banji;
string bianhua;
int nl;
int sum=0;
int tj;
cout<<"選擇統(tǒng)計信息:1性別,2年齡,3籍貫,4系別,5專業(yè),6班級,7學(xué)籍變化"< 46、<"籍貫"
<<"\t" <<"系別" <<"\t"<<"專業(yè)" <<"\t"<<"班級"<<"\t"<<"學(xué)籍變化"< 47、 <<"\t" < 48、 <<"\t"<<"籍貫"
<<"\t" <<"系別" <<"\t"<<"專業(yè)" <<"\t"<<"班級"<<"\t"<<"學(xué)籍變化"< 49、n
<<"\t" < 50、<"年齡" <<"\t"<<"籍貫"
<<"\t" <<"系別" <<"\t"<<"專業(yè)" <<"\t"<<"班級"<<"\t"<<"學(xué)籍變化"< 51、rrent->Jiguan
<<"\t" < 52、 <<"\t"<<"年齡" <<"\t"<<"籍貫"
<<"\t" <<"系別" <<"\t"<<"專業(yè)" <<"\t"<<"班級"<<"\t"<<"學(xué)籍變化"< 53、"\t"< 54、t" <<"性別"
<<"\t"<<"年齡" <<"\t"<<"籍貫"
<<"\t" <<"系別" <<"\t"<<"專業(yè)" <<"\t"<<"班級"<<"\t"<<"學(xué)籍變化"< 55、current->Age <<"\t"< 56、"<<"姓名"<<"\t" <<"性別"
<<"\t"<<"年齡" <<"\t"<<"籍貫"
<<"\t" <<"系別" <<"\t"<<"專業(yè)" <<"\t"<<"班級"<<"\t"<<"學(xué)籍變化"< 57、<<"\t"< 58、 cout<<"學(xué)號"<<"\t"<<"姓名"<<"\t" <<"性別"
<<"\t"<<"年齡" <<"\t"<<"籍貫"
<<"\t" <<"系別" <<"\t"<<"專業(yè)" <<"\t"<<"班級"<<"\t"<<"學(xué)籍變化"< 59、rrent->Sex
<<"\t"< 60、 ofstream out("xuesheng");
while(current)
{
out< 61、ent->next;
}
cout< 62、me<<"\t" < 63、de 64、 for(int k=1;k<=cd;k++)
{
In(k,ChuanDi);
lis.insert_data (ChuanDi[k],k);
}
output();
cin>>xz;
while(j==Y)
{
switch(xz)
{
case 1:
system("cls");
cout<<"您將進(jìn)行學(xué)生信息登記!"< 65、<<"請輸入學(xué)生的姓名:"< 66、tu.Class ;
cout<<"請輸入學(xué)生的學(xué)籍變化:"<
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇教版五上《小數(shù)乘整數(shù)》ppt課件
- 蘇教版一年級數(shù)學(xué)上冊《數(shù)一數(shù)》ppt課件
- 江南1優(yōu)秀課件
- 提高印字質(zhì)量課件
- 服務(wù)分銷策略課件
- 數(shù)學(xué)必修蘇教版互斥事件課件3(共32張PPT)
- 第三章要素費用的核算PPT優(yōu)秀資料
- 元素的質(zhì)量分?jǐn)?shù)計算答案
- 圖形的欣賞與設(shè)計
- 八年級下期Uuit10SectionA課件
- 部編七年級語文下冊4孫權(quán)勸學(xué)課件
- 部編一年級語文下冊端午粽課件
- 超市防損的技能課件
- 表彰班會教學(xué)課件教學(xué)課件
- 第17講中考數(shù)學(xué)專題復(fù)習(xí) 函數(shù)的綜合應(yīng)用中考數(shù)學(xué)專題復(fù)習(xí)課件課件各版通用