学生成绩管理系统

只能在TC下运行.....

 项目要求:

1. 题目:学生信息管理系统

2. 程序要求:

1)学生信息录入功能

用户键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治、语文四门课成绩。

可插入一个或多个学生信息到当前编辑的班级数据中。

2)文件保存功能

学生信息每一班存为一个数据文件,数据文件可在程序中打开、编辑和重新保存;

用户输入学生信息可随时保存数据文件。

3)文件打开功能

序只能对当前打开的数据文件进行编辑。

4)查询功能

浏览所有学生信息

按学号查询学生信息

按姓名查询学生信息

查询一个班总成绩和平均成绩

查询一个班某一门课总成绩和平均成绩

查询某一门课分数段(<6060-6970-7980-89>90)学生数。

5)报表输出功能

按学号输出一个班学生信息:学号、姓名、性别、数学、英语、政治、语文成绩、总成绩,到屏幕和文件。

按总成绩输出从高到低输出学号、姓名信息。

注:以上功能以菜单形式供用户使用,有一定的容错功能。

3. 开发语言环境:Microsoft VC++6.0 Turbo C2.0

4.数据结构:数组或链表

5. 程序源代码要求:

1)函数名、变量名采用英文缩写;

2)源代码的书写采用递进格式;

3)程序行和程序段须有注释。



 菜单功能详解……


1.增加班级 :输入班级名回车即可,如果班级已存在则提示是否覆盖。创建后选择班级。
2.选择班级 :进入系统首先要选择班级后才能进行操作,否则自动列出班级提示进行选择班级并列出已在在班级
3.信息保存:操作过程中可随时选择对操作班级数据进行保存(写入文件)
4.信息输入:提示输入学生的学号,性别,各科成绩。且限制输入内容,如成绩不能大于100,小于0,不能输入字符。性别只能是man/woman……
5.信息更改:输入学号ID,查找该ID学生信息,选择更改该ID号学生信息的各项内容。
6.信息删除:根据ID或名字进行删除学生信息……
7.信息查寻:根据 ID 或 名字 或 分数 进行查寻。ID:可单个或范围进行查寻。分数:可精确到各科成绩、平均分,总分 进行单个或范围查寻。名字输入名字直接进行查寻
8.报表输出:可根据信息录入时间 或 ID 或 各项分数 进行从大到小 或 从小到大列表输出学生信息
9.删除班级:删除班级数据文件
0.退出系统

 

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<dos.h>
#include<alloc.h>
#include<dir.h>

#define X0 10
#define scanf fflush(stdin);scanf

int change=0;
char FileName[MAXPATH];
char NewPath[MAXPATH];
char OldPath[MAXPATH];
char *str[9]={"ID","name","sex","math","english","politics","chinese","total","average"};

typedef struct NODE
{
	long int ID;
	char name[20];
	char sex[6];
	float math;
	float english;
	float politics;
	float chinese;
	float total;
	float average;		
	struct NODE *next;
}ListNode;
typedef ListNode *LinkList;

LinkList p=NULL;

int IsYes()   /* 是否按下了Y,或按下N */
{
	char ch;
	
	do
	{
		ch=getch();
	}while(ch!='y'&&ch!='Y'&&ch!='n'&&ch!='N');
	if(ch=='y'||ch=='Y')
		return 1;
	else
		return 0;
}

int Select(int x,int y)   /* 选择x~y的数,否则提示重新输入 */
{
	int i;
	
	printf("\n\nyour choice:");
	scanf("%d",&i);
	while(i>y||i<x)
	{
		printf("\nplease enter(%d~%d):",x,y);
		scanf("%d",&i);			
	}
	return i;
}

void outtextxy(int x, int y,char *str)   /* 在屏幕x,y位置输出str字符串 */
{
    union REGS regs;
	
    regs.h.ah = 2;
	regs.h.bh = 0;
    regs.h.dh = y;
    regs.h.dl = x;    
    int86(0x10, &regs, &regs);
	printf(str);
}

