第一周作业
(1)来源是同学的大作业
(2)小熊猫c++
(3)主要是没有成绩的总结,所以我就就加入了对与整体的成绩的总结这一功能进行改善
(4)case 10:for(i=n+add_num-1;i>=0;i--) studs[i].average=(studs[i].math+studs[i].English+studs[i].c+studs[i].physics)/4;
for(i=n+add_num-1;i>=0;i--)
{
if(studs[i].math>=90) math[0]++;
else if(studs[i].math>=80) math[1]++;
else if(studs[i].math>=60) math[2]++;
else math[3]++;
if(studs[i].English>=90) English[0]++;
else if(studs[i].English>=80) English[1]++;
else if(studs[i].English>=60) English[2]++;
else English[3]++;
if(studs[i].c>=90) c[0]++;
else if(studs[i].c>=80) c[1]++;
else if(studs[i].c>=60) c[2]++;
else c[3]++;
if(studs[i].physics>=90) physics[0]++;
else if(studs[i].physics>=80) physics[1]++;
else if(studs[i].physics>=60) physics[2]++;
else physics[3]++;
if(studs[i].average>=90) average[0]++;
else if(studs[i].average>=80) average[1]++;
else if(studs[i].average>=60) average[2]++;
else average[3]++;
}
cout<<"人数分布:"<<endl<<endl;
cout<<setw(20)<<"优秀人数"<<setw(12)<<"良好人数"<<setw(12)<<"及格人数"<<setw(13)<<"不及格人数"<<endl;
cout<<"数学"<<setw(14)<<math[0]<<setw(10)<<math[1]<<setw(12)<<math[2]<<setw(12)<<math[3]<<endl;
cout<<"英语"<<setw(14)<<English[0]<<setw(10)<<English[1]<<setw(12)<<English[2]<<setw(12)<<English[3]<<endl;
cout<<"程序设计"<<setw(10)<<c[0]<<setw(10)<<c[1]<<setw(12)<<c[2]<<setw(12)<<c[3]<<endl;
cout<<"物理"<<setw(14)<<physics[0]<<setw(10)<<physics[1]<<setw(12)<<physics[2]<<setw(12)<<physics[3]<<endl;
cout<<"平均成绩"<<setw(10)<<average[0]<<setw(10)<<average[1]<<setw(12)<<average[2]<<setw(12)<<average[3]<<endl<<endl;
cout<<"人数占比:"<<endl<<endl;
cout<<setw(20)<<"优秀人数占比"<<setw(16)<<"良好人数占比"<<setw(16)<<"及格人数占比"<<setw(17)<<"不及格人数占比"<<endl;
cout<<"数学"<<setw(10)<<(math[0]100)/(n+add_num)<<"%"<<setw(15)<<(math[1]100)/(n+add_num)<<"%"<<setw(16)<<(math[2]100)/(n+add_num)<<"%"<<setw(14)<<(math[3]100)/(n+add_num)<<"%"<<endl;
cout<<"英语"<<setw(10)<<(English[0]100)/(n+add_num)<<"%"<<setw(15)<<(English[1]100)/(n+add_num)<<"%"<<setw(16)<<(English[2]100)/(n+add_num)<<"%"<<setw(14)<<(English[3]100)/(n+add_num)<<"%"<<endl;
cout<<"程序设计"<<setw(6)<<(c[0]100)/(n+add_num)<<"%"<<setw(15)<<(c[1]100)/(n+add_num)<<"%"<<setw(16)<<(c[2]100)/(n+add_num)<<"%"<<setw(14)<<(c[3]100)/(n+add_num)<<"%"<<endl;
cout<<"物理"<<setw(10)<<(physics[0]100)/(n+add_num)<<"%"<<setw(15)<<(physics[1]100)/(n+add_num)<<"%"<<setw(16)<<(physics[2]100)/(n+add_num)<<"%"<<setw(14)<<(physics[3]100)/(n+add_num)<<"%"<<endl;
cout<<"平均成绩"<<setw(6)<<(average[0]100)/(n+add_num)<<"%"<<setw(15)<<(average[1]100)/(n+add_num)<<"%"<<setw(16)<<(average[2]100)/(n+add_num)<<"%"<<setw(14)<<(average[3]100)/(n+add_num)<<"%"<<endl;
for (i=0; i<4; i++)
{
math[i]=0;
English[i]=0;
c[i]=0;
physics[i]=0;
average[i]=0;
}
system("pause");
goto loop;
break;
(5)
(6)这次逆向工程首先是把代码看明白废了很多时间,毕竟不是自己写的,写的风格和自己不一样,但同学的注释能够让我更好的理解他的代码,所以在我们自己写代码时要写的清晰还要有一些注释辅助理解,方便能让别人看懂才能更好的合作。同时为了编写添加的代码,首先要和他的代码联系,在他的体系下写,比如他用的switchcase所以我需要用case来添加,才能更好的在他的体系下完善。同时写作过程中代码需要来回翻找他自己的变量,这一点毕竟繁琐和好时间。对于逆向工程的思考就是,写代码最好要条理清晰,附有注释,方便后续的修改和完善。