成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

期末課設(shè)學(xué)生信息管理系統(tǒng)鏈表(有簡(jiǎn)單解釋)-創(chuàng)新互聯(lián)

編譯器:Dev-c++? ? ? ? ? ? ? ?開(kāi)發(fā)語(yǔ)言:C語(yǔ)言? ? ? ? ? ? ??最后有代碼部分

本人也是初入編程這個(gè)大世界的新手菜鳥,部分代碼會(huì)很簡(jiǎn)單明了但也繁瑣,還會(huì)有很多的詞匯不是專業(yè)詞匯。

成都做網(wǎng)站、網(wǎng)站制作,成都做網(wǎng)站公司-創(chuàng)新互聯(lián)建站已向上千家企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。

注:部分代碼以及思路來(lái)源于?Извините.?作者大大的作品:? ?《? ? C語(yǔ)言學(xué)生信息管理系統(tǒng)(鏈表)(無(wú)文件操作)? ? 》?

作者的其它作品也很優(yōu)秀哦,很適合剛剛?cè)腴T的小伙伴。

1.功能實(shí)現(xiàn)

密碼顏色根據(jù)自己要求(初始密碼:wypgogogo)

2.本人理解:

大作業(yè)最主要的內(nèi)容就是鏈表的實(shí)現(xiàn),舉個(gè)例子(來(lái)源于源代碼:增加學(xué)生信息):

head是第一個(gè)結(jié)點(diǎn),那head->next就是第二個(gè)結(jié)點(diǎn),q是新增加的結(jié)點(diǎn),讓q的下一個(gè)結(jié)點(diǎn)是原來(lái)的第二個(gè),讓head(第一個(gè))的下一個(gè)結(jié)點(diǎn)是新增加的q,那q自然而然成為第二個(gè)結(jié)點(diǎn),head->next自然而然成為第三個(gè)結(jié)點(diǎn)。 (頭插法)

小伙伴們可以自己試試尾插法=v=

代碼理解:

1.檢查

檢查部分可以按著自己的要求設(shè)置(if中的內(nèi)容就是自己設(shè)的要求,不滿足就會(huì)重新輸入)。

2.錄入

因?yàn)殇浫氩糠值暮瘮?shù)return(返回)的是自己建立的鏈表,所以每次選擇錄入時(shí)都會(huì)重新給頭結(jié)點(diǎn)申請(qǐng)空間,自然而然頭換了,后面部分也就沒(méi)了。(鏈表單指連續(xù))

3.增刪改查部分(個(gè)人認(rèn)為增刪改需要重點(diǎn)看)

增已經(jīng)介紹過(guò)了

刪:一定要記住不要直接刪,否則鏈表會(huì)斷開(kāi),一定要先把鏈表連完整(把將要?jiǎng)h除的前一個(gè)結(jié)點(diǎn)連到將要?jiǎng)h除的后一個(gè)結(jié)點(diǎn))。

改:個(gè)人是用了新的結(jié)點(diǎn)覆蓋了之前的結(jié)點(diǎn),切記鏈表的連接?。?!

查:遍歷鏈表即可,需要用到循環(huán)判斷。

4.排序(重點(diǎn)看)

冒泡排序(解釋太麻煩,看代碼看不懂的可以去網(wǎng)上找資源)。

5.性別統(tǒng)計(jì),不及格統(tǒng)計(jì)

一些很簡(jiǎn)單的循環(huán)問(wèn)題和if語(yǔ)句判斷問(wèn)題。

6.文件

主要在網(wǎng)上找視頻,了解寫文件讀文件即可。

7.主函數(shù)

對(duì)switch語(yǔ)句的運(yùn)用。


代碼部分


#include#include#include#include#includestruct student
{
	char id[20];
	char name[20];
	char sexual[20];
	float grade_math;
	float grade_English;
	float grade_c;
	student *next;
};

int color(int number)
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),number);
	return 0;
} 

