数据结构记录--学生管理系统
来源:互联网 发布:照片比较软件 编辑:程序博客网 时间:2024/06/07 00:36
HomeWeb BoardProblemSetStandingStatusStatistics
Submit: 975 Solved: 337
[Submit][Status][Web Board]
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
试编写一管理模拟系统,要求如下:
a)首先输出三科成绩中有补考的学生输出。
b)输入一个学生学号后,能查找到此学生的信息并输出结果(采用查找方法实现)
c)要求使用结构体,链或数组等实现上述要求.
d)先按总成绩高的优先输出,总成绩相同学号小的优先输出[Submit][Status][Web Board]
Problem I: 学生管理系统
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 975 Solved: 337
[Submit][Status][Web Board]
Description
现有学生成绩信息文件,内容如下:
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
试编写一管理模拟系统,要求如下:
a)首先输出三科成绩中有补考的学生输出。
b)输入一个学生学号后,能查找到此学生的信息并输出结果(采用查找方法实现)
c)要求使用结构体,链或数组等实现上述要求.
d)先按总成绩高的优先输出,总成绩相同学号小的优先输出
Input
第一行输入两个整数n,p(1 <= n <= 2000, 1 <= p <= 200000)分别表示学生的总数和查询数量。接下来n行每行输入四个数据,格式如下:
姓名(由英文字母组成,不超过20个字符),学号(由int范围内的整数),语文成绩,数学成绩,英语成绩。规定每门课程都是60分为及格线。
接下来p行每行需要输入一个整数,代表需要查询学生的学号。
Output
对于每一个询问,如果该生存在,则输出该学生的信息;如果该学生不存在,则输出“NOT FOUND”。
Sample Input
7 5Zhangyi 201501 90 90 90zhanger 201502 80 80 80zhangsan 201404 70 70 70Zhangsi 201504 60 60 60Zhangwu 201505 50 50 50wcr 1124 100 100 100loushangdashen 1234 60 60 602015012015032015051201506
Sample Output
Zhangwu 201505 50 50 50Zhangyi 201501 90 90 90NOT FOUNDZhangwu 201505 50 50 50NOT FOUNDNOT FOUND
HINT
Append Code
#include <iostream>#include <algorithm>#include <stdio.h>using namespace std;#define max 2005struct Type{ int sno; char name[22]; int china, math, english,sum;};struct Student{ Type r[max + 1]; int length ;};bool cmp (Type a, Type b){ return a.sno<b.sno;}bool com (Type a, Type b){ if(a.sum!=b.sum) return a.sum>b.sum; else return a.sno<b.sno;}//对全部学生的二分查找int search(int sno,Student &s){ int low = 1, high = s.length ; while (low <= high) { int m = (low + high) / 2; if(sno == s.r[m].sno) return m; else if (sno < s.r[m].sno) high = m - 1; else low = m + 1; } return 0;}int main(){ int s_num, q_num; // freopen("out.txt", "w", stdout); Student s,stub; //s是全部学生的集合,stub是补考的学生的集合 s.length = 0; stub.length = 0; scanf("%d %d",&s_num,&q_num); int index = 1; for (int i = 1; i <= s_num; i++) { scanf("%s %d %d %d %d",s.r[i].name,&s.r[i].sno,&s.r[i].china,&s.r[i].math,&s.r[i].english); s.r[i].sum = s.r[i].china + s.r[i].math + s.r[i].english; s.length++; if (s.r[i].china < 60 || s.r[i].english < 60 || s.r[i].math < 60) { stub.r[index++] = s.r[i]; stub.length++; } } sort(stub.r+1,stub.r+stub.length+1,com); sort(s.r+1,s.r+s.length+1,cmp); for (int j = 1; j <= stub.length; j++) { printf("%s %d %d %d %d\n",stub.r[j].name,stub.r[j].sno,stub.r[j].china,stub.r[j].math,stub.r[j].english); } for (int i = 1; i <= q_num; i++) { int sno; scanf("%d",&sno); int m = search(sno, s); if(m == 0) printf("NOT FOUND\n"); else { printf("%s %d %d %d %d\n",s.r[m].name,s.r[m].sno,s.r[m].china,s.r[m].math,s.r[m].english); } }}
0 0
- 数据结构记录--学生管理系统
- 数据结构之学生管理系统
- 数据结构课程设计总结--学生作业管理系统
- 数据结构——学生管理系统
- 数据结构记录--图书管理系统
- 数据结构--学生成绩管理
- 数据结构课设-学生管理系统C语言
- 数据结构-链表的简实现->学生管理系统
- 学生信息综合管理系统开发记录(数据库课程设计)
- 记录:做Hibernate+Struts2学生管理系统遇到的BUG
- 实习的随手记录-学生,教师,校长管理系统
- 数据结构 学生信息管理系统
- 一个学生管理系统
- 学生同学录管理系统
- 学生管理系统
- 销售学生管理系统
- 学生通讯管理系统
- 学生管理系统
- PHP学习之curl_init等知识
- ExecutorService
- 数据结构记录--综合测评成绩排序
- 腾讯云服务器无法通过终端远程连接(root用户)
- 随便写点什么
- 数据结构记录--学生管理系统
- 数组练习2
- 转一个automake的教程
- C语言写的控制台关机小程序
- 数据结构记录--排序
- (IOS自学)C语言基础学习(一)
- Android View的事件分发机制
- bzoj1455: 罗马游戏
- CSDN-markdown编辑器使用方法