利用單項(xiàng)鏈表實(shí)現(xiàn)簡單的學(xué)生信息管理_第1頁
利用單項(xiàng)鏈表實(shí)現(xiàn)簡單的學(xué)生信息管理_第2頁
利用單項(xiàng)鏈表實(shí)現(xiàn)簡單的學(xué)生信息管理_第3頁
利用單項(xiàng)鏈表實(shí)現(xiàn)簡單的學(xué)生信息管理_第4頁
利用單項(xiàng)鏈表實(shí)現(xiàn)簡單的學(xué)生信息管理_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編號:07河北工業(yè)大學(xué)計(jì)算機(jī)軟件技術(shù)基礎(chǔ)(VC)課程設(shè)計(jì)報(bào)告一、題目:利用單項(xiàng)鏈表實(shí)現(xiàn)簡單的學(xué)生信息管理(07)二、設(shè)計(jì)思路1、總體設(shè)計(jì)1) 分析程序的功能創(chuàng)建單項(xiàng)鏈表保存學(xué)生的各項(xiàng)信息,學(xué)號、姓名、成績。并能夠完成學(xué)生信息的插入、刪除及信息的顯示功能。2) 系統(tǒng)總體結(jié)構(gòu):按照程序要求的功能采用結(jié)構(gòu)化的設(shè)計(jì)思想,劃分為五個功能模塊,即創(chuàng)建鏈表、插入函數(shù)、刪除函數(shù)、顯示函數(shù)和主函數(shù)。2、各功能模塊的設(shè)計(jì):說明各功能模塊的實(shí)現(xiàn)方法 頭文件:對自己定義的函數(shù)進(jìn)行函數(shù)聲明。 主函數(shù):進(jìn)行函數(shù)的調(diào)用,實(shí)現(xiàn)各函數(shù)的功能,達(dá)到預(yù)期的目的。 函數(shù)定義部分:定義各個功能函數(shù),創(chuàng)建鏈表函數(shù)、插入新信息函數(shù)、刪除信

2、息函數(shù)、顯示信息函數(shù)。3、設(shè)計(jì)中的主要困難及解決方案1)在插入新信息時,有插入點(diǎn)在表頭、中間、表尾三種情況,為此采用討論的方法,把三種情況進(jìn)行討論使其分開進(jìn)行。2)在刪除信息時,有刪除的為頭結(jié)點(diǎn)和中間結(jié)點(diǎn)的情況,采用討論的方法,把兩種情況分開來進(jìn)行。4、你所設(shè)計(jì)的程序最終完成的功能1)創(chuàng)建鏈表、插入新信息、刪除信息、顯示信息。2)測試數(shù)據(jù)輸入的數(shù)據(jù)學(xué)號姓名成績98023LiLi8598044WangTao6999764ZhangXiaobao7299812LiuLifang91插入的數(shù)據(jù)學(xué)號姓名成績96085WangLiPing7798120ZhangLi7599912LiuHai80刪除的數(shù)

3、據(jù)學(xué)號姓名成績99812liulifang91運(yùn)行結(jié)果三、程序清單本程序包含creatlist.cpp、insert.cpp、del.cpp、output.cpp、main.cpp、頭文件.h六個文件1、creatlist.cpp文件清單#include<iostream.h>#include"頭文件.h"int n;student *creatlist() student *head; student *p1;student *p2;n=0;head=NULL;p1=new(student); /創(chuàng)建一個新結(jié)點(diǎn)p2=p1;cin>>p1->n

4、um>>p1->name>>p1->score;while(p1->num!=0) /鏈表建立過程結(jié)束的判斷條件n+;if(n=1) /將鏈表中第一個新建結(jié)點(diǎn)作為表頭head=p1;else p2->next=p1; /原鏈表結(jié)點(diǎn)指向新建結(jié)點(diǎn)p2=p1;p1=new(student);cin>>p1->num>>p1->name>>p1->score;delete(p1); p2->next=NULL;return head; /返回表頭2、insert.cpp文件清單#include&

5、lt;iostream.h>#include"頭文件.h"student *insert(student *head,student *t)student *p0; /待插入點(diǎn)student *p1;student *p2; /p0插入p1之前,p2之后p1=head;p0=t;if(p1=NULL) /原鏈表是空表head=p0;p0->next=NULL;elsewhile(p0->num>p1->num)&&(p1->next!=NULL) /查找待插入點(diǎn)p2=p1;p1=p1->next;if(p0->

