學(xué)生成績(jī)管理程序及鏈表管理程序_第1頁
學(xué)生成績(jī)管理程序及鏈表管理程序_第2頁
學(xué)生成績(jī)管理程序及鏈表管理程序_第3頁
學(xué)生成績(jī)管理程序及鏈表管理程序_第4頁
學(xué)生成績(jī)管理程序及鏈表管理程序_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

學(xué)生成績(jī)管理程序

及鏈表管理程序

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

《程序設(shè)計(jì)基礎(chǔ)》課程設(shè)計(jì)

題目:1.學(xué)生成績(jī)管理程序

2.鏈表信息管理

姓名_________________

班次________________

學(xué)號(hào)_______________

指導(dǎo)教師__________________

成績(jī)_________________

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

計(jì)算機(jī)與信息工程學(xué)院

年10月20日

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

文件追加狀態(tài),以便實(shí)現(xiàn)連續(xù)文件追加操作方式;

(5)如果沒有記錄存在,給出提示信息。

3.新建學(xué)生信息文件

(1)用來重新建立學(xué)生信息記錄;

(2)如果已經(jīng)有記錄存在,能夠覆蓋原記錄或者在原記錄后面追加,也能夠

將原有記錄信息保存到一個(gè)指定文件,然后重新建立記錄;

(3)給出相應(yīng)的提示信息。

4.顯示記錄

(1)如果沒有記錄可供顯ZJX,給出提不信息;

(2)能夠隨時(shí)顯示內(nèi)存中的記錄;

(3)顯ZJX表頭。

5.文件存儲(chǔ)

(1)能夠按默認(rèn)名字或指定名字存儲(chǔ)記錄文件;

(2)存儲(chǔ)成功返回0,否則返回?1;

(3)更新存儲(chǔ)標(biāo)志。

6.讀取文件

(1)能夠按默認(rèn)名字或指定名字將記錄文件讀入內(nèi)存;

(2)讀取成功返回0,否則返回

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

(3)能夠?qū)⒅付ɑ蚰J(rèn)文件追加到現(xiàn)有汜錄的尾部;

(4)能夠?qū)⑽募B續(xù)追加到現(xiàn)有記錄并更新記錄的名次。

(5)更新存儲(chǔ)標(biāo)志。

7.刪除記錄

(1)能夠按"學(xué)號(hào)“、“姓名"或“名次”方式刪除記錄;

(2)給出將被刪除記錄的信息,經(jīng)確認(rèn)后再刪除;

(3)如果已經(jīng)是空表,刪除時(shí)應(yīng)給出提示信息并返回主菜單;

(4)如果沒有要?jiǎng)h除的信息,輸出沒有找到的信息;

(5)應(yīng)該更新其它記錄的名次;

(6)刪除操作僅限于內(nèi)存,只有執(zhí)行存記錄時(shí),才能覆蓋原記錄;

(7)更新存儲(chǔ)標(biāo)志。

8.修改記錄

(1)能夠按“學(xué)號(hào)“、“姓名"或“名次”方式修改記錄內(nèi)容;

(2)給出將被修改記錄的信息,經(jīng)確認(rèn)后進(jìn)行修改;

(3)如果已經(jīng)是空表,應(yīng)給出提示信息并返回主菜單;

(4)如果沒有找到需要修改的信息,輸出提示信息;

(5)應(yīng)該同時(shí)更新其它記錄的名次;

⑹修改操作僅限于內(nèi)存,只有進(jìn)行存儲(chǔ)操作時(shí),才能覆蓋原記錄;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

(7)更新存儲(chǔ)標(biāo)志。

9.查詢記錄

(1)能夠按“學(xué)號(hào)“、“姓名“或“名次”方式查詢記錄;

(2)能給出查詢記錄的信息;

(3)如果查詢的信息不存在,輸出提示信息。

10.對(duì)記錄進(jìn)行排序

⑴能夠按學(xué)號(hào)進(jìn)行升序或降序排序;

⑵能夠按名稱進(jìn)行升序和降序排序;

⑶能夠按名次進(jìn)行升序和降序排序;

(4)如果屬于選擇錯(cuò)誤,能夠立即退出排序;

(5)更新存儲(chǔ)標(biāo)志。

H.頭文件

⑴使用條件編譯定義頭文件;

⑵函數(shù)原型聲明;

⑶數(shù)據(jù)結(jié)構(gòu)及包含文件;