void ShowInfo(LinkList q,int j)   /* 显示信息 */ 
{
	int i;
	
	for(i=0;i<9;i++)
	{
		switch(i)
		{
			case 0:outtextxy(i*9+1,j,"");printf("%-ld",q->ID);break;
			case 1:outtextxy(i*9+1,j,"");printf("%-8s",q->name);break;
			case 2:outtextxy(i*9+1,j,"");printf("%-8s",q->sex);break;
			case 3:outtextxy(i*9+1,j,"");printf("%-8g",q->math);break;
			case 4:outtextxy(i*9+1,j,"");printf("%-8g",q->english);break;
			case 5:outtextxy(i*9+1,j,"");printf("%-8g",q->politics);break;
			case 6:outtextxy(i*9+1,j,"");printf("%-8g",q->chinese);break;
			case 7:outtextxy(i*9+1,j,"");printf("%-8g",q->total);break;
			case 8:outtextxy(i*9+1,j,"");printf("%-8g",q->average);break;
			default:break;
		}
	}
}

LinkList NumSort(int k,char *item)   /* 信息排序 */
{
	LinkList q,r,s,t,u,w;
	int i;
	int j=0;

	for(i=0;i<9;i++)
		if(!strcmp(item,str[i]))
			break;
	if(!(i==0||i==3||i==4||i==5||i==6||i==7||i==8)||(k!=1&&k!=2))
	{
		clrscr();
		printf("Parameter passing incorrect.");
		getch();
		exit(0);
	}			
	u=(LinkList)malloc(sizeof(ListNode));
	for(q=p,r=s=NULL;q!=NULL;q=q->next)
	{		
		w=(LinkList)malloc(sizeof(ListNode));
		w->next=NULL;
		if(p==q)
		{
			s=w;
			*s=*p;
			s->next=NULL;
			u->next=s;
		}
		else
		{
			for(r=s,t=u;r!=NULL;r=r->next,t=t->next)
			{
				switch(i)
				{
					case 0:j=k==1?(r->ID>=q->ID):(r->ID<=q->ID);break;
					case 3:j=k==1?(r->math>=q->math):(r->math<=q->math);break;
					case 4:j=k==1?(r->english>=q->english):(r->english<=q->english);break;
					case 5:j=k==1?(r->politics>=q->politics):(r->politics<=q->politics);break;
					case 6:j=k==1?(r->chinese>=q->chinese):(r->chinese<=q->chinese);break;
					case 7:j=k==1?(r->total>=q->total):(r->total<=q->total);break;
					case 8:j=k==1?(r->average>=q->average):(r->average<=q->average);break;
					default:break;
				}
				if(k==1&&j)
				{
					*w=*q;
					w->next=r;
					t->next=w;
					s=u->next;
					break;
				}
				else if(k==2&&j)
				{
					*w=*q;
					w->next=r;
					t->next=w;
					s=u->next;
					break;
				}
			}
			if(!j)
			{
				*w=*q;
				t->next=w;
				w->next=NULL;
			}			
		}					
	}
	free(u);
	return s;
}

void ShowSort(char *item)   /* 选择排序方式及显示排序 */
{
	LinkList s,q;
	int i,j;
	
	while(1)
	{
		clrscr();
		printf("1.small to large   2.large to small   0.back");
		i=Select(0,2);
		if(i==0)
			break;
		s=NumSort(i,item);
		clrscr();
		for(i=0,j=0;i<9;i++)
			outtextxy(i*9+1,j,str[i]);
		while(s!=NULL)
		{
			ShowInfo(s,++j);
			q=s;
			s=s->next;
			free(q);
		}
		getch();
	}	
}

