24小时热门版块排行榜    

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

乐活人生

铜虫 (小有名气)

[求助] 帮帮我 这是个学生成绩管理系统 有错误改一下

谁能帮我一下 看看哪里错了 改过来 谢谢
#include
#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(){
        guanli *head,*p,*tail;
        head=new guanli;
        tail=head;
        for(int i=0;i<3;i++){
                p=new guanli;
        cout<<"输入学号:";
        cin>>p->xuehao;
        cout<<"输入姓名:";
        cin>>p->xingming;
        cout<<"输入性别:";
        cin>>p->sex;
        cout<<"输入籍贯:";
        cin>>p->jiguan;
        cout<<"输入成绩:";
        cin>>p->c>>p->e>>p->w;
           tail->link=p;
           tail=p;}
        tail->link=NULL;
        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;
        if(p){
                if(m->zongzong) m=p;
                else ;
                p=p->link;}
        cout<xuehao<<'\t'<xingming<<'\t'<sex<<'\t'<jiguan<<'\t'<zong< void allc(guanli *head){
        guanli *p=head->link;float a=0;
        if(p!=NULL){
                a=a+p->c;
                p=p->link;}
        cout<
void alle(guanli *head){
        guanli *p=head->link;float a=0;
        if(p!=NULL){
                a=a+p->e;
                p=p->link;}
        cout< void allw(guanli *head){
        guanli *p=head->link;float a=0;
        if(p!=NULL){
                a=a+p->w;
                p=p->link;}
        cout< void czuigao(guanli *head){
        guanli *p=head->link,*m=head->link;
        if(m->cc){
           m=p;
               p=p->link;}
        cout<xuehao<<'\t'<xingming<<'\t'<c< void ezuigao(guanli *head){
        guanli *p=head->link,*m=head->link;
        if(m->ee){
           m=p;
               p=p->link;}
        cout<xuehao<<'\t'<xingming<<'\t'<e< void wzuigao(guanli *head){
        guanli *p=head->link,*m=head->link;
        if(m->ww){
           m=p;
               p=p->link;}
        cout<xuehao<<'\t'<xingming<<'\t'<w< void chaxinming(guanli *head,char x){
        guanli *p=head->link;
        while(p!=NULL&&(p->xingming)!="x"
                p=p->link;
cout<xuehao<<'\t'<xingming<<'\t'<sex<<'\t'<jiguan<<'\t'< void chaxuehao(guanli *head,char x){
        guanli *p=head->link;
        while(p!=NULL&&(p->xuehao)!="x"
                p=p->link;
cout<xuehao<<'\t'<xingming<<'\t'<sex<<'\t'<jiguan<<'\t'<
guanli* paixu(guanli *head){
        guanli *p=head->link;
        float y=p->zong,t=0;
        p=p->link;
        for(int i=0;i<9;i++){
                if(yzong) y=t;t=p->zong;p->zong=y;}
        return head;}
void shanchu(guanli *head,char x){
        guanli *p=head->link;guanli *n=head,*m;
        for(int i=0;i<10;i++){
                n->link=p;
                m=p->link;
        if(p->xingming=="x"
                delete p;}
        n->link=m;
}
void main(){
        guanli *p;
    p=shuru();
        cout<<"学号"<         for(int i=0;i<3;i++){
     p=p->link;
         cout<xuehao<xingming<sex<jiguan<c<e<w<

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   关注TA 给TA发消息 送TA红花 TA的回帖

墨绿色

金虫 (正式写手)

其实最好的验证方式是直接运行一下
行侠仗义
3楼2012-06-27 21:19:07
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

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的回帖

乐活人生

铜虫 (小有名气)

不正确啊

[ 发自手机版 https://muchong.com/3g ]
4楼2012-06-28 16:58:30
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

乐活人生

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2012-06-27 20:40:46
楼主的程序流程还算清晰,但是代码有不少问题
许多循环的地方应该用while/for,却用了if,体现在几个求最大值和平均分总分的函数中
排序的时候应该双循环排,需要2个指针,
前后数目不一致,有时候是3,有时候10,肯定出 ...

有错误啊  查询和排序删除都不行 这有一份 你看一下
5楼2012-06-28 18:12:41
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿A区211,22408 321求调剂 +6 随心所欲☆ 2026-04-15 7/350 2026-04-15 21:45 by lbsjt
[考研] 296求调剂 +12 汪!?! 2026-04-09 13/650 2026-04-15 20:01 by 学员JpLReM
[考研] 复试调剂 +21 积极向上; 2026-04-10 23/1150 2026-04-15 12:50 by 西北望—风沙
[考研] 085600材料与化工329分求调剂 +24 叶zilin 2026-04-13 25/1250 2026-04-14 09:20 by 试管破裂
[考研] 求调剂,985材料与化工348分 +9 涵竹刘 2026-04-11 14/700 2026-04-13 22:26 by 涵竹刘
[考研] 一志愿西交机械专硕求调剂 +9 求上岸的小王 2026-04-10 9/450 2026-04-13 16:08 by jiangguiquan11
[考研] 一志愿211 0703化学 346分求调剂 +26 土豆er? 2026-04-09 29/1450 2026-04-13 15:15 by 独醉梦孤城
[考研] 一志愿085802 323分求调剂 +13 drizzle_9 2026-04-12 14/700 2026-04-13 10:26 by Faiz5552
[考研] 一志愿浙大生物325分求调剂 +9 zysheng 2026-04-12 9/450 2026-04-12 22:31 by yuyin1233
[考研] 296求调剂 +14 汪!?! 2026-04-10 16/800 2026-04-12 10:48 by zhouyuwinner
[考研] 085410 273求调剂 +10 X1999 2026-04-09 10/500 2026-04-12 09:24 by 逆水乘风
[考研] 一志愿西北工业大学289 085602 +33 yang婷 2026-04-10 34/1700 2026-04-12 08:11 by Art1977
[考研] 359求调剂 +5 胃痉挛累了 2026-04-11 5/250 2026-04-11 19:55 by lbsjt
[考研] 0859,337求调剂 +4 研s. 2026-04-10 4/200 2026-04-11 11:34 by caotw2020
[考研] 工科273调剂 +6 X1999 2026-04-09 7/350 2026-04-11 10:23 by zhq0425
[考研] 中科院总分315求调剂 +8 lallalh 2026-04-09 8/400 2026-04-10 19:30 by dick_runner
[考研] 301求调剂 +5 149. 2026-04-10 5/250 2026-04-10 15:45 by 柴小白
[考研] 调剂申请086000一志愿西北农林科技大学生物与医药320分-本科齐鲁工业大学 +3 美美女士 2026-04-09 3/150 2026-04-10 10:31 by liuhuiying09
[考研] 348求调剂 +3 candyyyi 2026-04-09 3/150 2026-04-09 17:20 by 段伟艳
[考研] 083200 初试305分 求调剂 暂不考虑跨专业 +15 Claireyyyy 2026-04-09 15/750 2026-04-09 16:11 by zhuimr
信息提示
请填处理意见