12.測(cè)試程序

⑴應(yīng)列出測(cè)試大綱對(duì)程序進(jìn)行測(cè)試;

⑵應(yīng)保證測(cè)試用例測(cè)試到程序的各種邊緣情況是基本要求,希望經(jīng)過對(duì)

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

本章設(shè)計(jì)的理解,重新考慮如何改進(jìn)設(shè)計(jì)。

2.運(yùn)行環(huán)境要求

devc++

[系統(tǒng)分析]

1.程序系統(tǒng)結(jié)構(gòu)分析

程序(系統(tǒng))結(jié)構(gòu)

主程序名稱子程序名稱調(diào)用關(guān)系說明

insert(Students[],intn)輸入“1”時(shí)調(diào)用

show(Students[],intn)輸入“2”時(shí)調(diào)用

sort(Students[],intn)輸入“3”時(shí)調(diào)用

主函數(shù)(main)

search(Students[],intn)輸入“4”時(shí)調(diào)用

save(Students[],intn)輸入“5”時(shí)調(diào)用

del(Students[],intn)輸入“6”時(shí)調(diào)用

2-子程序分析

程序描述

子程序名稱參數(shù)名稱類型含義子程序功能說明

insert(Students[]Student學(xué)生信息表地址添加學(xué)生信息

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

3口,ini11)

nint學(xué)生人數(shù)

show(Students[]Student學(xué)生信息表地址

s[],intn)顯示學(xué)生信息

nint學(xué)生人數(shù)

sort(Students[]Student學(xué)生信息表地址

s[],intn)按要求對(duì)信息排序

nint學(xué)生人數(shù)

search(Students[]Student學(xué)生信息表地址

s[],intn)按需要查找信息

nint學(xué)生人數(shù)

save(Students[]Student學(xué)生信息表地址

s[],intn)保存信息

nint學(xué)生人數(shù)

del(Students[]Student學(xué)生信息表地址

s[],intn)按要求刪除信息

nint學(xué)生人數(shù)

3.算法分析

主函數(shù)流程:

Y

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

添加學(xué)生信息:

在記錄排序修改:

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

查詢記錄流程:

Y

N

刪除記錄流程:

N

手右'WtRt7_____

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

輸出學(xué)生信息流程:

二寺mM/Q=ZAII

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

N

Y

Y

N

[測(cè)試數(shù)據(jù)]

1.功能測(cè)試數(shù)據(jù)及結(jié)果

2.正常值、邊界值及異常值測(cè)試數(shù)據(jù)及結(jié)果

a)在主菜單選擇功能時(shí),調(diào)用子函數(shù),若輸入的數(shù)不是1-6則程序

忽略這次輸入,進(jìn)入下一次調(diào)用,進(jìn)行輸入。

b)選擇功能數(shù)為2時(shí),若輸入成員代號(hào)不存在,則程序給出提示信

息。

3.調(diào)試記錄

調(diào)試記錄

序號(hào)程序名稱調(diào)試記錄解決方法

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

保存記錄時(shí),最后一條記錄

不用保存換行符,不然讀取

1saveO學(xué)生信息最后一條記錄顯示不正確值

記錄時(shí),換行符獨(dú)占一行,

導(dǎo)致數(shù)據(jù)顯示錯(cuò)誤

2del()出現(xiàn)二義性修改錯(cuò)誤

[課程設(shè)計(jì)小結(jié)]

經(jīng)過對(duì)程序三的編寫,進(jìn)一步加深學(xué)習(xí)了while循環(huán)、for循環(huán)等循環(huán)語

句。學(xué)會(huì)了經(jīng)過函數(shù)間的返回值控制程序運(yùn)行,使程序?qū)崿F(xiàn)了菜單選擇功

能。在修改程序時(shí)經(jīng)過對(duì)錯(cuò)誤的修改和完善,使思路更加謹(jǐn)慎和完善。鍛煉

了思路,完善了編程習(xí)慣。

[源代碼]

#include<iostream>

#include<fstream>

#include<iomanip>

usingnamespacestd;

structStudent〃定義結(jié)構(gòu)體

{stringnum;〃學(xué)號(hào)

stringname;〃姓名

floatscore;〃成績(jī)

shortininiingci;〃名次

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

);

Students[100];〃結(jié)構(gòu)體數(shù)組變量

intinsert(Students[],intn)〃輸入學(xué)生信息

