亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? task_deeds.cpp

?? 學生成績管理。 Win32(dos)字符界面。可實現讀入、簡單計算、統計、輸出等操作
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

		case 1: cout<<"\n按名字排序結果:"<<endl;
				PrintFormHead(headOfCourse);
				PrintToScreen_Name(headOfStudent);
				break;

		case 2: cout<<"\n按學號排序結果:"<<endl;
				PrintFormHead(headOfCourse);
				PrintToScreen_Number(headOfStudent);
				break;

		case 3: temp=headOfCourse;
				if (temp==NULL)
				{
					cout<<char(7);
					cout<<"\n未輸入任何課程信息!不能按課程成績排序!"<<endl;
					return;
				}
				cout<<"\n已輸入的課程有:"<<endl;
				while (temp)
				{
					cout<<temp->courseName<<' ';
					temp=temp->next;
				}
				cout<<"\n請輸入需要排序的課程名稱,退出請輸入 * "<<endl;
				do
				{
					cout<<"請輸入:";
					cin>>coursename;
					if (coursename[0]=='*') return;
					temp=headOfCourse;
					while (temp)
					{
						if (strcmp(temp->courseName,coursename)==0)
							break;
						temp=temp->next;
					}
					if (temp==NULL)
					{
						cout<<char(7);
						cout<<"\n該門課程不存在!請重新輸入需要排序的課程名稱!"<<endl
							<<"結束排序請輸入 * "<<endl;
					}
					else
						break;
				}while (1);
				if (headOfStudent->pNameLc)
					Tree(headOfStudent->pNameLc,headOfStudent,coursename,Sort_Score);
				if (headOfStudent->pNameRc)
					Tree(headOfStudent->pNameRc,headOfStudent,coursename,Sort_Score);
				cout<<"\n按"<<coursename<<"成績排序的結果:"<<endl;
				PrintFormHead(headOfCourse);
				PrintToScreen_Score(headOfStudent);
				break;

		case 0:return;

	}
}

void Tree(student *&head,student *&order_head,char coursename[],void (*function)(student *&pStudent,student *&order_head,char coursename[]))
{
	if (head->pNameLc)
		Tree(head->pNameLc,order_head,coursename,(*function));

	(*function)(head,order_head,coursename);

	if (head->pNameRc)
		Tree(head->pNameRc,order_head,coursename,(*function));
}

void Sort_Score(student *&pStudent,student *&order_head,char coursename[])
{
	courseOfStudent *temp1=pStudent->courses,*temp2=order_head->courses;
	while (temp1)
	{
		if (strcmp(temp1->courseName,coursename)==0)
			break;
		temp1=temp1->next;
		temp2=temp2->next;
	}
	if (temp1->score>=temp2->score)
	{
		if (order_head->pScoreRc)
			Sort_Score(pStudent,order_head->pScoreRc,coursename);
		else
			order_head->pScoreRc=pStudent;
	}
	else
	{
		if (order_head->pScoreLc)
			Sort_Score(pStudent,order_head->pScoreLc,coursename);
		else
			order_head->pScoreLc=pStudent;
	}
}

void CalculateGPA(student *&headOfStudent,courselist *&headOfCourse)
{
	short i;
	char s[25];
	student *pStudent,*code;
	while (1)
	{
		cout<<" 1. 輸入學生的名字"<<endl
			<<" 2. 輸入學生的學號"<<endl
			<<" 0. 返回上一級菜單"<<endl
			<<"請選擇: ";
		cin>>i;
		while (cin.fail() || (i>2 || i<0))
		{
			cout<<char(7);
			cout<<"\n輸入錯誤 !"<<endl
				<<"輸入菜單中您要選擇的項目前的序號即可,即0-2的數字"<<endl
				<<"請選擇: ";
			cin.clear();
			cin.ignore(100,'\n');
			cin>>i;
		}
		switch (i)
		{
			case 1: do
					{
						cout<<"\n請輸入要查詢的學生的名字,退出請輸入 * "<<endl;
						cin>>s;
						if (s[0]=='*') break;
						pStudent=SearchByName(headOfStudent,s,code);
						if (pStudent==NULL)
						{
							cout<<char(7);
							cout<<"\n沒有該學生的紀錄!"<<endl;
							continue;
						}
						CalcGPA(pStudent,headOfCourse);
						cout<<endl<<pStudent->studentName<<"的平均績點為 "
							<<setiosflags(ios::fixed)<<setprecision(4)<<pStudent->studentGPA<<endl;
					}while (1);
					break;
				
			case 2: do
					{
						cout<<"\n請輸入要查詢的學生的學號,退出請輸入 * "<<endl;
						cin>>s;
						if (s[0]=='*') break;
						pStudent=SearchByNumber(headOfStudent,s,code);
						if (pStudent==NULL)
						{
							cout<<char(7);
							cout<<"\n沒有該學生的紀錄!"<<endl;
							continue;
						}
						CalcGPA(pStudent,headOfCourse);
						cout<<endl<<pStudent->studentName<<"的平均績點為 "
							<<setiosflags(ios::fixed)<<setprecision(4)<<pStudent->studentGPA<<endl;
					}while (1);
					break;

			case 0: return;
		}			
	}
}

