24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 372  |  回复: 2

乐活人生

铜虫 (小有名气)

[求助] 有个小麻烦 请找出来错误 并改过来 谢谢

这是学生成绩管理系统  但查询排序和删除功能没有用 请完善一下
#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->c+m->e+m->w) < (p->c+p->e+p->w)) m = p;
                 p=p->link;
     }

        cout << m->xuehao << '\t' << m->xingming << '\t' << m->sex << '\t' << m->jiguan << '\t' <c+m->e+m->w<< 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 chaxingming(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!=NULL && 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 > p->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;   
             }
             else
             {
                 p = p->link;
                 n = n->link;
             }
         }
}

// 主函数
void main()
{      int a,b,c,d;char *e,*f,*g;

        cout<<"|---------------------------------------------------------|"<         cout<<"|                    学生成绩管理系统                     |"<         cout<<"|---------------------------------------------------------|"<                 cout<<"|-输入信息(1)  计算成绩(2)  查询信息(3)  排序(4)  删除(5)-|"<                 cout<<"|---------------------------------------------------------|"<                 cout<<"请输入序号进行相应的操作:"<                 cin>>a;
                switch(a)
                {
                case 1:
                        {
                        cout<<"输入多少学生的信息(输入个数):";
                                cin>>b;
               guanli *p;
               p = shuru(b);

          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;
                  }
                        }break;

                case 2:
                        {
             cout<<"输入多少学生的信息(输入个数):";
                                cin>>b;
               guanli *p;
               p = shuru(b);
               jisuanzong(p);

                           cout<<"|---------------------------------------------------------------------------|"<                            cout<<"|总成绩最高者(1)--C语言成绩最高者(2)--英语成绩最高者(3)--物理成绩最高者(4)--|"<                            cout<<"|---------------------------------------------------------------------------|"<                            cout<<"输入序号进行相应的操作:";
                           cin>>c;
                           switch(c)
                           {
                           case 1:zuigao(p);break;
                           case 2:czuigao(p);break;
                           case 3:ezuigao(p);break;
                           case 4:wzuigao(p);break;
                           }
                        }break;

                case 3:
                        {
               cout<<"输入多少学生的信息(输入个数):";
                                cin>>b;
               guanli *p;
               p = shuru(b);

               cout<<"|---------------------------------------|"<                            cout<<"|       学号查询(1)      姓名查询(2)    |"<                            cout<<"|---------------------------------------|"<                cout<<"输入序号进行相应的操作:";
                           cin>>d;
                           switch(d)
                           {
                           case 1:
                                   {
                                   cout<<"要查询学生学号是:";
                                   cin>>e;
                   chaxuehao(p,e);
                                   }break;

                           case 2:
                                   {
                                   cout<<"要查询学生名字:";
                                   cin>>f;
                   chaxingming(p,f);
                                   }break;
                           }
                        }break;
                case 4:
                        {

               cout<<"输入多少学生的信息(输入个数):";
                                cin>>b;
               guanli *p,*m;
               p = shuru(b);

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

                case 5:
                        {
                                cout<<"-------删除(按姓名)--------"<
               cout<<"输入多少学生的信息(输入个数):";
                                cin>>b;
               guanli *p;
               p = shuru(b);

                           cout<<"输入要删除的学生:";
                                   cin>>g;

                                shanchu(p,g);
                        }break;
                }
                }
回复此楼

» 猜你喜欢

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

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

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-06-29 00:15:32
就我昨天那code,你几乎没改啥啊
在main函数里面写个while loop,输入不是0的时候再switch,
然后针对每个case分别处理一下就行了.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-06-28 23:53:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

乐活人生

铜虫 (小有名气)

但排序和删除还有查找都不行啊

[ 发自手机版 http://muchong.com/3g ]
3楼2012-06-29 00:01:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 乐活人生 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 调剂 +3 JLLLLLLLLLL 2026-04-03 3/150 2026-04-03 11:29 by JourneyLucky
[考研] 085601,一志愿厦大334复试被刷求调剂 +6 曾仰之 2026-04-03 7/350 2026-04-03 11:05 by 啵啵啵0119
[考研] 专硕 351 086100 也是考的材科基 本科也是材料 +8 202451007219 2026-04-02 8/400 2026-04-03 09:50 by 蓝云思雨
[考研] 材料调剂 +12 一样YWY 2026-04-02 12/600 2026-04-03 09:46 by 无际的草原
[考研] 326求调剂 +10 崽崽仔 2026-04-02 10/500 2026-04-03 09:08 by 帕尔马拉特
[考研] 315求调剂 +11 小羊小羊_ 2026-04-02 11/550 2026-04-02 21:57 by wwytracy
[考研] 求生物学调剂 +10 15172915737 2026-04-01 10/500 2026-04-02 18:53 by 哦哦嗯哈
[考研] 413求调剂 +3 柯某某 2026-03-31 3/150 2026-04-02 16:59 by zzsw+
[考研] 296求调剂 +4 汪!?! 2026-03-31 7/350 2026-04-01 22:04 by 客尔美德
[考研] 307分求调剂 +14 (o~o) 2026-03-31 15/750 2026-04-01 20:43 by longlotian
[考研] 材料专业调剂 +5 啦啦啦哭 2026-03-31 6/300 2026-04-01 16:48 by JourneyLucky
[考研] 材料专硕306英一数二 +7 z1z2z3879 2026-03-31 7/350 2026-04-01 14:50 by ZXlzxl0425
[考研] 311求调剂 +10 李芷新1 2026-03-31 10/500 2026-04-01 14:38 by chenqifeng666
[考研] 生物考研337分求调剂 +4 cgxin 2026-03-30 6/300 2026-03-31 14:18 by 记事本2026
[考研] 334求调剂 +7 Trying] 2026-03-31 7/350 2026-03-31 12:33 by 无际的草原
[考研] 370求调剂 +3 080700调剂 2026-03-30 3/150 2026-03-31 01:09 by A_Zhe
[考研] 福建理工大学材料学院先进合金团队招收考研调剂学生 +3 大华金商都 2026-03-30 4/200 2026-03-31 01:04 by 方英俊602
[有机交流] 甲基亚磺磺酸钠和甲基磺酸酯反应机理 10+3 kaobao456 2026-03-29 4/200 2026-03-30 23:16 by nBu锂
[考研] 11408总分309,一志愿东南大学求调剂,不挑专业 +5 天赋带到THU 2026-03-29 6/300 2026-03-30 20:49 by dick_runner
[考研] 调剂 +4 GK72 2026-03-30 4/200 2026-03-30 20:32 by dick_runner
信息提示
请填处理意见