亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C語言實現——學生管理系統

2019-11-10 19:53:53
字體:
來源:轉載
供稿:網友

程序員的必經之路吧,學生管理系統。在制作過程中體會到了編寫一個具體可用的軟件而要做的工作,無論是編寫前的準備,還是編寫過程中每個細節的處理,都讓我理解了這份工作是個什么樣子。程序并不是抬手就來,一個軟件要完整,同時還要將每個功能部分區分開,所以在編寫之前一定要先規劃清楚,這是一項工程。邏輯要嚴密,編程完全就是對邏輯思維的考驗,大大小小的函數、語句都是靠邏輯連接起來的?;A知識要扎實,在我現在這個階段,經常會遇到為干掉bug而苦思半天,在邏輯上尋覓沒有出口,其實只是對用法不了解,上課時認為那種不太??嫉臇|西不用太費心,只要把主要的知識記住就行,但事實上每個知識點都是有用的。

#include<stdio.h>#include<windows.h>//#include<conio.h>//#include<string.h>struct STUDENT {	char name[10];	int num;	int sex;	double score;	struct STUDENT* next;}*ListHead;void menu();void Import();void Show();void Add();void Search();void Rank();void Delete();void Export();void Exit();struct STUDENT* CreatListHead();void ListInsert(char *name,int num,int sex,double score);void IfListBlank();void ExchangeNope(struct STUDENT *p,struct STUDENT *q);void DeleteNode(struct STUDENT *d);void WriteList(char *path);void IfHeadEmpty();int main(){//	Load();//	clrscr();//	PRintf("en");//	system("cls");/*	if(ListHead==NULL)		printf("!!!");	else		printf("???");*/	menu();		return 0;}void menu() {	int i;	system("cls");		printf("-----------------------------------------------/n");	printf("                 學生管理系統/n");	printf("-----------------------------------------------/n");	printf("       1.導入 | 2.顯示 | 3.增添 | 4.查找/n");	printf("       5.排序 | 6.刪除 | 7.導出 | 8.退出/n");	printf("-----------------------------------------------/n");	printf("請選擇一個選項:");	scanf("%d", &i);	switch(i) {		case 1:Import();break;		case 2:Show();break;		case 3:Add();break;		case 4:Search();break;		case 5:Rank();break;		case 6:Delete();break;		case 7:Export();break;		case 8:Exit();break;		case 9:IfListBlank();break;		default:menu();	}}//導入文件---------------------------------------------------------------------------------void Import(){	ListHead = CreatListHead();	FILE *fp;	char buf[30];	char *iname;	int inum=0;	int isex=0;	double iscore=0;	int i = 0;	char *line;	fp=fopen("students.txt","r");	if(fp==NULL)	{		printf("import failed!&& creat a new file,any key return/n");		ListHead = CreatListHead();		fflush(stdin);		getchar();		menu();	}else{		while(!feof(fp))		{			fgets(buf,30,fp);			line = strtok(buf," /t/r/n");			while(line != NULL)			{				switch(i){				case 0: iname=line; break;				case 1: inum=atoi(line); break;				case 2: isex=atoi(line); break;				case 3: iscore=atof(line); break;				default: break;				}				i++;				//	printf("%s  %d  %d  %f/n",iname,inum,isex,iscore);				//	ListInsert(iname,inum,isex,iscore);				line = strtok(NULL," /t/r/n");				}			i=0;			//	printf("%-10s%-5d %d %4.1f/n",iname,inum,isex,iscore);			ListInsert(iname,inum,isex,iscore);		}		fclose(fp); 	}		printf("import successful! anykey to return/n");	fflush(stdin);	getchar();	menu();}//顯示功能---------------------------------------------------------------------------------void Show(){	IfHeadEmpty();	struct STUDENT *prep,*p;	prep = ListHead;	p = ListHead->next;	while(p)	{		prep = p;		p =p->next;		if(prep->sex)		{			printf("%-10s%-5d 男 %4.1f/n",prep->name,prep->num,prep->score);		}else{			printf("%-10s%-5d 女 %4.1f/n",prep->name,prep->num,prep->score);		}	}	printf("show successful! anykey to return/n");	fflush(stdin);	getchar();	menu();}//添加數據---------------------------------------------------------------------------------void Add(){	IfHeadEmpty();	char aname[10];	int anum=0;	int asex=0;	double ascore=0;	printf("enter data:");	fflush(stdin);	scanf("%s%d%d%lf",aname,&anum,&asex,&ascore);//	printf("%s%-5d %d %4.1f/n",aname,anum,asex,ascore);	ListInsert(aname,anum,asex,ascore);		printf("add successful! anykey to return/n");	fflush(stdin);	getchar();	menu();}//查詢功能---------------------------------------------------------------------------------void Search(){	IfHeadEmpty();	struct STUDENT *prep,*p;	prep = ListHead;	p=ListHead->next;	int i;	char sname[10];	int snumsex;	double sscore;	int isfind=0;	//printf("%-10s%-5d %d %4.1f/n",name,num,sex,score);	printf("which methed you choose:1.name 2.num 3.sex 4.score 0.exit/n");	scanf("%d",&i);	switch(i){	case 0:menu();	case 1: 		printf("enter the name you are looking for:");		scanf("%s",sname);		while(p)		{			prep = p;			p = p->next;			if(strcmp(prep->name,sname)==0)			{				printf("%-10s%-5d %d %4.1f/n",prep->name,prep->num,prep->sex,prep->score);				isfind = 1;			}		}		break;	case 2:			printf("enter the num you are looking for:");		scanf("%d",&snumsex);		while(p)		{			prep = p;			p =p->next;			if(prep->num==snumsex)			{				printf("%-10s%-5d %d %4.1f/n",prep->name,prep->num,prep->sex,prep->score);				isfind = 2;			}		}		break;	case 3:		printf("enter the sex you are looking for:");		scanf("%d",&snumsex);		while(p)		{			prep = p;			p =p->next;			if(prep->sex==snumsex)			{				printf("%-10s%-5d %d %4.1f/n",prep->name,prep->num,prep->sex,prep->score);				isfind = 3;			}		}		break;	case 4:		printf("enter the score you are looking for:");		scanf("%lf",&sscore);		while(p)		{			prep = p;			p =p->next;			if(prep->score==sscore)			{				printf("%-10s%-5d %d %4.1f/n",prep->name,prep->num,prep->sex,prep->score);				isfind = 4;			}		}		break;	default:		printf("error number,re-enter:/n");		Search();	}	if(isfind!=0)		printf("Search successful! press any ket to return/n");	else		printf("Search failed! press any ket to return/n");	fflush(stdin);	getchar();//	setbuf(stdin,"4/r");//	ungetc('4',stdin);//	sscanf("4","%d",stdin);//	menu();	Search();}//排序功能---------------------------------------------------------------------------------void Rank(){	IfHeadEmpty();	struct STUDENT *prep,*p,*key;	int i=0,j=1;//	double isequal;//	printf("%-10s%-5d %d %4.1f/n",name,num,sex,score);	printf("sort by: 1.name 2.num 3.sex 4.score 0.exit/n");	scanf("%d",&i);	if(i<1 || i>4)	{		printf("wrong choose,re-enter:/n");		Rank();	}	printf("order: 1.positive 0.reverse/n");	scanf("%d",&j);	if(j<0 || j>1)	{		printf("wrong choose,re-enter:/n");		Rank();	}	switch(i){	case 0:menu();              //選擇排序法:將第一個數的備份與后排比較,小于它的就將他賦值給備份交換(指針代表原數),一行循環接收進行,再將第二個數進行如此循環	case 1:			prep = ListHead;		p=ListHead->next;		while(prep->next)		{			prep = prep->next;			p = prep->next;			key = prep;			while(p)			{				if(j)				{					if(strcmp(key->name,p->name) > 0)						key = p;				}else{					if(strcmp(key->name,p->name) < 0)						key = p;				}				p = p->next;			}			ExchangeNope(prep, key);		}		break; 	case 2:		prep = ListHead;		p=ListHead->next;		while(prep->next)		{			prep = prep->next;			p = prep->next;			key = prep;			while(p)			{				if(j)				{					if((key->num-p->num) > 0)						key = p;				}else{					if((key->num-p->num) < 0)						key = p;				}				p = p->next;			}			ExchangeNope(prep, key);		}		break;	case 3:		prep = ListHead;		p=ListHead->next;		while(prep->next)		{			prep = prep->next;			p = prep->next;			key = prep;			while(p)			{				if(j)				{					if((key->sex-p->sex) > 0)						key = p;				}else{					if((key->sex-p->sex) < 0)						key = p;				}				p = p->next;			}			ExchangeNope(prep, key);		}		break;	case 4:		prep = ListHead;		p=ListHead->next;		while(prep->next)		{			prep = prep->next;			p = prep->next;			key = prep;			while(p)			{				if(j)				{					if((key->score-p->score) > 0)						key = p;				}else{					if((key->score-p->score) < 0)						key = p;				}				p = p->next;			}			ExchangeNope(prep, key);		}		break;	default:printf("wrong choose,re-enter:");		Rank();	}	Show();	printf("Rank successful!any key to return;/n");	fflush(stdin);	getchar();	menu();	}//刪除---------------------------------------------------------------------------------void Delete(){	IfHeadEmpty();	struct STUDENT *prep,*p,*del;	prep = ListHead;	p=ListHead->next;	int i;	int isfind=0;	char *dname;	int dnumsex;	double dscore;	printf("select a method: 1.name 2.num 3.sex 4.score 0.exit/n");	scanf("%d",&i);	switch(i){	case 0:menu();	case 1:		printf("enter the name:/n");		scanf("%s",dname);		while(p)		{						if(!strcmp(p->name,dname))			{				prep->next = p->next;				del = p;				printf("%-10s%-5d %d %4.1f(已刪除)/n",del->name,del->num,del->sex,del->score);				free(p);				p = prep->next;				isfind = 1;			}else{				prep = p;				p =p->next;			//	isfind = 0;			}		}		break;	case 2:		printf("enter the num:/n");		scanf("%d",&dnumsex);		while(p)		{						if(!(p->num-dnumsex))			{				prep->next = p->next;				del = p;				printf("%-10s%-5d %d %4.1f(已刪除)/n",del->name,del->num,del->sex,del->score);				free(p);				p = prep->next;				isfind = 1;			}else{				prep = p;				p =p->next;			//	isfind = 0;			}		}		break;	case 3:		printf("enter the sex:/n");		scanf("%d",&dnumsex);		while(p)		{						if(!(p->sex-dnumsex))			{				prep->next = p->next;				del = p;				printf("%-10s%-5d %d %4.1f(已刪除)/n",del->name,del->num,del->sex,del->score);				free(p);				p = prep->next;				isfind = 1;			}else{				prep = p;				p =p->next;			//	isfind = 0;			}		}		break;	case 4:		printf("enter the score:/n");		scanf("%lf",&dscore);		while(p)		{						if(!(p->score-dscore))			{				prep->next = p->next;				del = p;				printf("%-10s%-5d %d %4.1f(已刪除)/n",del->name,del->num,del->sex,del->score);				free(p);				p = prep->next;				isfind = 1;			}else{				prep = p;				p =p->next;			//	isfind = 0;			}		}		break;	default:		printf("wrong choose,re-enter:");		Delete();	}	if(isfind)		printf("Delete successful!/n");	else		printf("Delete failed!/n");	printf("there is the current list:/n");	Show();	fflush(stdin);	printf("press any key to continue");	getchar();	menu();}//導出檔案---------------------------------------------------------------------------------void Export(){	IfHeadEmpty();	FILE *fp;	char save[15];	int i;	printf("enter the save name:/n");	fflush(stdin);///	printf("if wrong????????????????????/n");	scanf("%s",save);                        //字符串鍵入只能用字符串數組接收不能用指針變量//	printf("if wrong????????????????????/n");	fp = fopen(save,"r");//	printf("if wrong????????????????????/n");	if(fp!=NULL)	{		printf("Whether covered: 1.Yse 0.No:/n");		fflush(stdin);		scanf("%d",&i);		if(i)			WriteList(save);		else			Export();		fclose(fp);	}else{		WriteList(save);			}			printf("Export successful! press any key to continue");	fflush(stdin);	getchar();	menu();	}//退出-----------------------------------------------------------------------------------------void Exit(){	exit(0);}//鏈表相關函數---------------------------------------------------------------------------------struct STUDENT* CreatListHead(){	struct STUDENT* p;	p = (struct STUDENT*)malloc(sizeof(struct STUDENT));//結構體指針創建后一定要初始化?。。?p->next = NULL;	return p;}void ListInsert(char *name,int num,int sex,double score){	//printf("%-10s%-5d %d %4.1f/n",name,num,sex,score);	struct STUDENT *prep,*p;	prep = ListHead;	p=ListHead->next;	printf("%-10s%-5d %d %4.1f/n",name,num,sex,score);	while(p)	{		prep = p;		p =p->next;	}	p = (struct STUDENT*)malloc(sizeof(struct STUDENT));		strcpy(p->name,name);	p->num = num;	p->sex = sex;	p->score = score;	p->next = NULL;	prep->next = p;}void IfListBlank(){	struct STUDENT *prep,*p;	int i=0;	prep = ListHead;	p=ListHead->next;	while(p)	{		prep = p;		p =p->next;		i++;	}	printf("%d",i);}void ExchangeNope(struct STUDENT *p,struct STUDENT *q){	char exchar[10];	int exint;	double exdouble;	strcpy(exchar , p->name);	strcpy(p->name , q->name);	strcpy(q->name , exchar);	exint = p->num;	p->num = q->num;	q->num = exint;	exint = p->sex;	p->sex = q->sex;	q->sex = exint;	exdouble = p->score;	p->score = q->score;	q->score = exdouble;}void DeleteNode(struct STUDENT *d){	struct STUDENT *prep,*p,*del;	prep = ListHead;	p=ListHead->next;	while(p)	{		if(prep==d)		{			prep->next = p->next;			del = p;			printf("%-10s%-5d %d %4.1f(已刪除)/n",del->name,del->num,del->sex,del->score);			prep = p->next;			p = prep->next;			free(del);			break;		}else{			prep = p;			p =p->next;		}	}}void WriteList(char *path){	struct STUDENT *p;//	prep = ListHead;	p = ListHead->next;	FILE *fpin;	fpin = fopen(path,"w");	while(p)	{	//	fwrite(p,sizeof(p),1,fpin);		fprintf(fpin,"%-10s%-5d %d %4.1f/n",p->name,p->num,p->sex,p->score);		printf("%-10s%-5d %d %4.1f(已寫入)/n",p->name,p->num,p->sex,p->score);		p = p->next;	}	fclose(fpin);}void IfHeadEmpty(){	if(ListHead==NULL){		printf("please import!/n");		getchar();		menu();	}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人看片人aa| 91成人在线播放| 国产精品视频网站| 日韩欧美一区二区在线| 欧美久久精品一级黑人c片| 色偷偷偷亚洲综合网另类| 最近2019年日本中文免费字幕| 欧美精品激情视频| 成人免费福利视频| 日韩69视频在线观看| 亚洲欧美综合精品久久成人| 国产精品中文字幕在线观看| 色哟哟网站入口亚洲精品| 国产精品黄色影片导航在线观看| 欧美性猛交视频| 亚洲精品永久免费精品| 欧美成人激情视频| 日韩电影中文字幕在线观看| 永久免费看mv网站入口亚洲| 国产伦精品一区二区三区精品视频| 国产在线视频一区| 97热在线精品视频在线观看| 91免费观看网站| 久久久欧美一区二区| 亚洲男人的天堂在线播放| 26uuu另类亚洲欧美日本一| 日韩在线视频二区| 欧美在线视频一区二区| 午夜精品久久久久久久白皮肤| 欧美影院久久久| 日韩美女视频中文字幕| 亚洲bt天天射| 欧美激情a∨在线视频播放| 国产欧美最新羞羞视频在线观看| 欧美在线欧美在线| 亚洲欧美中文另类| 日本精品免费一区二区三区| 日本电影亚洲天堂| 亚洲精品97久久| 亚洲国产成人精品久久久国产成人一区| 91久久精品视频| 国产美女久久久| 欧美精品videossex性护士| 亚洲va国产va天堂va久久| 91国产精品视频在线| 91精品久久久久久久久久| 国产精品一区二区久久精品| 亚洲成人亚洲激情| 精品久久久在线观看| 欧美午夜无遮挡| 高清一区二区三区四区五区| 亚洲va欧美va国产综合剧情| 午夜精品久久久久久久久久久久久| 精品久久久久久久久中文字幕| 成人高h视频在线| 国产精品一区二区3区| 亚洲成年人在线播放| 欧美激情亚洲国产| 成人深夜直播免费观看| 亚洲级视频在线观看免费1级| 亚洲一区二区三区视频| 这里只有精品视频在线| 亚洲一区二区三| 国产精品国产三级国产aⅴ浪潮| 久久亚洲欧美日韩精品专区| 亚洲男人的天堂在线播放| 久久精品精品电影网| 欧美精品video| 韩剧1988免费观看全集| 欧美国产激情18| 最新国产精品拍自在线播放| 亚洲影视中文字幕| 91香蕉电影院| 国产精品揄拍一区二区| 国产精品一区二区久久| 色中色综合影院手机版在线观看| 91精品免费视频| 色无极影院亚洲| 永久免费精品影视网站| 色综合色综合久久综合频道88| 欧美午夜片在线免费观看| 蜜月aⅴ免费一区二区三区| 欧美日韩国产中文字幕| 欧美精品videosex极品1| 久久中文字幕在线视频| 国产精品免费久久久| 久久不射热爱视频精品| 55夜色66夜色国产精品视频| 国产精品久久久久久亚洲影视| 91久久国产综合久久91精品网站| 97精品视频在线播放| 欧美日韩激情视频8区| 久久亚洲精品小早川怜子66| 亚洲精品福利免费在线观看| 亚洲国产精品悠悠久久琪琪| 成人性生交大片免费观看嘿嘿视频| 国产精品三级久久久久久电影| 久久视频这里只有精品| 日韩电视剧在线观看免费网站| 久久精品人人爽| 国模精品系列视频| 久热爱精品视频线路一| 精品国产老师黑色丝袜高跟鞋| 精品人伦一区二区三区蜜桃免费| 精品人伦一区二区三区蜜桃免费| 欧美日韩亚洲网| 久久免费视频这里只有精品| 日韩福利伦理影院免费| 亚洲欧美日韩视频一区| 欧美俄罗斯性视频| 久久久久久久久国产精品| 国产福利精品视频| 亚洲wwwav| 成人欧美在线观看| 欧美日韩福利电影| 91精品国产综合久久久久久久久| 精品成人av一区| 日韩中文字幕在线免费观看| 欧美激情影音先锋| 91九色国产视频| 亚洲国产精品yw在线观看| 日韩在线观看免费高清完整版| 亚洲字幕一区二区| 国产精品旅馆在线| 欧美xxxx做受欧美.88| 久久精品最新地址| 美女精品视频一区| 欧美大肥婆大肥bbbbb| 91精品国产综合久久香蕉最新版| 亚洲第一网站男人都懂| 久久亚洲综合国产精品99麻豆精品福利| 久久99热这里只有精品国产| 久久91精品国产| 欧美精品亚州精品| 亚洲精品网站在线播放gif| 日韩精品黄色网| 97**国产露脸精品国产| 91久久久亚洲精品| 久久精品色欧美aⅴ一区二区| 久久精品久久久久久国产 免费| 久久69精品久久久久久久电影好| 富二代精品短视频| 亚洲色图国产精品| 欧美成人精品在线| 黄色一区二区在线| 欧美黄色免费网站| 亚洲天堂av在线免费观看| 久久99精品久久久久久噜噜| 北条麻妃一区二区在线观看| 久久精品国产久精国产思思| 51ⅴ精品国产91久久久久久| 亚洲欧美日韩成人| 日韩电影中文字幕| 久久久精品影院| 日韩一区二区精品视频| 欧美亚洲另类制服自拍| 日本高清+成人网在线观看| 日韩亚洲精品视频| 亚洲精品综合精品自拍| 国产91成人video| 亚洲欧美国产制服动漫| 国产高清视频一区三区| 国产精品福利无圣光在线一区| 欧美日韩在线第一页|