void menu()
{
		system("cls");
	printf("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-登陸成功!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n");
    printf("-------------------------___【學(xué)生信息管理系統(tǒng)】___--------------------------------\n");
	printf(" \n");
	printf(" \n");
    printf("===================================================================================\n");
    printf("********************************------------***************************************\n");
    printf("*******************************||  *菜單*  ||**************************************\n");
    printf("********************************------------***************************************\n");
    printf("===================================================================================\n");
    printf("        *|*                   [1]錄入學(xué)生信息                           *|*        \n");
    printf("        *|*         (注錄入會(huì)把之前存的數(shù)據(jù)全部消除)                     *|*        \n");
    printf("        *|*                   [2]增加學(xué)生信息                           *|*        \n");
    printf("        *|*                   [3]刪除本班學(xué)生信息                       *|*        \n");
    printf("        *|*                   [4]修改本班學(xué)生信息                       *|*        \n");
    printf("        *|*                   [5]查看全部學(xué)生信息                       *|*        \n");
    printf("        *|*         (注:選擇查看請(qǐng)先選擇[1]錄入成績(jī))                    *|*        \n");
    printf("        *|*                   [6]性別統(tǒng)計(jì)                              *|*        \n"); 
    printf("        *|*         (注:選擇性別統(tǒng)計(jì)請(qǐng)先選擇[1]錄入成績(jī))                *|*        \n");
    printf("        *|*                   [7]查看專業(yè)課不及格的學(xué)生信息             *|*        \n");
    printf("        *|*         (注:選擇查看專業(yè)課不及格的學(xué)生請(qǐng)先選擇[1]錄入成績(jī))    *|*        \n");
    printf("        *|*                   [8]按c語(yǔ)言成績(jī)排序(降序)                *|*        \n");
    printf("        *|*                   [9]保存學(xué)生信息                          *|*        \n")
    printf("        *|*                   [0]退出                                  *|*        \n");
    printf("________*|*_____________________________________________________________*|*________\n");
    printf("-----------------------------------------------------------------------------------\n"); 
    printf("PS: 不要忘記先錄入成績(jī)哦__\n\n");
} 

void Check_student(student *NEW)
{
	char id[20];
	char name[20];
	char sexual[20];
	float grade_math;
	float grade_English;
	float grade_c; 
	while(1)
	{
		scanf("%s%s%s%f%f%f",&id,&name,&sexual,&grade_math,&grade_English,&grade_c);
		printf(" \n"); 
		if(strlen(id)==10&&(strcmp(sexual,"man")==0||strcmp(sexual,"woman")==0)&&(grade_math>=0&&grade_math<=100)&&
		(grade_English>=0&&grade_English<=100)&&(grade_c>=0&&grade_c<=100))
		{
			strcpy(NEW->id,id);
			strcpy(NEW->name,name);
			strcpy(NEW->sexual,sexual);
			NEW->grade_math=grade_math;
		 	NEW->grade_English=grade_English;
		 	NEW->grade_c=grade_c;
		 	return ; 	
		}else{
			printf("-----     數(shù)據(jù)輸入錯(cuò)誤,請(qǐng)重新輸入!     -----\n");
			getchar();
		}
	}
	system("pause");
}



student *Creat_student() 
{
	system("cls");
	student *head = (student *)malloc(sizeof(student));
	student *p = (student *)malloc(sizeof(student));
	head->next = NULL;
	p = head;
	printf("-----     請(qǐng)輸入你將要錄入學(xué)生信息的人數(shù)     \n-----");
	int n;
	scanf("%d",&n);                    
	for(int i=0;i學(xué)號(hào)(10)   姓名   性別 數(shù)學(xué) 英語(yǔ) c語(yǔ)言\n");
		printf("--->如  0000000000 張三   man  100  100  100\n");
		printf("-------------------------------------------------------------\n"); 
		printf("---->");
		Check_student(q);
		student *c = (student *)malloc(sizeof(student));
		c = head	;
		int num = 1;
		while(c)
		{
			if(strcmp(q->id,c->id)==0) 
			{
				num = 0;
				break;
			}
			c = c->next;
		}		
		if(num)
		{
			q->next = NULL;
			p->next = q;
			p = q; 
		}else{
			printf("-----     該學(xué)生信息已存在,請(qǐng)重新輸入     -----\n");
			n++; 
			system("pause");
		}
 	} 
 	printf("錄入完畢!\n");
 	system("pause");
 	return head;
}