int ClassAdd()   /* 文件创建 */
{
	FILE *fp;
	LinkList q;
	int k=1;
	
	clrscr();
	printf("class name:");
	scanf("%s",FileName);
	strcpy(NewPath,OldPath);
	strcat(NewPath,FileName);
	if((fp=fopen(NewPath,"rb"))!=NULL)
	{
		clrscr();
		printf("class already exit!\n\noverwrite it(Y/N)");
		if(!IsYes())
			k=0;
	}
	if(k)
	{
		if((fp=fopen(NewPath,"wb"))==NULL)
		{
			clrscr();
			printf("fail add!\n\npress any key continue...");		
			getch();
			return 0;
		}
		fclose(fp);
		clrscr();
		printf("add success!\n\npress any key continue...");
		getch();
		return 1;
	}
	
	return 0;	
}

int ClassSelect(int OpenDirectly)   /* 文件打开 */
{
	FILE *fp;
	int i=1,j;
	long end;
	LinkList q;

	clrscr();
	if(!OpenDirectly)
	{
 		printf("Exist Class:\n\n");
		strcpy(NewPath,"dir ");
		strcat(NewPath,OldPath);
		NewPath[strlen(NewPath)-1]=0;
		strcat(NewPath," /o/p/w/b/a:-d");
		system(NewPath);
		printf("\n\nselect class name:"); 
		scanf("%s",FileName);
	}
	strcpy(NewPath,OldPath);
	strcat(NewPath,FileName);	
	if((fp=fopen(NewPath,"rb"))==NULL)
	{
		clrscr();
		printf("\nfail select!\n\npress any key continue...");
		getch();
		return 0;
	}
	fseek(fp,0L,SEEK_END);
	end=ftell(fp);
	rewind(fp);
	while(!feof(fp)&&(end-ftell(fp))>=sizeof(ListNode))
	{
		if(i)
		{
			p=q=(LinkList)malloc(sizeof(ListNode));
			p->next=NULL;
			i=0;
		}			
		else
		{
			q->next=(LinkList)malloc(sizeof(ListNode));
			q=q->next;
			q->next=NULL;
		}
		fread(q,sizeof(ListNode),1,fp);
		if(q==p)
		{
			if(q->ID<0||q->ID>0x7fffffff||19<strlen(q->name)||strcmp(q->sex,"man")&&strcmp(q->sex,"woman")||q->math>100||q->math<0||q->english>100||q->english<0||q->politics>100||q->politics<0||q->chinese>100||q->chinese<0)
			{
				clrscr();
				printf("illegal data file!\n\npress any key continue...");
				getch();
				free(q);
				p=NULL;
				return 0;
			}
			
		}
	}
	clrscr();
	if(!OpenDirectly)
	{
		printf("select success!\n\npress any key continue...");
		getch();
	}
	fclose(fp);	
	return 1;
}

void ClassSave()   /* 文件保存 */
{
	FILE *fp;
	LinkList q;

	clrscr();
	strcpy(NewPath,OldPath);
	strcat(NewPath,FileName);
	if((fp=fopen(NewPath,"wb"))==NULL)
	{
		printf("fail save!\n\npress any key continue...");	
		getch();
		return;
	}
	rewind(fp);
	while(p!=NULL)
	{
		fwrite(p,sizeof(ListNode),1,fp);
		q=p;
		p=p->next;
		free(q);
	}	
	change=0;
	fclose(fp);
	printf("save success!\n\npress any key continue...");
	getch();
}

int IsSave()   /* 判断有没有保存,是否保存*/
{	
	LinkList q;
	
	clrscr();
	if(change==1)
	{
		printf("a file opened.save it?(Y/N)");
		if(IsYes())
		{
			ClassSave();
			return 1;
		}
		return 0;
	}
	else
		while(p!=NULL)
		{
			q=p;
			p=p->next;
			free(q);
		}
	return 0;
}

float NumLess100(char *buf)    /* 判断输入的数是否是:大于0小于100且最多一位小数的浮点数*/
{
	int i,j,l,k;
	char str[30];
	
	while(1)
	{
		scanf("%s",str);
		k=0;
		l=strlen(str);
		j=l>4?0:1;
		if(j)
		{
			for(i=0;i<l;i++)
			{
				if(str[i]!='.'&&(str[i]<48||str[i]>57))
					j=0;
				if(str[i]=='.')
					k++;
				if(k>1)
					j=0;
			}					
		}
		if(j)
			if(100<atof(str)||0>atof(str))
				j=0;
		if(j)
			break;
		printf("\nplease enter num(<=100 and no more than 1 fraction).\n");
		printf(buf);
	}
	return atof(str);
}

