24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1028  |  回复: 4
本帖产生 1 个 博学EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
乐活人生: 金币+45, 博学EPI+1, ★★★很有帮助 2012-06-27 20:45:00
楼主的程序流程还算清晰,但是代码有不少问题
许多循环的地方应该用while/for,却用了if,体现在几个求最大值和平均分总分的函数中
排序的时候应该双循环排,需要2个指针,
前后数目不一致,有时候是3,有时候10,肯定出错
float初始化不要用整型的0,虽然不出错,但是不正规
格式上,写代码不要吝啬空白,在=,+等符号前后加上空白不会影响程序运行,但是可读性大大增强

ps.论坛帖代码最好用[code][/code]包围起来,否则可能会有表情符号出现

下面调试通过了
CODE:
#include
#include
using namespace std;

// 数据结构
struct guanli
{
    char xuehao[20];
    char xingming[20];
    char sex[20];
    char jiguan[20];
    float c,e,w,zong,pingjun;
    guanli *link;
};

//输入数据
guanli * shuru(int num)
{
    cout << "共需输入 " << num << " 条记录:\n";

        guanli *head,*p,*tail;
        head = new guanli;
        tail = head;
        for(int i=0;i         {
            cout << "\n请输入第 " << i+1 << "条记录:\n";
                p=new guanli;
                cout << "学号: ";
                cin >> p->xuehao;
                cout << "姓名: ";
                cin >> p->xingming;
                cout << "性别: ";
                cin >> p->sex;
                cout << "籍贯: ";
                cin >> p->jiguan;
                cout << "成绩(eg. 20.5 30.5 40): ";
                cin >> p->c >> p->e >> p->w;
                p->link = NULL;

                // 添加节点
                tail->link = p;
                tail = p;
    }

        return head;
}

//计算总成绩平均成绩
void jisuanzong(guanli *head)
{
        guanli *p = head->link;

        if(p!=NULL)
        {
                p->zong = p->c + p->e + p->w;
                p->pingjun = p->zong/3.0;
    }
}

// 计算最高成绩
void zuigao(guanli *head)
{
        guanli *p = head->link,*m = head->link;
        while (p)
        {
                if(m->zong < p->zong) m = p;
                p=p->link;
    }

        cout << m->xuehao << '\t' << m->xingming << '\t' << m->sex << '\t' << m->jiguan << '\t' << m->zong << endl;
}

//C单科平均成绩
void allc(guanli *head)
{
        guanli *p = head->link;
        float a = 0.0;
        while (p)
        {
                a += p->c;
                p = p->link;
    }
        cout << "C单科平均成绩: " << a << endl;
}

//英语单科平均成绩
void alle(guanli *head)
{
        guanli *p = head->link;
        float a = 0.0;
        while (p)
        {
                a += p->e;
                p = p->link;
    }
        cout << "英语单科平均成绩: " << a << endl;
}

//物理单科平均成绩
void allw(guanli *head)
{
        guanli *p = head->link;
        float a = 0.0;
        while (p)
        {
                a += p->w;
                p = p->link;
    }
        cout << "物理单科平均成绩: " << a << endl;
}

//C最高成绩
void czuigao(guanli *head)
{
        guanli *p = head->link,*m = head->link;
        while (p)
        {
            if (m->c < p->c) m = p;
            p = p->link;
        }
        cout << m->xuehao << '\t' << m->xingming << '\t' << m->c << endl;
}

//英语最高成绩
void ezuigao(guanli *head)
{
        guanli *p = head->link,*m = head->link;
        while (p)
        {
            if (m->e < p->e) m = p;
            p = p->link;
        }
        cout << m->xuehao << '\t' << m->xingming << '\t' << m->e << endl;
}

//物理最高成绩
void wzuigao(guanli *head)
{
        guanli *p = head->link,*m = head->link;
        while (p)
        {
            if (m->w < p->w) m = p;
            p = p->link;
        }
        cout << m->xuehao << '\t' << m->xingming << '\t' << m->w << endl;
}

//用姓名查询
void chaxinming(guanli *head,char *name)
{
        guanli *p = head->link;
        while(p && strcmp(p->xingming,name)!=0) p=p->link;
        if (p) cout << p->xuehao << '\t' << p->xingming << '\t' << p->sex << '\t' << p->jiguan << '\t' << endl;
}

//用学号查询
void chaxuehao(guanli *head,char *id)
{
        guanli *p = head->link;
        while(p && strcmp(p->xuehao,id)!=0) p=p->link;
        if (p) cout << p->xuehao << '\t' << p->xingming << '\t' << p->sex << '\t' << p->jiguan << '\t' << endl;
}

// 排序
guanli* paixu(guanli *head)
{
        guanli *p = head->link;
        guanli *q, *tail, *temp;
        while (p && p->link) { tail = p; p = p->link; }

        float y = p->zong, t = 0.0;
        p = head->link;
        for (p = head->link; p && p!=tail; p = p->link)
        {
            for (q = p->link; q; q = q->link)
            {
                if (q->zong > q->zong) { temp = p; p = q; q = temp; }
            }
        }

        return head;
}

// 删除
void shanchu(guanli *head,char *name)
{
        guanli *p = head->link;
        guanli *n = head;
        while (p)
        {
            if (0==strcmp(p->xingming,name))
            {
                n->link = p->link;
                delete p;
                p = NULL;
            }
            else
            {
                p = p->link;
                n = n->link;
            }
        }
}

// 主函数
void main()
{
        guanli *p;
        p = shuru(2);

    while (p && p->link)
        {
                p = p->link;
                cout << "\n学号: " << p->xuehao
                << "\n姓名: " << p->xingming
                << "\n性别: " << p->sex
                << "\n籍贯: " << p->jiguan
                << "\nC成绩: "<< p->c <<"\tE成绩: " << p->e << "\tW成绩: " << p->w << endl;
        }
}

运行结果:
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-06-27 20:40:46
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 乐活人生 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085801电气专硕272求调剂 +20 电气李 2026-04-13 22/1100 2026-04-20 00:15 by Equinoxhua
[考研] 求计算机方向调剂 +3 Toffee2 2026-04-16 6/300 2026-04-19 22:37 by ll叶
[考博] 湖南大学刘巧玲课题组2026年第二批次博士研究生招生信息 +3 南风观火 2026-04-18 3/150 2026-04-19 21:44 by 淡雅人生27
[考研] 求调剂推荐 +9 小聂爱学习 2026-04-14 9/450 2026-04-19 17:03 by 中豫男
[考研] 085404 22408 309分求调剂 +10 lzmk 2026-04-14 11/550 2026-04-19 16:42 by 中豫男
[考研] 一志愿沪9,326求生物学调剂 +12 刘墨墨 2026-04-13 12/600 2026-04-18 23:31 by 路病情
[考研] 22408 312求调剂 +24 门路摸摸 2026-04-14 26/1300 2026-04-18 13:04 by wunaiy88
[考研] 260求调剂 +4 Zyt1314520.. 2026-04-17 5/250 2026-04-18 08:28 by babysonlkd
[考研] 急需调剂 +9 绝不放弃22 2026-04-15 10/500 2026-04-18 08:09 by chixmc
[考博] 申博/考博 +3 啃面包的小书虫 2026-04-17 4/200 2026-04-17 23:54 by 阳阳阳^_^
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
[考研] 295分求调剂 +5 ?要上岸? 2026-04-17 5/250 2026-04-17 16:51 by fenglj492
[考研] 322求调剂 +6 tekuzu 2026-04-17 6/300 2026-04-17 13:48 by Espannnnnol
[考研] 一志愿沪9,生物学326求调剂 +9 刘墨墨 2026-04-15 9/450 2026-04-16 17:14 by 崔崔崔cccc
[基金申请] RY:中国产出的科学垃圾论文,绝对数量和比例都世界第一 +7 zju2000 2026-04-14 18/900 2026-04-16 11:36 by 欢乐颂叶蓁
[考研] 一志愿A区211,22408 321求调剂 +6 随心所欲☆ 2026-04-15 7/350 2026-04-15 21:45 by lbsjt
[考研] 各位老师好,求调剂,本科211,一志愿天津大学生物与医药学硕,差两名录取。 +11 路六六jjj 2026-04-13 11/550 2026-04-14 16:01 by zs92450
[教师之家] 转长聘了 +7 简单化xn 2026-04-13 7/350 2026-04-14 14:50 by xindong
[考研] 考研调剂 +13 长弓傲 2026-04-13 14/700 2026-04-14 14:44 by zs92450
[考研] 085408光电信息工程专硕355一志愿长春光机所调剂 +6 王ymaa 2026-04-13 13/650 2026-04-14 11:33 by 王ymaa
信息提示
请填处理意见