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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mis_sms(finish).c

?? 學生信息管理系統(tǒng) 代碼量在3000左右。原創(chuàng)作品。(內(nèi)附程序流程圖)
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*
*********************************************************
*  					 頭文件
*********************************************************
*/ 
#include <stdio.h>
#include <windows.h>
#include <wincon.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
/*
*********************************************************
*  					  常量
*********************************************************
*/
#define DEBUG
#define __0 0x60
#define _0 0x30
#define _1 0x31
#define _2 0x32
#define _3 0x33
#define _4 0x34
#define _5 0x35
#define _6 0x36
#define _7 0x37
#define _ESC 0x1B
#define _PAGEUP 0x49
#define _PAGEDOWN 0x51
#define _DELETE 0x53
#define _BACKSPACE 0x08
#define _ENTER 13
#define _HOME 71
#define _END 79
#define _INSERT 82
#define KEY_UP 72
#define KEY_DOWN 80
#define KEY_LEFT 75
#define KEY_RIGHT 77
#define ERROR -3
#define STU_MAX 999 //學生最大上限
#define BACKMENU -1
#define INSERT_RECORD -1
#define MAKE_NEW_FILE -2
#define EMPTY -2
#define BACK 240
#define FOREGROUND_WHILE	 0x000F
const int FILE_NAME_LIMIT = 8;
const int ISVALID_FILENAME_VALID= 1;
const int ISVALID_FILENAME_ERROR = -1;
const int ISVALID_FILENAME_EMPTY = -2;
const int ISVALID_FILENAME_OVERFLOW = -3;
const int ISVALID_FILENAME_ERRORDOT = -4;

/*
*********************************************************
*  					  變量
*********************************************************
*/
FILE *fp,*fp1;

char fn[20];
int savedatalabel=0;  // 0 表示內(nèi)存中沒有數(shù)據(jù)
char loadfilename[9]={'\0'};    // 記錄載入的文件名,如果是新建的記錄,文件名為空
int filedatachange = -1;
int stu_count=1; //記錄學生數(shù)
int dataend=0;
int exitflag=0;
int searchflag=0;
int statflag = 0;
int sortway=3;

struct stu_info
{
	char sno[6];
	char sname[21];
	int  sage;
	char schi[6];
	char smath[6];
	char seng[6];
	char spho[6];
	char sche[6];
};
typedef struct stu_info Stu_Info;
struct stu_lnode
{
	struct stu_info data;
	struct stu_lnode *next,*pre;
};
typedef struct stu_lnode Stu_Lnode;
Stu_Lnode *in,*head,*tail,*p,*temp,*temphead,*temptail;	
/*
*********************************************************
*  				      函數(shù)原型
*********************************************************
*/



/*
*************************************************************
* 函數(shù)描述:定位光標位置的函數(shù)
* 輸入?yún)?shù):x,y 用于指定要定位到的坐標
* 返回值  :無
*************************************************************
*/
void GoToXY(int x, int y)
{
	COORD pos = {x,y};
	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);	// 獲取標準輸出設備句柄
	
	SetConsoleCursorPosition(hOut, pos);
}

void WhereXY(int *x, int *y)
{
	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);	// 獲取標準輸出設備句柄	  
	COORD pos;
	CONSOLE_SCREEN_BUFFER_INFO bInfo;
   	GetConsoleScreenBufferInfo( hOut, &bInfo );	
	pos = bInfo.dwCursorPosition;
	*x = pos.X;
	*y = pos.Y;
}

/*
*************************************************************
* 函數(shù)描述:在指定坐標畫矩形函數(shù)
* 輸入?yún)?shù):矩形左上角的X Y 坐標 矩形內(nèi)顯示的字符串
* 返回值  :無
*************************************************************
*/
void PrintRectangle(int x,int y,char *str)
{
	int j=0,i,len,space;
	len=strlen(str);
	if (len%2 == 0)
	space=(20-len)/2;
	else 
    {
		space=(21-len)/2;
		j=1;
	}
	GoToXY(x,y);
	printf("%c",218);
	for (i=0;i<20+j;i++)
		printf("%c",196);
	printf("%c",191);
	GoToXY(x,y+1);
	printf("%c",179);

	for (i=0;i<space;i++)
	printf(" ");
	printf("%s",str);
	for (i=0;i<space;i++)
	printf(" ");
	printf("%c",179);
	GoToXY(x,y+2);
	printf("%c",192);
	for (i=0;i<20+j;i++)
		printf("%c",196);
	printf("%c",217);	
}