void Input(int k,LinkList q)	/* 信息输入及判断输入是否正确 */
{
	int i,j,l;
	char str[30];
	
	switch(k)
	{
		case 0:
			printf("\nID         :");
			while(1)
			{
				scanf("%s",str);
				l=strlen(str);
				j=l>10?0:1;
				if(j)
					for(i=0;i<l;i++)
						if(str[i]<48||str[i]>57)
							j=0;
				if(j)
				{
					LinkList r=p;
					while(r!=NULL&&p->ID!=-1)
					{
						if(r->ID==atol(str))
							break;
						r=r->next;
					}
					if(r!=NULL&&p->ID!=-1)
					{
						printf("\nID Exist!\n");
						j=0;
					}
				}
				if(j)
					break;
				printf("\nplease enter less than 10 num.\n\nID         :");
			}	
			q->ID=atol(str);
			break;
		case 1:
			while(1)
			{
				printf("\nname      :");
				scanf("%s",str);
				if(strlen(str)<19)
					break;
				printf("\n please enter name less than 20 character.\n");
			}
			strcpy(q->name,str);
			break;
		case 2:
			printf("\nsex       :");
			while(1)
			{
				scanf("%s",q->sex);
				if(!(strcmp(q->sex,"man")&&strcmp(q->sex,"woman")))
					break;
				printf("\nplease enter(man/woman).\n\nsex       :");
			}	
			break;
		case 3:printf("\nmath      :");q->math=NumLess100("\nmath      :");break;
		case 4:printf("\nenglish   :");q->english=NumLess100("\nenglish   :");break;
		case 5:printf("\npolitics  :");q->politics=NumLess100("\npolitics  :");break;
		case 6:printf("\nchinese   :");q->chinese=NumLess100("\nchinese   :");break;
		case 7:q->total=q->math+q->english+q->politics+q->chinese;break;
		case 8:q->average=q->total/4;break;
	}	
}

void InfoInput()   /*信息录入 */
{
	LinkList q,r,s;
	int i;
	char ch;
	
	while(1)
	{
		q=p;
		clrscr();
		outtextxy(20,1,"Please enter student information.");
		if(q!=NULL)
		{
			while(q->next!=NULL)
				q=q->next;
			q->next=(LinkList)malloc(sizeof(ListNode));
			q=q->next;
			q->next=NULL;
		}
		else
		{
			p=q=(LinkList)malloc(sizeof(ListNode));
			p->next=NULL;
		}
		q->ID=-1;
		for(i=0;i<9;i++)
		{		
			Input(i,q);
			change=1;
		}		
		clrscr();
		printf("Continue?(Y/N)");
		if(!IsYes())
			break;			
	}
}

