ITPUB??ì3
ITPUB论坛 » 移动与游戏开发 » 从主函数中提取调用函数

新一届的微软MVP评选已经开始,欢迎各位推荐!

标题: 从主函数中提取调用函数
离线 dotnetworker
一般会员



精华贴数 0
个人空间 0
技术积分 4690 (290)
社区积分 0 (1442324)
注册日期 2007-6-21
论坛徽章:33
开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠

发表于 2008-1-13 17:13 
从主函数中提取调用函数

我写了一个程序,不过代码全在主函数里,哪个大侠帮我把主函数中的5个分代码提取出来,变成5个调用函数,谢谢啦……程序在下面#include <iostream>
using   namespace   std;
int   main()
{
char   name[100];
int   point[100][100],i,num1,num2,t,n,j;
int   k=1;
cout < <"输入学生总人数:";
cin> > n;
cout < <"1.添加新的学生成绩" < <endl < <"2.修改学生成绩" < <endl < <"3.删除学生成绩" < <endl < <"4.统计学生总分,平均分" < <endl < <"5.查询学生成绩" < <endl;
while(cout < <"输入编号:   "&&cout < <"(输入0结束)" < <endl&&cin> > t&&t!=0)
{
if(t==1)
{
for(i=0;i <n;i++)
{
cout < <"name:   ";
cin> > name;
cout < <"1.物理成绩:   ";
cin> > point[1];
cout < <"2.数学成绩:   ";
cin> > point[2];
cout < <"3.英语成绩:   ";
cin> > point[3];
cout < <"4.生物成绩:   ";
cin> > point[4];
}
for(i=0;i <n;i++)
{
cout < <"学生" < <name < <"的成绩为:   " < <point[1] < <"     " < <point[2] < <"     " < <point[3] < <"     " < <point[4] < <endl;
}
cout < <"1.添加新的学生成绩" < <endl < <"2.修改学生成绩" < <endl < <"3.删除学生成绩" < <endl < <"4.统计学生总分,平均分" < <endl < <"5.查询学生成绩" < <endl;
k=1;
}
if(t==2)
{
cout < <"输入想修改成绩的学生编号:   ";
cin> > num1;
cout < <"输入想修改的科目编号:   ";
cin> > num2;
cout < <"输入新的成绩:   ";
cin> > point[num1-1][num2];
cout < <"修改后" < <endl;
for(i=0;i <n;i++)
{
cout < <"学生" < <name < <"的成绩为:   " < <point[1] < <"     " < <point[2] < <"     " < <point[3] < <"     " < <point[4] < <endl;
}
cout < <"1.添加新的学生成绩" < <endl < <"2.修改学生成绩" < <endl < <"3.删除学生成绩" < <endl < <"4.统计学生总分,平均分" < <endl < <"5.查询学生成绩" < <endl;
}
if(t==3)
{
cout < <"输入想删除的学生排列号:   ";
cin> > num1;
for(i=num1-1;i <n-k;i++)
{
name=name[i+1];
for(j=1;j <5;j++)
{
point[j]=point[i+1][j];
}
}
if(n <=k)
{
cout < <"无学生成绩存档,请重新输入学生成绩." < <endl;
}
else
{
cout < <"修改后" < <endl;
for(i=0;i <n-k;i++)
{
cout < <"学生" < <name < <"的成绩为:   " < <point[1] < <"     " < <point[2] < <"     " < <point[3] < <"     " < <point[4] < <endl;
}
}
cout < <"1.添加新的学生成绩" < <endl < <"2.修改学生成绩" < <endl < <"3.删除学生成绩" < <endl < <"4.统计学生总分,平均分" < <endl < <"5.查询学生成绩" < <endl;
k++;
}
if(t==4)
{
int   sum1=0,ave1=0,ave2=0,ave3=0,ave4=0;
int   sum2[100]={0};
for(i=0;i <n;i++)
{
sum2=sum2+point[1]+point[2]+point[3]+point[4];
}
for(i=0;i <n;i++)
{
cout < <"学生" < <i+1 < <"的总成绩为:   " < <sum2 < <endl;
}
for(i=0;i <n;i++)
{
cout < <"学生" < <i+1 < <"的平均分为:   " < <sum2/4 < <endl;
}
for(i=0;i <n;i++)
{
sum1=sum1+sum2;
}
for(i=0;i <n;i++)
{
ave1=ave1+point[1];
ave2=ave2+point[2];
ave3=ave3+point[3];
ave4=ave4+point[4];
}
cout < <"物理科目的平均分为:   " < <ave1/n < <" 数学科目的平均分为:   " < <ave2/n < <" 英语科目的平均分为:   " < <ave3/n < <" 生物科目的平均分为:   " < <ave4/n < <endl;
cout < <"全部学生的平均分为:   " < <sum1/n < <endl;
cout < <"1.添加新的学生成绩" < <endl < <"2.修改学生成绩" < <endl < <"3.删除学生成绩" < <endl < <"4.统计学生总分,平均分" < <endl < <"5.查询学生成绩" < <endl;
}
if(t==5)
{
cout < <"输入想查询的学生编号:   ";
cin> > num1;
cout < <"该生的物理成绩,数学成绩,英语成绩,生物成绩分别为:   ";
cout < <point[num1-1][1] < <"     " < <point[num1-1][2] < <"     " < <point[num1-1][3] < <"     " < <point[num1-1][4] < <endl;
cout < <"1.添加新的学生成绩" < <endl < <"2.修改学生成绩" < <endl < <"3.删除学生成绩" < <endl < <"4.统计学生总分,平均分" < <endl < <"5.查询学生成绩" < <endl;
}
else   if(t> 5 ¦ ¦t <0)
{
cout < <"输入错误,请重新输入" < <endl;
cout < <"1.添加新的学生成绩" < <endl < <"2.修改学生成绩" < <endl < <"3.删除学生成绩" < <endl < <"4.统计学生总分,平均分" < <endl < <"5.查询学生成绩" < <endl;
}
}
return   0;
}