/*
*************************************************************
* 函數(shù)描述:信息添加界面繪制的函數(shù)
* 輸入?yún)?shù):自動生成的學號字符串
* 返回值  :無
*************************************************************
*/
void PrintSubjectMenu(char *stu_No)
{
	GoToXY(15,3);
	printf("            No:");
	printf("%s",stu_No);
	GoToXY(15,4);
	printf("          Name:");
	GoToXY(15,5);
	printf("           Age:");
	GoToXY(15,6);
	printf(" Chinese Score:");
	GoToXY(15,7);
	printf(" English Score:");
	GoToXY(15,8);
	printf("    Math Score:");
	GoToXY(15,9);
	printf(" Phogric Score:");
	GoToXY(15,10);
	printf("Chemical Score:");	
}

/*
*************************************************************
* 函數(shù)描述:計算總分的函數(shù)
* 輸入?yún)?shù):q 為結(jié)構(gòu)體指針,指向要統(tǒng)計的學生
* 返回值  :通過str 返回統(tǒng)計結(jié)構(gòu)
*************************************************************
*/

void CalculateTotal(Stu_Lnode *q,char str[5])
{
	int len;
	float total;
	total=atof(q->data.schi)+atof(q->data.seng)+atof(q->data.smath)+atof(q->data.spho)+atof(q->data.sche);	
	sprintf(str,"%0.1f",total);
	len=strlen(str);
	if(str[len-1]!='0')
		str[len-1]='5';
	
}
/*
*************************************************************
* 函數(shù)描述:計算平均分的函數(shù)
* 輸入?yún)?shù):同上
* 返回值  :同上
*************************************************************
*/
void CalculateAvg(Stu_Lnode *q,char str[5])
{
	int len;
	float savg;
	savg=(atof(q->data.schi)+atof(q->data.seng)+atof(q->data.smath)+atof(q->data.spho)+atof(q->data.sche))/5.0;
	sprintf(str,"%0.1f",savg);
	len=strlen(str);
	if(str[len-1]!='0')
		str[len-1]='5';
	
}
/*
*************************************************************
* 函數(shù)描述:按學號和總分排序的函數(shù)
* 輸入?yún)?shù):排序方式  (4種)
* 返回值  :若沒有數(shù)據(jù)為空
*************************************************************
*/
int StructSort(int way)
{
	int i,count=0,j;
	char str1[5],str2[5];
	Stu_Lnode *q;
	Stu_Lnode *stemp = (Stu_Info *)malloc(sizeof(Stu_Info)); 
	q=head;
	if(q==NULL)
	{
		return EMPTY;
	}
	while(q!=tail)
	{
		count++;        //計算節(jié)點
		q=q->next;
	}
	if (count == 0)
		return EMPTY;
	q=head->next;	
		for(i=0;i<count;i++)
		{
			for (j=1;j<count-i;j++)		
			{	
				CalculateTotal(q,str1);
				CalculateTotal(q->next,str2);
					if(
						(way==4 && atoi(q->data.sno) < atoi(q->next->data.sno))
						||
						(way==3 && atoi(q->data.sno) > atoi(q->next->data.sno))
						||
						(way==2 && atof(str1) < atof(str2))
						||
						(way==1 && atof(str1) > atof(str2))
						)   
					{
						memcpy(stemp,q,sizeof(Stu_Info));
						memcpy(q,q->next,sizeof(Stu_Info));
						memcpy(q->next,stemp,sizeof(Stu_Info));
					}			
				q=q->next;
			}
			q=head->next;
		}
		
}

/*
*************************************************************
* 函數(shù)描述:打印學生信息的函數(shù)
* 輸入?yún)?shù):同上
* 返回值  :同上
*************************************************************
*/

void PrintStudentRecord(Stu_Lnode *q,char *stotal,char *savg,int k)
{
	int chil,engl,mathl,phyl,chel,totall,avgl,avgl_2;
	int i;
	chil=engl=mathl=phyl=chel=totall=avgl=avgl_2=32;
	switch(k)
	{
	case 1:			
			chil=179;
			break;		
	case 2:		
			engl=179;
			break;
	case 3:
			mathl=179;
			break;
	case 4:
			phyl=179;
			break;
	case 5:
			chel=179;
			break;
	case 6:
			totall=179;
			break;
	default : 
		break;
	}
printf("%c %-4s%-21s%-3d%c%-5s%c%-7s%c%-4s%c%-7s%c%-8s%c%-5s%c%c%-5s\n",
	   179,q->data.sno,q->data.sname,q->data.sage,chil,q->data.schi,engl,q->data.seng,mathl,q->data.smath,phyl,q->data.spho,chel,q->data.sche,totall,stotal,avgl,avgl_2,savg);					
  }