void InfoSearch()   /* 信息查询 */
{
	LinkList q;
	char buf[30];
	int i,j;
	unsigned long id;
	float score;
	
	while(1)
	{
		clrscr();
		printf("search by: 1.ID   2.name  3.Score   0.back");
		i=Select(0,3);
		if(i==0)
			break;
		switch(i)
		{
			case 1:
				while(1)
				{
					q=p;
					clrscr();
					printf("1.search one   2.search by rang   0.back");
					i=Select(0,2);
					if(i==0)
						break;
					else if(i==1)
					{
						printf("\nenter the ID:");
						scanf("%ld",&id);
						clrscr();
						for(i=0,j=0;i<9;i++)
							outtextxy(i*9+1,j,str[i]);
						while(q!=NULL)
						{
							if(q->ID==id)
								ShowInfo(q,++j);
							q=q->next;
						}
						if(j==0)
							printf("\ndidn't find!");
					}
					else if(i==2)
					{
						unsigned long x,y;
						
						q=p;
						printf("\nenter the range(like:10 32):");
						while(1)
						{
							scanf("%ld%ld",&x,&y);				;
							if(x<=y)
								break;
							printf("the later must be great.enter again:");
						}
						clrscr();
						for(i=0,j=0;i<9;i++)
							outtextxy(i*9+1,j,str[i]);
						while(q!=NULL)
						{
							if(q->ID>=x&&q->ID<=y)
								ShowInfo(q,++j);
							q=q->next;
						}
						if(j==0)
							printf("\ndidn't find!\n");
					}					
					printf("\nContinue searching by ID...(Y/N)?");
					if(!IsYes())
						break;
				}				
				break;
			case 2:
				while(1)
				{					
					q=p;
					clrscr();
					printf("enter the name:");
					scanf("%s",buf);
					clrscr();
					for(i=0,j=0;i<9;i++)
						outtextxy(i*9+1,j,str[i]);
					while(q!=NULL)
					{
						if(!strcmp(q->name,buf))
							ShowInfo(q,++j);
						q=q->next;
					}
					if(j==0)
						printf("\ndidn't find!\n");
					printf("\nContinue searching by name...(Y/N)?");
					if(!IsYes())
						break;
				}
				break;
			case 3:
				while(1)
				{
					int k;
					float x,y;
					
					q=p;
					clrscr();
					printf("1.math  2.english  3.politics  4.chinese  5.total  6.average  0.back");
					k=Select(0,6);
					if(k==0)
						break;
					k+=2;				
					printf("\nenter Score rangs(like 60 90):");
					while(1)
					{
						scanf("%g%g",&x,&y);				;
						if(x<=y)
							break;
						printf("\nthe later must be great.enter again:");
					}
					clrscr();
					for(i=0,j=0;i<9;i++)
						outtextxy(i*9+1,j,str[i]);
					while(q!=NULL)
					{
						switch(k)
						{
							case 3:
								if(q->math>=x&&q->math<=y)
									ShowInfo(q,++j);
								break;
							case 4:
								if(q->english>=x&&q->english<=y)
									ShowInfo(q,++j);
								break;
							case 5:
								if(q->politics>=x&&q->politics<=y)
									ShowInfo(q,++j);
								break;
							case 6:
								if(q->chinese>=x&&q->chinese<=y)
									ShowInfo(q,++j);
								break;
							case 7:
								if(q->total>=x&&q->total<=y)
									ShowInfo(q,++j);
								break;
							case 8:
								if(q->average>=x&&q->average<=y)
									ShowInfo(q,++j);
								break;
							default:
								break;
						}						
						q=q->next;						
					}
					if(j==0)
						printf("\ndidn't find!\n");
					printf("\nContinue searching by score...(Y/N)?");				
					if(!IsYes())
						break;
				}
				break;
			default:break;
		}		
	}	
}

void InfoModify()   /* 信息更改 */
{
	LinkList q;
	int id,i,j;
	char ch;
	char item[30];
	float x;

	while(1)
	{
		clrscr();
		outtextxy(0,0,"Please enter the ID to Modify:");
		scanf("%ld",&id);
		q=p;
		while(q!=NULL)
		{
			if(q->ID==id)
				break;
			q=q->next;
		}
		if(q!=NULL&&q->ID==id)
		{
			clrscr();
			for(i=0,j=0;i<9;i++)
				outtextxy(i*9+1,j,str[i]);
			ShowInfo(q,++j);
			while(1)
			{
				printf("\n\nenter item(like ID):");
				do
				{
					scanf("%s",item);
					for(i=0;i<7;i++)
						if(!strcmp(item,str[i]))
							break;
					if(i==7)
						printf("\nItem not exit!enter again:");
				}while(i>6);
				Input(i,q);
				if(i>2&&i<7)
				{
					q->total=q->math+q->english+q->politics+q->chinese;
					q->average=q->total/4;
				}
				change=1;
				printf("\nContinue modify the same item?(Y/N)");
				if(!IsYes())
					break;
			}
		}
		clrscr();
		if(q==NULL)
			printf("The ID you enter not exit!\n\n");	
		printf("Continue modify others?(Y/N)");
		if(!IsYes())
			break;
	}	
}