void Add_student(student *head)
{
	system("cls");
	while(1)
	{
		printf("----      請(qǐng)輸入將要增加的數(shù)量      ----\n");
		student *p = (student *)malloc(sizeof(student));
		p = head;
		int n;
		scanf("%d",&n);
		for(int i=0;i學(xué)號(hào)(10)   姓名   性別 數(shù)學(xué) 英語(yǔ) c語(yǔ)言\n");
			printf("--->如  0000000000 張三   man  100  100  100\n");
			printf("-------------------------------------------------------------\n"); 
			printf("---->");
			Check_student(q);
			student *c = (student *)malloc(sizeof(student));
			c = head->next;
			int num = 1;
			while(c)
			{
				if(strcmp(q->id,c->id)==0) 
				{
					num = 0;
					break;
				}
				c = c->next;
			}
			if(num)
			{
				q->next = head->next;
				head->next = q;
			}else{
				printf("-----     該學(xué)生信息已存在,請(qǐng)重新輸入     -----\n");
				n++; 
				system("pause");
			}
			printf("----------             錄入完畢!             ----------\n");
	 		system("pause");
		}	
		int m;
		printf("-----     是否繼續(xù)增加學(xué)生,若是,請(qǐng)輸入1,若輸入其他則返回主界面     -----\n");
		scanf("%d",&m);
		if(m!=1)
		{
			break;
		} 
	}
}

void delete_student(student *head)
{   
	system("cls");
	student *p = (student *)malloc(sizeof(student));
	p = head;
	student *q = (student *)malloc(sizeof(student)); 
	printf("----    請(qǐng)輸入將要?jiǎng)h除學(xué)生的學(xué)號(hào)    ----\n");
	printf("0000000000(學(xué)號(hào)為十位數(shù))\n");
	char id[20];
	scanf("%s",&id);
	if(p==NULL)
	{
		printf("------      此時(shí)沒(méi)有學(xué)生信息,請(qǐng)重新輸入      ------\n");
		system("pause");
	}else{
		while(p->next!=NULL)
		{
			if(strcmp(p->next->id,id)==0)
			{
			   	q = p->next;
			  	p->next = q->next;
			    free(q);
			   	printf("-----     該學(xué)生的信息已被刪除     -----\n");
			    system("pause");
			    return ;
			}
			p = p->next;
		}
		if(p->next==NULL)
		{
			printf("----    沒(méi)有查詢到將要?jiǎng)h除的學(xué)生信息    ----\n");
			system("pause");
			return ; 
		}
	}
}

 void Revise_student(student *head)
{
	system("cls");
	printf("----      請(qǐng)輸入將要修改的數(shù)量      ----\n");
	student *p = (student *)malloc(sizeof(student));
	p = head;
	int n;
	scanf("%d",&n);
	for(int i=0;inext = NULL;
		printf("----    請(qǐng)輸入將要修改學(xué)生的學(xué)號(hào)    ----\n");
		printf("0000000000(學(xué)號(hào)為十位數(shù))\n");
		char id[20];
		scanf("%s",&id);
		system("cls");
		if(p==NULL)
		{
			printf("------      此時(shí)沒(méi)有學(xué)生信息,請(qǐng)重新輸入      ------\n"); 
			system("pause");
		}else{
			while(p!=NULL)
			{
				if(strcmp(p->id,id)==0)
				{
					printf("-----     請(qǐng)輸入修改后的學(xué)生的學(xué)生信息     -----\n");
					printf("請(qǐng)按照如下格式書寫\n---->學(xué)號(hào)(10)   姓名   性別  數(shù)學(xué) 英語(yǔ) c語(yǔ)言\n");
					printf("--->如  0000000000 張三   man   100  100  100\n");
					printf("-------------------------------------------------------------\n"); 
					printf("---->");
					scanf("%s%s%s%f%f%f",&q->id,&q->name,&q->sexual,&q->grade_math,&q->grade_English,
					&q->grade_c);
					student *c = (student *)malloc(sizeof(student));
					c = head->next;
					int num = 1;
					while(c)
					{
						if(strcmp(c->id,q->id)==0)
						{
							num = 0;
							break;
						}
						c = c->next;
					}
					if(num==1)
					{
						if(strlen(q->id)==10&&(strcmp(q->sexual,"man")==0||strcmp(q->sexual,"woman")==0)&&
						(q->grade_math>=0&&q->grade_math<=100)&&(q->grade_English>=0&&q->grade_English<=100)
						&&(q->grade_c>=0&&q->grade_c<=100))
						{
							strcpy(p->id,q->id);
							strcpy(p->name,q->name);
							strcpy(p->sexual,q->sexual);
							p->grade_math = q->grade_math;
							p->grade_English = q->grade_English;
							p->grade_c = q->grade_c;
							printf("------       該學(xué)生的信息已被修改!     ------\n");
							system("pause");
							break;
						}else{
							printf("-----     數(shù)據(jù)輸入錯(cuò)誤,即將返回到主頁(yè)面!     -----\n");
							system("pause");
							break; 
				 		}	
					}else{
						printf("-----     該學(xué)生信息已存在,即將返回到主頁(yè)面!     -----\n");
						system("pause");
						break;
					}
				}
				p = p->next;
			}
			if(p==NULL) 
	 		{
	 			printf("-----     沒(méi)有找到該學(xué)生信息,按任意鍵返回主界面!     -----\n");
				system("pause");
				break;
			}
		}  
	}	
}

