資源簡介
這是用C++實現的學生成績管理系統的經典大作業,代碼確保沒有任何錯誤可運行,除了實現基本的增刪改查、成績分析的功能外,錄入系統的學生信息還可實現轉為文件輸出并保存到本地進行查看。
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#define?N?5
using?namespace?std;
typedef?struct?student
{
????int?num;
????string?name;
????float?MathGrade;
????float?EnglishGrade;
????float?Total;
????student?*next;
}student*linklist;
void?Create_linklist(linklist?&h)
{
????linklist?pq;
????int?numm;
????string?na;
????int?Math;
????int?English;
????h?=?new?student();
????p?=?h;
????cout<<“請輸入學號,姓名,數學成績,英語成績,輸入0結束.“<
????while(cin>>numm?&&?numm!=0)
????{
????????cin>>na>>Math>>English;
????????q=new?student();
????????q->num?=?numm;
????????q->name?=?na;
????????q->MathGrade?=?Math;
????????q->EnglishGrade?=?English;
????????p->next?=?q;
????????p?=?q;
????}
????p->Total=p->MathGrade+p->EnglishGrade;
????p->next?=?NULL;
????p?=?h->next;
}
void?Display(linklist?h)
{
????linklist?p;
????p?=?h->next;
????ofstream?mycout(“C:\\Users\\學生成績信息.txt“);
????while(p)
????{
????????cout<<“學號:“<num<name<MathGrade<EnglishGrade< ????????mycout<<“學生成績信息“<num<name<MathGrade<EnglishGrade< ????????p?=?p->next;
????}
????mycout.close();
}
void?Count(linklist?h)
{
????linklist?p;
????p?=?h->next;
????int?sum;
????while(p)
????{
????????sum?=?0;
????????sum?=?sum+p->MathGrade+p->EnglishGrade;
????????p->Total?=?sum;
????????cout<name<<“的總分是:“<Total< ????????p?=?p->next;
????}
}
void?Score_sort(linklist?&h)
{
????linklist?pq;
????int?t;
????t=N;
????while(t--)
????{
????????p?=?h->next;
????????while(p?&&?p->next)
????????{
????????????if(p->Totalnext->Total)
????????????{
????????????????q?=?new?student();
????????????????q->num?=?p->num;
????????????????q->name?=?p->name;
????????????????q->MathGrade?=?p->MathGrade;
????????????????q->EnglishGrade?=?p->EnglishGrade;
????????????????q->Total?=?p->Total;
????????????????p->num?=?p->next->num;
????????????????p->name?=?p->next->name;
????????????????p->MathGrade?=?p->next->MathGrade;
????????????????p->EnglishGrade?=?p->next->EnglishGrade;
????????????????p->Total?=?p->next->Total;
????????????????p->next->num?=?q->num;
????????????????p->next->name?=?q->name;
????????????????p->next->MathGrade?=?q->MathGrade;
????????????????p->next->EnglishGrade?=?q->EnglishGrade;
????????????????p->next->Total?=?q->Total;
????????????}
????????????p?=?p->next;
????????}
????}
????cout<<“總分由高到低的順序為:“< ????p=h->next;
????while(p)
????{
????????cout<<“學號:“<num<<“?姓名:“<name<<“?數學成績:“<MathGrade<<“?英語成績:“<EnglishGrade<<“總分為:“<Total< ????????p=p->next;
????}
}
void?Num_Search(linklist?h)
{
????int?number;
????cout<<“請輸入要查找的學號:“;
????cin>>number;
????linklist?p?=?h->next;
????while(p)
????{
????????if(p->num?==?number)
????????{
- 上一篇:語法分析程序
- 下一篇:機器學習中決策樹ID3算法 理論分析與c語言代碼實現
評論
共有 條評論