考试报名管理系统

*/
 * Copyright (c) 2016,烟台大学计算机与控制工程学院
 * All rights reserved.
 * 文件名:text.cpp
 * 作者:常轩
 * 微信公众号:Worldhello
 * 完成日期:2016年9月20日
 * 版本号:V1.0
 * 程序输入:无
 * 程序输出:见运行结果
 */

//考试报名管理系统  链表实现
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "malloc.h"
 struct ElemType{                   //定义考生结构体
	int  number;                   //考号
	char name[10];                 //姓名
	char sex[2];                      //性别
	int  old;                      //年龄
	char kind[10];                  //科目
};
typedef struct LNode{
   ElemType data;
   struct LNode *next;
}List;
List *L=NULL;
void addList(List * l)                               //将节点的数据存放到链表中去
{
	List *p;
	if(L==NULL)
	{
		L =l;
		l->next=NULL;
	}
	else
	{
		p = L;
		while(p)
		{
			if(p->next==NULL)
			{
				p->next =l;
				l->next =NULL;
   			}
			p= p->next;
		}
	}
}
void delExam(int num)
{
	List *p,*pre;
	if (L==NULL)
	{
		return;
	}
	p =pre=L;
	while(p)
	{
		if (p->data.number==num)
		{
			if(p==L)
			{
					L = L->next;
					free(p);
					p=NULL;
			}
			else
			{
				pre->next =p->next;
				free(p);
				p=NULL;

			}
		}
		else
		{
			pre =p;
			p= p->next;
		}
	}
}
void CreatListF(List * L)                           //添加考生信息
{
	List *s;
	s=(List *)malloc(sizeof(List));
	int Number;
		printf("请输入考号:");
		scanf("%d",&Number);
        s->data.number=Number;
		char Name[10];
		printf("请输入姓名:");
		scanf("%s",Name);
		strcpy(s->data.name,Name);
		char Sex[2];
		printf("请输入性别:");
		scanf("%s",Sex);
        strcpy(s->data.sex,Sex);
		int Old;
		printf("请输入年龄:");
		scanf("%d",&Old);
		s->data.old=Old;
		char Kind[10];
		printf("请输入科目:");
		scanf("%s",Kind);
        strcpy(s->data.kind,Kind);
		addList(s);
}
void LocateList(List * L)                                       //功能模块二  查询信息
{
	int num;
	printf("请输入需要查找的考生考号:\n");
	scanf("%d",&num);
	List * p=L;	
	if(p==NULL)
		printf("暂无考生信息!");
	while(p!=NULL)
	{
		if(p->data.number==num)
			printf("考号:%d 姓名:%s 性别:%s 年龄:%d 科目:%s\n",p->data.number,p->data.name,p->data.sex,p->data.old,p->data.kind);
		p=p->next;
	}

}

void LookthoughListF(List * L)                                   //功能模块三  浏览信息
{
   List * p=L;
   while(p!=NULL)
   {
	  printf("考号:%d 姓名:%s 性别:%s 年龄:%d 科目:%s\n",p->data.number,p->data.name,p->data.sex,p->data.old,p->data.kind);
	  p=p->next;
   }
}
void DeleteList(List *L)                                         //功能模块四   删除信息
{
	printf("请输入所要删除考生的考号:");
	int num;
	scanf("%d",&num);
	
	delExam(num);

}
void ReviseList(List * L)                                        //功能模块五   修改信息 
{
    printf("请输入要修改的考生的考号:");
	int num;
	scanf("%d",&num);
	List * p=L;
	if(p==NULL)
		printf("暂无考生信息!\n");
	while(p)
	{
		if(p->data.number==num)
		{
		int Number;
		printf("请输入考号:");
		scanf("%d",&Number);
        p->data.number=Number;
		char Name[10];
		printf("请输入姓名:");
		scanf("%s",Name);
		strcpy(p->data.name,Name);
		char Sex[2];
		printf("请输入性别:");
		scanf("%s",Sex);
        strcpy(p->data.sex,Sex);
		int Old;
		printf("请输入年龄:");
		scanf("%d",&Old);
		p->data.old=Old;
		char Kind[10];
		printf("请输入科目:");
		scanf("%s",Kind);
        strcpy(p->data.kind,Kind); 
		break;
		}
		else
			p=p->next;

	}

}
int menu_select();                                              //主界面
int main()
{
   
    char choose;
	for(;;)
	{
		choose=menu_select();
		if(choose==1)
		{
			 CreatListF(L);
		}
		else if(choose==2)
		{
			LocateList(L);
		}
		else if(choose==3)
		{
			LookthoughListF(L);
		}
		else if(choose==4)
		{
			DeleteList(L);
		}
		else if(choose==5)
		{
			ReviseList(L);
		}
		else if(choose==6)
		{
			printf("暂未开发!敬请见谅\n");
		}
		else if(choose==7)
			break;
		else
			printf("Input error!\n");
	}

	return 0;
}
int menu_select()                                                         //菜单函数定义
{
   char c;
   printf("===============================================================\n");
   printf("|----------------------考试报名管理系统 v1.0------------------|\n");
   printf("|                                                             |\n");
   printf("|                         1.添加信息                          |\n");
   printf("|                         2.查询信息                          |\n");
   printf("|                         3.浏览信息                          |\n");
   printf("|                         4.删除信息                          |\n");
   printf("|                         5.修改信息                          |\n");
   printf("|                         6.使用帮助                          |\n");
   printf("|                         7.退出系统                          |\n");
   printf("***************************************************************\n");
   printf("                    请输入(1-7)进行操作:\n");
   do{
	    scanf("%c",&c);
   }while(c<'1'||c>'7');
   return c-48;

}

posted @ 2016-10-13 13:11  壹言  阅读(361)  评论(0编辑  收藏  举报