void All_student(student *head)
{
	system("cls");
	student *p=head;
	printf("----所有的學(xué)生信息總結(jié)----\n");
	printf(" \n");
	printf("學(xué)號(hào)\t\t姓名\t性別\t數(shù)學(xué)\t英語(yǔ)\tc語(yǔ)言\t\n");
	if(p==NULL)
	{
		printf("------      此時(shí)沒(méi)有學(xué)生信息,請(qǐng)重新輸入      ------\n");
		system("pause");
	}else{
		while(p->next!=NULL)
		{
			printf("%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t\n",
		    p->next->id,p->next->name,p->next->sexual,p->next->grade_math,p->next->grade_English,p->next->grade_c);
		    p=p->next;
		}
	}
	printf("--------------------------------------------------------------\n");
    printf("                          輸出完畢                             \n");
    system("pause");
}

int sexual_census(student *head)
{
	system("cls");
	student *p = (student *)malloc(sizeof(student));
	p = head;
	int man = 0;
	int woman = 0; 
	if(p==NULL)
	{
		printf("------      此時(shí)沒(méi)有學(xué)生信息,請(qǐng)重新輸入      ------\n");
		system("pause");
	}else{
		while(p->next!=NULL)
		{
			if(strcmp(p->next->sexual,"man")==0)
			{
				man++;
			}else if(strcmp(p->next->sexual,"woman")==0)
			{
				woman++;
			}
			p = p->next;
		}
	}
	printf("------     統(tǒng)計(jì)結(jié)果為     ------\n");
	printf("----    男生的人數(shù)為:%d人\n",man);
	printf("----    女生的人數(shù)為:%d人\n",woman);
	printf("--------------------------------------------------------------\n");
	system("pause");
	return 0; 
}

void sorttotal_student(student *head)
{
	system("cls");
	int cou = 0;
	int i,num;
	student *tail = (student *)malloc(sizeof(student));
	student *q = (student *)malloc(sizeof(student));
	student *p = (student *)malloc(sizeof(student));
	student *t = (student *)malloc(sizeof(student));
	t = head;
	if(t->next != NULL)
	{
		while(t->next != NULL)
		{
			cou++;
			t = t->next;
		}
		for(i=0;inext;
			p = q->next;
			while(num--)
			{
				if(q->grade_cgrade_c)
				{
					q->next = p->next;
					p->next = q;
					tail->next = p;
				}
				tail = tail->next;
				q = tail->next;
				p = q->next;
			}
		}
		printf("--------        排序成功,請(qǐng)返回主界面選擇查看!        --------\n");
		system("pause"); 
	}else
	{
		printf("--------        此時(shí)沒(méi)有學(xué)生信息,請(qǐng)錄入!        --------\n");
		system("pause");
	}
}

void bad_student(student *head)
{
	system("cls");
	student *p = (student *)malloc(sizeof(student));
	p = head;
	printf("-----     專業(yè)課不及格的學(xué)生如下     -----\n");
	printf("學(xué)號(hào)\t\t姓名\t性別\t數(shù)學(xué)\t英語(yǔ)\tc語(yǔ)言\t\n");
	if(p==NULL)
	{
		printf("------      此時(shí)沒(méi)有學(xué)生信息,請(qǐng)重新輸入      ------\n");
		system("pause"); 
	}else{
		while(p->next!= NULL)	
		{
			if(p->next->grade_c<60)
			{
				printf("%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t\n",
		    	p->next->id,p->next->name,p->next->sexual,p->next->grade_math,
				p->next->grade_English,p->next->grade_c);
				printf("--------------------------------------------------------------\n");
			}
			p = p->next;
		}
	}
	system("pause");
} 

