誰拿了最多的獎學金_第1頁
誰拿了最多的獎學金_第2頁
誰拿了最多的獎學金_第3頁
誰拿了最多的獎學金_第4頁
誰拿了最多的獎學金_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、誰拿了最多獎學金Problem description 某校的慣例是在每學期的期末考試之后發(fā)放獎學金。 發(fā)放的獎學金共有五種, 獲取的條件各 自不同: 1) 院士獎學金,每人 8000 元,期末平均成績高于 80 分( >80 ),并且在本學期 內發(fā)表 1 篇或 1 篇以上論文的學生均可獲得; 2) 五四獎學金,每人 4000 元,期末平均成 績高于 85 分( >85 ),并且班級評議成績高于 80 分( >80)的學生均可獲得; 3) 成績優(yōu) 秀獎,每人 2000 元,期末平均成績高于 90 分( >90 )的學生均可獲得; 4) 西部獎學金, 每人 1000 元,

2、期末平均成績高于 85 分( >85)的西部省份學生均可獲得; 5) 班級貢獻獎, 每人 850 元,班級評議成績高于 80 分(>80 )的學生干部均可獲得; 只要符合條件就可以 得獎, 每項獎學金的獲獎人數(shù)沒有限制, 每名學生也可以同時獲得多項獎學金。 例如姚林的 期末平均成績是 87 分,班級評議成績 82 分,同時他還是一位學生干部,那么他可以同時 獲得五四獎學金和班級貢獻獎,獎金總數(shù)是 4850 元。 現(xiàn)在給出若干學生的相關數(shù)據(jù),請 計算哪些同學獲得的獎金總數(shù)最高(假設總有同學能滿足獲得獎學金的條件)。Input 輸入的第一行是一個整數(shù) N(1 <= N <=

3、 100 ),表示學生的總數(shù)。接下來的 N 行每行是一 位學生的數(shù)據(jù),從左向右依次是姓名,期末平均成績,班級評議成績,是否是學生干部,是 否是西部省份學生,以及發(fā)表的論文數(shù)。姓名是由大小寫英文字母組成的長度不超過 20 的 字符串(不含空格);期末平均成績和班級評議成績都是 0 到 100 之間的整數(shù)(包括 0 和100 );是否是學生干部和是否是西部省份學生分別用一個字符表示,Y表示是,N表示不是;發(fā)表的論文數(shù)是 0 到 10 的整數(shù)(包括 0和 10)。每兩個相鄰數(shù)據(jù)項之間用一個空格 分隔。Output 輸出包括三行,第一行是獲得最多獎金的學生的姓名,第二行是這名學生獲得的獎金總數(shù)。 如果

4、有兩位或兩位以上的學生獲得的獎金最多, 輸出他們之中在輸入文件中出現(xiàn)最早的學生 的姓名。第三行是這 N 個學生獲得的獎學金的總數(shù)。Sample Input4YaoLin 87 82 Y N 0ChenRuiyi 88 78 N Y 1LiXin 92 88 N N 0ZhangQin 83 87 Y N 1Sample OutputChenRuiyi9000 28700Problem SourceNOI 2005來源:最新評論您尚未登陸本站,不能發(fā)表評論,請評論人:boynanboy 發(fā)布時間:2011-3-8 0:13:47寫的不太好,但是還正確,大家看看吧 #include <ios

5、tream>#include <string>using namespace std;class studentprivate:string name;float exam;float clas;char cadre;char west;int num;int total;public:student()total=O;int count();void date();string print();void student:date() cin>>name>>exam»clas>>cadre>>west»num

6、;string student:print()return name;int student:count()if(exam>80&&num>0) total+=8000;if(exam>85&&clas>80) total+=4000;if(exam>90) total+=2000;if(exam>85&&west='Y') total+=1000;if(clas>80&&cadre='Y') total+=850;return total;int main

7、()int m=0,a10,max=0,turn,tol=0;student *p10;coutvv "請輸入學生數(shù)量:"vvendl;cin>>m;for(int i=0;i<m;i+)coutvv"請輸入第"vvi+1vv"個學生信息:"vvendl;pi=new student;(*pi).date();ai=(*pi).count();tol+=ai;if(ai>max)max=ai;turn=i;string nam=(*pturn).print();"vvtolvvendl;coutvv&

