中南大学 c++课设报告.docx

上传人:b****7 文档编号:9443017 上传时间:2023-02-04 格式:DOCX 页数:20 大小:509.89KB
下载 相关 举报
中南大学 c++课设报告.docx_第1页
第1页 / 共20页
中南大学 c++课设报告.docx_第2页
第2页 / 共20页
中南大学 c++课设报告.docx_第3页
第3页 / 共20页
中南大学 c++课设报告.docx_第4页
第4页 / 共20页
中南大学 c++课设报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

中南大学 c++课设报告.docx

《中南大学 c++课设报告.docx》由会员分享,可在线阅读,更多相关《中南大学 c++课设报告.docx(20页珍藏版)》请在冰豆网上搜索。

中南大学 c++课设报告.docx

中南大学c++课设报告

中南大学

 

面向对象编程(C++)

实验报告

 

学生姓名郁博文

学院信息科学与工程学院

专业班级信息安全1302班

完成时间2014年6月28日

 

目录

 

1.实验内容2

2.实验13

2.1设计思路3

2.2实验过程3

3.实验23

3.1设计思路3

3.3实验过程3

4.实验33

4.1设计思路3

4.2实验过程3

5.总结3

 

面向对象编程(C++)

1.实验内容

实验1:

构建一个类。

实验2:

编写一个糖果机的系统,能够实现购买糖果、付款、找零等功能。

实验3:

编写一个程序,能够根据输入的学生信息,自动生成成绩报告。

2.实验1:

类与对象

2.1设计思路

构建一个学生类,进行初始化,输入学生学号和姓名信息,输出信息。

2.2实验过程

3.实验2:

糖果机

3.1设计思路

构建三个类,并且初始化这三个类,构造函数使其实现投币、找零、显示商品等功能,然后设计欢迎界面。

欢迎界面会显示商品名称及价格,用户投币后可以购买商品(可重复投币)。

选择所需商品后,自动找零退出。

3.3实验过程

4.实验3:

成绩报告

4.1设计思路

构建一个学生类,一个课程类,通过函数,输入学生姓名、学号、课程数目等信息,输出成绩报告。

如果未缴纳学费,将不显示成绩报告。

4.2实验过程

5.总结

实验一是在刚刚接触类和对象时编写的,是个非常简单的程序,但是正是通过这个程序,我开始接触面向对象的编程。

实验二是编写一个糖果机,本来应该实现连续购买的功能,但多次调试仍然直接跳过了那段else语句,至今没有找到错误在哪。

实验三编写得很艰难,之前没接触过文件方面的内容,所以没有做到直接读取txt文档后输出结果。

通过这几次实验,我发现了自身的不足,比如没有很好的书写习惯,考虑问题不周到,对于面相对象的理解不够深入等。

但在编程的过程中我体验到了一分耕耘一分收获的喜悦;多次调试后程序成功运行了,那时候的欢乐是我以前无法想象的。

果然,学习任何一门课程,只要学得用心,都可以从中体会到学习的快乐。

今后我的进步,想必都是从这一点一点敲入编译器的代码中获得的。

6.代码附录

实验1:

类和对象

头文件:

#include

usingnamespacestd;

classstudent

{

private:

intnum;

charname[10];

public:

voidsetdata()

{

cin>>num;

cin>>name;

}

voiddisplay()

{

cout<

cout<

};

};

studentstudent1,student2;

源文件:

#include"001.h"

intmain()

{

cout<<"请输入两位学生的学号和姓名:

"<

student1.setdata();

student2.setdata();

cout<<"学生的信息:

"<

student1.display();

student2.display();

return0;

}

实验2:

糖果机

头文件:

#include

#include

usingnamespacestd;

classmoneycounter

{

public:

moneycounter():

input_money(0.0f){}

~moneycounter(){}

voidgetgukemoney();

floatmoney_from_buyer();

voidclear();

voidreturn_money(float);

private:

floatinput_money;

};

classgoodsinfo

{

public:

goodsinfo():

name(""),price(0.0f),total(0){}

~goodsinfo(){}

voidset_goods(string,float,int);

stringgoods_name();

floatgoods_price();

intgoods_number();

private:

stringname;

floatprice;

inttotal;

};

classcandymachine

{

public:

candymachine();

~candymachine(){}

voidshowchoices();

voidinputmoney();

boolgoodsitem(int);

voidreturn_allmoney();

private:

moneycountermoneyctr;

goodsinfov_goods[5];

};

voidmoneycounter:

:

getgukemoney()

{

floatmoney;

cout<

"<

cin>>money;

input_money+=money;

cout<

"<

return;

}

floatmoneycounter:

:

money_from_buyer()

{

returninput_money;

}

voidmoneycounter:

:

clear()

{

input_money=0.0f;

return;

}

voidmoneycounter:

:

return_money(floatchange)

{

cout<

"<

}

voidgoodsinfo:

:

set_goods(stringn,floatp,intnum)

{

name=n;

price=p;

total=num;

}

stringgoodsinfo:

:

goods_name()

{

returnname;

}

floatgoodsinfo:

:

goods_price()

{

returnprice;

}

intgoodsinfo:

:

goods_number()

{

returntotal;

}

candymachine:

:

candymachine()

{

v_goods[0].set_goods("薯片",3,20);

v_goods[1].set_goods("巧克力",5,0);

v_goods[2].set_goods("口香糖",1.5,20);

v_goods[3].set_goods("牛轧糖",2,30);

v_goods[4].set_goods("水果糖",2,28);

return;

}