void CalcGPA(student *&pStudent,courselist *&headOfCourse)
{
	courselist *temp=headOfCourse;
	courseOfStudent *p=pStudent->courses;
	float sum_credits=0.0f,sum_score=0.0f;
	while (p)
	{
		if (p->score>=0)
		{
			sum_credits+=temp->credits;
			sum_score+=ScoreToGPA(p->score)*temp->credits;
		}
		p=p->next;
		temp=temp->next;
	}
	if (sum_credits)
		pStudent->studentGPA=sum_score/sum_credits;
	else
		pStudent->studentGPA=0.0f;
}

float ScoreToGPA(float score)
{
	if (score>=90) return 4.0f;
	if (score>=85) return 3.7f;
	if (score>=82) return 3.3f;
	if (score>=78) return 3.0f;
	if (score>=75) return 2.7f;
	if (score>=72) return 2.3f;
	if (score>=68) return 2.0f;
	if (score>=64) return 1.5f;
	if (score>=60) return 1.0f;
	return 0.0f;
}

void Statistic(student *&head,courselist *&headOfCourse)
{
	char coursename[20];
	courselist *temp=headOfCourse;
	if (temp==NULL)
	{
		cout<<char(7);
		cout<<"\n未輸入任何課程信息!不能進行統計!"<<endl;
		return;
	}
	cout<<"\n已輸入的課程有:"<<endl;
	while (temp)
	{
		cout<<temp->courseName<<' ';
		temp=temp->next;
	}
	cout<<"\n請輸入要統計的課程名稱:";
	while (cin>>coursename)
	{
		temp=headOfCourse;
		while (temp)
		{
			if (strcmp(temp->courseName,coursename)==0)
				break;
			temp=temp->next;
		}
		if (temp==NULL)
		{
			cout<<char(7);
			cout<<"\n該門課程不存在!請重新輸入需要排序的課程名稱!"<<endl
				<<"\n已經輸入的課程有:"<<endl;
			temp=headOfCourse;
			while (temp)
			{
				cout<<temp->courseName<<' ';
				temp=temp->next;
			}
			cout<<"\n請輸入:";
		}
		else
			break;
	}

	short count[5]={0};
	Stat(head,count,coursename);

	cout<<"\n <"<<coursename<<">  統計結果:"<<endl;
	short i,j,max=0;
	double height[5],k;
	for (i=0;i<5;i++)
	{
		height[i]=count[i];
		if (max<count[i]) max=count[i];
	}
	if (max>0)
	{
		for (i=0;i<5;i++)
			height[i]*=8.0/max;
	}
	else
	{
		for (i=0;i<5;i++)
			height[i]=0.0f;
	}
	max=8;
	cout<<endl<<"人數"<<endl<<"┃"<<endl;
	for (i=max+1;i>0;i--)
	{
		cout<<"┃";
		for (j=0;j<5;j++)
		{
			cout<<"    ";
			if (i>height[j] && i<=height[j]+1)
			{
				cout<<setw(4)<<count[j];
			}
			else
			if (i<=height[j])
			{
				k=floor(height[j]);
				if (i<k)
				{
					cout<<"██";
					continue;
				}
				if (height[j]-k==0)
				{
					cout<<"██";
				}
				else
				if (height[j]-k<=0.125)
				{
					cout<<"▁▁";
				}
				else
				if (height[j]-k<=0.25)
				{
					cout<<"▂▂";
				}
				else
				if (height[j]-k<=0.375)
				{
					cout<<"▃▃";
				}
				else
				if (height[j]-k<=0.5)
				{
					cout<<"▄▄";
				}
				else
				if (height[j]-k<=0.625)
				{
					cout<<"▅▅";
				}
				else
				if (height[j]-k<=0.75)
				{
					cout<<"▆▆";
				}
				else
				if (height[j]-k<=0.875)
				{
					cout<<"▇▇";
				}
				else
				{
					cout<<"██";
				}
			}
			else
			{
				cout<<"    ";
			}

		}
		cout<<endl;
	}
	cout<<"┗";
	for (i=0;i<22;i++)
		cout<<"━";
	cout<<"分數段"<<endl;
	cout<<"     100-90   90-80   80-70   70-60   60以下 "<<endl;
}

