C++程序設(shè)計語言結(jié)業(yè)報告_第1頁
C++程序設(shè)計語言結(jié)業(yè)報告_第2頁
C++程序設(shè)計語言結(jié)業(yè)報告_第3頁
C++程序設(shè)計語言結(jié)業(yè)報告_第4頁
C++程序設(shè)計語言結(jié)業(yè)報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

意步中”式火4天體"緘孑診

傳媒工程系

成績

C++程序設(shè)計語言結(jié)業(yè)報告

課程名稱:C++程序設(shè)計語言

班級:B1101

學(xué)號:__________

姓名:程龍

指導(dǎo)教師:趙鳳怡

報告完畢時間:_2023_年_12_月_17_日

2023-10-28制定

C++程序設(shè)計語言結(jié)業(yè)報告

程C++程序設(shè)計語2023年11

班級BH01實驗日期

名言月

姓學(xué)

程龍實驗成績

名號

名C++程序設(shè)計語言

及掌握VisualC++箕成環(huán)境下調(diào)試標(biāo)準(zhǔn)C++程序的方法

規(guī)

環(huán)Visua1C++集成環(huán)境、WindowsXP操作系統(tǒng)

內(nèi)1.用C++語言開發(fā)“簡樸的學(xué)生成績管理系統(tǒng)”。

(用適當(dāng)?shù)男问奖碇惴ㄔO(shè)計思想與算法實現(xiàn)環(huán)節(jié))

學(xué)生成績管理系統(tǒng)

求出每個學(xué)生各門課程的總成績、

平均成績最高分和最低分

k________________________/

求出某一門課程所有學(xué)生的總成

及績、平均成績、最高分和最低分

環(huán)

節(jié)

4.顯示學(xué)生成績:

5.排序:

6.按姓名杳找(按學(xué)號杳找):

G-修改學(xué)生仁息

。-安全退出系統(tǒng)

IR選擇:C

1:嘴蕤鸚緘找

,百選土華?1

請輸入要查找的學(xué)生的姓名:程龍

■程龍

步03

Es?9

95

為績:270

?入任卷、字彷!繼綾

__________

7.刪除學(xué)生成績:

*☆1-增力口學(xué)生成績☆

★☆2.顯示學(xué)生成績☆

★☆3-排序統(tǒng)計成績☆

*☆4.查找學(xué)生成績仝

*☆5-惻除學(xué)生成績☆

★☆6.修改學(xué)生信息☆

*☆0-安全退出系統(tǒng)☆

,溥輸樊萋輸除的學(xué)生的姓名=

張三

W入行*一AI維舞除成功'

寸前入任竟子?符!繼續(xù).....

_________________________________________________

8.修改學(xué)生成績:

■1?C:\Users\Mu5tache\Desktop\Debug\Cppl.exe"

2.顯示學(xué)生成績

☆3.排序統(tǒng)計成績☆

☆4.查找學(xué)生成績☆

☆5.刪除學(xué)生成績☆

☆6.修改學(xué)生信息☆

☆。-安全退出系統(tǒng)☆

.—

曹.

入M=

S

內(nèi)

1息/

香I

,

名?

請B

請1

S白

毒95

績96

(對實驗結(jié)果進行分析,問題回答,實驗心得體會及改善意見)

編程規(guī)定很具體,內(nèi)容也比較多,有一定難度。一方面,學(xué)生成績記錄是一個復(fù)

雜的數(shù)據(jù)結(jié)構(gòu),至少應(yīng)涉及學(xué)號,姓名,性別和成績。所以,必須建立一個類student,

用來記錄學(xué)號,姓名,性別和成績。此外還得建立一個類stuseore,用來記錄多個學(xué)

生的成績記錄。

我的大體思緒如下:

I.建立類學(xué)生類5tudent,它至少涉及學(xué)號number,姓名name,性別sex,成績c

hengjio

2.函數(shù)init(string&Name,string&Number,charSex,doub1cChengji)用

于輸入學(xué)生記錄。

3.建立學(xué)生成績記錄類stuscore,該類是學(xué)生成績記錄的集合。其成員函數(shù)則是

問題中規(guī)定的添加、顯示、查找、刪除、保存、導(dǎo)出等各種操作。

4.編寫各個功能的函數(shù)實體,簡樸來說就是各人功能的編寫。

本系統(tǒng)的重點就是要會建立兩個類。一個是學(xué)生類student,用來存放一個

學(xué)生的成績記錄,相稱于一個結(jié)構(gòu)體的功能吧。另一個類是學(xué)生成績記錄系統(tǒng)類stu

