• 考试报名管理系统


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

  • 相关阅读:
    tars go版本源码分析
    goim源码阅读
    vue weixin源码解读
    避免加锁的骚操作
    git一些常用操作
    eclipse 的习惯配置
    ai资源站
    转载 github上的一些安全资源收集
    转载 一个统计代码行数的python脚本
    C语言开发工具
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232134.html
Copyright © 2020-2023  润新知