C++ 实习报告
C++ 实习报告1
针对我们这学期学的c++,假期进行了五天的实习。第一天听老师讲实习内容和提示的时候觉得思路挺明确的一个程序,哪有传说中的那么难。下午和同学讨论的时候觉得很有目的,只要按部就班的完成各步操作就可以了,有难度的也只是第二步。这一步要进行判断,这就需要多个输出函数;还要冒泡法给工作排序,工资的计算不是在类中完成的——挺棘手的一个问题。 第二天上机的时候也很快完成了第一步,觉得还行,慢慢来五天完全可以完成。后来也就没怎么好好思考,没想到第二天遇到麻烦了,编不出第二步了。第三天下午也没调试好,第一步输入的数据在第二步统计的时候怎么也数不出来,我从头至尾研究了多次,没发现一点问题,请舍友帮我检查也说没错,到了傍晚还是看不出来。哎!又找一个人给我看了看,竟然错得那么幼稚,类外定义了全局对象,在数据输入put()函数里又重新定义了对象,这样在put()输入的数据无法用到其他函数中,自然统计的时候都是默认值了。
就这么一个小小的错误整得我一天一晚上寝食难安。
编程序时深深感受到要不得半点马虎,有时少一个“}”或“”都会导致程序语法错误;由于编程序经常要变换输入法,很容易输进中文字符,这也会导致语法错误;调用类里重名函数时要注明属于哪个类的。
第三天的时候第二步基本都编出来了,傍晚那时我没检查出错误来的`时候,实在是把我急坏了,借了台电脑,在那安静专心的研究程序,舍友帮我检查出错误来之后,编程序有了感觉,那时已经22:00多了,竟然没有一丝睡意。
后来舍友们陆续睡觉了,可我就是不愿睡。可能是出于自尊心需要,别人都编出来了,自己编不出来,让我无法接受;也可能是第二步出来了急于尽快搞定。从19:00到凌晨4:00一直在那儿编程序了,一次次地听到铃声响竟然没有上床睡觉的冲动,满脑袋只有一个想法:认真编程序,争取晚上搞定。后来差不多了,只有备份不怎么完善,当时电脑已经用了好长时间了,实在不忍心一直用人家的电脑,只好关机睡觉了。
这几天可以说是两耳不闻窗外事,一心只顾编程序了,电话都懒得打,只想尽快把程序搞定,晚上没有电脑用,我们三个女生就去网吧,只是那儿没有vusual-c++,只好作罢。 虽然我们一直在编程序,觉得挺累的,其实还有比我们更累的——我们的老师。我们是每天只有半天的实习时间,可是老师却整天在机房里,看得出来,老师连坐下休息的时间都没有,刚
要喝点水,立马就被一个同学叫去了,实习完那天下午看见老师都不想走路了,实习报告《c++程序实习报告》。太累了,一天站7小时,还一直给别人检查程序,太忙了。想想老师这么认真,我们还有什么理由不认真呢?
只有五天的实习,却让我受益匪浅:这不仅是一次对我们的c++掌握和运用的熟练程度的检查,更是一次磨练我们耐性、培养认真态度的机会。这次实习让我深刻体会到“细节决定成败,态度决定一切”;更让我 从 老师身上学到了很多在以后工作中需要的优秀品质。相信这会在我今后的学习和以后的工作很有帮助。
通过完成本次面向对象程序设计的任务,使我熟练和掌握了上学期所学的有关visual c++中的一些主要知识点和应用点,如类的定义,类的实现,对象的定义,类的继承等等。可以所学有所学,所有所用,不至于自己所学知识由于没有经历可用过程,而放弃对它的兴趣。
第一天上课时候听老师讲,第一反应是这可怎么做了。当时有些迷茫。但是事在人为,下午回去之后在宿舍苦心研究,终于在整体上有了一定的把握。我们可以先定义一个基类,再派生三个子类,然后在类外定义函数。有人数规定,我们就定义相应长度的对象数组,最后在实现程序功能时,用函数调用就行。
于是当晚很快就完成了第二天的预习报告,上机调试时也没什么大问题,就这样第二天顺利通过。
虽说接下来的统计没那么容易,但就顺着数据顺利输入的喜悦心情,我还是较好的完成了这个任务。在类外定义一个函数用来输出雇员的基本情况,表头,表尾直接在统计函数中输出,也就是在统计函数中调用函数。打印与统计有异曲同工之妙,所以在统计做出之后,打印自然而然的也就很快完成了。
接下来的数据备份中,遇到了一个小问题,一开始以为也是函数中调用打印函数中用的那函数。其实不然,如若那样,又变成了打印。那我们就直接输出,但详细资料是受保护的,不能直接输出,那还得调用函数。于是在每个类中的公共成员中定义了直接返回的函数,接下来顺利完成了备份。调用头文件里的exit(int)函数,可以用if()语句进行判断是否确定退出。程序顺利完成。
面向对象程序设计作为一门软件设计的课程,具有极强的实践性,使我加强了灵活应用理论知识的能力及面向对象程序设计技能。
此次,应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题。而这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对
难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。
当然,此次任务的完成,也体现出同学之间的团结精神。所遇种种难以解决的问题,大家都会把它当作共同遇到的问题,在一起共同探讨,共同发挥自己所学和所知,投入式的互相帮助和解决困难。
C++ 实习报告2
实验一 成绩管理系统 Grade Management System 一、初始化部分
输入数据包括:学生姓名,学号,科目名称,科目成绩(至少列出3门课程,至少5个学生),编写一个初始化函数完成初始数据的输入。
要求:采用键盘输入的方式,并将输入数据保存到文件中。文件的内容和格式,根据题目要求,可以自己决定。 可以借鉴的思路【不限】:可以设计三个文件:学生Student(存储学生的基本信息,如学生姓名Stu_Name、学生学号Stu_ID,采用结构体),课程科目Course(存储课程名称Cou_Name,课程编号Cou_ID等,采用结构体),选课情况
Sel_Course(课程编号Cou_ID, 学生学号Stu_ID,成绩Score等,采用结构体) 说明:
同学们也可以不按照我的思路,自己设计存储文件。^_^ Student Course
图1 三个文件的ER图 struct Student {
String Stu_name; Int Stu_ID; Boolean Stu_Sex; };
将结构体的数据存入永久介质磁盘文件中。 图2 结构体Student实例 二、实现功能
? 计算平均值Avg:包括每门课程的平均值,和每个学生所有课程的平均值。
? 计算最高分Max:包括每门课程的最高分,和学生平均分的最高分,并给出最高分对 应的学生姓名和学号。
? 计算最低分Min:包括每门课程的最低分,和学生平均分的最低分,并给出最低分对 应的学生姓名和学号。
? 计算每门课程成绩不及格(<60分)以及优秀(大于90分)的学生个数Count。 ? 计算每门课程的标准方差Variance。 ? 查询功能Query:可以根据输入的学生姓名或者学号,查询该学生的所有课程的成绩。 ? 排序功能Sort:按照从高到低的顺序,对每门课程的成绩进行排序,对学生平均分进 行排序,并给出排序后成绩所对应的学生姓名和学号。 提示:
把初始化部分和7个功能设置为可以选择的菜单方式,也就是每次运行程序,可以让用户选择实现某个功能,各个功能用函数来实现,有些函数需要重载。
每个功能的输出可以输出到屏幕,也可以输出到文件。 #include #include
using namespace std; void new_line( ); void main() {
char choice; Menu:
cout << endl;
cout << \"-----------Main Menuitem------------\" << endl;
cout << \"0 Exit System\" << endl; cout<<\"1 System Initilization\"<
cout << \"2 Count the average value\" << endl; cout << \"3 Count the maximum value\" << endl; …….
cout<<”7 Find the student scores by ID or name”< cout << \"8 Ascending sort \" << endl;
cout << \"Choose the Appropriate option(0-8) :\"; cin.get(choice); new_line(); switch( choice ) { case 0: exit(1); case 1:
Add your system initilization function here; //for example: init_sys( ); break; case 2:
Add your count average value function here; //for example: avg(); break; case 3:
Add your count max value function here; //for example: max(); break; ......... case 8:
Add your ascending sort function here; //for example: sort(); break; default:
cout << \" Add your default handling function here\" << endl; }
system(\"cls\"); goto Menu; }
void new_line( ) {
char symbol; do {
cin.get(symbol); } while (symbol != \\n); }
图3 主菜单Menu实例 void book::alter() {
ofstream outData(\"temp.txt\ ifstream inData(\"pbook.txt\ if (!outData || !inData) {
cout <<<=\"\" < < } else {
while (getline(inData, str))
{
outData <<<=\"\"> }
outData.close(); inData.close();
ofstream out(\"pbook.txt\ ifstream in(\"temp.txt\ if (!out || !in) {
cout <<<=\"\" << }
out.close(); in.close();
cout <<<=\"\" < 因篇幅问题不能全部显示,请点此查看更多更全内容