int GetchKey()
{
	int _key;
	while(1)
	{
		_key=getch();
		if(_key>200)
		{
			_key = getch();
			break;
		}
		return _key;
	}
	return _key;
}

void ClearMassage()
{	
	int i,j;
	for(i=0;i<4;i++)
	{	
		GoToXY(1,18+i);
		for (j=0;j<78;j++)
			printf(" ");		
	}
}

/*
*************************************************************
* 函數(shù)描述:清除指定行的函數(shù)
* 輸入?yún)?shù):行首的X Y 坐標
* 返回值  :無
*************************************************************
*/
void Clear(int x,int y)
{
	int i;
	GoToXY(x,y);
	for(i=0;i<78;i++)
	printf(" ");
}

void SpaceAlert()
{
	GoToXY(1,19);
	printf("Alert , First character can't input \"Space\"");
	Sleep(800);
	Clear(1,19);
}


void PrintAlert(int top)
{
	Clear(1,19);
	GoToXY(1,19);
	if (top>0 && top<10)
	{
		printf("Error---Please make choise between [0-%d]",top);
	}
	else
	{
		printf("Error---Please press key with [ENTER] and [ESC]");
	}
	GoToXY(1,20);
	printf("Press any key to continue");
	GetchKey();
	ClearMassage();
}


int GetString(char *str,int lenlimit)
{
	int key,i=0;
	while (1)
	{		
		key=GetchKey();
		if (key == _ESC)
		{
			str[i]='\0';
			return -1;
		}

		if (key==_BACKSPACE)
		{
			if (i==0)
			{
				continue;
			}
			else 
			{
				printf("\b \b");
				i--;
				continue;
			}
		}		
		if (key==_ENTER)
		{
			str[i]='\0';
			if (i==0)
			{
				return EMPTY;
			}
			return 1;
		}
		if (i==lenlimit)
		{
			continue;
		}
		if (isprint(key))
		{
			str[i]=key;
			i++;
			putchar(key);
			continue;
		}
	}
}
int InputDataCheck(char *str,int lenlimit,int x,int y)
{	 
	int xx,yy;
	int space=0,front=0;
	int i=0;
	int stringisvalid=1 ;	
	while(1)
	{	
		str[i]=GetchKey();
		WhereXY(&xx,&yy);
		if (str[0]==' ')
			SpaceAlert();
		if (xx==x+lenlimit)
		{
			while(1)
			{
				if(str[i]==_BACKSPACE || str[i] == _ENTER)
					break;
				str[i]=GetchKey();
			}				
		}
		if (xx!=x)
		{
			if (str[i]==' ')
			{
			GoToXY(x+i,y);
			printf("%c",str[i]);
			i++;		
			continue;
			}
		}				
		if (isdigit(str[i]))// || isalpha(str[i]) || str[i]=='.')
		{

			GoToXY(x+i,y);
			printf("%c",str[i]);		
		}
		else 
		{
			if (str[i]==_BACKSPACE)
			{
				WhereXY(&xx,&yy);		//定位光標
				if (xx!=x)				//如果不在第一個元素
				{
					str[--i]='\0';
					printf("\b");
					printf(" ");
					printf("\b");					
					continue;
				}
				else					//如果是第一個元素
				{
					GoToXY(x,y);
					continue;
				}
			}
			if(str[i] == _ENTER)		//若是回車
			{
				WhereXY(&xx,&yy);
				if (xx!=x)				//不在第一個元素
				{
					str[i]='\0';
					GoToXY(x,y);
					printf("%s",str);
					return 1;
				}
				else
					return EMPTY;
			}
			else 
				GoToXY(x+i,y);
			continue;			
		}
		i++;		
	}
}

void ClearDisplay(int x,int y)
{
	int i,j;
	for (i=0;i<16;i++)
	{
		GoToXY(x,y+i);
		for (j=0;j<78;j++)
			printf(" ");
	}
}

void ClearAll()
{
	ClearMassage();
	ClearDisplay(1,1);
}

