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