void Stat(student *&head,short count[],char coursename[])
{
	if (head->pNameLc)
		Stat(head->pNameLc,count,coursename);

	courseOfStudent *temp=head->courses;
	while (temp)
	{
		if (strcmp(temp->courseName,coursename)==0)
		{
			if (temp->score>=90) count[0]++;
			else
			if (temp->score>=80) count[1]++;
			else
			if (temp->score>=70) count[2]++;
			else
			if (temp->score>=60) count[3]++;
			else
			if (temp->score>=0) count[4]++;
			break;
		}
		temp=temp->next;
	}

	if (head->pNameRc)
		Stat(head->pNameRc,count,coursename);
}

void PrintToScreen_Name(student *&head)
{
	if (head->pNameLc)
	{
		PrintToScreen_Name(head->pNameLc);
	}

	cout<<setw(10)<<head->studentName
		<<setw(10)<<head->studentNumber;
	courseOfStudent *p=head->courses;
	while (p)
	{
		if (p->score>=0)
			cout<<setw(10)<<setiosflags(ios::fixed)<<setprecision(2)<<p->score;
		else
			cout<<"--        ";
		p=p->next;
	}
	cout<<endl;

	if (head->pNameRc)
	{
		PrintToScreen_Name(head->pNameRc);
	}
}

void PrintToScreen_Number(student *&head)
{
	if (head->pNumberLc)
	{
		PrintToScreen_Number(head->pNumberLc);
	}

	cout<<setw(10)<<head->studentName
		<<setw(10)<<head->studentNumber;
	courseOfStudent *p=head->courses;
	while (p)
	{
		if (p->score>=0)
			cout<<setw(10)<<setiosflags(ios::fixed)<<setprecision(2)<<p->score;
		else
			cout<<"--        ";
		p=p->next;
	}
	cout<<endl;

	if (head->pNumberRc)
	{
		PrintToScreen_Number(head->pNumberRc);
	}
}

void PrintToScreen_Score(student *&head)
{
	if (head->pScoreRc)
	{
		PrintToScreen_Score(head->pScoreRc);
	}

	cout<<setw(10)<<head->studentName
		<<setw(10)<<head->studentNumber;
	courseOfStudent *p=head->courses;
	while (p)
	{
		if (p->score>=0)
			cout<<setw(10)<<setiosflags(ios::fixed)<<setprecision(2)<<p->score;
		else
			cout<<"--        ";
		p=p->next;
	}
	cout<<endl;

	if (head->pScoreLc)
	{
		PrintToScreen_Score(head->pScoreLc);
	}
	head->pScoreLc=NULL;
	head->pScoreRc=NULL;
}

void PrintSingleStudent(student *&temp)
{
	cout<<"\n姓 名:"<<temp->studentName<<endl
		<<"學 號:"<<temp->studentNumber<<endl;
	courseOfStudent *p=temp->courses;
	bool flag=true;
	while (p)
	{
		if (p->score>0)
		{
			if (flag)
				cout<<"各科成績:"<<endl;
			cout<<setw(10)<<setiosflags(ios::left)<<p->courseName
				<<setiosflags(ios::fixed)<<setprecision(2)<<p->score<<endl;
			flag=false;
		}
		p=p->next;
	}
	if (flag)
		cout<<char(7)<<"該生的成績還未錄入!"<<endl;
}