只看该作者    顶部
离线 juanpeng
中级会员



精华贴数 0
个人空间 0
技术积分 4666 (294)
社区积分 0 (1441335)
注册日期 2007-6-21
论坛徽章:27
开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠

发表于 2008-1-13 17:14 
用Refactor做了一下
可以运行,有没有逻辑错误不知道:

C/C++ code
#include <iostream>
using   namespace   std;
char name[100];

void A(int point[100][100], int &i, int n, int &k)
{
    for(i=0;i <n;i++)
    {
        cout <<"name:   ";
        cin>>name;
        cout <<"1.物理成绩:   ";
        cin>>point[1];
        cout <<"2.数学成绩:   ";
        cin>>point[2];
        cout <<"3.英语成绩:   ";
        cin>>point[3];
        cout <<"4.生物成绩:   ";
        cin>>point[4];
    }
    for(i=0;i <n;i++)
    {
        cout <<"学生" <<name <<"的成绩为:   " <<point[1] <<"     " <<point[2] <<"     " <<point[3] <<"     " <<point[4] <<endl;
    }
    cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
    k=1;
}

int B(int point[100][100], int num1, int num2, int n)
{
    int i;
    cout <<"输入想修改成绩的学生编号:   ";
    cin>>num1;
    cout <<"输入想修改的科目编号:   ";
    cin>>num2;
    cout <<"输入新的成绩:   ";
    cin>>point[num1-1][num2];
    cout <<"修改后" <<endl;
    for(i=0;i <n;i++)
    {
        cout <<"学生" <<name <<"的成绩为:   " <<point[1] <<"     " <<point[2] <<"     " <<point[3] <<"     " <<point[4] <<endl;
    }
    cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
    return i;
}
void C(int point[100][100], int &i, int num1, int n, int &j, int &k)
{
    cout <<"输入想删除的学生排列号:   ";
    cin>>num1;
    for(i=num1-1;i <n-k;i++)
    {
        name=name[i+1];
        for(j=1;j <5;j++)
        {
            point[j]=point[i+1][j];
        }
    }
    if(n <=k)
    {
        cout <<"无学生成绩存档,请重新输入学生成绩." <<endl;
    }
    else
    {
        cout <<"修改后" <<endl;
        for(i=0;i <n-k;i++)
        {
            cout <<"学生" <<name <<"的成绩为:   " <<point[1] <<"     " <<point[2] <<"     " <<point[3] <<"     " <<point[4] <<endl;
        }
    }
    cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
    k++;
}
int D(int point[100][100], int n)
{
    int i;
    int   sum1=0,ave1=0,ave2=0,ave3=0,ave4=0;
    int   sum2[100]={0};
    for(i=0;i <n;i++)
    {
        sum2=sum2+point[1]+point[2]+point[3]+point[4];
    }
    for(i=0;i <n;i++)
    {
        cout <<"学生" <<i+1 <<"的总成绩为:   " <<sum2 <<endl;
    }
    for(i=0;i <n;i++)
    {
        cout <<"学生" <<i+1 <<"的平均分为:   " <<sum2/4 <<endl;
    }
    for(i=0;i <n;i++)
    {
        sum1=sum1+sum2;
    }
    for(i=0;i <n;i++)
    {
        ave1=ave1+point[1];
        ave2=ave2+point[2];
        ave3=ave3+point[3];
        ave4=ave4+point[4];
    }
    cout <<"物理科目的平均分为:   " <<ave1/n <<" 数学科目的平均分为:   " <<ave2/n <<" 英语科目的平均分为:   " <<ave3/n <<" 生物科目的平均分为:   " <<ave4/n <<endl;
    cout <<"全部学生的平均分为:   " <<sum1/n <<endl;
    cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
    return i;
}
void E(int point[100][100], int num1)
{
    cout <<"输入想查询的学生编号:   ";
    cin>>num1;
    cout <<"该生的物理成绩,数学成绩,英语成绩,生物成绩分别为:   ";
    cout <<point[num1-1][1] <<"     " <<point[num1-1][2] <<"     " <<point[num1-1][3] <<"     " <<point[num1-1][4] <<endl;
    cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
}
void F()
{
    cout <<"输入错误,请重新输入" <<endl;
    cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
}
int   main()
{
    int   point[100][100],i,num1,num2,t,n,j;
    int   k=1;
    cout <<"输入学生总人数:";
    cin>>n;
    cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
    while(cout <<"输入编号:   "&&cout <<"(输入0结束)" <<endl&&cin>>t&&t!=0)
    {
        if(t==1)
        {
            A(point, i, n, k);
        }
        if(t==2)
        {
            i = B(point, num1, num2, n);
        }
        if(t==3)
        {
            C(point, i, num1, n, j, k);
        }
        if(t==4)
        {
            i = D(point, n);
        }
        if(t==5)
        {
            E(point, num1);
        }
        else   if(t> 5 ||t <0)
        {
            F();
        }
    }
    return   0;
}


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问