中南大学 c++课设报告.docx
- 文档编号:9443017
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:20
- 大小:509.89KB
中南大学 c++课设报告.docx
《中南大学 c++课设报告.docx》由会员分享,可在线阅读,更多相关《中南大学 c++课设报告.docx(20页珍藏版)》请在冰豆网上搜索。
中南大学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; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南大学 c+课设报告 中南 大学 c+ 报告