void InfoDelete()   /* 信息删除 */
{
	LinkList q,r;
	int i,j;
	
	while(1)
	{
		clrscr();
		printf("delete by:   1.ID    2.name    0.back");
		i=Select(0,2);
		if(i==0)
			break;
		else if(i==1)
		{
			while(1)
			{
				unsigned long int id;
			
				q=r=p;
				clrscr();
				printf("\n\nenter delete ID:");
				scanf("%ld",&id);
				while(q!=NULL)
				{
					if(q->ID==id)
						break;	
					r=q;
					q=q->next;
				}
				clrscr();
				for(i=0,j=0;i<9;i++)
					outtextxy(i*9+1,j,str[i]);
				if(q!=NULL)
				{
					ShowInfo(q,++j);
					printf("\n\ndelete?(Y/N)");
					if(IsYes())
					{
						if(r->ID==id)
						{
							if(r->next==NULL)
							{
								free(q);
								r=p=q=NULL;
							}
							else
							{
								p=p->next;
								free(q);
								q=r=p;
							}							
						}
						else
						{
							r->next=q->next;
							free(q);
						}
						printf("\n\ndeleted!");
						change=1;
					}
				}
				else
					printf("\n\nnot exit!");
				printf("\n\ndelete by ID continue?(Y/N)");
				if(!IsYes())
					break;
			}			
		}
		else if(i==2)
		{
			while(1)
			{
				char buf[30];
				int k=0;
				q=r=p;
				
				clrscr();
				printf("\n\nenter delete name:");
				scanf("%s",&buf);
				while(q!=NULL)
				{
					if(!strcmp(q->name,buf))
					{						
						clrscr();
						k++;
						if(k>1)
						{
							printf("\n\ncontine to delete name(%s)?(Y/N)",buf);
							if(!IsYes())
								break;
						}
						clrscr();
						for(i=0,j=0;i<9;i++)
							outtextxy(i*9+1,j,str[i]);
						ShowInfo(q,++j);
						printf("\n\ndelete?(Y/N)");
						if(IsYes())
						{
							if(!strcmp(r->name,buf))
							{
								if(p->next==NULL)
								{
									free(p);
									r=p=q=NULL;
								}
								else
								{
									p=p->next;
									free(q);
									q=p;
								}
							}
							else
							{
								r->next=q->next;
								free(q);
								q=r;
							}
							change=1;
							printf("\n\ndeleted... ");							
						}
					}
					r=q;
					q=q->next;
				}
				if(j!=0&&k<=1)
				{
					clrscr();
					for(i=0,j=0;i<9;i++)
						outtextxy(i*9+1,j,str[i]);
					printf("\n\ndidn't find.");
				}				
				printf("\n\ncontine delete by name?(Y/N)");
				if(!IsYes())
					break;
			}
		}		
	}
}

void ReportOutput()   /* 报表输出 */
{
	LinkList q,s;
	int i,j,k=0;
	
	while(1)
	{
		clrscr();
		printf("sort by:   1.time   2.ID   3.score   0.back");
		i=Select(0,3);
		switch(i)
		{
			case 1:
				clrscr();
				q=p;
				for(i=0,j=0;i<9;i++)
					outtextxy(i*9+1,j,str[i]);
				while(q!=NULL)
				{
					ShowInfo(q,++j);
					q=q->next;
				}
				getch();
				break;
			case 2:	
				ShowSort("ID");
				break;
			case 3:
				while(1)
				{
					clrscr();
					printf("sort by: 1. math  2.english  3.politics  4.chinese  5.total  6.average  0.back");
					i=Select(0,6);
					if(i==0)
						break;
					switch(i)
					{
						case 1:ShowSort("math");break;
						case 2:ShowSort("english");break;
						case 3:ShowSort("politics");break;
						case 4:ShowSort("chinese");break;
						case 5:ShowSort("total");break;
						case 6:ShowSort("average");break;
						default:break;
					}					
				}
				break;
			case 0:
				k=1;
				break;
			default:clrscr();printf("error!");getch();break;
		}
		if(k)
			break;		
	}
}

