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

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

?? mis_sms(finish).c

?? 學生信息管理系統 代碼量在3000左右。原創作品。(內附程序流程圖)
?? 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 表示內存中沒有數據
char loadfilename[9]={'\0'};    // 記錄載入的文件名,如果是新建的記錄,文件名為空
int filedatachange = -1;
int stu_count=1; //記錄學生數
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;	
/*
*********************************************************
*  				      函數原型
*********************************************************
*/



/*
*************************************************************
* 函數描述:定位光標位置的函數
* 輸入參數: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;
}

/*
*************************************************************
* 函數描述:在指定坐標畫矩形函數
* 輸入參數:矩形左上角的X Y 坐標 矩形內顯示的字符串
* 返回值  :無
*************************************************************
*/
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);	
}

/*
*************************************************************
* 函數描述:信息添加界面繪制的函數
* 輸入參數:自動生成的學號字符串
* 返回值  :無
*************************************************************
*/
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:");	
}

/*
*************************************************************
* 函數描述:計算總分的函數
* 輸入參數:q 為結構體指針,指向要統計的學生
* 返回值  :通過str 返回統計結構
*************************************************************
*/

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';
	
}
/*
*************************************************************
* 函數描述:計算平均分的函數
* 輸入參數:同上
* 返回值  :同上
*************************************************************
*/
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';
	
}
/*
*************************************************************
* 函數描述:按學號和總分排序的函數
* 輸入參數:排序方式  (4種)
* 返回值  :若沒有數據為空
*************************************************************
*/
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++;        //計算節點
		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;
		}
		
}

/*
*************************************************************
* 函數描述:打印學生信息的函數
* 輸入參數:同上
* 返回值  :同上
*************************************************************
*/

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(" ");		
	}
}

