| 查看: 349 | 回复: 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单科平均成绩 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<<"|---------------------------------------------------------|"< 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<<"|---------------------------------------------------------------------------|"< 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<<"|---------------------------------------|"< 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<<"---------排序(按总成绩)-----------"< { 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; } } |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有8人回复
最失望的一年
已经有17人回复
为什么nbs上溴 没有产物点出现呢
已经有6人回复
求推荐博导
已经有4人回复
存款400万可以在学校里躺平吗
已经有34人回复
求助一下有机合成大神
已经有4人回复
求推荐英文EI期刊
已经有5人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
疑惑?
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
请帮忙修改几个英文句子,谢谢
已经有1人回复
个人研究兴趣,请虫虫们帮检查语法错误,谢谢
已经有1人回复
修改意见回复中,有几个句子请专家翻译,谢谢!
已经有1人回复
Perl 生物信息学编程求助,运行出现问题,烦请帮忙查找一下错误,谢谢!
已经有3人回复
修改稿已投,发现错误,给主编发个邮件,是应该重投还是等?谢谢,急!
已经有3人回复
【求助】请大家帮忙解决这两个A类错误~谢谢~
已经有8人回复
稿件修改中发现一处错误能直接改过来吗?
已经有6人回复
请大家帮忙看一下 这段英文 有哪些语法错误 帮忙修改一下 谢谢
已经有3人回复
【求助】怎样修改五个B类错误
已经有3人回复
【求助】三个A类错误的修改
已经有5人回复
【请教】请教3个B错误,谢谢
已经有3人回复
【求助】有很多错误的程序,找不出来了
已经有18人回复
3楼2012-06-29 00:01:25
libralibra
至尊木虫 (著名写手)
骠骑将军
- 程序强帖: 40
- 应助: 817 (博后)
- 金币: 12914.1
- 红花: 64
- 帖子: 2238
- 在线: 287.3小时
- 虫号: 696514
- 注册: 2009-02-05
- 专业: 计算机软件

2楼2012-06-28 23:53:18













回复此楼