8、quot;得獎金最多的是:"vvnamvv" 金額是:"vvmaxvvendlvv"總金額是:return 0;評論人:zhanglinjie 發(fā)布時間:2010-7-20 14:15:26#include viostream>#include vstring>using namespace std;typedef struct nodeint max;string name;int lastscore;int classscore;char manage;char west;int paper;*scholarship;int search

9、_max(scholarship p)if(p->lastscore>80&&p->paper>=1)p->max+=8000;if(p->classscore>80&&p->lastscore>85)p->max+=4000;if(p->lastscore>=90)p->max+=2000;if(p->west='Y'&&p->lastscore>85)p->max+=1000;if(p->manage='Y

10、9;&&p->classscore>80)p->max+=850;return p->max;int main()int N;cin>>N;scholarship head=new nodeN;for (int i=0;i<N;i+)headi.max=0;cin>>>>headi.lastscore>>headi.classscore>>headi.manage>>headi.west>>headi.paper;int index=0,max=

11、0;for (int i=0;i<N;i+)if(search_max (&headi)>headindex.max)index=i;max+=headi.max; cout<vvendl vvheadindex.max<vendlvvmaxvvendl;delete head;評論人:sjb2 發(fā)布時間:2010-5-7 11:59:36#include <iostream>#include <string>using namespace std;class CStudentpublic:string Na

12、me; /姓名;長度不超過20,不含空格,字母組成int Score; / 期末平均成績;0, 100int Comment; / 班級評議成績;0, 100char IsCadre; / 是否學生干部; Y, N char IsWest; / 是否西部; Y, N int ThesisNum; / 論文數(shù)目;0, 10;void main()int StuNum = 0;coutvv"請輸入學生數(shù):"cin»StuNum;CStudent* pStu = new CStudentStuNum;coutvv"下面開始輸入學生信息,格式為:lazycat

13、87 82 Y N 0"vvendlvvendl; for (int i = 0; i v StuNum; i+)coutvv"請輸入第"<<i + 1<<"個學生信息:"cin>>pStui.Name>>pStui.Score>>pStui.Comment»pStui.lsCadre>>pStui.lsWest»pStui.ThesisNum;int max = 0; / 最多的獎學金int index = 0;int sum = 0; /所有學生獲得

14、的獎學金總數(shù)for (int j = 0; j < StuNum; j+)int total = 0; /獲得獎學金總數(shù)/院士獎學金if (pStuj.Score > 80 && pStuj.ThesisNum >= 1)sum += 8000;total += 8000;/五四獎學金if (pStuj.Score > 85 && pStuj.Comment > 80)sum += 4000;total += 4000;/成績優(yōu)秀獎if (pStuj.Score > 90)sum += 2000;total += 2000;/

15、西部獎學金if (pStuj.Score > 85 && pStuj.lsWest = 'Y')sum += 1000;total += 1000;/班級貢獻獎if (pStuj.Score > 80 && pStuj.lsCadre = 'Y')sum += 850;total += 850;if (total > max)max = total;index = j;coutvvendlvvendl;coutvvpStuindex.Namev<endlvvmaxvvendlvvsumvvendl; del

16、ete pStu;評論人:fhqtmso 發(fā)布時間:2009-8-6 17:26:32/student.h#ifndef STUDENT#define STUDENT#includeviostream>#includeviterator>#includevstring>#include<vector>#include <set>#include <cctype>using namespace std;struct studentstudent():aversco(0),score(0),cadre('N'),west(

17、9;N'),paper(O),prize(O) /*friend bool operator <(const student&,const student&);*/string name;int aversco;int score;char cadre;char west;int paper;int prize;/*friend ostream& operator<<(ostrea m&, const student&);friend istream& operator>>(istrea m&stud

18、ent&);*/;bool operator <(const student& lh,const student& rh)if(lh.prizevrh.prize)return true;elsereturn false;ostream& operator<<(ostream& out,const student& p)vv" "vvp.prizevvendl;return out;istream& operator»(istream& in,student&a

19、mp; p)in>>>>p.aversco>>p.score»p.cadre>>p.west»p.paper;if(!in)p=student();return in;class stupublic:stu(istream& in):total(0) cout<<"Please input the student's messages(end by Ctrl+z):"<<endl;istream_iterator<student> in_ite

