版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年湖南常德鼎城區(qū)部分機(jī)關(guān)事業(yè)單位區(qū)內(nèi)選調(diào)49人筆試備考試題及答案解析
- 2026四川綿陽市五八機(jī)器人科技有限責(zé)任公司外部招聘工作人員34人(2026年第一批次)考試參考題庫及答案解析
- 2026湖南郴州北湖機(jī)場(chǎng)有限公司面向社會(huì)殘疾人員招聘1人筆試備考試題及答案解析
- 2026重慶九龍坡區(qū)楊家坪小學(xué)招聘1人筆試備考題庫及答案解析
- 2026上半年貴州事業(yè)單位聯(lián)考實(shí)驗(yàn)中學(xué)招聘3人考試參考題庫及答案解析
- 2026年急救技能實(shí)操演練培訓(xùn)
- 2026新疆維吾爾自治區(qū)天山東部國有林管理局沙灣分局招聘森林管護(hù)人員6人筆試備考題庫及答案解析
- 2026年國畫技法傳承創(chuàng)新培訓(xùn)
- 2026年安慶市某電力外包工作人員招聘2名筆試參考題庫及答案解析
- 2025年單縣教師事業(yè)編考試真題及答案
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫及參考答案詳解1套
- 2025年廣東省生態(tài)環(huán)境廳下屬事業(yè)單位考試真題附答案
- 2023春國開農(nóng)業(yè)經(jīng)濟(jì)基礎(chǔ)單元自測(cè)1-16試題及答案
- 2023年高鐵信號(hào)車間副主任述職報(bào)告
- GB/T 879.4-2000彈性圓柱銷卷制標(biāo)準(zhǔn)型
- GB/T 1957-2006光滑極限量規(guī)技術(shù)條件
- GB 28480-2012飾品有害元素限量的規(guī)定
- 劉一秒演說智慧經(jīng)典(內(nèi)部筆記)
- 管道TOFD檢測(cè)記錄及續(xù)表
- 馬克思主義哲學(xué)精講課件
- 期末考試總安排
評(píng)論
0/150
提交評(píng)論