/*
*************************************************************
* 函數描述:清除指定行的函數
* 輸入參數:行首的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一区二区三区免费野_久草精品视频
一本到高清视频免费精品| 久久综合久久鬼色中文字| 91片在线免费观看| caoporn国产精品| 不卡的av中国片| 国产精品一二三区| 高清国产午夜精品久久久久久| 精品一区二区三区免费视频| 老鸭窝一区二区久久精品| 青青草成人在线观看| 热久久一区二区| 精品一区二区三区影院在线午夜 | 久久成人av少妇免费| 丝袜美腿亚洲综合| 日本欧美一区二区在线观看| 蜜臀91精品一区二区三区| 精品一区免费av| 成人av电影在线播放| 91丨九色porny丨蝌蚪| 欧美性大战久久| 欧美电影一区二区三区| 亚洲欧美日韩国产综合在线 | 不卡电影一区二区三区| 一本色道久久加勒比精品 | 国产偷国产偷精品高清尤物| 国产欧美日韩激情| 亚洲精品国产成人久久av盗摄 | 国产另类ts人妖一区二区| 成人免费视频一区| 日本精品一级二级| 欧美一区二区三区四区五区| 久久婷婷国产综合国色天香| 国产精品久久久久久妇女6080| 亚洲免费av观看| 日韩电影一二三区| 国产成人免费视频精品含羞草妖精| 成人av影院在线| 欧美精品在线一区二区| 精品国产伦一区二区三区观看方式| 国产精品毛片久久久久久久 | 91麻豆福利精品推荐| 欧美人妖巨大在线| 国产人久久人人人人爽| 亚洲一区二区三区小说| 久久狠狠亚洲综合| 97久久精品人人澡人人爽| 3751色影院一区二区三区| 中文字幕第一区综合| 香蕉av福利精品导航| 国产高清视频一区| 欧美日韩国产色站一区二区三区| 精品国产91久久久久久久妲己| 自拍偷拍欧美精品| 激情综合色播激情啊| 欧美调教femdomvk| 中文字幕国产一区| 美女www一区二区| 99国内精品久久| 欧美xfplay| 天天影视色香欲综合网老头| 国产99一区视频免费| 欧美一区二区播放| 亚洲综合一区在线| 成人在线综合网| 日韩一区二区三区在线| 洋洋成人永久网站入口| 国产精品99久久久| 日韩一区二区在线看片| 亚洲综合激情网| 波多野结衣中文字幕一区| 日韩久久久精品| 亚洲一区二区美女| 99r国产精品| 国产精品天干天干在观线| 韩国成人福利片在线播放| 7799精品视频| 亚洲国产一区在线观看| 99久久精品免费看| 国产亚洲一区二区三区在线观看| 日韩av二区在线播放| 精品视频一区二区不卡| 亚洲猫色日本管| av亚洲精华国产精华| 国产三区在线成人av| 久久激情综合网| 日韩精品一区二区三区四区视频| 亚洲成a天堂v人片| 色婷婷av一区二区三区大白胸| 国产精品久久久久久久久久免费看 | 一个色综合网站| 91视频xxxx| 欧美国产日韩一二三区| 国产精品一区二区果冻传媒| 欧美成人欧美edvon| 麻豆精品一区二区综合av| 91精品欧美一区二区三区综合在| 午夜精品久久久久久久久久久| 91在线国产观看| 亚洲美女淫视频| 99久久久国产精品| 亚洲精品国产精华液| 在线视频国内自拍亚洲视频| 国产精品国产三级国产有无不卡| 国产激情视频一区二区三区欧美 | 欧美丰满高潮xxxx喷水动漫| 亚洲一级电影视频| 91碰在线视频| 亚洲一区自拍偷拍| 欧美视频中文字幕| 首页亚洲欧美制服丝腿| 3751色影院一区二区三区| 日本欧美一区二区| 日韩欧美国产综合一区| 国内精品第一页| 国产日本一区二区| av在线不卡网| 亚洲风情在线资源站| 欧美日韩中文字幕一区二区| 日本一不卡视频| 精品国产sm最大网站免费看| 国产毛片精品视频| 国产精品国产三级国产aⅴ中文| 91伊人久久大香线蕉| 一区二区三区四区视频精品免费| 欧洲中文字幕精品| 久久精品国产亚洲a| 久久精品一区蜜桃臀影院| www.欧美.com| 亚洲国产精品一区二区www| 日韩午夜在线观看视频| 国产精品一区二区在线播放| 1024精品合集| 91精品国产欧美一区二区| 国产精品自拍av| 亚洲精品视频在线| 欧美日韩aaa| 国产精品一二三| 一个色综合网站| 久久网站最新地址| 91行情网站电视在线观看高清版| 日韩激情中文字幕| 国产色婷婷亚洲99精品小说| 色婷婷av一区二区| 久久99国产精品尤物| 亚洲视频一区在线观看| 69精品人人人人| 国产成人精品免费| 亚洲成在线观看| 欧美激情一区二区| 911精品产国品一二三产区| 国产v日产∨综合v精品视频| 亚洲综合色丁香婷婷六月图片| 日韩美女天天操| 欧美综合一区二区三区| 国产一区二区三区四| 亚洲一线二线三线视频| 国产日韩欧美精品一区| 欧美色视频在线| 国产成人免费网站| 天堂成人国产精品一区| 国产精品毛片a∨一区二区三区| 欧美日韩激情一区| 成人激情免费视频| 免费的成人av| 亚洲天堂精品视频| 久久久久久麻豆| 91精品国产综合久久久久久久久久 | 欧美日韩亚洲综合在线| 国产福利精品一区| 日本视频在线一区| 亚洲女同一区二区| www国产精品av| 777a∨成人精品桃花网| aaa国产一区| 国产大陆精品国产| 精品中文字幕一区二区| 一区二区三区日韩欧美| 国产精品无遮挡| 欧美精品一区二| 91精品国产综合久久香蕉的特点| 一本色道综合亚洲| jiyouzz国产精品久久| 国产乱子轮精品视频| 日本人妖一区二区| 五月婷婷另类国产| 亚洲黄色录像片| 中文字幕一区二区三区四区| 久久久欧美精品sm网站| 日韩三区在线观看| 欧美一三区三区四区免费在线看 | 日本一区二区三区高清不卡 | 琪琪一区二区三区| 亚洲一级二级三级| 一区二区久久久久| 日韩美女视频一区二区| 国产精品久久久久久久岛一牛影视| 国产午夜精品福利| 国产三级欧美三级日产三级99| 久久影视一区二区| 欧美va在线播放|