学生成绩管理程序--c++课程设计报告.docx
C+课程设计报告题目:学生成绩管理程序课程:C+程序设计院部):计算机与信息技术学院专业:软件工程班 级: 2015级4班学生姓名:工学 号:完成日期:2016年6月19日char ch 9;cout<<z,t 车牌号:;cin>>ch;for (int k=0;k<100;k+)(if (!strcmp(ch, carink. no)(if (position carin k. pos-1=1)(return (carink. pos-l);break;if (k=100) return k;)void car:putcar()(int t;while (1) (cout«,znntO©<<nnt货车请输入1,客车请输入2,轿车请输入3,其他请输入4: «z,nntnn;cin>>t; if (t=l) (carini. fee=7. 0;break;)else if(t=2)(carini. fee=5. 0;break;)else if(t=3)(carini. fee=4. 0;break;)else if(t=4)carini. fee=4. 0;break;cout输入错误!请重新输入:n;if (i=100)cout<<对不起,车位已满! n;carini. pos=i+l; 自动输出车位号cout«nntOcout<<,znnt 车位号:z/<<carini. pos<<endl;catimei. getime();cout«z,nnt 现在时间是:hour<<: <<catimei. min<<endl; cout<<,znntOOz,<<endl;)void car:takecar() (int hourl, mini;double charge;if(poi<100) (position poi=0;重新设置为空位hourl=catimepoi. hour;minl=catiniepoi. min;catimepoi. getime();hourl=catimepoi. hour-hour1;minl=catimepoi. min-minl;if(minl<30)计算出停车时间charge=carinpoi fee*hourl+carinpoi. fee*0. 5; elsecharge=carinpoi fee*hourl+carinpoi. fee;cout«,t车费为:charged元.n; 计算出车费输出 ) elsecout«,zt 无此车! n; void Time:getime() (struct tm *newtime; 获取停车时间time_t long_time;time( &long time );newtime = localtime( felongtime );hour=newtime->tm_hour;niin=newtinie->tin_iiiin;void search no() (int poi=comp();if(poi<100)cout<<z/t 此车已入库,车位为:<<poi+lendl; elsecout«t此车没有入库。n; 根据车牌号查询是否入库 void search_pos() ( int loc;cout«z,t车位号:;/根据车位查询车位状态 cin>>loc;if (positionloc-1=1) (cout<<z,t 车牌号:<carinlocT. no<<endl;cout«z,t 停车时间:,z<<catimeloc-l. hour<<z,:,<<catime loc-1. min<<endl;停车直 到现在的时间elsecout<<z,t此车位无车! ;课程设计目的2任务与要求13主要数据构造(类函数)2程序功能构造25功能测试36课程设计总结77附:课程设计源代码1 .课程设计目的1)稳固和加深学生对C+课程 基本知识的理解和掌握;2)掌握C+编程和调试的 基本技能;(3)利用C+进展简单软件设计的基本思路和方法,初步理解面 向对象编程思想;4)提高学生运用C+解决实际问题的能力;5)提高学生综合运用C+编程知识的能力;16)培养学生工程设计和综合分析的能力;7)培养和提高学生书写课程设计报告的能力;8培养学生实际操作能力和团结协作能力,为后续课程的学习打 下坚实的根基。2 .课程设计任务与要求任务:编写停车场管理程序,用于停车场对车辆的管理。程序能够实 现可用车位统计与查询、零车位提示、停车时长统计、按车型时长收费、 管理员收费累计等功能。要求:编写停车场收费管理系统,定义汽车类Car和管理员类 Manager, Car 类有 number (车牌号),model (车型)、et (enter time,入场 时间)、qt (quit time) > price (每小时收费价)、cost (费用)等属性, Manager类有id和key等,实现以下收费功能:可用车位统计与查询; 零车位提示;停车时长统计;按车型时长收费;管理员收费累 计。主界面如下:3 .主要数据构造类,函数主函数:int main);停车函数:void putcar ();取车函数:void tackcar ();时间函数:string timel;判断车位函数:int juge;4 .程序功能构造程序主要功能如图1所示。用户登录用户名和密码正确进入系统的截图查询历史信息-输入车牌号的界面车辆类型选择界面查询信息界面按车牌查询界面按车位查询界面历史信息查询界面收费界面6 .课程设计总结经过一个学期对?C+程序设计?的学习,我学习到了 基本的理论知识,了解到 了 C+语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实 的根基。通过C+课程设计,一方面是为了检查这一个学期来计算机语言的学习成果,另 一方面也是为了让我们进一步掌握和熟练地运用它,与此同时,也能够让我们认清自 己在C+学习方面的缺乏之处和薄弱环节,并加以弥补和稳固。通过对教学管理系统 的程序设计,进一步的稳固了用C+语言编写程序的能力,并且利于更好的掌握C+ 语言!在为期近一周的C+课程设计中,我体会颇多,学到了很多东西。我懂得了用 Microsoft Visual C+ 6. 0对程序进展调试,我加强了对C+程序设计这门课程的认 识,并且复习了自己以前学习到的知识,自己的逻辑思考能力也提高不少。这些都使 得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰, 相信会为自己以后的学习和工作带来很大的好处。最重要的还是激发了我编程的兴趣 和热情,让我从一个只懂理论变成了能做一些小型程序。整体地评价这次课程设计, 我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又 学到了一些新的知识。像停车场管理系统这样的应用程序的设计和创立,经历了平时 在课堂和考试中不会出现的难题和考验。而这些问题,又都是课本上很少提到的、更 深一层的实践与知识相结合的问题,这并不是我们平时只靠课本,就可以轻易解决的。 所以,锻炼了我们面对难题,学会用已掌握的知识去解决具体问题的能力,进一步培 养了独立思考问题和解决问题的能力。特别是学会了在Visual C+中如何调试程序的 方法。当然,教师的指导和同学的帮助也是不可无视的,他们给了我许多提示和帮助, 教会了我编译复杂程序的方法。总而言之,这次C+程序设计实践让我收获很大。7 .附件:程序源代码ttinclude <iostream>ttinclude <stdio.h> ttinclude <string> ttinclude <time. h> #include<fstream> using namespace std; class car (public:char no9;int pos; double fee; void putcar (); void takecar (); ); class Time ( public: int hour; int min;void getime();); int i,poi;int position100 = 0;全局变量 car carin100;Time catime100; int jugeO ; int comp (); void search no (); void search_pos(); void main() (/用户登录 const char ha10=wangbing;管理员用户名 const char hb10="1427”;管理员密码 char cn10,cm10;int ci=0; while (1) (cout<请输入管理员用户名:; cin>>cn;if (strcmp(ha, cn) (cout<< 输入错误! n; ci+;if (ci=3) return; continue; ) elsecout<请输入密码:; cin>>cm;if(!strcmp(hb, cm)break;else(cout<J密码错误! n;ci+;if (ci=3)return;continue;)/主程序 int k;cout<< 请选择:«z,nntO 1 ,泊车操作«,znntO 2.取车操作«z,nntO 3,查询信息«z,nntO 4. 退出 «,nntOnn;ofstream outfile(车辆信息.txt,ios: :app);if(! outfile)cerr<<,open error! z,<<endl;exit (1);/ifstream infile (车辆信息.txt”, ios: : in);/if(! outfile)/ cerr<<z,open error!,<<endl;/exit (1);while (cin>>k)(if (k=l)(i=juge ();cout«,zt 车牌号:;cin>>carini. no;carini. putcar ();cout请选择:«,nntO 1.泊车操作«,nntO 2,取车操作«z,nntO 3.查询信息«/znntO 4. 退出 «/znntnn;string timel;time_t t;time(&t);timel=ctime(&t);cout«timel ;导入系统时间 outf ile<<carini. no<< "<<tiniel<<endl ;/保存车辆信息。continue;)if(k=2)(poi=comp ();carinpoi. takecar();cout« 请选择:«,znnt«,,nntO 1.泊车操作。«z,nntO 2.取车操作«,znntO 3.查询信息«z,nntO 4.退出«"nntnn;continue;)if (k=3)(int x;while (1)«,nnt查询车牌号请选择1,查询车位请选择2,查询历史信息请选择3,退出请选择4: «z,nntnn;cin>>x;if (x=l)(search_no();break;else if(x=2)(search_pos();break;)else if(x=3)string a, timel 100 5;定义二维数组读取数据 int i, j, m, n;ifstream infile(车辆信息.txt”, ios: in);if(! infile)cerr<<,zopen error! z,<<endl;exit (1);infile>>a;for (i=0;i<5;i+)for (m=0;m<100;m+)infile>>timelmi;cout<<,z;cout<<a<<z,;for (j=0;j<5;j+)for (n=0;n<100;n+)cout«timel n j <</将存储的数据用数组形式输出/查询历史信息else if (x=4)break;elsecout«z/t选择错误,请重新选择:;)cout<请选择:«,znntO 1.泊车操作«z,nntO 2.取车操作«z/nntO 3.查询信息«z,nntO 4.退出«"nntnn;)outfile. close();)int jugeO /判断出第一个空的车位(int j=0;while (positionj=l&&j<100)(j+;)if(j<100)positionj=l;return j;int comp ()