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

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

?? stu_info_7.8.c

?? linux 下的學生管理系統 非常值得學習的不可或缺的資源?。。。?
?? C
?? 第 1 頁 / 共 4 頁
字號:
/***************************************************
*工程名:學生信息管理系統
*作者:Min Hu
*日期:2008-6-10----2008-7-9
****************************************************/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <conio.h>
#include <time.h> 
#include <ctype.h>
#include <io.h>
#include <direct.h>
#define VERSION		 	" Ver 1.0 "
#define AUTHER	 	 	" Auther: Min Hu "
#define EMAIL           " email:humin1102@126.com"
#define TITLE           " Student Information Manager System "
#define WELCOME	 		" Welcome to you! "
#define MESSAGE	 	 	" Message "
#define MENULIST	 	" Menu List "
#define ADDINFO	 	    " Add student's info "
#define SORTDATA	 	" Sort data "
#define PRINTDATA  	 	" Print student's report "
#define SAVE		 	" Save data to file "
#define LOAD		 	" Load data from file "
#define SEARCH		 	" Search students "
#define UPDATE		 	" Update students Information"
#define STATSCORE	 	" Stat Score "
#define MAXCOUNT	 100
//全局變量
char ch;
int count=0;
int sno[MAXCOUNT]={0};
float total[MAXCOUNT];
double avg[MAXCOUNT];
int save_flag=0; //記錄保存點
struct students
{
	char sno[4];
	char name[21];
	int age; 
	float score[5];
};
struct LINK
{
	struct students studate;
	struct LINK *next;
};
typedef struct students STU;
typedef struct LINK  INFO;
INFO *head=NULL,*last=NULL;
INFO stu_link;
STU data,stu[100];