20、r(in);istream_iterator<student> eof;studs=vector<student>(inter,eof);friend ostream& operator<<(ostrea m&, stu&);private:vector<student> studs;vector<student> maxstu;int total;void max();void getaward();;ostream& operator«(ostream& os, stu&

21、stud)stud.getaward();os«"the price-most-get student(s):"v<endl;for(vector<student>:const_iterator it=;it!=;+it)os<<*it;os<<"total prize:"vvstud.totalvvendl;return os;void stu:max ()typedef multisetvstudent>:const_iterator stu_iter;multisetvstudent>

22、 stus(studs.begin(),studs.end();pairvstuter,stuter> pos=stus.equal_range(*stus.rbegin();maxstu=vectorvstudent>(pos.first,pos.second);void stu:getaward()for(vectorvstudent>:iterator it(studs.begin();it!=studs.end();+it)if(it->score>80&&tolower(it->cadre)='y')it->p

23、rize+=850;total+=850;if(it->aversco<=80)continue;else if(it->paper>=1)it->prize+=8000;total+=8000;if(it->prize%40=10&&it->aversco>85)it->prize+=4000;total+=4000;if(it->aversco<=85)continue;else if(tolower(it->west)='y')it->prize+=1000;total+=100

24、0;if(it->aversco>90)it->prize+=2000;total+=2000; max();#endif/main.cpp#include<iostream>#include"student.h"using namespace std;int main()stu students(cin);coutvvstudents;return 0;評論人:fanyueqiao 發(fā)布時間:2009-8-3 20:37:09#include <iostream>using namespace std;struct stumess

25、 char name20;/ 姓名intaversco;/平均成績intscore;/班級評議成績charcadre;/干部charwest;/西部int prize; / 個人獎金數(shù)int number; / 論文數(shù)/bool p5;p0=1表示獲得第一個獎項,p0=0則沒獲得。;class stu private:stumess student50;int total;/所有學生的總獎金public:stu() total=0;void set(int n);/輸入學生信息void getaward(int n);/計算每個學生獲得的獎金及所有學生的總獎金int max(int n);/找

26、出獲得最多獎學金的學生void print(int k); 輸出;void stu:set(int n) cout<v"input "vvnvv" student's message:"«endl;for(int i=0;ivn;i+) cin»;cin»studenti.aversco;cin»studenti.score;cin»studenti.cadre;cin»studenti.west;cin»studenti.number; voi

27、d stu:getaward(int n) for(int i=O;i<n;i+) studenti.prize=O;if(studenti.aversco>80&&studenti.number>=1) studenti.prize+=8000;total+=8000;if(studen ti .aversco>85&&studen ti.score>80) studenti.prize+=4000;total+=4000;if(studen ti. aversco>90) studenti.prize+=2000;tota

28、l+=2000;if(studenti.aversco>85&&studenti.west='y') studenti.prize+=1000;total+=1000;if(studen ti.score>80&&studenti.cadre='y') studenti.prize+=850;total+=850;int stu:max(int n) int s;int k;k=0;s=student0.prize; for(int i=1;i<n;i+)if(s<studenti.prize) s=stu

29、denti.prize;k=i;return k;void stu:print(int k) cout<vvendl; cout<vstudentk.prizevvendl; coutvvtotalvvendl;int main() stu s1;int n,k;coutvv"input student's number:"vvendl; cin>>n;s1.set(n);sl.getaward(n);k=s1.max(n);sl.print(k);return 0;評論人:yanhuangshuo發(fā)布時間:200

30、8-10-1 11:35:23效率會很低,小弟初學,請指教!#includeviostream>#include vstring>using namespace std;class studentpublic:string name;int termgrade;int classgrade;char cleader;char cwest;bool leader;bool west;int number;/ 論文數(shù)int money;/ 獎金;int main()int m,t,sum=0;cin>>m;student *p=new studentm;for(int i=

31、0;i<m;i+)cin>>(p+i)->name; cin»(p+i)_>termgrade; cin>>(p+i)->classgrade; cin>>(p+i)->cleader; if(p+i)_>cleader='y') (p+i)->leader=true;else (p+i)->leader=false;cin>>(p+i)->cwest; if(p+j)_>cwest='y')(p+i)->west=true;else (p

32、+i)->west=false;cin»(p+i)->number;(p+i)_>money=0;for(i=0;i<m;i+)if(p+i)->termgrade>80&&(p+i)->number>=1) (p+i)->money=(p+i)->money+8000;if(p+i)->termgrade>85&&(p+i)->classgrade>80) (p+i)->money=(p+i)->money+4000;if(p+i)_>termgra