void Save_student(student *head)
{
	system("cls");
	char filename[15];
	printf("------     請(qǐng)輸入要建立的文件的名稱:     ------\n"); 
	scanf("%s",filename);
	FILE *fp;
	fp = fopen(filename,"w");
	if(fp==NULL)
	{
		printf("-----     打開(kāi)文件失??!     -----\n");
		system("pause");
		return ;
	}
	student *p = head->next;
	while(p)
	{
		fprintf(fp,"學(xué)號(hào)\t\t\t姓名\t\t性別\t\t數(shù)學(xué)\t\t英語(yǔ)\t\tc語(yǔ)言\t\t\n");
		fprintf(fp,"%s\t\t%s\t\t%s\t\t%.1f\t\t%.1f\t\t%.1f\t\t\n",&p->id,&p->name,
		&p->sexual,&p->grade_math,&p->grade_English,&p->grade_c);
		p = p->next;
	}
		printf("-------     學(xué)生數(shù)據(jù)保存成功!     -------\n");
		system("pause");
	fclose(fp);
} 

int main() 
{
	int x = 0;
	while(1)
	{
		color(2);
		char mima[20] = "nangongyouc";
		char mima_1[20];
		printf("------    請(qǐng)輸入密碼(您還有%d次機(jī)會(huì))    ------\n",6-x);
		printf("---->");
		gets(mima_1);
		if(strcmp(mima_1,mima)==0)
		{
			printf("------       密碼正確!       ------\n");
			printf(" \n");
			printf("pause");
			printf("--- 請(qǐng)按任意鍵進(jìn)入學(xué)生管理系統(tǒng)! ---\n");
			break; 
		}else if(strcmp(mima_1,mima)!=0&&x<5){
          x++;
			printf("-----   密碼錯(cuò)誤,請(qǐng)重新輸出   -----\n"); 
			system("pause");
			system("cls");
		}else if(strcmp(mima_1,mima)!=0&&x>=5)
		{
			printf("密碼輸入次數(shù)過(guò)多,已退出系統(tǒng)!");
			return 0;
		}
	}
	student *head = (student *)malloc(sizeof(student));
	head->next = NULL;
	int n;
	while(1)
	{
		color(11);
		menu();
		scanf("%d",&n);
		switch(n)
		{
		case 1:
			color(6);
			head = Creat_student();
			break;
		case 2:
			color(11);
			Add_student(head);
			break;
		case 3:
			color(14);
			delete_student(head);
			break;
		case 4:
			color(9);
			Revise_student(head);
			break;
		case 5:
			color(12);
			All_student(head);
			break;
		case 6:
			color(13);
			sexual_census(head);
			break;
		case 7:
			color(10);
			bad_student(head);
			break;
		case 8: 
			color(12);
			sorttotal_student(head);
			break;
		case 9:
			color(10);
			Save_student(head);
			break;
		case 0:
			printf("-----     歡迎下次使用     -----!");
			return 0;
		default:
			printf("-----     請(qǐng)按系統(tǒng)提示進(jìn)行操作     -----\n");
			system("pause");
			break;
		}
	}
	return 0;
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前題目:期末課設(shè)學(xué)生信息管理系統(tǒng)鏈表(有簡(jiǎn)單解釋)-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://jinyejixie.com/article26/issjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)頁(yè)設(shè)計(jì)公司、標(biāo)簽優(yōu)化、關(guān)鍵詞優(yōu)化、手機(jī)網(wǎng)站建設(shè)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
东明县| 年辖:市辖区| 栾城县| 洞头县| 延吉市| 张家口市| 永福县| 黎平县| 阿克| 额济纳旗| 进贤县| 绥芬河市| 横峰县| 漳州市| 洛阳市| 长葛市| 辉县市| 富裕县| 称多县| 遂宁市| 北宁市| 同德县| 颍上县| 延吉市| 佛坪县| 安泽县| 安顺市| 广丰县| 崇信县| 怀集县| 武清区| 东海县| 荣昌县| 肃北| 邢台县| 龙里县| 南投县| 绥棱县| 南雄市| 北流市| 北海市|