http://blog.csdn.net/zz457887107/article/details/6596340
1.0.2 升級版 源碼 發佈
//未考慮重修////去掉軍訓 工業系統認識1,2#include<iostream>#include<fstream>#include<strstream>#include<sstream>#include<string>#include<iomanip>using namespace std;class Course{public:int no;//序號string year;//學年學期int code;//課程代碼string name;//課程名稱float credit;//學分int score;//成績string quality;//成績性質string courseQua;//課程性質friend double gpa();friend double getGPA();public:Course(){}Course(int noV,string yearV,int codeV,string nameV,float creditV,int scoreV,string qualityV,string courseQuaV="#"):no(noV),year(yearV),code(codeV),name(nameV),credit(creditV),score(scoreV),quality(qualityV),courseQua(courseQuaV){}void set(int noV,string yearV,int codeV,string nameV,float creditV,int scoreV,string qualityV,string courseQuaV="#"){no=noV;year=yearV;code=codeV;name=nameV;credit=creditV;score=scoreV;quality=qualityV;courseQua=courseQuaV;}};double getGPA(Course cour){int score=cour.score;if(score<60) return 0;if(score>=60&&score<=62) return 1.0;if(score>=63&&score<=65) return 1.5;if(score>=66&&score<=69) return 1.8;if(score>=70&&score<=72) return 2.0;if(score>=73&&score<=75) return 2.5;if(score>=76&&score<=79) return 2.8;if(score>=80&&score<=82) return 3.0;if(score>=83&&score<=85) return 3.5;if(score>=86&&score<=89) return 3.8;if(score>=90&&score<=92) return 4.0;if(score>=93&&score<=95) return 4.5;if(score>=96&&score<=100) return 4.8;}double gpa(Course *list,int i){float credit_sum=0;//學分和double gpa_sum=0;//績點和for(int m=0;m<=i;m++){credit_sum+=list[m].credit;gpa_sum+=list[m].credit*getGPA(list[m]);}return gpa_sum/credit_sum;}int main(){//【使用說明】 cout<<""<<endl;cout<<"東南大學 學分績點 計算器"<<endl;cout<<" ----by 張哲"<<endl;cout<<"本程序目前仍有許多不完善之處,能力所限,正在修改,歡迎指正!/nE-mail:zhangzhe.zhe@qq.com"<<endl;cout<<endl<<"【使用方法說明】"<<endl<<endl;cout<<"1.直接將教務處查分界面的成績粘貼下來,【存爲 1.txt】"<<endl;cout<<"2.去掉第一行: 序號 學年學期……"<<endl;cout<<"3.請【自行】刪去不算績點的學科,如人文,自然科學什麼的。"<<endl;cout<<"4.請【自行】將 物理實驗 一類的用 /n 【優良中差】 評分的分別 改爲對應的 【95,85,75,65】"<<endl<<endl;cout<<"5.改完後請檢查一下各學科的成績不要有非數字int類型數據。。。囧。。/n 程序穩健性目前有待提高"<<endl<<endl;cout<<"6.如果上面的步驟操作結束了,"<<endl<<endl;system("pause");system("pause");cout<<endl<<endl<<endl;Course list[100],temp;int no;//序號string year;//學年學期int code;//課程代碼string name;//課程名稱float credit;//學分int score;//成績string quality;//成績性質string courseQua;//課程性質string buf;ifstream infile;infile.open("1.txt");int i=0;while(getline(infile,buf)){istringstream input(buf);// cout<<input.str()<<endl;input>>no>>year>>code>>name>>credit>>score>>quality>>courseQua;temp.set(no,year,code,name,credit,score,quality,courseQua);list[i]=temp;++i;// cout<<no<<'/t'<<year<<'/t'<<name<<'/t'<<code<<'/t'<<credit<<'/t'<<score<<endl;cout<<setw(3)<<i<<'/t'<<setw(30)<<name<<'/t'<<setw(3)<<credit<<'/t'<<setw(3)<<score<<endl;// cout<<score<<endl;}--i;cout<<endl<<endl<<endl;cout<<"您的/t"<<i+1<<"/t門課程平均績點爲:"<<gpa(list,i)<<endl;system("pause");return 0;}
{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"typ
{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragr
{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null