level 11
#include "stdafx.h"
#include<iostream>
#include<string>
#include<map>
#define FM 100
using namespace std;
int main()
{
map<string,int> m1;
map<string,int>::iterator m1_Iter;
map<string,int>::iterator m2_Iter;
int b=0;
//输入数据,保存数据
for(;b<30;b++)
{
char a;
cout<<"欢迎使用该系统!\n退出请输入y或Y,继续请输入任意“一个”字母或数字!!\n";
cin>>a;
if(a=='y'||a=='Y') break;
string aa;
int gg;
cout<<"请输入学生姓名\n"<<endl;
cin>>aa;
while(1)
{
cout<<"请输入成绩\n"<<endl;
cin>>gg;
if (gg>FM)
{
cout<<"分数以大于"<<FM<<"分,请重新输入!!\n";
continue;
}
m1.insert (make_pair(aa,gg));
break;
}
}
//输出平均数
int fen=0;
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
fen+=m1_Iter -> second;
int ping=fen/b;
cout<<"该班的平均分是\n"<<ping<<endl;
//输出低于平均分的学生姓名
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
{
int a=m1_Iter -> second;
if(a<ping)
cout<<"低于平均分的学生姓名\n"<<m1_Iter ->first<<endl;
}
//输出最高分以及最高分的学生姓名
string cc;
int a=0;
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( );m1_Iter++ )
{
for ( m2_Iter = m1.begin( ); m2_Iter != m1.end( ); )
{
(m1_Iter -> second)>(m2_Iter -> second)?cc=m1_Iter ->first:cc=m2_Iter ->first;
if(a==0) break;
m2_Iter++;
}
a++;
}
cout<<"最高分的学生姓名是"<<cc<<endl;
m1_Iter= m1.find(cc);
cout<<"最高分是"<< m1_Iter -> second <<endl;
system("PAUSE");
return 0;
}
2012年12月02日 12点12分
1
吧务
level 8
代码不是这个样子写的,公司面试的时候你要写成这样,录用你的几率是零。
2012年12月02日 12点12分
2
吧务
level 8
最要命的是本来一次遍历map就可以完成的东西为什么要分拆成多次对map的遍历。
2012年12月02日 13点12分
4
吧务
level 8
#idndef YOUR_FILE_NAME_HH
#define YOUR_FILE_NAME_HH
#include<iostream>
namespace your_namespace{
using namespace std;
class student_score
{
public:
ostream& operator<<(int score);
istream& operator>>(string& name);
student_score& operator=(student_score& stu_score);
student_score();
~student_score();
private:
vector< pair<string,int> > data;
...................
};
}//your_namespace
#endif//YOUR_FILE_NAME_HH
2012年12月02日 13点12分
5
吧务
level 8
忘记写
#include<vector> #
include #include
2012年12月02日 13点12分
6
level 11
#include"cz.h"
#include
#include
#include
#include<map> #
define FM 100
using namespace std;
int main()
{
map m1;
map::iterator m1_Iter;
map::iterator m2_Iter;
int b=0;
int ping=0;
//输入数据,保存数据
paocun(m1,b);
//输出平均数
scpjf(m1,b,m1_Iter,ping);
//输出低于平均分的学生姓名
dypjfxm(m1,m1_Iter,ping);
//输出最高分以及最高分的学生姓名
zgfjxm(m1,m1_Iter,m2_Iter);
system("PAUSE");
return 0;
}
2012年12月03日 00点12分
9
level 11
#define FM 100
using namespace std;
int paocun(map<string,int> &m1,int &b)//输入数据,保存数据
{
for(;b<30;b++)
{
char a;
cout<<"欢迎使用该系统!\n退出请输入y或Y,继续请输入任意“一个”字母或数字!!\n";
cin>>a;
if(a=='y'||a=='Y') break;
string aa;
int gg;
cout<<"请输入学生姓名\n"<<endl;
cin>>aa;
while(1)
{
cout<<"请输入成绩\n"<<endl;
cin>>gg;
if (gg>FM)
{
cout<<"分数以大于"<<FM<<"分,请重新输入!!\n";
continue;
}
m1.insert (make_pair(aa,gg));
break;
}
}
return b;
} void scpjf(map<string,int> &m1,int &b,map<string,int>::iterator m1_Iter,int &ping)//输出平均数
{
int fen=0;
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
fen+=m1_Iter -> second;
ping=fen/b;
cout<<"该班的平均分是\n"<<ping<<endl;
}
void dypjfxm(map<string,int> &m1,map<string,int>::iterator m1_Iter,int &ping)//输出低于平均分的学生姓名
{
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
{
int a=m1_Iter -> second;
if(a<ping) cout<<"低于平均分的学生姓名\n"<<m1_Iter ->first<<endl;
}
}
void zgfjxm(map<string,int> &m1,map<string,int>::iterator m1_Iter,map<string,int>::iterator m2_Iter)//输出最高分以及最高分的学生姓名
{
string cc;
int a=0;
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( );m1_Iter++ )
{
for ( m2_Iter = m1.begin( ); m2_Iter != m1.end( ); )
{
(m1_Iter -> second)>(m2_Iter -> second)?cc=m1_Iter ->first:cc=m2_Iter ->first;
if(a==0) break;
m2_Iter++;
}
a++;
}
cout<<"最高分的学生姓名是"<<cc<<endl;
m1_Iter= m1.find(cc);
cout<<"最高分是"<< m1_Iter -> second <<endl;
}
2012年12月03日 00点12分
10
level 11
我断网了。。。。。。
就只有一台没联网的电脑!没事就陪我同事来上上网
2012年12月03日 00点12分
12
吧务
level 8
C++的前景主要是系统开发,所以如果要是做应用的话还是选JAVA或者.NET C#之类的语言比较合适。当然钱也不少赚,月薪七八K应该没有问题的。
2012年12月03日 02点12分
13
吧务
level 8
呵呵,别怪我说的都是挑错误的话,老毛病了,见到代码就有点偏执。
那个再提个意见,STL容器传迭代器并不安全,因为容器的内存空间可能在你insert或delete数据的时候重新分配。
2012年12月03日 06点12分
14
大师阿 佩服 理解这么透彻
2015年01月07日 11点01分
吧务
level 8
吧主大人,小的在这有礼了。
你就是人中龙、雪中炭、海中岛、沙漠中的骆驼。
2012年12月03日 11点12分
15
level 11
// stu_gr.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
using namespace std; struct stu_gr
{
char student[30];
int fraction;
}clas_fract[30];
int main()
{
cout<<"欢迎使用该系统!\n请输入学生数!\n";
int st_qu,count=0;
cin>>st_qu;//输入数据,保存数据
for(count=0;count<st_qu;count++)
{
cout<<"请输入第"<<count+1<<"位学生姓名!\n";
cin>>clas_fract[count].student;
cout<<"请输入第"<<count+1<<"位学生分数!\n";
cin>>clas_fract[count].fraction;
}//输入数据,保存数据 //功能选择
int choose=0;//定义变量choose,表示输入的选择
int aggre_sco=0, average=0;
for(int i=0;i<count;i++) aggre_sco+=clas_fract[i].fraction;
average=aggre_sco/count;
do{ //使用循环,反复选择要操作的功能
cout<<"1.班级平均分 2.考试分数低于平均分的学生姓名 3.最高分以及最高分学生姓名 4.按任意键(除1,2,3)结束程序"<<endl;
cout<<"请输入要选择的功能\n";
cin>>choose;
switch(choose) //根据选择的不同,执行不同的操作
{
case 1: //输出班级平均分
cout<<"班级平均分为"<<average<<endl;
cout<<endl;
break;
case 2://输出考试分数低于平均分的学生姓名
for(int i=0;i<count;i++)
if(clas_fract[i].fraction<average) cout<<"低于平均分的学生姓名\n"<<clas_fract[i].student<<endl;
cout<<endl;
break;
case 3:
int pres_big;
for(int i=1;i<count;i++) clas_fract[i].fraction>clas_fract[i-1].fraction ?pres_big=i:pres_big=(i-1);
cout<<"最高分的学生姓名是"<<clas_fract[pres_big].student<<"\n最高分是"<<clas_fract[pres_big].fraction <<endl;
cout<<endl;
break;
default : exit(0);break;
}
} while(1);
return 0;
}
2012年12月07日 11点12分
19
level 11
看到代码,我就想起了,李俊,这家伙又进监狱了,老油条!他不多开发点学习软件出来,非要去搞赌博类的平台!!!!!
2015年01月07日 08点01分
21