void ClassDelete()	   /* 班级文件删除 */
{
	clrscr();
	printf("Exist Class:\n\n");
	strcpy(NewPath,"dir ");
	strcat(NewPath,OldPath);
	NewPath[strlen(NewPath)-1]=0;
	strcat(NewPath," /b/o/p/w/a:-d");
	system(NewPath);
	printf("\n\nselect class name:");
	scanf("%s",FileName);
	strcpy(NewPath,"del /p ");
	strcat(NewPath,OldPath);
	strcat(NewPath,FileName);
	system(NewPath);
	getch();
}

void AuthorInfo()   /* 作者信息 */
{
	int i;
	char *str[8]={"System Name:","Student management system",
				  "Author     :","zhaopeng",
				  "Student ID :","200900008071",
				  "Class      :","0902"};
	
	clrscr();
	for(i=0;i<4;i++)
	{
		outtextxy(20,i*2+4,str[i*2]);
		outtextxy(40,i*2+4,str[i*2+1]);
	}
	printf("\n\n\n\t\t    Press any key to continue...");
	getch();
}

int TF(int IsSelect,void(*visit)(void))	  /* 一个函数调用的模型,用于减少代码量 */
{
	if(IsSelect)
		visit();
	else
	{
		IsSelect=ClassSelect(0);
		if(IsSelect==1)
			visit();
	}						
	return IsSelect;
}

void StudentSystem()   /* 学生管理系统开始菜单 */
{
	int i;
	int IsSelect=0;
	int choice;
	char *str[10]={"1.Class Add",
				  "2.Class Select",
				  "3.Information Save",
				  "4.Information Input",
				  "5.Information Modify",
				  "6.Information Delete",
				  "7.Information Search",
				  "8.Report Output",
				  "9.Class Delete",
				  "0.Exit The System"};		
	
	mkdir("classdata");
	getcwd(OldPath,MAXPATH);
	if(OldPath[strlen(OldPath)-1]=='\\')
		strcat(OldPath,"classdata\\");
	else
		strcat(OldPath,"\\classdata\\");
	while(1)
	{
		clrscr();
		printf("\n     -----------------welcome to student management system-----------------");
		for(i=0;i<10;i++)
			outtextxy(30,i*2+3,str[i]);
		printf("\n\n\t\t   Please input your choice");
		if(IsSelect)
			printf("(class selected):");
		else
			printf("(class unselect):");
		choice=23;
		scanf("%d",&choice);
		clrscr();
		switch(choice)
		{
			case 1:
				if(IsSelect)
					IsSave();	
				IsSelect=0;
				ClassAdd();
				IsSelect=ClassSelect(1);
				break;
			case 2:
				if(IsSelect)
					IsSave();					
				IsSelect=0;
				IsSelect=ClassSelect(0);
				break;
			case 3:
				if(IsSelect)
				{
					ClassSave();
					IsSelect=ClassSelect(1);
				}
				else
				{
					printf("no class select!\n\npress any key continue...");
					getch();	
				}
				break;
			case 4:IsSelect=TF(IsSelect,InfoInput);break;	
			case 5:IsSelect=TF(IsSelect,InfoModify);break;
			case 6:IsSelect=TF(IsSelect,InfoDelete);break;
			case 7:IsSelect=TF(IsSelect,InfoSearch);break;
			case 8:IsSelect=TF(IsSelect,ReportOutput);break;
			case 9:if(IsSelect){IsSave();IsSelect=0;}ClassDelete();break;
			default:
				break;
		}
		if(choice==0)
			break;
	}
	if(change)
		IsSave();
}

void main()
{
	AuthorInfo();
	StudentSystem();
}


 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值