void PrintFormHead(courselist *courses)
{
	cout<<"\n姓  名    學  號    ";
	while (courses)
	{
		cout<<setw(10)<<setiosflags(ios::left)<<courses->courseName;
		courses=courses->next;
	}
	cout<<endl;
}

void Free_Student(student *&head)
{
	if (head->pNameLc)
		Free_Student(head->pNameLc);
	if (head->pNameRc)
		Free_Student(head->pNameRc);
	delete head;
}

void Free_Courselist(courselist *&head)
{
	courselist *temp;
	while (head)
	{
		temp=head;
		head=head->next;
		delete temp;
	}
}

void Exit(student *&headOfStudent,courselist *&headOfCourse)
{
	short i;
	cout<<" 1. 退出"<<endl
		<<" 2. 顯示菜單"<<endl
		<<"請選擇: ";
	cin>>i;
	while (cin.fail() || (i!=1 && i!=2))
	{
		cout<<char(7);
		cout<<"\n輸入錯誤 !"<<endl
			<<"輸入菜單中您要選擇的項目前的序號即可,即輸入 1 或 2"<<endl
			<<"請選擇: ";
		cin.clear();
		cin.ignore(100,'\n');
		cin>>i;
	}
	if (i==1)
	{
		char filename[30];
		fileOut(headOfStudent,headOfCourse,filename);
		if (headOfStudent)
			Free_Student(headOfStudent);
		if (headOfCourse)
			Free_Courselist(headOfCourse);
		if (filename[0]) 
			StoreSucceed(filename);
		GoodBye();
		exit(0);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丰满亚洲少妇av| 水野朝阳av一区二区三区| 成人一区在线观看| 欧美国产精品一区| av亚洲精华国产精华| 亚洲免费观看在线视频| 色欧美88888久久久久久影院| 亚洲视频综合在线| 欧美色视频一区| av中文字幕不卡| 亚洲视频一区二区在线观看| 欧美色综合影院| 美女诱惑一区二区| 国产欧美日韩精品在线| 一本到不卡精品视频在线观看| 亚洲国产日韩在线一区模特| 欧美videos中文字幕| 国产成人午夜片在线观看高清观看| 亚洲视频在线观看三级| 6080日韩午夜伦伦午夜伦| 国产一区二区三区日韩| 亚洲裸体xxx| 日韩你懂的电影在线观看| 国产成人av一区二区三区在线观看| 亚洲视频精选在线| 欧美一区二区三区视频在线观看 | 激情亚洲综合在线| 欧美国产日本韩| 欧美三级中文字幕在线观看| 国产一区亚洲一区| 亚洲在线观看免费| 久久综合九色综合欧美亚洲| 99久久精品免费看| 蜜臀va亚洲va欧美va天堂 | av在线不卡观看免费观看| 亚洲精品视频一区| 精品国产一区久久| 91成人看片片| 国精产品一区一区三区mba桃花 | 欧美第一区第二区| 色哟哟日韩精品| 国产精品一区久久久久| 亚洲不卡一区二区三区| 国产欧美一区二区精品婷婷| 欧美日韩精品专区| a在线欧美一区| 欧美日韩日本视频| 成人黄色国产精品网站大全在线免费观看| 亚洲第一福利视频在线| 国产精品欧美极品| 久久网站热最新地址| 717成人午夜免费福利电影| 色网站国产精品| 风间由美一区二区三区在线观看 | 波多野结衣一区二区三区| 男女男精品网站| 亚洲综合色在线| 国产欧美精品在线观看| 日韩女优视频免费观看| 911精品产国品一二三产区| 91在线国产福利| 国产成人超碰人人澡人人澡| 另类专区欧美蜜桃臀第一页| 性久久久久久久久久久久| 亚洲欧美日韩一区二区三区在线观看| 国产亚洲1区2区3区| 日韩欧美精品在线| 91精品国产色综合久久不卡蜜臀| 色哟哟在线观看一区二区三区| 成人激情文学综合网| 处破女av一区二区| 国产成人av一区二区三区在线观看| 激情综合色综合久久| 久久66热re国产| 精品亚洲免费视频| 久久成人精品无人区| 久久电影网电视剧免费观看| 免费观看在线综合色| 久久99最新地址| 久久国产精品一区二区| 激情综合色综合久久| 国产一区二区三区香蕉| 国产精品一品二品| 波多野结衣视频一区| 一本一道久久a久久精品综合蜜臀| jizzjizzjizz欧美| 91丨九色丨黑人外教| 欧美综合一区二区| 91精品国产综合久久香蕉的特点| 91精品国产一区二区| 精品国产sm最大网站免费看| 久久一日本道色综合| 欧美高清在线视频| 亚洲视频电影在线| 午夜久久久久久久久| 久久国产精品区| 盗摄精品av一区二区三区| 91色婷婷久久久久合中文| 欧洲精品在线观看| 7777精品伊人久久久大香线蕉超级流畅| 日韩一区二区三区三四区视频在线观看 | 成人中文字幕合集| 91麻豆高清视频| 欧美男生操女生| 久久久久国产一区二区三区四区| 欧美高清在线视频| 亚洲一区二区在线观看视频 | 国产日产欧美一区| 亚洲靠逼com| 日韩电影免费在线看| 精品一区二区三区影院在线午夜| 成人午夜短视频| 欧美午夜理伦三级在线观看| 日韩美女天天操| 国产精品丝袜久久久久久app| 亚洲精品成人a在线观看| 蜜桃av噜噜一区| av激情综合网| 日韩午夜在线影院| 亚洲视频图片小说| 九色porny丨国产精品| 99re在线视频这里只有精品| 欧美一区二区三区在线看| 国产精品久久久久天堂| 青青草原综合久久大伊人精品| 成人小视频在线观看| 在线播放/欧美激情| 亚洲欧洲一区二区三区| 秋霞电影网一区二区| 色偷偷成人一区二区三区91| 精品处破学生在线二十三| 亚洲小说欧美激情另类| 粉嫩一区二区三区性色av| 51精品国自产在线| 亚洲色图制服诱惑| 国产福利91精品| 日韩区在线观看| 亚洲欧美另类久久久精品2019| 韩国v欧美v日本v亚洲v| 欧美高清精品3d| 亚洲欧美二区三区| 国产91精品露脸国语对白| 日韩一区二区三区在线观看| 亚洲国产视频一区二区| 91美女片黄在线| 国产亚洲精品精华液| 老司机精品视频在线| 欧美喷水一区二区| 夜夜揉揉日日人人青青一国产精品| 风间由美一区二区av101| 精品99一区二区| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩一级二级三级| 一区二区三区在线免费播放| av欧美精品.com| 国产精品日产欧美久久久久| 国产乱子轮精品视频| 日韩欧美的一区| 免费看欧美美女黄的网站| 欧美福利视频一区| 夜夜揉揉日日人人青青一国产精品| 成人黄色777网| 中文字幕国产一区| 成人妖精视频yjsp地址| 国产精品久久久久久久蜜臀| 成人h动漫精品一区二| 欧美激情综合五月色丁香| 国产精品18久久久久久久网站| 久久久综合视频| 国产不卡视频一区二区三区| 国产精品免费网站在线观看| 成人激情文学综合网| 亚洲色图一区二区| 在线观看视频一区二区欧美日韩| 亚洲综合一二区| 欧美乱妇15p| 麻豆视频观看网址久久| 精品国产乱码久久久久久图片| 久久99国产精品久久99| 久久精品人人做| 97se亚洲国产综合自在线不卡| 亚洲乱码国产乱码精品精小说| 色婷婷亚洲综合| 一区二区三区欧美久久| 欧美视频一二三区| 看电影不卡的网站| 国产亚洲短视频| 99re热视频这里只精品| 午夜精品一区在线观看| 精品久久久久av影院| 懂色av中文字幕一区二区三区| 亚洲人成网站在线| 欧美日韩成人综合在线一区二区| 日本vs亚洲vs韩国一区三区二区 | 在线观看亚洲精品| 五月天亚洲婷婷| 久久综合国产精品| 99免费精品在线| 天堂资源在线中文精品| 欧美电影免费观看高清完整版|