*/
* 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;
}