【僞C++】學生管理系統(功能算比較全)

       Ps:說僞c++是因爲大部分代碼其實是在大一上冊寫的,當時還沒學c++;現在大二了增加了保存功能爲了方便就直接改成c++了。然而沒有改的地方:1.用到了goto(當時還不知道用它的缺點只是覺得方便),現在太多了改不過來了。。2.輸入是scanf()3.名字保存沒用string 用的是字符數組    以及能力有限可能有些小地方還是有問題的,請原諒( •̥́ ˍ •̀  )

       運行截圖在最後。

       如果對你(的作業)有所幫助能順手點個贊嗎(滑稽)


一、功能介紹

       功能有:(1)系統幫助

                     (2)錄入信息(類似於一開始大批量錄入)

                     (3)輸入糾錯功能(1.要求輸入數字輸入的不是數字  2. 學號輸入的位數不在範圍 3.輸入的名字不是漢字 4.輸入的年齡不在範圍 5.輸入的成績不是百分制 6.輸入的性別不爲男女)

                     (4)修改信息 (分爲按學號和姓名)

                     (5)增加信息

                     (6)刪除信息

                     (7)查詢信息

                     (8)顯示全部(按學號排序顯示)

                     (9)保存信息(按時間保存)

二、流程圖(系統功能圖)

三、代碼

【學生信息】

struct student/*學生結構體*/ 
{
	char code[12];/*學號爲12位*/ 
	char name[5];
	char sex;
	int age;
	float score[3];
}stu[N];

【整體系統代碼】