score,該類用來存放多個學(xué)生的成績記錄。難點就是stuscore類里的各個功能的實

現(xiàn)。總的來說,添加,顯示,查找,這三個功能比較容易,但是,刪除,保存,加載這三個

產(chǎn)功能就需要花點心思了,也許是平時用的比較少吧,生疏了??梢娭挥型ㄟ^平時多加練

結(jié)

習(xí),才干有助于自己鞏固知識點。

最后想說的是,調(diào)試程序真的很關(guān)鍵。調(diào)試程序需要較大的耐心。也許調(diào)試程序

的時間比自己編寫整個程序的時間還要長,下的工夫還要深,但這是一個程序員必須

了解,也必須接受的事實。有好幾次,幾個錯誤讓我很是頭疼啊,很想刪了,重新來過,

可是最后發(fā)現(xiàn),還是得有耐心去調(diào)試程序。

通過這個實驗的練習(xí),我也學(xué)到了很多東西,特別是加深了對類和對象理解和

應(yīng)用方面

(源程序清單等)

#inc1ude<iostream>

#inc1ude<fstream>

#include<slring.h>

#include<conio.h>〃用getch()();

usingnamespacestd;

//Student類

classStudent

(

public:

charname[20];

charId[20J;

intCnum;〃C課程得分

intMnum;//數(shù)學(xué)課程得分

intEnum;//英語課程得分

intsum;〃總分

Siudent+Next;

voidInput()

{

coutvv"\t\t請輸入學(xué)生的姓名:";Cin>>name;

請輸入學(xué)生的學(xué)號:";

附cout<<"\t\tcin?Id;

請輸入課程的成績:

錄cout<<"\t\tCcin?Cnum;

coutvV”\t\t請輸入數(shù)學(xué)課程的成績;cin?Mnum;

cout<<"\t\(請輸入英語課程的成績:";cin?Enum;

sum=Cnum+Mnum+Enum;

)

voidReadFile(istream&in)

(

in>>name>>Id?Cnum?Mnum>>Enuin?sum;

)

voidShow()

(

cout?"姓名:"vvname?end1?"學(xué)號:"<VId?endl?"C++:"<vCnum<<e

ndl

?"數(shù)學(xué):"V<Mnum?endl<<"外語:"<<Enum?endlV<"總成績:"VVs

um<<end1?endl?endl;

)

};

//Studenimassage類

c1assStudentmassage

(

publie:

Studcntmassage();

~Sludentmassage();

voidShowMenu();

voidFind();

voidSave();

voidModifyltem();

voidRemoveItem();

voidSwap(Stndent*,Student*);

voidSort();

//voidUnpass():

intListCoun(();

//voidAveragei):

voidDisplay()

(

for(Student*p=Head->Next;p!=End;p=p->Ncxt)

p->Show();

cout?"輸入任意字符!繼續(xù)……

getch();

)

voidAddItem()

(

End->lnput();

End->Next=newStudent;

End=End->Ncxt;

coutvv"添加成功!"?endl;

Cout<v”輸入任意字符!繼續(xù)……

getch();

)

private:

Student*Head,*End;

ifstreamin;

ofstreamout;

Student*FindItem(char*name)

{

for(Studentxp=Head;p->Next!=End;p=p->Next)//匹配成功則返回上一個

指針,不成功就返回空

if(!strcmp(p->Next->name,name))returnp;

rcturnNULL;

)

Student*FindlD(char*Id)

(

for(Student*p=Head;p->Next!=End;p=p->Next)//匹配成功則返回上一

個指針,不成功就返回空

if(!strcmp(p->Next->Id,Id))returnp;

rcturnNULL;

}

I;

//構(gòu)造函數(shù)

Studentmassage::Studentmassage()

(

Head=newStudcnt;

Head-、Next=newStudent:

End=Head->Next;

in.open("sort.txt");

if(!in)

coutvV"這是一個新系統(tǒng),無學(xué)生信息。請先輸入。"V<endl;

else

{

while(!in.eof())

(

End->ReadFile(in);

if(End—>name[0]=='\0')break;

End->Next=newStudent;

End=End->Next;

)

indose();

cout?"\t't讀取學(xué)生信息成功!”<<endl:

)

}

//析構(gòu)函數(shù)

Studentmassage::-Studentmassage()

(

Save();

for(Student*temp;Head—>Next!=End;)

(

temp=Head->Next;

Head->Next=Head->Next->Next;

deletetemp;

}

delctcHead,End;

}

//菜單

voidStudentmassage::ShowMenu()

{

cout?==========☆學(xué)生成績管理系統(tǒng)☆

=========="<<cnd1;

couivv"=======★★★★★★★★★★★★

★★★★★======="<<cnd1;

cout<<"=========★☆1.增長學(xué)生成績

☆★========="<<endl;

cout?"=========★☆2.顯示學(xué)生成績

☆★========="vVendl;

cou(?"=========★☆3.排序記錄成績☆

★二二二二二二二二二"Wend1;

cout<<"=========★☆4.查找學(xué)生成績

☆★========="?endl;

cout?"=========*☆5.刪除學(xué)生成績☆

★========="<<end1;

coutvv"=========*☆6.修改學(xué)生信息☆

★========='Vvendl;

cout?"=========*☆0.安全退出系統(tǒng)☆

★========="?endl;

cout?"\n\t\t\n\t\t請選擇:";

//查找函數(shù)

voidStudentmassage::Find()

(

charname[20],Id[10];

intx;

Siudent*p=NULL;

cout?M\n\t\t*******************為***木*******木*\n"?

cout?*'\t\tX1.按學(xué)生的姓名查找\n\t\t夾.2.按學(xué)生學(xué)號查找”;

cout?"\n\t\t*********************"***********\n請選擇十;

cin>>x:

switch(x)

{

casel:{coulVv"\t\l請輸入要查找的學(xué)生的姓名:";cin>>name;

if(p=FindItem(name))

(

p->Next->Show();

cout<V”輸入任意字符!繼續(xù)……”;

getch();

)

else

(

coutv<"\t\i沒有找到該姓名的學(xué)生!"<<\nV<endl;

coutvv"輸入任意字符!繼續(xù)……";

getch();

)

}break;

case2:

(

cout?”\Z請輸入要查找的學(xué)生的學(xué)號:";cin?Id:

if(p=FindID(Id))

(

p->Next—>Show()t

CoutV〈”輸入任意字符!繼續(xù)……

getch();

)

else

{

cout?"\t\t沒有找到該學(xué)好的學(xué)生!"V<、n'?endl;

coutvv”輸入任意字符!繼續(xù)……

getch();

}

}break;

)

)

//修改信息

voidStudentmassage::Modifyltem()//修改信息

(

charna

Student*p=NULL;

cout?"\t\t請輸入要修改的人的姓名:";cin>>name;

if(p=FindItem(name))

{

Coutvv”\t\t已找到學(xué)生的信息,請輸入新的信息!"?endl;

p->Ncxt->Input();

coutVv"修改成功!M?endl;

coutvv”輸入任意字符!繼續(xù)……

getch();

}

clsc

(

cout?"\t\t沒有找到!"<<endl;

COUKV”輸入任意字符!繼續(xù)……

getch();

)

}

//刪除信息

voidStudcntmassage::Removcltcm()//刪除信息

(

charname[20];

Student*p=NULL,*temp=NULL;

cout?"\t't請輸入要刪除的學(xué)生的姓名:"vVend1;cin?name;

if(p=FindItcm(name))

(

tcmp=p->Next;

p->Next=p—>Next->Next;

deletetemp:

cout?"\t\t刪除成功!"?end1;

cout?"輸入任意字符!繼續(xù)……

getch();

}

else

(

cout?"\t\t沒有找到!”v<endl;

cout?"輸入任意字符!繼續(xù)……

getch();

)

}

//

voidStudentmassagc::Swap(Student*pl,Student*p2)//互換兩個com

box變量的數(shù)據(jù)域

(

Student*tenip=newStudent;

strcpy(temp->name,pl->name):

strcpy(temp->Id,pl->Id);

temp->Cnum=pl->Cnum;

tcmp->Mnum=pl->Mnuni;

temp->Enum=p1->Enum;

temp—>sum=pl->sum;

strepy(pl->name,p2->name);

strcpy(p)->ld,p2->Id);

p1->Cnum=p2->Cnum;

p1->Mnum=p2—>Mnum;

pI->Enum=p2->Enum;

pl->sum=p2—>sum;

strepy(p2->name,temp->name);

strcpy(p2->Id,tcmp->Id);

p2->Cnum=temp->Cnum;

p2—>Mnum=temp->Mnum;

p2->Enum=lerrp->Enum;

p2->sum=tenip->sum;

)

//

intStudentmassage::ListCount()〃記錄當(dāng)前鏈表的記錄總數(shù),返I可一個整

數(shù)

(

if(!Head)

return0;

intn=0;

for(Studcnt*p=Head->Next;p!=End;p=p->Next)

(

n++;

}

returnn;

)

//

voidStudentmassage::Sort()〃對當(dāng)前鏈表進行排序

(

cout<<"Sorting...H?endI;

Student*p=NULL,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論