33、de>90) (p+i)->money=(p+i)->money+2000;if(p+i)->termgrade>85&&(p+i)->west) (p+i)->money=(p+i)->money+1000;if(p+i)->termgrade>80&&(p+i)->leader) (p+i)_>money=(p+i)_>money+850;t=0;for(i=0;i<m;i+)if(p+t)_>moneyv(p+i)_>money)t=i;sum=sum+(p+i

34、)->money;cout<v(p+t)->name<vendl;cout<v(p+t)->moneyv<endl;coutvvsumvvendl;delete p;return 0;評論人:wanshude_bhr 發(fā)布時間:2008-8-19 9:44:28package ;import ;import ;import ;import ;import ;class Studentprivate String name;private String avgScore;private String score;private String isCadr

35、es;private String isWestern;private String sumpapers;public Student() super();public Student(String name, String avgScore, String score, String isCadres,String isWestern, String sumpapers) super(); = name;this.avgScore = avgScore;this.score = score;this.isCadres = isCadres;this.isWestern =

36、isWestern;this.sumpapers = sumpapers;public String getName() return name;public void setName(String name) = name;public String getAvgScore() return avgScore;public void setAvgScore(String avgScore) this.avgScore = avgScore;public String getScore() return score;public void setScore(String s

37、core) this.score = score;public String getlsCadres() return isCadres;public void setlsCadres(String isCadres) this.isCadres = isCadres;public String getIsWestern() return isWestern;public void setlsWestern(String isWestern) this.isWestern = isWestern;public String getSumpapers() return sumpapers;pub

38、lic void setSumpapers(String sumpapers) this.sumpapers = sumpapers;Overridepublic String toString() / TODO Auto-generated method stubreturn this.getName()+" "+this.getAvgScore()+" "+this.getScore()+ ""+this.getlsCadres()+" "+this.getlsWestern()+""+ t