/****
      @Anthor:Innocence
      @IDE:dev c++
      @Editor:12.1
      @Time:last time:2019/4/13
      @Description:學生管理系統
****/ 

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <fstream>
#include <windows.h> 
#define LEN 11
#define N 10000 
using namespace std;
struct student/*學生結構體*/ 
{
	char code[12];/*學號爲12位*/ 
	char name[5];
	char sex;
	int age;
	float score[3];
}stu[N];
int n,m,k=1;/*n是原本人數,m是新增人數*/
void help();/*幫助菜單*/ 
void input();/*錄入信息*/ 
void modify();/*修改信息*/ 
void add();/*錄入後再次增加信息*/ 
void del();/*刪除信息*/ 
void seek();/*查詢單個信息*/ 
void display();/*展示全部信息*/ 
void menu();/*主頁面*/ 
int main()/*主函數*/ 
{
	while(k)
	{
	menu();
    }
    system("pause");
    return 0;
}
/*使用幫助*/ 
void help()
{
	cout<<"歡迎使用學生管理系統"<<endl;
	cout<<"現在由我來爲您介紹一下使用方法"<<endl;
	cout<<"1.您首先需要錄入學生的信息(此係統限制最多爲10000人,可以改),然後根據提示進行相關操作。"<<endl;
	cout<<"2.該系統的目的是存儲學生的信息以及查詢。"<<endl;
	cout<<"3.這是西科版的所以學號請按照對應的輸入(11位)。"<<endl;
	cout<<"4.學生的年齡限制爲18~25。"<<endl;
	cout<<"5.學生的成績是百分制。"<<endl;
	cout<<"6.因爲能力有限,所以有些地方可能還是不夠完善,請諒解"<<endl;
	cout<<"7.最後希望您能使用愉快"<<endl;
	return;
}
/*增加信息*/
void input()
{
	int i=0,flag=1;
	cout<<"現在您要做的是錄入學生信息,請按照提示進行"<<endl;
	cout<<"請輸入您要錄入的學生的人數:"<<endl;
    while(flag)
    {  
    flag=0;
	scanf("%d",&n);
	if(n>N)/*人數超過系統定義上限報錯*/ 
	{
	cout<<"抱歉,您輸入的人數超過了系統上限,請重新輸入"<<endl;
	flag=1;
    }
    if(n<0)/*輸入人數爲負報錯*/ 
    {
	cout<<"抱歉,錄入人數是不能爲負數,請重新輸入"<<endl;
    flag=1;
	}
	if(n==0)/*輸入人數爲零報錯*/ 
	{
		cout<<"抱歉,錄入人數是不能爲0,請重新輸入"<<endl;
		flag=1; 
	}
	}
	for(i=0;i<n;i++)
	{
		cout<<"請輸入第"<<i+1<<"個學生的學號:"<<endl;
		A_1:scanf("%s",stu[i].code);
		cout<<""<<endl;
		if(strlen(stu[i].code)!=11)/*判斷輸入學號位數或者輸入是否合法*/ 
		{
		cout<<"抱歉,您輸入的學號位數不對,請重新輸入"<<endl;
		goto A_1;
	    }
		cout<<"請輸入第"<<i+1<<"個學生的姓名:"<<endl;
		A_2:scanf("%s",stu[i].name);
		if(strlen(stu[i].name)<=0xA1&&strlen(stu[i].name)<=0xb0&&strlen(stu[i].name)!=4&&strlen(stu[i].name)!=6&&strlen(stu[i].name)!=8)/*輸入姓名非漢字或者字母報錯*/ 
		{
		cout<<"抱歉,您輸入的不是漢字或者名字不對,請重新輸入"<<endl;
		goto A_2;
	}
		cout<<""<<endl;
		fflush(stdin); 
		cout<<"請輸入第"<<i+1<<"個學生的性別,男爲M,女爲W:"<<endl;/*輸入性別非法報錯*/ 
	    A_3:scanf("%c",&stu[i].sex);
	    fflush(stdin);
		if(stu[i].sex!='W'&&stu[i].sex!='M')
		{
		cout<<"抱歉,您輸入的性別不對,請重新輸入"<<endl;
		goto A_3;
	}fflush(stdin);
		cout<<""<<endl;
		fflush(stdin);
		cout<<"請輸入第"<<i+1<<"個學生的年齡:"<<endl;/*輸入年齡非法報錯*/ 
		A_4:scanf("%d",&stu[i].age);
		if(stu[i].age<18||stu[i].age>25)
		{
		cout<<"抱歉,您輸入的年齡不對,請重新輸入"<<endl; 
	    goto A_4;
	    }
	    fflush(stdin);
		cout<<""<<endl;
	    cout<<"請輸入第"<<i+1<<"個學生的c語言成績:"<<endl;
	    A_5:scanf("%f",&stu[i].score[0]);
	    if(stu[i].score[0]<0||stu[i].score[0]>100)/*輸入成績非法報錯*/ 
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto A_5;
		 } 
		 fflush(stdin);
		cout<<""<<endl;
	    cout<<"請輸入第"<<i+1<<"個學生的高數成績:"<<endl;
	    A_6:scanf("%f",&stu[i].score[1]);
	    if(stu[i].score[1]<0||stu[i].score[1]>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto A_6;
		 } 
		 fflush(stdin);
		cout<<""<<endl;
	    cout<<"請輸入第"<<i+1<<"個學生的英語成績:"<<endl;
	    A_7:scanf("%f",&stu[i].score[2]); 
	    if(stu[i].score[2]<0||stu[i].score[2]>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto A_7;
		 } 
	    cout<<""<<endl;
	}
	cout<<"學生信息已成功錄入! ";
	return; 
}
/*修改信息*/ 
void modify()
{
	int i,j,b,item,num,flag=0;
	char a,a1[LEN+1],a2[LEN+1];
	float score1;
	cout<<"現在您要做的是修改學生信息,請按照提示進行"<<endl; 
	cout<<"請選擇您要按哪種方式修改:1.學號  2.姓名:"<<endl;
	cout<<"按3返回主菜單"<<endl; 
	scanf("%d",&b);/*選擇功能*/ 
			switch(b)
     	{
		case 1:/*通過學號修改*/ 
			cout<<"請輸入您要修改的學生的學號"<<endl;
			B_1:scanf("%s",a1);
			for(i=0;i<n;i++)/*通過學號定位到要修改的學生的信息*/ 
		if(strcmp(stu[i].code,a1)==0)
			{
			num=i;
			cout<<"——————————"<<endl; 
			cout<<"請選擇您要修改的內容:"<<endl;
			cout<<"1.修改姓名"<<endl;
			cout<<"2.修改學號"<<endl;
			cout<<"3.修改性別"<<endl;
			cout<<"4.修改年齡"<<endl;
			cout<<"5.修改c語言成績"<<endl;
			cout<<"6.修改高數成績"<<endl;
			cout<<"7.修改英語成績"<<endl;
			cout<<"8.返回主菜單"<<endl;
			scanf("%d",&item);
			switch(item)
			{
				case 1:/*修改姓名*/ 
					cout<<"請輸入修改後的姓名:"<<endl;
					B_2:scanf("%s",a2);
					
		if(strlen(a2)!=4&&strlen(a2)!=6&&strlen(a2)!=8)
		{
		cout<<"抱歉,您輸入的不是漢字或者名字不對,請重新輸入"<<endl;
		goto B_2;
	}
		cout<<""<<endl;
					strcpy(stu[num].name,a2);break;
				case 2:/*修改學號*/ 
					cout<<"請輸入修改後的學號:"<<endl;
					B_3:scanf("%s",a2);
				
		cout<<""<<endl;
		if(strlen(a2)!=11)
		{
		cout<<"抱歉,您輸入的學號位數不對,請重新輸入"<<endl;
		goto B_3;
	    }
					strcpy(stu[num].name,a2);break;
				case 3:	/*修改性別*/ 
					cout<<"請輸入修改後的性別:"<<endl;
					fflush(stdin);
					B_4:scanf("%c",&a);
					fflush(stdin);
		if(a!='W'&&a!='M')
		{
		cout<<"抱歉,您輸入的性別不對,請重新輸入"<<endl;
		goto B_4;
	}fflush(stdin);
					stu[num].sex=a;break;
				case 4:	/*修改年齡*/ 
					cout<<"請輸入修改後的年齡:"<<endl;
					B_5:scanf("%d",stu[num].age);
		if(stu[num].age<10||stu[num].age>25)
		{
		cout<<"抱歉,您輸入的年齡不對,請重新輸入"<<endl; 
	    goto B_5;
	    }break;
				case 5:	/*修改c語言成績*/ 
					cout<<"請輸入修改後的c語言成績:"<<endl;
					B_6:scanf("%f",&score1);
					
	    if(score1<1||score1>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto B_6;
		 } 
					stu[num].score[0]=score1;break;
				case 6:	/*修改高數成績*/ 
					cout<<"請輸入修改後的高數成績:"<<endl;
					B_7:scanf("%f",&score1);
					
	    if(score1<1||score1>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto B_7;
		 } 
					stu[num].score[1]=score1;break;
				case 7:	/*修改英語成績*/ 
					cout<<"請輸入修改後的英語成績:"<<endl;
					B_8:scanf("%f",&score1);
				
	    if(score1<1||score1>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto B_7;
		 } 
					stu[num].score[2]=score1;break;
				case 8:return;/*返回主菜單*/ 
		        }}
		        else 
				{
				cout<<"抱歉,您輸入的學號系統中找不到,請重新輸入"<<endl;/*輸入學號在系統中無法找到報錯*/ 
				goto B_1;
			}
		    cout<<"bingo!學生信息已成功修改!";break; 
		case 2:/*通過姓名修改*/ 
				{cout<<"請輸入您要修改的學生的姓名:"<<endl;
				B_9:scanf("%s",a1) ;
		if(strcmp(stu[num].name,a1)==0)/*通過姓名定位到要修改學生的信息*/
			{
			num=i;
			cout<<"——————————"<<endl; 
			cout<<"請選擇您要修改的內容:"<<endl;
			cout<<"1.修改姓名"<<endl;
			cout<<"2.修改學號"<<endl;
			cout<<"3.修改性別"<<endl;
			cout<<"4.修改年齡"<<endl;
			cout<<"5.修改c語言成績"<<endl;
			cout<<"6.修改高數成績"<<endl;
			cout<<"7.修改英語成績"<<endl;
			cout<<"8.返回主菜單"<<endl;
			scanf("%d",&item);
			switch(item)
			{
				case 1:/*修改姓名*/ 
					cout<<"請輸入修改後的姓名:"<<endl;
					B_10:scanf("%s",a2);
					
	           	if(strlen(a2)!=4&&strlen(a2)!=6&&strlen(a2)!=8)
		        {
		        cout<<"抱歉,您輸入的不是漢字或者名字不對,請重新輸入"<<endl;
	            goto B_10;
	            }
		        cout<<""<<endl;
					strcpy(stu[num].name,a2);break;
				case 2:/*修改學號*/ 
					cout<<"請輸入修改後的學號:"<<endl;
					B_11:scanf("%s",a2);
				
		cout<<""<<endl;
		if(strlen(a2)!=11)
		{
		cout<<"抱歉,您輸入的學號位數不對,請重新輸入"<<endl;
		goto B_11;
	    }
					strcpy(stu[num].name,a2);break;
				case 3:	/*修改性別*/ 
					cout<<"請輸入修改後的性別:"<<endl;
					fflush(stdin);
					B_12:scanf("%c",&a);
					fflush(stdin);
		if(a!='W'&&a!='M')
		{
		cout<<"抱歉,您輸入的性別不對,請重新輸入"<<endl;
		goto B_12;
	}fflush(stdin);
					stu[num].sex=a;break;
				case 4:	/*修改年齡*/ 
					cout<<"請輸入修改後的年齡:"<<endl;
					B_13:scanf("%d",stu[num].age);
					
		if(stu[num].age<10||stu[num].age>25)
		{
		cout<<"抱歉,您輸入的年齡不對,請重新輸入"<<endl; 
	    goto B_13;
	    }break;
				case 5:	/*修改c語言成績*/ 
					cout<<"請輸入修改後的c語言成績:"<<endl;
					B_14:scanf("%f",&score1);
					
	    if(score1<1||score1>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto B_14;
		 } 
					stu[num].score[0]=score1;break;
				case 6:	/*修改高數成績*/ 
					cout<<"請輸入修改後的高數成績:"<<endl;
					B_15:scanf("%f",&score1);
					
	    if(score1<1||score1>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto B_15;
		 } 
					stu[num].score[1]=score1;break;
				case 7:	/*修改英語成績*/ 
					cout<<"請輸入修改後的英語成績:"<<endl;
					B_16:scanf("%f",&score1);
				
	    if(score1<1||score1>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto B_16;
		 } 
					stu[num].score[2]=score1;break;
				case 8:return;/*返回主菜單*/ 
		        }}
		    else 
		{
		cout<<"抱歉,您輸入的名字系統中找不到,請重新輸入"<<endl;/*無法查詢要修改學生姓名報錯*/ 
			goto B_9;
			} 
		    case 3:return;
	}}
}
/*按學號排序*/
void sort()
{
	int i,j,*p,*q,s;
	char t[LEN+1],ct;
	float ft;
	for(i=0;i<n-1;i++)
	{
		for(j=n-1;j>i;j--)
		if(strcmp(stu[j-1].code,stu[j].code)>0)
		{
		strcpy(t,stu[j-1].code);
		strcpy(stu[j-1].code,stu[j].code);
		strcpy(stu[j].code,t);
		strcpy(t,stu[j-1].name);
		strcpy(stu[j-1].name,stu[j].name);
		strcpy(stu[j].name,t);
		ct=stu[j-1].sex;
		stu[j-1].sex=stu[j].sex;
		stu[j].sex=ct;
		p=&stu[j-1].age;
		q=&stu[j].age;
		s=*q;
		*q=*p;
		*p=s;
		for(k=0;k<3;k++)
		{
			ft=stu[j-1].score[k];
			stu[j-1].score[k]=stu[j].score[k];
			stu[j].score[k]=ft;
	}
		}
	}
 } 