voidcandymachine:

:

showchoices()

{

cout.precision

(2);

cout.setf(ios:

:

fixed);

cout<

"<

cout<

for(inti=0;i<5;i++)

{

cout<

<<""<

}

cout<<"5退款并且退出"<

return;

}

voidcandymachine:

:

inputmoney()

{

cout<

"<

moneyctr.getgukemoney();

return;

}

boolcandymachine:

:

goodsitem(intselect)

{

intnumber=v_goods[select].goods_number();

if(number>0)

{

if(moneyctr.money_from_buyer()>=v_goods[select].goods_price())

{

floatchange=moneyctr.money_from_buyer()-v_goods[select].goods_price();

cout<

"<

if(change>0)

{

moneyctr.return_money(change);

}

returntrue;

}

else

{

cout<

"<

}

}

else

{

cout<

"<

}

returnfalse;

}

voidcandymachine:

:

return_allmoney()

{

cout<

"<

return;

}

源文件:

#include"标头.h"

#include

voidmain()

{

system("COLORb0");

candymachinecandy;

stringbuf;

boolgo_on(true),cash_on(true),got_it(true);

cout<

cout<<"价目表如下"<

cout<<"薯片3.00元"<

while(go_on)

{

while(cash_on)

{

candy.inputmoney();

cout<

(y/n)";

cin>>buf;

if(buf=="n"||buf=="no")

{

cash_on=false;

}

}

candy.showchoices();

cin>>buf;

intselect=atoi(buf.c_str());

if(select==5)

{

candy.return_allmoney();

go_on=false;

}

else

{

got_it=candy.goodsitem(select);

if(got_it)

{

go_on=false;

}

}

}

cout<

"<

}

实验3:

学生成绩报告

头文件:

#include

#include"course.h"

#include

usingnamespacestd;

classStudent

{

public:

stringname;

stringxuehao;

floataverage;

floatsum;

floatzongxuefei;

floatzong;

intchoose;

Coursea[5];

floatxuefei[5];

Student();

voidsetdata();

//voidsort();

//voidshow();

};

classCourse

{

private:

stringname;

intid;

intp;

public:

floatxuefen;

floatmoney;

floatmark;

voidset_data(string,int,float,float);

voiddisplay();

};

源文件:

#include

#include

#include"student.h"

#include

#include

usingnamespacestd;

Student:

:

Student()

{

for(inti=0;i<5;i++)

{

a[i].mark=0;

xuefei[i]=800;

}

zong=0;

zongxuefei=0;

choose=0;

sum=0;

}

voidStudent:

:

setdata()

{

cout<<"请输入学生姓名:

";cin>>name;

cout<<"请输入学生学号:

";cin>>xuehao;

}

voidCourse:

:

set_data(stringn,inti,floatx,floatm)

{

name=n;

id=i;

xuefen=x;

money=m;

}

voidCourse:

:

display()

{

cout<<"课程名称"<<'\t'<<"编号"<<'\t'<<"学分"<<'\t'<<"学费"<

cout<

}

intmain()

{

system("color0a");

ints;

intcount=0;

Courseb[5];

b[0].set_data("高数",1,5,400);

b[1].set_data("英语",2,2,200);

b[2].set_data("语文",3,2,300);

b[3].set_data("物理",4,3,400);

b[4].set_data("电路",5,2,100);

star:

cout<<"***********************************************************************"<

cout<<"1显示课程信息"<

cout<<"2录入学生信息"<

cout<<"***********************************************************************"<

intm;

cout<<"请选择操作1,2:

";

cin>>m;

system("cls");

switch(m)

{

case1:

for(inti=0;i<5;i++)

{

b[i].display();

}

getch();

system("cls");

gotostar;

case2:

for(inti=0;i<5;i++)

{

b[i].display();

}

cout<<"请输入录入学生的个数:

";

cin>>s;

Student*pt=newStudent[s];

for(inti=0;i

{

pt[i].setdata();

cout<

intc;

do{

intn;

intk;

cout<<"请输入课程编号:

";

cin>>k;

n=k-1;

pt[i].a[n]=b[k-1];

cout<<"请输入学生该课成绩:

";

cin>>pt[i].a[n].mark;

cout<

pt[i].sum+=pt[i].a[n].mark;

cout<<"请缴纳"<

cin>>pt[i].xuefei[n];

if(pt[i].xuefei[n]

pt[i].zong+=pt[i].a[n].xuefen;

pt[i].zongxuefei+=pt[i].a[n].money;

pt[i].choose++;

cout<<"继续选课请按1,退出请按0...:

";

cin>>c;

}while(c==1);

pt[i].average=pt[i].sum/pt[i].choose;

}

system("cls");

cout<<"学生分数报告如下:

"<

cout<<"姓名"<<'\t'<<"学号"<<'\t'<<"高数"<<'\t'<<"英语"<<'\t'<<"语文"<<'\t'<<"物理"<<'\t'<<"电路"<<'\t'<<"总学费"<<'\t'<<"总学分"<<'\t'<<"平均成绩"<

for(inti=0;i

{

cout<

for(intj=0;j<5;j++)

{

if(pt[i].xuefei[j]==b[j].money){cout<

elseif(pt[i].xuefei[j]

else{cout<<"未选"<<'\t';}

}

cout<

cout<

}

getch();

system("cls");

gotostar;

}

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1