39、his.getSumpapers();public class NO6_Scholarships public Student getStudent(String src)Student student=new Student();StringTokenizer s = new StringTokenizer(src," "false);int n=0;while(s.hasMoreTokens()String temp = s.nextToken();if(n=0)student.setName(temp);n+;else if(n=1)student.setAvgSco

40、re(temp);n+;else if(n=2)student.setScore(temp);n+;else if(n=3)student.setlsCadres(temp);n+;else if(n=4)student.setlsWestern(temp);n+;elsestudent.setSumpapers(temp);return student;public int isClassSch(Student s)int r=0;if(lnteger.parselnt(s.getScore()>8 0&&s.getlsCadres().equals("Y&q

41、uot;)r=1;return r;public int isWesternSch(Student s)int r=0;if(lnteger.parselnt(s.getAvgScore()>85&&s.getlsWestern().equals("Y")r=2;return r;public int isExcSch(Student s)int r=0;if(lnteger.parselnt(s.getAvgScore()>90)r=3;return r;public int is54Sch(Student s)int r=0;if(lnteg

42、er.parselnt(s.getAvgScore()>85&&lnteger.parselnt(s.getScore()>80)r=4;return r;public int isColSch(Student s)int r=0;if(lnteger.parselnt(s.getAvgScore()>80&&lnteger.parselnt(s.getSumpapers()>=1)r=5;return r;public static void main(String args) BufferedReader br = new Buffe

43、redReader(new InputStreamReader(System.in); int n=0;NO6_Scholarships no6 = new NO6_Scholarships();"Please Input count of students:");try n=lnteger.parselnt(br.readLine(); catch (NumberFormatException e1) / TODO Auto-generated catch blocke1.printStackTrace(); catch (IOException e1) / TODO A

44、uto-generated catch blocke1.printStackTrace();Student students = new Studentn;int count=0;while(count<n)try studentscount+=no6.getStudent(br.readLine(); catch (IOException e) / TODO Auto-generated catch block e.printStackTrace();int tempSumSch =0;int temp=0;int flag=O;int sumAII=0;for(int i=0;i&l

45、t;n;i+)tempSumSch=O;if(no6.isClassSch(studentsi)=1) tempSumSch+=850; if(no6.isWesternSch(studentsi)=2) tempSumSch+=1000;if(no6.isExcSch(studentsi)=3) tempSumSch+=2000;if(no6.is54Sch(studentsi)=4) tempSumSch+=4000;if(no6.isColSch(studentsi)=5) tempSumSch+=8000;sumAII+=tempSumSch;if(tempSumSch>temp

46、)flag=i;temp=tempSumSch;評論人:zhan0 發(fā)布時間:2008-7-31 12:30:46#include <cstdlib>#include <iostream>#include <fstream>using namespace std;struct Ikchar name20;int qimo;int pingyi;char ganbu;char xibu;int lunwen;int jiangjin;int main(int argc, char *argv)int n;ifstream in("scholar.in

47、");ofstream out("scholar.out");in»n;int i,j;_int64 m;lk an+1;for(i=1;i<=n;i+)in>>>>ai.qimo>>ai.pingyi>>ai.ganbu>>ai.xibu»ai.lunwen;ai.jiangjin=0;if(ai.qimo>80 && ai.lunwen>=1)ai.jiangjin+=8000;if(ai.qimo>85 &&

48、ai.pingyi>80)ai.jiangjin+=4000;if(ai.qimo>90) ai.jiangjin+=2000;if(ai.qimo>85 && ai.xibu='Y') ai.jiangjin+=1000;if(ai.pingyi>80 && ai.ganbu='Y')ai.jiangjin+=850; j=1;m=a1.jiangjin;for(i=2;i<=n;i+)if(ai.jiangjin>aj.jiangjin)j=i;m+=ai.jiangjin;out<&

49、lt;vvendl;out<<aj.jiangjinvvendl;outvvmvvendl;評論人:diaoxue 發(fā)布時間:2008-1-1 12:37:07#include viostream>using namespace std;struct Studebtchar name30;int End_score;int Class_score;char classer;char west;int article;int scholar;stud100;void lnput(int n)for(int i=0;i<n;i+)studi.scholar=0

50、;cin>>»studi.End_score»studi.CIass_score >>studi.classer»studi.west>>studi.article;void Compute(int n)for(int i=0;i<n;i+)if(studi.End_score>80&&studi.article>=1)studi.scholar+=8000;if(studi.End_score>85&&studi.CIass_score>=80)

51、studi.scholar+=4000;if(studi.End_score>90)studi.scholar+=2000;if(studi.End_score>85&&studi.west='Y')studi.scholar+=1000;if(studi.End_score>8 0&&studi.classer='Y')studi.scholar+=850;void Output(int n)int max=stud0.scholar;int k=0;int sum=0;for(int i=0;i<n;i

52、+)sum+=studi.scholar;if(studi.scholar>max)max=studi.scholar;k=i;cout<vvendl;cout<vstudk.scholarvvendl;coutvvsumvvendl;int main()int n=0;coutvv"lnput the number of student n:"vvendl;cin>>n;Input(n);Compute(n);Output(n);return 0;評論人:nhj5624 發(fā)布時間:2007-9-2 10:03:35怎么到

53、湖南大學的ACM提交是錯的?評論人:vcacm 發(fā)布時間:2007-1-27 9:37:17#include<stdio.h>#define MAX 200struct nodechar name30;int endave;int clascore;char classer;char west;int article;studMAX;long prizeMAX;void main()FILE *in,*out;int N,i,j,num;long total=0,max;char c1;in=fopen("zhxdong.in","r");fscanf(in,"%d",&N);for(i=1;i<=N;i+)fscanf(in,"%s %d %d %c %c %dn",, &studi.endave, &studi.clascore, &studi.cla sser,&studi.west,& studi.article);for(i=1;i<=N;i+)prizei=0;for(j=1;j<=5;j+)switch(j)case 1:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論