{boolsf;

inti=0;

stringsr;

while(sr!="n"||sr!=HN")

{cout<<”請(qǐng)輸入學(xué)生學(xué)號(hào):"?endl;

cin?s[n+i].num;

coutvv”請(qǐng)輸入學(xué)生的姓名:n?endl;

cin?s[n+i].name;

coutvv”請(qǐng)輸入學(xué)生的成績(jī):"?endl;

cin?s[n+i].score;

coutvv”是否繼續(xù)輸入記錄?(Y/N)H?endl;

cin?sr;

i++;

return(n+i);

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

intshow(Students[],intn)〃顯示

{inti;

coutvvsetw(7)?“學(xué)號(hào)"vvsetw(10)v<“姓名”<vsetw(10)<v”成績(jī)

"<<setw(10)v<“名次"<<endl;

cout?endl;

for(i=0;i<n;i++)

{cout?setw(6)?slij.num?setw(10)?s[i].name?setw(10)?s|ij.score?setw(

10)?sli].mingci?endl;}

)

voidsort(Students[],intn)〃排序

{Studentp;

inti,j;

int

cout<<”請(qǐng)選擇排序方式:H?endl;

cout<v”l.按學(xué)號(hào)排序:n?endl;

cout<<”2.按姓名排序:n?endl;

coutvv”3.按成績(jī)排序:n?endl;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

cin?m;

switch(m)

{case1:

for(i=0;i<n;i++)

for(j=i;j<n;j++)

if(s[i].num>s[j].num)

{p=s[i];s[il=s[j];s[j]=p;}

gotopx;

case2:

for(i=0;i<n;i++)

for(j=i;j<n;j++)

if(s[>s[)

{p=s[i];s[i]=s[j];s[j]=p;}

gotopx;

case3:

for(i=0;i<n;i++)

for(j=i;j<n;j++)

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

if(s[i].score>s[j].score)

{p=s[i];s[i]=s[j];s[j]=p;}

px:cout<<”請(qǐng)選擇輸出方式:1:升序,0:降序”<<endl;

cin?t;

cout?endl;

if(t==l)

{for(i=0;i<n;i++)

{s[i].mingci=i+l;

cout?n學(xué)號(hào)姓名成績(jī)名次n?endl;

cout?s[i].num?""?s[i].name?HM?s[i].score?"

"?s[i].mingci?endl;

)

cout?endl;

)

else

{for(i=n-l;i>-l;i-)

{s[i].mingci=n-i;

cout?"學(xué)號(hào)姓名成績(jī)名次n?endl;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

cout?s[i].num?nn?s[i].score?n

"?s[i].mingci?endl;

)

cout?endl;

)

break;

)

)

intdelnum(Students[],intn)〃按學(xué)號(hào)刪除

stringa;

charsr;

cout?”請(qǐng)輸入該學(xué)生學(xué)號(hào):“vvendl;

cin?a;

for(i=0;i<n;i++)

{if(s[i].num==a)

{coul<<”是否保存刪除記錄?(Y/N)H?endl;

cin?sr;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

,,1

if(sr==y'||sr==Y)

{for(j=i;j<n;j++)

{s[jj=s[j+lj;}

cout?”信息刪除成功!”vvendl;

returnn-1;}

else

{returnn;}

}

}

coutvv”無法找到該信息!”vvendl;

return(n);

)

intdelname(StudentsLJ,intn)//按姓名刪除

{intij;

stringa;

charsr;

cout<<”請(qǐng)輸入該學(xué)生姓名:“<<endl;

cin?a;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

for(i=0;i<n;i++)

{if(s[i].name==a)

{coutvv”是否保存刪除記錄?(Y/N)"?endl;

cin?sr;

,

if(sr=='y'||sr==Y')

{for(j=i;j<n;j++)

{s[j]=s[j+l];}

cout<v”信息刪除成功!"vvendl;

returnn-1;}

else

{returnn;}

)

)

cout?”無法找到該信息!”vvendl;

return(n);

)

intdelscore(Students[],intn)〃按成績(jī)刪除

{intij;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

floatm;

charsr;

cout<v”請(qǐng)輸入該學(xué)生成績(jī):“vvendl;

cin?m;

for(i=0;i<n;i++)

{if(s[i].score==m)

{coutcv”是否保存刪除記錄?(Y/N)u?endl;

cin?sr;

if(sr=='y'||sr=='Y')

{for(j=i;j<n;j++)

{s[j]=s[j+l];}

coutvv”信息刪除成功!”《endl;

returnn-1;}

else

{returnn;}

cout<<”無法找到該信息!”<<endl;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

returnn;

)

intdelsort(Students[J,intn)〃按名次刪除

{

intm;

charsr;

coutvv”請(qǐng)輸入該學(xué)生的名次:“vvendl;

cin?m;

for(i=0;i<n;i++)

{if(sli].mingci==m)

{cout<<”是否保存刪除記錄?(Y/N)"?endl;

cin?sr;

if(sr=='y'||s『='Y')

{for(j=i;j<n;j++)

{s[j]=s[j+l];)

cout<<”信息刪除成功!”<vendl;

returnn-1;}

else

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

{returnn;}

)

)

cout<v”無法找到該信息!”<<endl;

return(n);

)

intdel(Students[],intn)〃刪除

{intt;

coutvv”請(qǐng)選擇刪除方式:“vvendl;

coutvv"1,按學(xué)號(hào)刪除:“<<endl;

cout<<”2.按姓名刪除:“<<endl;

coutvv”3.按成績(jī)刪除:“<<endl;

cout<<”4.按名次刪除:“<<endl;

cin?t;

switch(t)

{case1:n=delnum(s,n);break;

case2:n=delname(s,n);break;

case3:n=delscore(s,n);break;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

case4:n=delsort(s,n);break;

)

returnn;

)

voidsearch(Studentsfl,intn)//查詢方式修改記錄

{stringa;

Studentq;

inti=0;

intb=0;

floatp;

coutvv”請(qǐng)輸入查詢方式:"?endl;

coutv<”1.按學(xué)生學(xué)號(hào)查找:"vvendl;

cout<<”2.按學(xué)生姓名查找:"<<endl;

cout?”3.按學(xué)生成績(jī)查找:"vvendl;

coutvv"4.按學(xué)生名次查找:“vvendl;

intm;

charsr;

cin?m;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

switch(m)

{i=0;

case1:

{cout<〈嘴輸入要查詢的學(xué)生的學(xué)號(hào):“v<endl;

cin?a;

while(i<n)

if(s[i].num==a)gotoloop;

)

case2:

{cout<<”請(qǐng)輸入要查詢的學(xué)生姓名:“<<endl;

cin?a;

while(i<n)

if(s[i].naine==a)gotoloop;

}

case3:

{cout<〈”請(qǐng)輸入要查詢的學(xué)生成績(jī):“<<endl;

cin?p;

while(i<n)

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

if(s[i].score==p)gotoloop;

)

case4:

{8戊《嘴輸入要查詢的學(xué)生的名次:“<vendl;

cin?b;

while(i<n)

if(s[i].mingci==b)gotoloop;

}

loop:

(

cout<<”該學(xué)生的學(xué)號(hào):"<vs[i].num?endl;

coutvv”該學(xué)生的學(xué)號(hào):"<<s[i].namev〈endl;

cout<<“該學(xué)生的成績(jī):"<vs[i].scorevVendl;

coutvv”是否要修改該學(xué)生的記錄:(Y/N)H?endl;

cin?sr;

if(sr=='Y,||sr=='y,)

{coutvv”請(qǐng)輸入新的學(xué)生學(xué)號(hào):"vvendl;

cout<<”請(qǐng)輸入新的學(xué)生姓名:“<<endl;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者冊(cè)IJ除。

cout<<”請(qǐng)輸入新的學(xué)生成績(jī)><<endl;

cin?q.num;

cin?;

cin?q.score;

s[i].num=q.num;

s[i].name=;

sfi].score=q.score;

cout<<”該學(xué)生的學(xué)§:H?s[iJ.num?endl;

ccutvv”該學(xué)生的學(xué)號(hào):"《s[i].namevvendl;

cout<<”該學(xué)生的成績(jī):"<<s[i].score?endl;

return;

)

i++;

if(sr=='n,||sr==,N')return;

if(i==n)

{cout<<”無法找到該信息!n?endl;return;}

break;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

return;

)

)

voidsave(Students[],intn)〃保存

{inti=0;

ofstreamfout(nxueshengxinxi.txt");

if(!fout)

{cout<v”打開文件失敗“<<endl;

return;}

foutvv”學(xué)生學(xué)號(hào)“<<”;"<<“學(xué)生姓名“學(xué)生成績(jī)“<<“;"<<”學(xué)生名次

u?endl;

while(i<n)

{fout?s[i].num?n;',?s[i].name?";,,?s[i].score?',;,,?s[i].mingci?endl;

i++;}

cout<v”文件保存成功!”;

fout.close();

)

intmain()

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

intn=0;

while(l)

{intr;

cout?"----------------------"?endl;

coutvv”對(duì)學(xué)生信息系統(tǒng)可執(zhí)行的操作“vvendl;

coutvv”0.退出程序“<<endl;

coutvv”L輸入學(xué)生記錄”<<endl;

coutvv”2.顯示學(xué)生記錄"vvendl;

cout?”3.刪除學(xué)生記錄“<<endl;

cout<<”4.查詢修改學(xué)生記錄“<<endl;

coutvv,5保存學(xué)生記錄V<endl;

coutvv”6.對(duì)記錄排序”<<endl;

cout?"----------------------"?endl;

cout?”請(qǐng)選擇選項(xiàng)操作:(0-6):H?endl;

cin?r;

switch(r)

{case0:exit(O);break;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

case1:n=insert(s,n);break;

case2:n=show(s,n);break;

case3:sort(s,n);break;

case4:search(s,n);break;

case5:save(s,n);break;

case6:n=del(s,n);break;

default:coutvv”請(qǐng)選擇選項(xiàng)操作:(0-6):"?endl;

}

)

system(npause");

return0;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

題目4:鏈表信息管理

[問題描述]

設(shè)計(jì)的目的是學(xué)習(xí)建立鏈表,使用鏈表存儲(chǔ)結(jié)構(gòu)信息,增加鏈表節(jié)點(diǎn)及刪

除鏈表節(jié)點(diǎn)等基本操作.實(shí)際設(shè)計(jì)時(shí),能夠增加數(shù)據(jù)信息及檢索等功能.

[基本要求]

1.功能要求

(1).本課程設(shè)計(jì)時(shí)將重點(diǎn)放在整體設(shè)計(jì)上,直選成員代號(hào)和電話.

(2).如果已經(jīng)有記錄只能在其后追加;

(3).顯示整個(gè)記錄的內(nèi)容(含有新追加的記錄);

(4).號(hào)可由6位字符和數(shù)字的混合編碼組成,例如下面的形式:

A201

3405d

01001

(5).使電話號(hào)碼可由18位支付和數(shù)字組成,例如下面形式:

(86)-

-3456

(6).以刪除全部記錄,能夠隨時(shí)增加新記錄;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

(7).使用菜單實(shí)現(xiàn)增加,刪除,和顯示等功能的選擇;

(8).測(cè)試程序;

2.運(yùn)行環(huán)境要求:devC++

[系統(tǒng)分析]

1.程序系統(tǒng)結(jié)構(gòu)分析

程序(系統(tǒng))結(jié)構(gòu)

主程序名稱子程序名稱調(diào)用關(guān)系說明

insert(worker*&hcad)直接調(diào)用可添加成員信息

display(worker*head)直接調(diào)用可輸出成員信息

主函數(shù)(main)

del(worker*&head)直接調(diào)用可刪除某個(gè)成員信息

release(worker*&head)刪除所有成員信息釋放空間

2.子程序分析

程序描述

子程序名稱參數(shù)名稱類型含義子程序功能說明

void

insert(workerworker結(jié)構(gòu)體類型的指

head*添加成員信息

*&head)針

void

worker結(jié)構(gòu)體類型的指

display(workerhead輸出成員信息

*head)*針

voiddel(worker

*&head)worker結(jié)構(gòu)體類型的指

head刪除某個(gè)成員信息

*針

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

void

worker結(jié)構(gòu)體類型的指

release(workerhead刪除所有成員信息釋放空間

*&head)*針

3.算法分析

說明本程序所選用的算法,計(jì)算公式和計(jì)算步驟和流程圖。

在main()中根據(jù)提示信息,按照需要能夠選擇不同的操作。程序中共有5

個(gè)子程序,能夠增加數(shù)據(jù)信息及檢索等功能。實(shí)際設(shè)計(jì)時(shí),在worker()結(jié)構(gòu)體

中定義了兩個(gè)數(shù)組charnum[7]和chartelphone[191,還定義了一個(gè)指針struct

worker*next用于指示下一個(gè)結(jié)點(diǎn)的位置便于操作。對(duì)于子程序insert().

display。、del。、release。是經(jīng)過參數(shù)的傳遞實(shí)現(xiàn)對(duì)鏈表的操作;而exit()是

在庫內(nèi)函數(shù)的調(diào)用。

主函數(shù):

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

voidinsert添加成員信息如下:

分別輸入電話號(hào)

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

1.功能測(cè)試數(shù)據(jù)及結(jié)果

2.正常值、邊界值及異常值測(cè)試數(shù)據(jù)及結(jié)果

在原始數(shù)據(jù)文件內(nèi)沒有數(shù)據(jù)時(shí),選擇2會(huì)顯式”鏈表為空,無記錄!”信

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

息,當(dāng)原始數(shù)據(jù)內(nèi)容非空的,則顯示成員信息。其余情況下,輸入相應(yīng)項(xiàng)都可

執(zhí)行相應(yīng)功能。當(dāng)輸入1到5以外的數(shù)據(jù)則給出的是原始的數(shù)據(jù)內(nèi)容。

3.調(diào)試記錄

調(diào)試記錄

序號(hào)程序名稱調(diào)試記錄解決方法

1insert(worker*ihead)編譯不經(jīng)過引用的加入可解決

2p->next指針指向不明確給指針指向合適位置

[課程設(shè)計(jì)小結(jié)]

經(jīng)過對(duì)這次的題目研究,發(fā)現(xiàn)自己很多學(xué)習(xí)上的問題,如掌握問題不夠扎

實(shí),運(yùn)用中總是得不到想要的結(jié)果,仔細(xì)檢查源代碼尋找問題所在,修改使其

合乎正確思路。遇到問與人多討論交流有助于我們的學(xué)習(xí)和提高。扎扎實(shí)實(shí)

學(xué)好理論基礎(chǔ),才能更好的編寫出合乎邏輯的代碼。

[源代碼]

#include<iostream>

#include<stdlib.h>

usingnamespacestd;

structworker〃定義結(jié)構(gòu)體

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

charnum[7];

chartelphonef19];

structworker*next;

);

voidinsert(worker*&head)//添加成員信息

{structworker*p=NULL,*cnd=NULL;

chartemple;

coutvv”添加成員信息如下:"?endl;

if(head==NULL)

{p=newstructworker;

head=p;

cout<<”輸入成員代號(hào):"?endl;

cin?p->num:

coutv<”輸入成員電話:"?endl;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

cin?p->telphone;

p->next=O;

coutv〈”是否繼續(xù)輸入?(y/n)"?endl;

cin?temple;

while(temple==,y,||temple==,Y,)

{p->next=newstructworker;

p=p->next;

coutvv”輸入成員代號(hào):H?endl;

cin?p->num;

coutv<”輸入成員電話:"?endl;

cin?p->telphone;

p->next=0;

cout<<”是否繼續(xù)輸入?(y/n)"?endl;

cin?temple;

p->next=0;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

end=p;

}

else

{do

{p=end;

p->next=newstructworker;

p=p->next;

cout?”輸入成員代號(hào):"?endl;

cin?p->num;

cout<<”輸入成員電話:H?endl;

cin?p->telphone;

p->next=0;

cout<<”是否繼續(xù)輸入?(y/n)H?endl;

cin?temple;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

p->next=O;

end=p;

}while(temple==,y'||temple==,Y');

)

)

voiddisplay(worker*head)〃輸出成員信息

{worker*p;

p=head;

coutvc”輸出成員信息如下:H?endl;

if(p==NULL)

cout?"鏈表為空,無記錄!”<<endl;

else

{while(p)

{cout<<”成員的代號(hào):"?p->num?endl;

coutvv”成員的電話:H?p->telphone?endl;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

p=p->next;

)

)

)

voiddel(worker*&head)//刪除某個(gè)成員信息

{worker*p=NULL,*q=NULL;

charnumber[7],phone[19];

cout<<”刪除某個(gè)成員信息如下:"?endl;

if(head==NULL)

{coutw”鏈表為空,無記錄!”vvendl;

return;

)

p=head;

coutv<”刪除的成員代號(hào)”《endl;

資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。

cin?number;

cout<〈”刪除的成員電話“<<endl;

cin?phone;

if(p->num==number&&p->telphone==phone)

{head=p->next;

deletep;

return;

)

q=p->next;

while(q!=NULL)

{if(q->nu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論