void PrintRecordFrame(int k)
{
	int chil,engl,mathl,phyl,chel,totall,avgl,avgl_2;
	int i;
	chil=engl=mathl=phyl=chel=totall=avgl=avgl_2=32;
	switch(k)
	{
	case 1:			
			chil=engl=179;
			break;		
	case 2:		
			engl=mathl=179;
			break;
	case 3:
			mathl=phyl=179;
			break;
	case 4:
			phyl=chel=179;
			break;
	case 5:
			chel=totall=179;
			break;
	case 6:
			totall=avgl_2=179;
			break;
	default : 
		break;
	}
	GoToXY(0,0);
	printf("%c",218);
	GoToXY(1,0);
	for (i=0;i<78;i++)	
	printf("%c",196);
	printf("%c",191);
	GoToXY(0,1);
	printf("%c No  Name                 Age%cChina%cEnglish%cMath%cPhysics%cChemical%cTotal%c%cAvg  %c\n",179,chil,engl,mathl,phyl,chel,totall,avgl,avgl_2,179);	
	GoToXY(0,2);
	printf("%c",179);
	for (i=0;i<78;i++)
	printf("%c",196);
	printf("%c",179);
	GoToXY(0,3);
	for (i=0;i<9;i++);
	printf("%c",179);
	GoToXY(0,13);
	printf("%c",195);
	for (i=0;i<78;i++)
		printf("%c",196);
	printf("%c",180);
	//GoToXY(2,3);
}
void ClearPrintDisplayAll()
{
	int i,j;
	GoToXY(1,1);
	for (i=0;i<12;i++)		
	{
		for (j=0;j<78;j++)
			printf(" ");
		GoToXY(1,2+i);
	}
	for (i=0;i<3;i++)
	{
		GoToXY(1,14+i);
			for (j=0;j<78;j++)
				printf(" ");
	}
}
void PrintSign(char *str,int yy)
{
	GoToXY(1,yy);
	printf(" ");
	GoToXY(78,yy);
	printf(" ");
	if (strcmp("up",str)==0)
		yy--;
	if (strcmp("down",str)==0)
		yy++;
	GoToXY(1,yy);
	printf("[");
	GoToXY(78,yy);
	printf("]");
}

ClearPrintDisplay()
{
	int i,j;
	GoToXY(1,3);
	for (i=0;i<10;i++)		
	{
		for (j=0;j<78;j++)
			printf(" ");
		GoToXY(1,4+i);
	}
}