/*新增學生信息*/ 
void add()
{
	int i=n,j,flag;
	cout<<"現在您要做的是增加學生信息,請按照提示進行"<<endl; 
	cout<<"請輸入要增加的人數:"<<endl;
	C_1:scanf("%d",&m);
	if(m+n>N)/*新增人數與原有人數相加大於系統上限報錯*/ 
	{cout<<"抱歉,您要增加的人數與原有人數相加大於系統上限了,請重新輸入"<<endl;
	 goto C_1;}
	if(m<0)
	{
		cout<<"抱歉,要增加的人數不能爲負數,請重新輸入"<<endl;
		goto C_1;
	 }
	 if(m==0)
	 {
	 	cout<<"抱歉,要增加的人數不能是0,請重新輸入"<<endl;
	 	goto C_1;
	  } 
	do
	{
		flag=1;
		while(flag)
		{
			flag=0;
			cout<<"請輸入第"<<i+1<<"個學生的學號:"<<endl;
			C_2:scanf("%s",stu[i].code);
			if(strlen(stu[i].code)!=11)
		{
		cout<<"抱歉,您輸入的學號位數不對,請重新輸入"<<endl;
		goto C_2;
	    }
			for(j=0;j<i;j++)
			if(strcmp(stu[i].code,stu[j].code)==0)/*新增學生學號重複報錯*/ 
			{
				cout<<"抱歉,您輸入的學號已經有了,請檢查後重新輸入"<<endl;
				flag=1;
				break;
			}
		}
		cout<<"請輸入第"<<i+1<<"個學生的姓名:"<<endl;
		C_3:scanf("%s",stu[i].name);
		if(strlen(stu[i].name)!=4&&strlen(stu[i].name)!=6&&strlen(stu[i].name)!=8)/*判斷是否爲漢字*/ 
		        {
		        cout<<"抱歉,您輸入的不是漢字或者名字不對,請重新輸入"<<endl;
	            goto C_3;
	            }
		fflush(stdin);
		cout<<"請輸入第"<<i+1<<"個學生的性別,男爲M,女爲W:"<<endl;
		C_4:scanf("%c",&stu[i].sex);
		fflush(stdin);
		if(stu[i].sex!='W'&&stu[i].sex!='M')
		{
		cout<<"抱歉,您輸入的性別不對,請重新輸入"<<endl;
		goto C_4;
	}
			fflush(stdin);
		cout<<"請輸入第"<<i+1<<"個學生的年齡:"<<endl;
		C_5:scanf("%d",&stu[i].age);
			if(stu[i].age<17||stu[i].age>25)
		{
		cout<<"抱歉,您輸入的年齡不對,請重新輸入"<<endl; 
	    goto C_5;
	    }
		cout<<"請輸入第"<<i+1<<"個學生的c語言成績:"<<endl;
		C_6:scanf("%f",&stu[i].score[0]);
		if(stu[i].score[0]<1||stu[i].score[0]>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto C_6;
		 } 
		cout<<"請輸入第"<<i+1<<"個學生的高數成績:"<<endl;
		C_7:scanf("%f",&stu[i].score[1]);
		if(stu[i].score[1]<1||stu[i].score[1]>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto C_7;
		 } 
		cout<<"請輸入第"<<i+1<<"個學生的英語成績:"<<endl;
		C_8:scanf("%f",&stu[i].score[2]);
		if(stu[i].score[2]<1||stu[i].score[2]>100)
		{
			cout<<"抱歉,您輸入的成績不對,請重新輸入"<<endl;
			goto C_8;
		 } 
		if(flag==0)
		{
			i++;
		 }
		  } 
		while(i<n+m);
		 n+=m;
		 cout<<"bingo!此名學生的信息已成功增加!"<<endl<<endl;
		 sort();
        return;
}
void del()
{
	cout<<"現在您要做的是刪除學生信息,請按照提示進行(注意,刪了就沒法後悔了)"<<endl; 
	int i,j,flag=0,a;
	char a1[LEN+1];
	cout<<"請選擇您要按哪種方式修改:1.學號  2.姓名:"<<endl;
	cout<<"按3返回主菜單"<<endl; 
	scanf("%d",&a);
	switch(a)
	{
		case 1:
			cout<<"請輸入您要刪除的學生的學號"<<endl;
			D_1:scanf("%s",a1);
			for(i=0;i<n;i++)
			{
			if(strlen(a1)!=11)
		{
		cout<<"抱歉,您輸入的學號位數不對,請重新輸入"<<endl;
		goto D_1;
	    }if(strcmp(stu[i].code,a1)==0)
			{
			flag=1;
			for(j=i;j<n-1;j++)
			stu[j]=stu[j+1]; 
	        } 
	          if(flag==0)/*輸入刪除要學生的學號不存在報錯*/ 
	          {
			  cout<<"抱歉,您輸入的學號不存在,請檢查後重新輸入"<<endl;
			  goto D_1;
			  }}
			  if(flag==1)
			  {
			  cout<<"bingo!此名學生的信息已成功刪除!";
			  n--;break;} 
		case 2:
			cout<<"請輸入您要刪除的學生的姓名"<<endl;
			D_2:scanf("%s",a1);
			if(strlen(a1)!=4&&strlen(a1)!=6&&strlen(a1)!=8)/*判斷是否爲漢字*/ 
		        {
		        cout<<"抱歉,您輸入的不是漢字或者名字不對,請重新輸入"<<endl;
	            goto D_2;
	            }
			for(i=0;i<n;i++)
			if(strcmp(stu[i].code,a1)==0)
			{
			flag=1;
			for(j=i;j<n-1;j++)
			stu[j]=stu[j+1]; 
	        } 
	          if(flag==0)
	          {
			  cout<<"抱歉,您輸入的姓名不存在,請檢查後重新輸入"<<endl;
			  goto D_2;
			  }
			  if(flag==1)
			  {
			  cout<<"bingo!此名學生的信息已成功刪除!";
			  n--; break;} 
		case 3:return;
	} 

} 
void save()
{
	ofstream f;  
	f.open("學生信息.txt",ios::app);
	if(!f){
		cout<<"打開文件失敗!"<<endl;
		exit(0);
	}
	SYSTEMTIME sys; 
	GetLocalTime( &sys ); 	
	for(int i=0;i<m+n;i++){
		f<<"————————"<<sys.wYear<<"年"<<sys.wMonth<<"月"<<sys.wDay<<"日"<<sys.wHour<<"時"<<sys.wMinute<<"分"<<sys.wSecond<<"秒"<<"——————————————"<<endl;
		f<<"姓名       學號     性別  年齡   c語言成績  高數成績  英語成績\n"<<endl; 	
		f<<left<<stu[i].name<<"   "<<left<<stu[i].code<<"    "<<left<<stu[i].sex<<"    "<<left<<stu[i].age<<"       "<<left<<stu[i].score[0]<<"         "<<left<<stu[i].score[1]<<"         "<<left<<stu[i].score[2]<<endl;
	}
	cout<<"當前所有同學信息保存成功!"<<endl;
	
} 
/*查詢單個學生信息*/ 
void seek()
{
	cout<<"現在您要做的是查詢學生信息,請按照提示進行"<<endl;
	int i,item,flag,z;
	char a1[LEN+1]; 
	cout<<"請選擇您要按哪種方式查詢:1.學號  2.姓名:"<<endl; 
	cout<<"按3返回主菜單"<<endl; 
	scanf("%d",&item);
	switch(item)
	{
		case 1:
			cout<<"請輸入要查詢的學生的學號:"<<endl;
			E_1:scanf("%s",a1);
			if(strlen(a1)!=11)
		{
		cout<<"抱歉,您輸入的學號位數不對,請重新輸入"<<endl;
		goto E_1;
	    }
			for(i=0;i<n;i++)
			if(strcmp(stu[i].code,a1)==0)
			{
				flag=1;
				cout<<"姓名            學號    性別  年齡   c語言成績  高數成績    英語成績     "<<endl;
	            cout<<"—————————————————————————————————"<<endl;
	            printf("%7s%15s%4c%7d%11.1f%11.1f%11.1f\n",stu[i].name,stu[i].code,stu[i].sex,stu[i].age,
	            stu[i].score[0],stu[i].score[1],stu[i].score[2]);
            }
            if(flag==0)
            cout<<"抱歉,您輸入的學號不存在,請檢查後重新輸入"<<endl;
			break;
		case 2: 
		    cout<<"請輸入要查詢的學生的姓名:"<<endl;
			E_2:scanf("%s",a1);
			if(strlen(a1)!=4&&strlen(a1)!=6&&strlen(a1)!=8)/*判斷是否爲漢字*/ 
		        {
		        cout<<"抱歉,您輸入的不是漢字或者名字不對,請重新輸入"<<endl;
	            goto E_2;
	            }
	            for(z=0;z<n;z++)
	            if(strcmp(stu[z].name,a1)==0)
			{
				flag=1;
				cout<<"姓名            學號    性別  年齡   c語言成績  高數成績    英語成績     "<<endl;
	            cout<<"—————————————————————————————————"<<endl;
	            printf("%7s%15s%4c%7d%11.1f%11.1f%11.1f\n\n",stu[z].name,stu[z].code,stu[z].sex,stu[z].age,
	            stu[z].score[0],stu[z].score[1],stu[z].score[2]);
            }
            if(flag==0)
            cout<<"抱歉,您輸入的姓名不存在,請檢查後重新輸入"<<endl;break;
        case 3:return ;
        default:cout<<"請在1~3之間選擇"<<endl;
    }
	}