/*用戶自定義函數*/
void InsertData(STU studate);
void Gotoxy(x,y);
void Getxy(int *x,int *y);
void SetColor(int FontColor,int BackGroundColor) ;
void  Time();
void Welcome();
void MakeMenuInfo();
int JuZhong(dest,n);
void MenuList();
void ClearMessage();
void InputError(int x,int y,char ch);
void AddInfo();
int GetString(char buffer[],int maxlen);
void Left_Right(char temp[]);
void AddSno();
void AddName();
void AddAge();
void AddScore();
void PrintData();
void SortData();
void Sort_Print_Message();
void SortSnoAsc();
void SortSnoDesc();
void SortNameAsc();
void SortNameDesc();
void SortTotalAsc();
void SortTotalDesc();
void Exit_Save();
void Exit_System();
void SearchData();
void SearchSno();
void SearchName();
void UpdateData(int num,int x,int y);
void DeleteData(int num,int x,int y);
void SaveData();
char *Getfilename(char fname[100],char file[20]);
void LocalData();
void Stat();
void StatScore(int num);
void StatTotal();
/*****************************************************************
***函數名:InsertData 光標函數
***參數:INFO stu_info
***功能:插入數據
***返回值:無
*****************************************************************/	
void InsertData(STU studate)
{
	INFO *p;
	p=NULL;
	p=(INFO *)malloc(sizeof(INFO));
	if(p==NULL)
	{
		printf("Error!Out of memory!");
		exit(0);
	}
	p->studate=studate;
	p->next=NULL;
	if(head==NULL)
	{
		head=p;
	}
	else
	{	
		last->next=p;
	}
	last=p;
}
/*****************************************************************
***函數名:Gotoxy  光標函數
***參數:int x, int y
***功能:獲取光標位置
***返回值:無
*****************************************************************/	
void Gotoxy(int x, int y)
{
	COORD pos = {x,y};
	HANDLE hOutPut = GetStdHandle(STD_OUTPUT_HANDLE);// 獲取句柄
	
	SetConsoleCursorPosition(hOutPut, pos);  //設置句柄
}
/*****************************************************************
***函數名:Getxy  光標函數
***參數:int *x, int *y
***功能:記錄當前位置坐標
***返回值:無
*****************************************************************/	
void Getxy(int *x,int *y)
{
	HANDLE hOutPut;	// 獲取句柄
	CONSOLE_SCREEN_BUFFER_INFO Stu_Info;
	COORD pos;
	hOutPut= GetStdHandle(STD_OUTPUT_HANDLE);
   	GetConsoleScreenBufferInfo(hOutPut, &Stu_Info);	
	pos = Stu_Info.dwCursorPosition;
	*x = pos.X;
	*y = pos.Y;
}
/*****************************************************************
***函數名:SetColor  
***參數:int FontColor,int BackGroundColor
***功能:設置VC控制臺字體和背景顏色
***返回值:無
*****************************************************************/		
void SetColor(int FontColor,int BackGroundColor)                                                                                                           //可以接受0/1/2個參數
{
	HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(hCon,(unsigned short)(FontColor|BackGroundColor));
}
/*****************************************************************
***函數名:Time  
***參數:無
***功能:顯示系統動態時間
***返回值:無
*****************************************************************/	
void  Time()
{ 
	time_t t=time(NULL); 
	Gotoxy(53,24);
	puts(asctime(localtime(&t))); 
} 
/*****************************************************************
***函數名:Welcome
***參數:無
***功能:歡迎界面
***返回值:無
*****************************************************************/	
void Welcome()
{
	int i;
	Gotoxy(23,5);
	printf(TITLE);
	Gotoxy(28,7);
	printf(EMAIL);
	Gotoxy(32,8);
	printf(AUTHER);	
	Gotoxy(35,9);
	printf(VERSION);	
	Gotoxy(32,11);
	printf(WELCOME);
	Gotoxy(27,13);
	printf("Loading");
	for(i=0;i<15;i++)
	{
		Sleep(60);
		printf(".");
	}
} 
/*****************************************************************
***函數名:MakeMenuInfo
***參數:無
***功能:制作菜單信息
***返回值:無
*****************************************************************/	
void MakeMenuInfo()
{
	int i;
	Gotoxy(23,1);
	printf(TITLE);	
	Gotoxy(21,2);
	for(i=1;i<=40;i++)
		printf("*");
	Gotoxy(0,4);
	for(i=1;i<=80;i++)
		printf("=");
	Gotoxy(0,18);
	for(i=1;i<=80;i++)
		printf("=");
	//MESSAGE居中顯示
	Gotoxy(35,18);	
	printf(MESSAGE);
	Gotoxy(0,23);
	for(i=1;i<=80;i++)
		printf("=");
	Gotoxy(2,24);
	printf(VERSION);
	Gotoxy(23,24);
	printf(AUTHER);
	Time();
	Gotoxy(0,5);

}
/*****************************************************************
***函數名:JuZhong
***參數:char * dest[],int n
***功能:實現菜單項居中顯示
***返回值:無
*****************************************************************/		
int JuZhong(char * dest[],int n)
{
	int max=0;
	int s,i,t;
	for(i=0;i<n;i++)
	{
		t=strlen(dest[i]);
		max=max > t ? max : t;
	}	
	s=(80-max)/2;
	return s;
}
/*****************************************************************
***函數名:ClearMessage
***參數:無
***功能:清除消息
***返回值:無
*****************************************************************/	
void ClearMessage()
{
	fflush(stdin);
	Gotoxy(0,19);
	printf("%*s",80," ");
}
/*****************************************************************
***函數名:InputError
***參數:int x,int y,char ch(x,y坐標)
***功能:對輸入不符合條件進行處理,打印相應信息
***返回值:無
*****************************************************************/	
void InputError(int x,int y,char ch)
{
	if(ch>='a' && ch<='z' || ch>='A' && ch<='Z')
	{
		ClearMessage();
		Gotoxy(0,19);
		printf("Error illegal char!Please enter again!");
	}
	else if((ch>='0' && ch<='9'))
	{
		ClearMessage();
		Gotoxy(0,19);
		printf("Error illegal digit!Please enter again!");
	}
	else if(ch==13)
	{
		ClearMessage();
		Gotoxy(0,19);
		printf("Error null!Please enter again!");
	}
	else
	{
		ClearMessage();
		Gotoxy(0,19);
		printf("Error input illegal!Please enter again!");
	}
	getch();
	Gotoxy(x+1,y);
	printf("\b \b");
	Gotoxy(x+1,y);
}
/*****************************************************************
***函數名:GetString
***參數:char buffer[],int maxlen
***功能:實現字符串輸入,接收到的字符串放入指定的字符串buffer中
***說明:該函數限定輸入字符個數最大不超過maxLen個,當輸入已滿
		 maxLen個時,客戶輸入無任務響應也沒有回顯,但可以用
		 "Backspace"鍵退格修改
***返回值:返回輸入字符串的長度
*****************************************************************/
int GetString(char buffer[],int maxlen)
{
	int i=0,len;
	char ch;
	do
	{
		ch=getch();
		if(ch==27)  //ESC->27
		{
			break;
		}		
		if(ch==13)  // <CR>->13
		{
			buffer[i]='\0';
			break;
		}
		if(ch==8 && i>0)  //退格
		{
			printf("\b \b");  
			--i;
			if(i==0)
				continue;
		}
		if(i<maxlen && ch>=32)
		{
			buffer[i++]=ch;
			printf("%c",ch);
		}
	}while(1);
	len=strlen(buffer);
	return len;
}
/*****************************************************************
***函數名:Left_Right
***參數:char temp[]
***功能:去除左右空格
***返回值:無
*****************************************************************/	
void Left_Right(char temp[])  //去除左右空格
{
	int i,len;	
	i=0;
	while(temp[i])  //左空格
	{		
		if(temp[i]!=' ')	
			break;
		i++;
	}
	strcpy(temp,temp+i);

	len=strlen(temp);
	for(i=len - 1;i>=0;i--)  //右空格
	{
		if(temp[i]!=' ')
		{
			temp[i+1]='\0';
			break;
		}
	}
}
/*****************************************************************
***函數名:MenuList
***參數:無
***功能:顯示菜單項
***返回值:無
*****************************************************************/		
void MenuList()
{
	int i,s,x,y;
	char ch;
	char *menu[]=
	{	"1.  Add student's info",
		"2.  Sort data",
		"3.  Print student's report",
		"4.  Save data to file",
		"5.  Load data from file",
		"6.  Search students",
		"7.  Stat Score",
		"0.  Exit"
	};	
	system("cls");
	Gotoxy(35,3);
	printf(MENULIST);
	MakeMenuInfo();	
	printf("\n");
	s=JuZhong(menu,8);	//菜單項--居中顯示
	for(i=0;i<=7;i++)    //打印菜單項
		printf("%*s%s\n",s," ",menu[i]);
	Gotoxy(0,0);
	Gotoxy(27,15);
	printf("Please Make a choices[0-7]:");
	Getxy(&x,&y);
	do
	{
		ClearMessage();
		Gotoxy(0,19);
		printf("Please Input 0-7 digit. <example:1>");
		Gotoxy(x,y);
		ch=getche();
		getch();
		switch(ch)
		{
			case '1':AddInfo();break;
			case '2':SortData();break;
			case '3':PrintData();break;
			case '4':SaveData();break;
			case '5':LocalData();break;
			case '6':SearchData();break;
			case '7':Stat();break;		
			case '0':Exit_Save();break;
			default:InputError(x,y,ch);break;
		}
	}while(!(ch>='0' && ch<='7'));
}
/*****************************************************************
***函數名:AddInfo
***參數:無
***功能:用戶添加信息
***返回值:無
*****************************************************************/	
void AddInfo()
{
	int i,x,y;
	char *AddInfo[]=
	{	"             Sno *:",
		"            Name *:",
		"             Age *:",
		"         Chinese *:",
		"         English *:",
		"            Math *:",
		"         Physics *:",
		"       Chemistry *:"
	};
	if(count>100)
	{
		ClearMessage();
		Gotoxy(0,19);
		printf("The data is full!Pleased key to continue ...");
		getch();
		return;
	}
	do
	{	
		system("cls");
		Gotoxy(30,3);
		printf(ADDINFO);	
		MakeMenuInfo();	
		Gotoxy(0,0);
		for(i=0;i<=7;i++) 
		{
			Gotoxy(20,7+i);
			printf("%s\n",AddInfo[i]);
		}
		fflush(stdin);
		AddSno();
		AddName();
		AddAge();
		AddScore();
		do
		{
			ClearMessage();
			Gotoxy(0,19);
			printf("Add Student's information Success ! Are you continue(Y/N)?");
			Getxy(&x,&y);
			Gotoxy(x,y);
			ch=getche();
			getch();
			if(ch=='Y' || ch=='y' || ch=='N' || ch=='n')
			{
				break;
			}
			else
			{
				ClearMessage();
				Gotoxy(0,19);
				printf("Error!Please enter again.");
				getch();
				Gotoxy(x+1,y);printf("\b \b");
				continue;
			}
		}while(1);
		stu[count]=data;		
		total[count]=stu[count].score[0]+stu[count].score[1]+stu[count].score[2]+stu[count].score[3]+stu[count].score[4];
		avg[count]=(float)total[count]/5.0;
		/*
		InsertData(stu_link.studate);
		total[count]=stu_link.studate.score[0]+stu_link.studate.score[1]+stu_link.studate.score[2]+stu_link.studate.score[3]+stu_link.studate.score[4];
		avg[count]=(float)total[count]/5.0;
		*/
		count++;
		save_flag=1;
	}while(ch=='Y' || ch=='y');

}
/*****************************************************************
***函數名:AddSno
***參數:無
***功能:實現學號自動增長
***返回值:無
*****************************************************************/
void AddSno()  //學號
{
	int i;
	char tempsno[5];
	Gotoxy(40,7);
	for(i=1;i<=MAXCOUNT;i++)
	{
		if(sno[i-1]==0)
		{
			sno[i-1]=i;
			sprintf(tempsno,"%03d",i);
			puts(tempsno);
			break;
		}
	}
	strcpy(data.sno,tempsno);
	//strcpy(stu_link.studate.sno,tempsno);
}
/*****************************************************************
***函數名:AddName
***參數:無
***功能:去除左右空格,判斷非法字符

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久蜜臀图片| 日韩精品免费专区| 国产激情一区二区三区四区| 精品国产区一区| 国产精品一区一区| 国产精品国产三级国产普通话三级 | 国产91精品免费| 国产日产欧美精品一区二区三区| 不卡的av电影| 亚洲综合色婷婷| 精品欧美一区二区三区精品久久 | 久久精品99国产精品| 久久伊人中文字幕| 99久久婷婷国产综合精品电影 | 久久99这里只有精品| 久久精品亚洲乱码伦伦中文| 99麻豆久久久国产精品免费| 亚洲成人动漫av| 久久久一区二区| 色老汉av一区二区三区| 免费观看一级特黄欧美大片| 国产精品激情偷乱一区二区∴| 在线观看日韩毛片| 国内国产精品久久| 伊人夜夜躁av伊人久久| 日韩亚洲国产中文字幕欧美| 丰满少妇在线播放bd日韩电影| 亚洲成人免费视| 国产亚洲女人久久久久毛片| 91久久精品一区二区| 国产成人免费在线| 天天做天天摸天天爽国产一区| 日本一区二区三区久久久久久久久不 | 一区二区在线免费观看| 精品久久久久久久人人人人传媒 | 粉嫩av一区二区三区在线播放| 亚洲已满18点击进入久久| 精品国内二区三区| 欧美视频在线观看一区| 国产精品亚洲第一区在线暖暖韩国| 一区二区三区高清不卡| 久久精品亚洲国产奇米99| 欧美日韩三级一区二区| 91欧美一区二区| 日本不卡不码高清免费观看| 亚洲天堂a在线| 精品国产sm最大网站免费看| 色婷婷久久综合| 成人一区二区视频| 看电视剧不卡顿的网站| 免费成人结看片| 一区二区高清在线| 国产精品视频一二| 精品嫩草影院久久| 欧美日韩亚洲综合一区| 99久久精品国产一区| 久久国产日韩欧美精品| 亚洲国产精品一区二区www| 成人免费在线观看入口| 国产亚洲欧美日韩在线一区| 欧美夫妻性生活| 欧美特级限制片免费在线观看| aaa国产一区| 99久久综合99久久综合网站| 成人晚上爱看视频| 丝袜美腿亚洲综合| 亚洲免费电影在线| 综合亚洲深深色噜噜狠狠网站| 久久久99久久精品欧美| 日韩欧美一级二级三级久久久| 欧美日韩一级黄| 欧美日韩一级二级三级| 欧美日韩dvd在线观看| 欧美优质美女网站| 欧美最猛黑人xxxxx猛交| 欧美三日本三级三级在线播放| 色狠狠综合天天综合综合| 91免费观看在线| 99国产麻豆精品| 91国产免费观看| 欧美日韩在线三级| 91精品国产麻豆国产自产在线| 欧美一区二区三区思思人| 91精品国产综合久久久蜜臀图片 | 欧美性三三影院| 99国产精品久久| 99免费精品在线| 色综合婷婷久久| 久久久美女艺术照精彩视频福利播放| 欧美色窝79yyyycom| 欧美精品在线视频| 日韩美一区二区三区| 亚洲精品一区二区精华| 久久一日本道色综合| 中文字幕一区免费在线观看| 亚洲激情综合网| 欧美bbbbb| 国产一区二区三区不卡在线观看| 粉嫩高潮美女一区二区三区| 91在线观看一区二区| 欧美日韩国产一级片| 精品久久久久久久久久久久久久久久久| 亚洲精品一区二区三区99 | 亚洲国产电影在线观看| 一区二区中文视频| 亚洲精品乱码久久久久久黑人| 视频一区欧美精品| 国产盗摄视频一区二区三区| 色94色欧美sute亚洲线路二 | 综合久久久久久| 18成人在线视频| 五月激情综合网| 国精品**一区二区三区在线蜜桃| 懂色av一区二区三区免费看| 91久久精品国产91性色tv| 精品免费视频.| 日韩毛片精品高清免费| 久久精品国产网站| a4yy欧美一区二区三区| 欧美一级日韩免费不卡| 国产精品久久久久久久久免费樱桃 | 精品无人码麻豆乱码1区2区| 成人动漫一区二区在线| 欧美一区午夜精品| 亚洲欧洲精品一区二区精品久久久 | 天天综合色天天综合色h| 国产白丝网站精品污在线入口| 欧美色中文字幕| 欧美国产丝袜视频| 日本不卡视频在线| 色八戒一区二区三区| 国产三级一区二区| 青娱乐精品在线视频| 一本色道久久综合亚洲aⅴ蜜桃| 日韩三级高清在线| 亚洲福利视频一区| 波多野结衣亚洲一区| 久久综合狠狠综合久久激情| 五月天久久比比资源色| 91色视频在线| 国产亚洲欧美一区在线观看| 日韩1区2区日韩1区2区| 色av成人天堂桃色av| 日韩理论片在线| 久久久久国产精品人| 偷拍与自拍一区| 97久久超碰国产精品| 国产亚洲精品资源在线26u| 美女在线视频一区| 在线不卡a资源高清| 亚洲精品自拍动漫在线| 99这里只有久久精品视频| 久久色中文字幕| 久久精品国产精品亚洲综合| 欧美日韩性生活| 一区二区三区91| 91黄色小视频| 亚洲女子a中天字幕| 91丨porny丨国产入口| 国产精品网曝门| 国产成人av资源| 久久免费视频一区| 国产精品自拍三区| xvideos.蜜桃一区二区| 久久99久久久欧美国产| 欧美刺激午夜性久久久久久久| 五月婷婷激情综合网| 91精品国产综合久久久蜜臀粉嫩 | 欧美性高清videossexo| 国产精品免费久久| 99精品久久久久久| 国产日韩欧美电影| 国产乱理伦片在线观看夜一区| 在线观看免费成人| 亚洲r级在线视频| 欧美日韩色综合| 奇米影视7777精品一区二区| 欧美日韩国产一区二区三区地区| 天堂成人免费av电影一区| 337p亚洲精品色噜噜噜| 蜜桃免费网站一区二区三区| 久久先锋影音av鲁色资源| 国产一区在线视频| 国产精品人妖ts系列视频| 99国产欧美另类久久久精品| 一区二区三区四区高清精品免费观看 | 麻豆91在线观看| 亚洲精品一区二区三区精华液 | 欧美日韩一区二区三区在线| 亚洲成人综合视频| 精品久久久久99| 成人精品亚洲人成在线| 亚洲欧美另类综合偷拍| 在线视频国内一区二区| 日韩1区2区日韩1区2区| 久久女同性恋中文字幕| 色8久久人人97超碰香蕉987| 日韩制服丝袜先锋影音| 国产亚洲自拍一区| 欧美少妇性性性|