void PrintTopBorder()
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频网站在线观看| 亚洲视频电影在线| 欧美区视频在线观看| 97精品国产露脸对白| 国产成人av一区二区三区在线观看| 亚洲成人免费av| 亚洲激情欧美激情| 亚洲小少妇裸体bbw| 亚洲一级片在线观看| 亚洲欧美一区二区视频| 久久精品男人的天堂| 国产精品免费久久久久| 亚洲欧美在线另类| 亚洲尤物视频在线| 日本欧美久久久久免费播放网| 亚洲一区二区视频| 日本怡春院一区二区| 久久99久久99精品免视看婷婷| 亚洲乱码国产乱码精品精小说| 亚洲精品中文字幕在线观看| 亚洲午夜影视影院在线观看| 欧美老女人在线| 日韩你懂的在线播放| 国产日韩在线不卡| 亚洲激情欧美激情| 无吗不卡中文字幕| 久久超碰97中文字幕| 色婷婷激情久久| 国产精品天美传媒| 精品一区二区三区在线视频| 成人欧美一区二区三区| 日本免费新一区视频| a在线播放不卡| 久久亚洲影视婷婷| 免费三级欧美电影| 欧美一级欧美三级| 日精品一区二区| 欧美久久一二区| 亚洲大片一区二区三区| 欧美私人免费视频| 樱桃视频在线观看一区| 色一情一伦一子一伦一区| 国产精品久久久久久亚洲毛片| 国产1区2区3区精品美女| 国产亚洲综合av| 国产激情视频一区二区在线观看 | 一本到一区二区三区| 国产欧美日韩视频一区二区| 国产凹凸在线观看一区二区| 国产欧美日韩在线观看| 一本在线高清不卡dvd| 亚洲精品乱码久久久久久久久 | 国产精品久久久久久妇女6080| 国产成人免费视频网站| 亚洲色图制服丝袜| 欧美一区二区三区视频免费播放| 蜜桃视频在线一区| 国产欧美va欧美不卡在线| 色综合久久天天| 久久99国产乱子伦精品免费| 国产精品女人毛片| 91精品国产乱| 本田岬高潮一区二区三区| 婷婷丁香久久五月婷婷| 欧美极品美女视频| 欧美一级片免费看| 色综合久久88色综合天天6| 精品一区二区在线播放| 亚洲午夜av在线| 中文字幕在线一区免费| 久久久综合精品| 欧美美女直播网站| 一本到高清视频免费精品| 美女视频一区二区| 亚洲国产一区二区三区| 一区二区三区高清不卡| 国产精品国产三级国产有无不卡| 日韩精品专区在线影院重磅| 这里只有精品视频在线观看| 欧美午夜精品一区二区蜜桃| 色一区在线观看| 欧美中文字幕亚洲一区二区va在线| 国产91在线观看丝袜| 国产麻豆精品95视频| 国产一区视频网站| 国产酒店精品激情| 国产乱国产乱300精品| 国产精品18久久久久久vr| 国产在线视频不卡二| 国产盗摄一区二区| 99国产精品久久久久久久久久久| av亚洲精华国产精华精| 一本大道久久a久久综合婷婷 | 中文字幕在线免费不卡| 自拍偷拍亚洲综合| 亚洲成人资源网| 精品一区二区免费看| 99精品国产热久久91蜜凸| 欧洲日韩一区二区三区| 日韩你懂的电影在线观看| 国产三级欧美三级日产三级99| 国产精品第五页| 性做久久久久久免费观看欧美| 免费在线成人网| 成人黄色电影在线| 91精品啪在线观看国产60岁| 久久久久久久久久久黄色| 一区二区成人在线| 国产99久久久国产精品| 欧美精选一区二区| 亚洲欧美一区二区三区孕妇| 激情综合色播五月| 在线欧美一区二区| 久久这里只有精品首页| 亚洲综合自拍偷拍| eeuss鲁片一区二区三区在线观看| 欧美日本一区二区在线观看| 中文字幕中文字幕一区二区| 午夜精品久久久久影视| 99久久99久久精品免费观看| 欧美成人猛片aaaaaaa| 亚洲国产三级在线| 色国产精品一区在线观看| 国产精品高清亚洲| 国产一区二区在线免费观看| 欧美一区二区私人影院日本| 亚洲一区二区精品3399| 色欧美片视频在线观看在线视频| 国产色一区二区| 丰满少妇在线播放bd日韩电影| 日韩欧美国产系列| 久久精品国产99| 久久无码av三级| 丁香天五香天堂综合| 欧美国产精品劲爆| 91久久国产最好的精华液| 亚洲精品国产精品乱码不99| 91老师国产黑色丝袜在线| 亚洲欧美另类久久久精品| 91污片在线观看| 日韩电影在线免费| www激情久久| 成人综合激情网| 亚洲乱码精品一二三四区日韩在线| 色婷婷综合久久久中文字幕| 亚洲自拍都市欧美小说| 欧美电视剧在线观看完整版| 国产一区二区三区香蕉| 国产精品网站在线播放| 欧美性感一类影片在线播放| 国内精品写真在线观看| 亚洲人成网站精品片在线观看| 精品视频一区 二区 三区| 国产丶欧美丶日本不卡视频| 亚洲欧洲制服丝袜| 国产日韩欧美a| 91精品蜜臀在线一区尤物| 成人精品高清在线| 久久电影国产免费久久电影| 亚洲夂夂婷婷色拍ww47| 国产午夜亚洲精品羞羞网站| 欧美亚洲自拍偷拍| 99re这里都是精品| 国产成人综合在线播放| 午夜精品久久久久久不卡8050| 国产精品久久久久影院色老大| 91精品蜜臀在线一区尤物| 色噜噜夜夜夜综合网| www.成人网.com| 国产成人精品一区二区三区四区| 日韩精品免费专区| 亚洲图片一区二区| 亚洲人精品午夜| 亚洲人成伊人成综合网小说| 国产精品免费视频网站| 久久精品夜夜夜夜久久| 中文字幕va一区二区三区| 国产精品传媒入口麻豆| 国产精品热久久久久夜色精品三区| 26uuu久久天堂性欧美| 精品国一区二区三区| 久久久久久99精品| 国产精品视频一区二区三区不卡| 国产人久久人人人人爽| 中文字幕精品综合| 一区二区免费看| 久久66热re国产| av一本久道久久综合久久鬼色| 一本一道久久a久久精品| 欧美主播一区二区三区| 欧美va亚洲va香蕉在线| 欧美激情在线一区二区| 亚洲图片欧美一区| 精品一区二区久久久| 91在线播放网址| 精品理论电影在线| 亚洲一区二三区| 国产精品1024| 欧美精品乱码久久久久久| 国产精品国产三级国产有无不卡|