/*顯示所有學生的信息*/
void display()
{
	int i;
	cout<<"這是所有學生的信息"<<endl;
	cout<<"姓名            學號    性別  年齡   c語言成績  高數成績    英語成績     "<<endl;
	cout<<"—————————————————————————————————"<<endl;
	for(i=0;i<n;i++)
	printf("%7s%15s%4c%7d%11.1f%11.1f%11.1f\n\n",stu[i].name,stu[i].code,stu[i].sex,stu[i].age,
	    stu[i].score[0],stu[i].score[1],stu[i].score[2]);
	    return;
 } 
/*主界面*/ 
void menu()
{
	int num;
	cout<<""<<endl;
	cout<<"************************************************"<<endl;
	cout<<"               學生信息管理系統XD               "<<endl;
	cout<<"************************************************"<<endl;
	cout<<"                  [系統菜單]                    "<<endl;
	cout<<"————————————————————————"<<endl;
	cout<<"      ****       1.系統幫助       ****          "<<endl;
	cout<<"      ****       2.錄入信息       ****          "<<endl;
	cout<<"      ****       3.修改信息       ****          "<<endl;
	cout<<"      ****       4.增加信息       ****          "<<endl;
	cout<<"      ****       5.刪除信息       ****          "<<endl;
	cout<<"      ****       6.查詢信息       ****          "<<endl;
	cout<<"      ****       7.顯示全部       ****          "<<endl;
	cout<<"      ****       8.保存信息       ****          "<<endl;
	cout<<"      ****       9.退出系統       ****          "<<endl;
	cout<<"                                     made by:LXY"<<endl;
	cout<<"請選擇功能:"<<endl;
	scanf("%d",&num);
	switch(num)
	{
		case 1:help();break;
		case 2:input();break;
		case 3:modify();break;
		case 4:add();break;
		case 5:del();break;
		case 6:seek();break;
		case 7:display();break;
		case 8:save();break; 
		case 9:k=0;break;
		default:cout<<"請在1~8之間選擇";
	}
 } 
 

四、運行結果截圖

【系統幫助】

【輸入人數】

【錄入信息(含糾錯)】

【修改信息】

【刪除信息】

【查詢信息】

【顯示全部】

【保存信息】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章