*/ * 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("请输入需要查找的考生考号: "); scanf("%d",&num); List * p=L; if(p==NULL) printf("暂无考生信息!"); while(p!=NULL) { if(p->data.number==num) printf("考号:%d 姓名:%s 性别:%s 年龄:%d 科目:%s ",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 ",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("暂无考生信息! "); 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("暂未开发!敬请见谅 "); } else if(choose==7) break; else printf("Input error! "); } return 0; } int menu_select() //菜单函数定义 { char c; printf("=============================================================== "); printf("|----------------------考试报名管理系统 v1.0------------------| "); printf("| | "); printf("| 1.添加信息 | "); printf("| 2.查询信息 | "); printf("| 3.浏览信息 | "); printf("| 4.删除信息 | "); printf("| 5.修改信息 | "); printf("| 6.使用帮助 | "); printf("| 7.退出系统 | "); printf("*************************************************************** "); printf(" 请输入(1-7)进行操作: "); do{ scanf("%c",&c); }while(c<'1'||c>'7'); return c-48; }