6、num<=p1->num) if(p1=head) /要插入的位置在表頭 head=p0; p0->next=p1; else /要插入的位置不是表頭 p2->next=p0; p0->next=p1; else /插入表尾結(jié)點(diǎn)之后 p1->next=p0;p0->next=NULL;return head; /返回表頭3、del.cpp文件清單#include<iostream.h>#include"頭文件.h"student *del(student *head,int num)student *p1;student

7、 *p2;if(head=NULL) /原鏈表是空表cout<<"List is NULLn"return head;p1=head;while(num!=p1->num)&&(p1->next!=NULL) /查找?guī)б獎h除的結(jié)點(diǎn)p2=p1;p1=p1->next;if(num=p1->num)if(p1=head) /要刪除的是頭結(jié)點(diǎn)head=p1->next;else /要刪除的不是頭結(jié)點(diǎn) p2->next=p1->next;delete(p1); /釋放被刪除結(jié)點(diǎn)所占的內(nèi)存空間cout<<

8、;"delete: "<<num<<endl;elsecout<<"not found"<<endl;return head; /返回表頭4、output.cpp文件清單#include<iostream.h>#include"頭文件.h"void output(student *head)if(head=NULL) /原鏈表是空表cout<<"list is NULLn"elsestudent *p1;p1=head;cout<<

9、"學(xué)生的成績信息"<<endl;cout<<"學(xué)號"<<"t姓名"<<"t成績n"do /輸出鏈表中各個同學(xué)的信息cout<<p1->num<<"t"<<p1->name<<"t"<<p1->score<<endl;p1=p1->next;while(p1!=NULL);5、main.cpp文件清單#include<iostre

10、am.h>#include"頭文件.h"void main()student *headl;cout<<"輸入學(xué)生的成績信息"<<endl;cout<<"學(xué)號"<<"t姓名"<<"t成績"<<endl;headl=creatlist();int k;while(1) /菜單選項(xiàng)cout<<endl;cout<<"-菜單選項(xiàng)-"<<endl;cout<<

11、"1.插入新信息 ,請選擇:1"<<endl;cout<<"2.刪除信息, 請選擇:2"<<endl;cout<<"3.顯示信息, 請選擇:3"<<endl;cout<<"4.結(jié)束程序, 請選擇:4"<<endl;cout<<" 選擇"cin>>k;if(k=1) /插入新信息int m;cout<<"輸入插入學(xué)生人數(shù)"<<endl;cin>

12、;>m;cout<<"學(xué)號"<<"t姓名"<<"t成績"<<endl;for(int i=0;i<m;i+) student *stu; stu=new(student); cin>>stu->num>>stu->name>>stu->score; headl=insert(headl,stu);else if(k=2) /刪除信息int num;cout<<"輸入要刪除學(xué)生的學(xué)號n"cin

13、>>num;headl=del(headl,num);else if(k=3) /顯示信息output(headl);else /結(jié)束程序break;6、頭文件.h文件清單struct student /定義結(jié)構(gòu)體類型int num;char name20;double score;student *next;student *creatlist(); /創(chuàng)建鏈表函數(shù)原型說明student *insert(student * ,student * ); /插入函數(shù)原型說明student *del(student * ,int ); /刪除函數(shù)原型說明void output(student * ); /顯示函數(shù)原型說明四、對該設(shè)計(jì)題目有何更完善的方案1、對自己完成程序進(jìn)行自我評價。完成了課程設(shè)計(jì)的基本要求,同時在此基礎(chǔ)上進(jìn)行了一些創(chuàng)新,使用了多文件,使程序看起來更清晰更有條理。但由于能力有限,以及對C+的認(rèn)識不深,其中還有不夠完善合理的地方。2、對課題提出更完善的方案增加按照成績對鏈表進(jìn)行排序的功能,使學(xué)生信息能夠按照成績的高低進(jìn)行顯示,能夠更清晰地顯示學(xué)生的學(xué)習(xí)情況五、收獲及心得體會1、通過本次課程設(shè)計(jì),自

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論