目錄
●功能介紹
●案例
●代碼展示
●結(jié)果展示
用 C++設(shè)計(jì)一個(gè)程序,能提供下列功能:
1. 錄入學(xué)生成績(jī)信息。按照學(xué)號(hào),姓名,語文,數(shù)學(xué),英語的格式錄入學(xué)生的成績(jī)。
2.展示目前錄入學(xué)生的成績(jī)信息。以學(xué)號(hào),姓名,語文,數(shù)學(xué),英語的格式按列表展示。
3.查詢成績(jī)。根據(jù)學(xué)生的學(xué)號(hào)或姓名查詢學(xué)生的成績(jī)。
4.修改。通過姓名查詢找到相應(yīng)的學(xué)生記錄并對(duì)其進(jìn)行修改。
5.統(tǒng)計(jì)。計(jì)算學(xué)生的總分并按順序顯示輸出;統(tǒng)計(jì)班級(jí)學(xué)生的每門課程的平均分和全班人總分的平
均分并顯示;統(tǒng)計(jì)個(gè)人總得分小于班級(jí)總分的學(xué)生并顯示為不及格學(xué)生名單。
6.刪除。刪除指定學(xué)生成績(jī)信息。
7.清空。清空學(xué)生表所有成績(jī)信息。
1.錄入5個(gè)學(xué)生的信息:
? ①1001 zhangsan 80 90 70
? ②1002 lisi ?60 65 75
? ③1003 wangwu 75 85 100
? ④1004 zhaoliu 50 60 40
? ⑤1005 sunqi 70 85 95
2.展示已輸入5個(gè)的學(xué)生成績(jī)信息
3.用學(xué)號(hào)去查詢zhaoliu的各科成績(jī)
4.實(shí)現(xiàn)統(tǒng)計(jì),查看學(xué)生成績(jī)信息和不及格學(xué)生
5.對(duì)wangwu的語文成績(jī)進(jìn)行單科修改,修改為80(若要進(jìn)行整體修改,按操作提示執(zhí)行即可,這里只修改其語文成績(jī))
6.用姓名去查詢wangwu的各科成績(jī)
7.因?yàn)閘isi的成績(jī)錄入錯(cuò)誤,所以刪除他的所有信息
8.展示目前剩余學(xué)生的成績(jī)信息
9.操作完成清空學(xué)生成績(jī)信息
#include#include#includeusing namespace std;
class student { //父類
public:
string id;
string name;
int chinese;
int math;
int english;
};
class information :public student { //子類
public:
vectorV; //vector容器
void showmenu(); //展示功能菜單
void addinformation(); //錄入學(xué)生信息
void showperson(); //展示學(xué)生信息
void searchperson(); //查找學(xué)生信息
void alterperson();//修改學(xué)生信息
void staticperson(); //統(tǒng)計(jì)學(xué)生信息
void deleteperson(); //刪除學(xué)生信息
void emptyperson(); //清空學(xué)生信息
};
void information::showmenu()
{
cout<< "*************************"<< endl;
cout<< "*****1:錄入學(xué)生信息******"<< endl;
cout<< "*****2:展示學(xué)生信息******"<< endl;
cout<< "*****3:查找學(xué)生信息******"<< endl;
cout<< "*****4:修改學(xué)生信息******"<< endl;
cout<< "*****5:統(tǒng)計(jì)學(xué)生信息******"<< endl;
cout<< "*****6:刪除學(xué)生信息******"<< endl;
cout<< "*****7:清空學(xué)生信息******"<< endl;
cout<< "*************************"<< endl;
}
//父類、子類的全局聲明,以便于下面使用
student s;
information i;
void information::addinformation()
{
cout<< "請(qǐng)輸入學(xué)號(hào):"<< endl;
cin >>s.id;
cout<< "請(qǐng)輸入姓名:"<< endl;
cin >>s.name;
cout<< "請(qǐng)輸入語文成績(jī):"<< endl;
cin >>s.chinese;
cout<< "請(qǐng)輸入數(shù)學(xué)成績(jī):"<< endl;
cin >>s.math;
cout<< "請(qǐng)輸入英語成績(jī):"<< endl;
cin >>s.english;
i.V.push_back(s);
cout<< "<<添加成功>>"<< endl;
system("pause");
system("cls");
}
void information::showperson()
{
vector::iterator p = i.V.begin();
while(p!=i.V.end())
{
cout<< "學(xué)號(hào):"<< p->id<< " "
<< "姓名:"<< p->name<< " "
<< "語文成績(jī):"<< p->chinese<< " "
<< "數(shù)學(xué)成績(jī):"<< p->math<< " "
<< "英語成績(jī):"<< p->english<< endl;
p++;
}
system("pause");
system("cls");
}
int isexist(string id)
{
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end() ; p++)
{
count++;
if (p->id == id)
{
return count;
}
}
return -1;
}
int isexist_1(string name)
{
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (p->name==name)
{
return count;
}
}
return -1;
}
void information::searchperson()
{
cout<< "請(qǐng)輸入您要查找的學(xué)生:"<< endl;
cout<< "如果按照學(xué)號(hào)查找輸入1"<< endl;
cout<< "如果按照姓名查找輸入2"<< endl;
int n;cin >>n;
if (n==1)
{
string id;cin >>id;
if (isexist(id)==-1)
{
cout<< "此人不存在!"<< endl;
}
else
{
cout<< "此人存在!"<< endl;
int ret = isexist(id);
int count = 0;
for(vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (ret == count)
{
cout<< "學(xué)號(hào) "<< p->id<< "\t";
cout<< "姓名 "<< p->name<< "\t";
cout<< "語文成績(jī) "<< p->chinese<< "\t";
cout<< "數(shù)學(xué)成績(jī) "<< p->math<< "\t";
cout<< "英語成績(jī) "<< p->english<< "\t";
break;
}
}
}
}
else
{
string name;cin >>name;
if (isexist_1(name) == -1)
{
cout<< "此人不存在!"<< endl;
}
else
{
cout<< "此人存在!"<< endl;
int ret_1 = isexist_1(name);
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (ret_1 == count)
{
cout<< "學(xué)號(hào) "<< p->id<< "\t";
cout<< "姓名 "<< p->name<< "\t";
cout<< "語文成績(jī) "<< p->chinese<< "\t";
cout<< "數(shù)學(xué)成績(jī) "<< p->math<< "\t";
cout<< "英語成績(jī) "<< p->english<< "\t";
break;
}
}
}
}
system("pause");
system("cls");
}
void information::alterperson()
{
cout<< "請(qǐng)輸入您要修改的聯(lián)系人:"<< endl;
string name;cin >>name;
if (isexist_1(name) == -1)
{
cout<< "此人不存在!"<< endl;
}
else
{
cout<< "此人存在!"<< endl;
int ret_2 = isexist_1(name);
cout<< "單一修改-0"<< "多數(shù)修改-1"<< endl;
int sign; cin >>sign;
{
if (sign == 0)
{
cout<< "學(xué)號(hào)-1"<< "姓名-2"<< "語文成績(jī)-3"<< "數(shù)學(xué)成績(jī)-4"<< "英語成績(jī)-5"<< endl;
int select; cin >>select;
if (select == 1) {
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (ret_2 == count) {
cin >>p->id;
break;
}
}
}
if (select == 2) {
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (ret_2 == count) {
cin >>p->name;
break;
}
}
}
if (select == 3) {
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (ret_2 == count) {
cin >>p->chinese;
break;
}
}
}
if (select == 4) {
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (ret_2 == count) {
cin >>p->math;
break;
}
}
}
if (select == 5) {
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (ret_2 == count) {
cin >>p->english;
break;
}
}
}
}
if (sign == 1)
{
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (ret_2 == count)
{
cout<< "請(qǐng)輸入學(xué)號(hào):"<< endl; cin >>p->id;
cout<< "請(qǐng)輸入姓名:"<< endl; cin >>p->name;
cout<< "請(qǐng)輸入語文成績(jī):"<< endl; cin >>p->chinese;
cout<< "請(qǐng)輸入數(shù)學(xué)成績(jī):"<< endl; cin >>p->math;
cout<< "請(qǐng)輸入英語成績(jī):"<< endl; cin >>p->english;
break;
}
}
}
}
}
cout<< "信息修改成功!"<< endl;
system("pause");
system("cls");
}
void information::staticperson()
{
int allsum = 0;
for (vector::iterator p=i.V.begin();p!=i.V.end();p++)
{
int sum = 0;
sum = p->chinese + p->math + p->english;
cout<< "姓名:"<< p->name<< "語文:"<< p->chinese<< " "<< "數(shù)學(xué):"<< p->math<< " "<< "英語:"<< p->english<< " "<< "總分:"<< sum<< endl;
allsum += sum;
}
int sum1 = 0, sum2 = 0, sum3 = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
sum1 += p->chinese;
sum2 += p->math;
sum3 += p->english;
}
cout<< "全班語文平均分:"<< sum1 / i.V.size()<< endl;
cout<< "全班數(shù)學(xué)平均分:"<< sum2 / i.V.size()<< endl;
cout<< "全班英語平均分:"<< sum3 / i.V.size()<< endl;
cout<< "全班總分的平均分:"<< allsum / i.V.size()<< endl;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
int sum = 0;
sum = p->chinese + p->math + p->english;
if (sum< allsum /i.V.size() )
{
cout<< "得分小于班級(jí)總分平均分的不及格學(xué)生:"<< p->id<< " "<< p->name<< endl;
}
}
system("pause");
system("cls");
}
void information::deleteperson()
{
cout<< "請(qǐng)輸入您要?jiǎng)h除的學(xué)生:"<< endl;
string name;
cin >>name;
if (isexist_1(name) == -1) {
cout<< "查無此人!"<< endl;
}
else {
cout<< "找到此人!"<< endl;
int ret_3 = isexist_1(name);
int count = 0;
for (vector::iterator p = i.V.begin(); p != i.V.end(); p++)
{
count++;
if (ret_3 == count)
{
p=i.V.erase(p);
break;
}
}
cout<< "已刪除此學(xué)生信息!"<< endl;
}
system("pause");
system("cls");
}
void information::emptyperson()
{
i.V.clear();
cout<< "成績(jī)表已清空!"<< endl;
system("pause");
system("cls");
}
void text()
{
while(1)
{
i.showmenu();
int n;
cin >>n;
switch (n)
{
case 1:
i.addinformation();
break;
case 2:
i.showperson();
break;
case 3:
i.searchperson();
break;
case 4:
i.alterperson();
break;
case 5:
i.staticperson();
break;
case 6:
i.deleteperson();
break;
case 7:
i.emptyperson();
break;
}
}
}
int main()
{
text();
}
1.
2.
3.?
4.?
5.
6.
7.?
8.?
9.
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