学生成绩管理程序--c++课程设计报告.docx
C+课程设计报告题目:学生成绩管理程序课程:C+程序设计院(部):计算机与信息技术学院专业:软件工程班级:2015级4班学生姓名:小学号:15560630402完成日期:2016年6月19日1课程设计目的2任务与要求13主要数据构造(类函数)24程序功能构造25功能测试36课程设计总结77附:课程设计源代码81.课程设计目的(1)稳固和加深学生对C+课程基本知识的理解和掌握;(2)掌握c+编程和调试的基本技能;(3)利用c+进展简单软件设计的基本思路和方法,初步理解面向对象编程思想;(4)提高学生运用c+解决实际问题的能力;(5)提高学生综合运用C+编程知识的能力;(6)培养学生工程设计和综合分析的能力;(7)培养和提高学生书写课程设计报告的能力;(8)培养学生实际操作能力和团结协作能力,为后续课程的学习打下坚实的根基。2 .课程设计任务与要求任务:编写停车场管理程序,用于停车场对车辆的管理。程序能够实现可用车位统计与查询、零车位提示、停车时长统计、按车型时长收费、管理员收费累计等功能。要求:编写停车场收费管理系统,定义汽车类Car和管理员类Manager,Car类有number(车牌号),model(车型)、et(entertime,入场时间)、qt(quittime)>PriCe(每小时收费价)、CoSt(费用)等属性,Manager类有id和key等,实现以下收费功能:可用车位统计与查询;零车位提示;停车时长统计;按车型时长收费;管理员收费累计。主界面如下:3 .主要数据构造类,函数主函数:intmain();停车函数:voidputcar();取车函数:voidtackcar();时间函数:stringtimel;判断车位函数:intjuge;4 .程序功能构造程序主要功能如图1所示。用户登录车牌号泊车操作车牌号取车操作查询车牌号查询车位查询历史信息6.课程设计总结用户名和密码正确进入系统的截图输入车牌号的界面车辆类型选择界面查询信息界面按车牌查询界面按车位查询界面历史信息查询界面收费界面经过一个学期对?c+程序设计?的学习,我学习到了基本的理论知识,了解到 了 c+语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的根基。通过C+课程设计,一方面是为了检查这一个学期来计算机语言的学习成果,另一方面也是为了让我们进一步掌握和熟练地运用它,与此同时,也能够让我们认清自己在C+学习方面的缺乏之处和薄弱环节,并加以弥补和稳固。通过对教学管理系统的程序设计,进一步的稳固了用C+语言编写程序的能力,并且利于更好的掌握C+语言!在为期近一周的C+课程设计中,我体会颇多,学到了很多东西。我懂得了用MicrosoftVisualC+6.0对程序进展调试,我加强了对C+程序设计这门课程的认识,并且复习了自己以前学习到的知识,自己的逻辑思考能力也提高不少。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序。整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识。像停车场管理系统这样的应用程序的设计和创立,经历了平时在课堂和考试中不会出现的难题和考验。而这些问题,又都是课本上很少提到的、更深一层的实践与知识相结合的问题,这并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,学会用己掌握的知识去解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。特别是学会了在VisualC+中如何调试程序的方法。当然,教师的指导和同学的帮助也是不可无视的,他们给了我许多提示和帮助,教会了我编译复杂程序的方法。总而言之,这次C+程序设计实践让我收获很大。7.附件:程序源代码#include<iostream>#include<stdio.h>#include<string>Itinclude<time.h>#include<fstream>usingnamespacestd;classcar(public:charno9;intpos;doublefee;voidputcar();voidtakecar(););classTime(public:inthour;intmin;voidgetimc(););inti,poi;intPoSition100=0;/全局变量carcarin100;Timecatime100;intJuge();intcomp();voidsearchno();voidsearchpos();voidmain()(/用户登录constcharha10="wangbing”;管理员用户名constcharhb10="1427”;管理员密码charcn10,cm10;intci=O;whiIe(I)(CoUt<<请输入管理员用户名:;cin>>cn;if(strcmp(ha,cn)(COUt<<"输入错误!n"ci+;if(ci=3)return;continue;)elseCOUt<<“请输入密码:cin>>cm;)if(!strcmp(hb,cm)break;elseCOUt<<"密码错误!n”;ci+;if(ci=3)return;continue;)/主程序intk;CoUt<<“请选择:"<<"nnt<<"nnt<<"nnt<<zznntO1 .泊车操作2 .取车操作3 .查询信息4 . 退出ofstream OUtfile("车辆信息.txt”, ios: :app); if(! outfile)cerr<<z,open error! *<<endl;exit(1);/ifstream infile("车辆信息.txt”, ios: in);/if(! outfile)/ cerr<<*open error! ,z<<endl;/exit(1);)while(cin>>k)if(k=l)i=juge();cout<<*t 车牌号:”; cin>>carini. no; carini.putcar();CoUt<<"请选择:”<<"nnt<<"nnt<<"nnt<<zznntO1 .泊车操作2 .取车操作3 .查询信息4 . 退出stringtimel;time_tt;time(&t);timel=ctime(&t);cout<<timel;/导入系统时间outfile<<carini.no<<""<<timcl<<endl;/保存车辆信息。continue;)if(k=2)poi=comp();carinpoi.takecar();CoUt<<"请选择:”<<"nntOOOOOOOOOOOOOOOz,<<zznntO<<"nnt<<"nnt<<z,nntO1 .泊车操作2 .取车操作3 .查询信息4 . 退出 <<zznntOOOOOOOOOOOOOOOnn,z;continue;)if(k=3)intx;whiIe(I)cout«"nntO©OOO©OOO©O©OOO©O©OOO©O©O©O©OOO©O*<<11nt查询车牌号请选择1,查询车位请选择2,查询历史信息请选择3,退出请选择4:<<"nntnn”;cin>>x;if(x=l)searchno();break;)elseif(x=2)searchpos();break;)elseif(x=3)stringa,timel1005;定义二维数组读取数据inti,j,m,n;ifstreaminfiIe("车辆信息.txt”,ios:in);if(!infile)ccrr<<*openerror!*<<endl;exit(1);)infile>>a;for(i=0;i<5;i+)for(m=0;m<100;m+)infile>>timelmi;CoUt<<”"cout<<a<<";for(j=0;j<5;j+)for(n=0;n<100;n+)CoUt<<timclnj"<"/将存储的数据用数组形式输出查询历史信息elseif(x=4)(break;)cout<<*t选择错误,请重新选择:";)CoUt<<“请选择:"< <nntO1.泊车操作”< <nntO2.取车操作< <nntO3.查询信息< <"nnt4.退出)outfile.close();)intjuge()/判断出第一个空的车位(intj=0;whiIe(positionj=l&&j<100)(j+;)if(j<100)positionj=l;returnj;)intcomp()charch9;cout<<*t车牌号:”;cin>>ch;for(intk=0;k<100;k+)(if(!strcmp(ch,carink.no)(if(positioncarink.pos-l=l)(return(carink.pos-l);break;)if(k=100)returnk;)voidcar:putcar()(intt;whiIe(I)(COUt<<"nntO©<<"nnt货车请输入L客车请输入2,轿车请输入3,其他请输入4:cin>>t;if(t=l)(carini.fee=7.O;break;)elseif(t=2)(carini.fee=5.O;break;)elseif(t=3)(carini.fee=4.O;break;)elseif(t=4)carini.fee=4.O;break;)COUt<<输入错误!请重新输入:n”;)if(i=100)COUt<<"对不起,车位己满!n”;Carini.pos=i+l;/自动输出车位号COUt<<"nntO©O©Q©Ocout<<*nnt车位号J<<carini.pos<<endl;catimei.getime();cout<<*nnt现在时间是:"<<catimei.hour