课程设计--考试报名管理系统

/*
Copyright (c)2015,烟台大学计算机与控制工程学院    
All rights reserved.       
文件名称:学期总结 
作    者:佟兴锋        
完成日期:2015年12月31日       
版 本 号:v1.0

问题描述:课程设计--考试报名系统
*/


.h文件

#include
#include
#include
#include
#include
#include
#include
using namespace std;

struct ID
{
    char name[20];  //定义年龄
    _int64 num;     //定义考号
    int age;        //定义年龄
    char sex[5];    //定义性别
    char kind[20];  //定义报考类型
    ID *next;       //定义结构体指针
};
void sort(ID *head);
ID a[100];//定义结构体数组
int shuzudaxiao=0;
int sum_age=0,max_age=0,min_age=100,pc=0;
float ave_age=0;
ID *creat()//建立学生信息:准考证号,姓名,年龄,性别,报考类型
{
    ID *p1,*p2,*head;
    int pd;
    p1=p2=head=NULL;
    printf("\t\t\t 开始输入记录!!!\n");
    printf("please input pd:\n");
    scanf("%d",&pd);
    while(pd!=0)//如果pd不等于0,执行循环
    {
	p1=(ID*)malloc(sizeof(ID));//创建头结点p1
        printf("请输入学生的准考证号:\n");
        scanf("%I64d",&p1->num);
        printf("请输入学生的姓名:\n");
        scanf("%s",p1->name); 
        printf("请输入学生的年龄:\n");
        scanf("%d",&p1->age); 
        max_age=p1->age;
        if(min_age>p1->age) 
			min_age=p1->age;
        printf("请输入学生的性别:\n");
        scanf("%s",p1->sex);
        printf("请输入学生的报考类别:\n");
        scanf("%s",p1->kind);
        if(head==NULL)//如果头结点不等于NULL,完成交换
	{                                                                                
           head=p1;                                                                     
           p2=p1;
	}
        else
	{
	    p2->next=p1;
            p2=p1;
	}
        printf("please input pd:\n");
        scanf("%d",&pd);
        pc++;
    }
    printf("\t\t\t\t建 立 信 息 成 功!\n");
    printf("\n");
    printf("\n");
    p2->next=NULL;
    return(head);//返回创建链表的头指针
}
ID *insert(ID *head)//插入学生信息:准考证号,姓名,年龄,性别,报考类型
{
    ID *temp,*p1,*p2;
    int pd;
    start: p1=head;
	   printf("\t\t\t插入操作开始!!!\n");
	   temp=(ID *)malloc(sizeof(ID));//创建头结点temp
	   printf("请输入学生的准考证号:\n");
	   scanf("%I64d",&temp->num);
	   printf("请输入学生的姓名:\n");
	   scanf("%s",temp->name); 
	   printf("请输入学生的年龄:\n");
	   scanf("%d",&temp->age); 
	   printf("请输入学生的性别:\n");
	   scanf("%s",temp->sex);
	   printf("请输入学生的报考类别:\n");
	   scanf("%s",temp->kind);
	   if (head==NULL)//如果头结点为空,完成交换
	   {
	       head=temp;
	       temp->next=NULL;
	   }
	   else
	   {
	       while(p1!=NULL)
	      {
		  p2=p1;
	          p1=p1->next;
	      }
	      p2->next=temp;
	      temp->next=NULL;
	   }
	   printf("插入末尾成功");
	   pc++;
	   printf("是否继续插入 1.Yes 2.No;\n");
	   scanf("%d",&pd);
	   if(pd==1)//如果pd等于1,回到start
	       goto start;
	   printf("\t\t\t\t插 入 信 息 成 功!\n");
	   printf("\n");
	   printf("\n");
	   return (head);//返回创建链表的头指针
}
ID *delet(ID *head)//删除学生信息:准考证号,姓名,年龄,性别,报考类型
{
    ID *p1,*p2;
    _int64 num;
    printf("请输入要删除的学生的准考证号:");
    scanf("%I64d",&num); 
    p1=head;
    if (head==NULL)//如果头结点为空,跳到end
    {
        printf("没有记录\n");
        goto end;
    }
    while(num!=p1->num && p1!=NULL)//删除节点p1
    {
	p2=p1;
	p1=p1->next;
    }
    if(num==p1->num)
    {
	if (p1==head)
	    head=p1->next;
        else 
            p2->next=p1->next;
        pc--; 
     }
     printf("\t\t\t\t删 除 信 息 成 功!\n");
     printf("\n");
     printf("\n");
     end:return head;//返回创建链表的头指针
}
ID *search(ID *head)//查找学生信息:准考证号,姓名,年龄,性别,报考类型
{
    ID *p1,*p2;
    _int64 num;
    printf("请输入要查找的准考证号:");
    scanf("%I64d",&num); 
    p1=head;
    while(num!=p1->num && p1!=NULL)//循环查找节点p1
    {
	p2=p1;
	p1=p1->next;
    }
    if(num==p1->num)//输出节点p1的数据项
    {
	printf("学生的准考证号:%I64d\n",p1->num);
	printf("\n");
        printf("学生的姓名:%s\n",p1->name);
	printf("\n");
        printf("学生的年龄:%d\n",p1->age);
        printf("\n");
	printf("学生的性别:%s\n",p1->sex);
	printf("\n");
        printf("学生的报考类别:%s\n",p1->kind);
    }
    return head;//返回创建链表的头指针
}
ID *modify_num(ID *head)//修改学生信息:准考证号,姓名,年龄,性别,报考类型
{
    ID *p;
    int i,m,n;
    _int64 num;
start:
    printf("请输入要修改的学生的准考证号:"); 
    scanf("%I64d",&num);
    p=head;
    while(p!=NULL )
    {
	if(num==p->num)
	{
	    m=1;
            while(m==1)
	    {
		m=0;
                printf("\t\t 1.修改学生的准考证号\n"); 
		printf("\t\t 2.修改学生的姓名\n"); 
		printf("\t\t 3.修改学生的年龄\n"); 
		printf("\t\t 4.修改学生的性别\n");
		printf("\t\t 5.修改学生的报考类别\n");
		printf("请选择(1--5):");
                scanf("%d",&i);
                switch( i )
		{
		case 1 :
		    printf("请输入修改后的准考证号:"); 
		    scanf("%I64d",&p->num);
                    break;
                case 2:
                    printf("请输入修改后的姓名:"); 
		    scanf("%s",p->name);
                    break;
                case 3:
                    printf("请输入修改后的年龄:");
		    scanf("%d",&p->age);
                    break;
		case 4:
                    printf("请输入修改后的性别:");
                    scanf("%s",&p->sex);
                    break;
                case 5:
		    printf("请输入修改后的报考类别:");
                    scanf("%s",p->kind);
                    break;
                default: 
					printf("输入错误,请重新输入");
		}
	    }
            break;
	}
        p=p->next;
    }
    printf("是否继续修改其他学生情况(1改 2不改):");
    scanf("%d",&n);
    if(n==1)
	goto start;
    return head;//返回创建链表的头指针
}
ID *print(ID *head)//显示操作结果:准考证号,姓名,年龄,性别,报考类型
{
	
    ID *p;
    p=head;
    printf("*********************************************************************\n");
    printf("显示结果是:\n");
    printf("\n");
    if(head!=NULL)
    do
    {
	printf("%I64d        %-14s%-10d%-10s%-10s\n",p->num,p->name,p->age,p->sex,p->kind); 
	p=p->next;
    } while(p!=NULL);
    printf("*********************************************************************\n");
    printf("\n");
    printf("\n");
    return head;//返回创建链表的头指针
}
ID *length(ID *head)//显示报考人数
{
    int n=0;
    ID *p;
    p=head;
      while(p!=NULL)
    {
	n++;
	p=p->next;
    }
    printf("报名总人数为: %d\n",n);
    printf("\n");
    return head;
}
/*
void sort(ID *&L,_int64 a[],int n)  //建立有序(升序)的单链表
{
   ID *s,*r;
   int i;
   L=(ID *)malloc(sizeof(ID)); //创建头结点
   L->next=NULL;
   for (i=0;inum=a[i];
      s->next=NULL;
      while(r->next!=NULL && r->next->num < a[i]) //找到插入点
      r = r->next;
      s->next=r->next; //将*s插入*r之后
      r->next=s;
   }
}
*/
void sort(ID *head)
{
    struct ID *p1,*p2,*p0;
    _int64 b;
    char temp[20];
    int NO=0;
    p0=head;
      p2=head;
    p1=p2->next;
    b=p2->num;
    while(p0->next!=NULL)
    {
	while(p1!=NULL)
	{      
                       if((p1->num)
	   {	
                            b=p1->num;
	      p2=p1;
	   }
	   p1=p1->next;	
                 };
	b=p2->num;
	p2->num=p0->num;
	p0->num=b;
	b=p2->age;
	p2->age=p0->age;
	p0->age=b;
	strcpy(temp,p2->sex);
	strcpy(p2->sex,p0->sex);
	strcpy(p0->sex,temp);
	strcpy(temp,p2->kind);
	strcpy(p2->kind,p0->kind);
	strcpy(p0->kind,temp);
	strcpy(temp,p2->name);
	strcpy(p2->name,p0->name);
	strcpy(p0->name,temp);
	p0=p0->next;
	p2=p0;
	p1=p2->next;
	b=p2->num;
    };
    
}
void welcome()//登录考试报名管理系统
{  
     printf("\n");
     printf("\n");
     printf("\n");
     printf("\n");
     printf("\n");
     printf("\t*****************************************************************\n");
     printf("\t    欢   迎   进   入   考   试   报   名   管   理   系   统    \n");
     printf("\t*****************************************************************\n");
     char username[20];
     string passward;
     printf("\n");
     printf("\t\t\t请输入用户名: ");
     gets(username);
     printf("\n");
     printf("\t\t\t请输入您的密码:");
     cin>>passward;
 //  gets(passward);
     while(passward!="123456")
     {
	printf("\t\t\t密码错误,请重新输入!!!\n");
 	printf("\n");
        printf("\t\t\t请输入用户名:");
	cin>>username;//输入字符串
	printf("\n");
//	scanf("%d\n",username);
	printf("\t\t\t请输入密码:");
//	scanf("%d\n",passward);
	cin>>passward;
      }
      system("cls");//清屏
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\t\t*************************************\n");
      printf("\t\t*  密  码  正  确 ,请  稍  候 !!!  *\n");
      printf("\t\t*************************************\n");
      Sleep(1000);//睡眠1秒
      system("cls");//清屏
}


main.cpp:

#include 
#include 
#include "txf.h"
using namespace std;
void main()//主函数
{
	welcome();
	ID *head;//定义头指针
        int choise;
        while(1) 
	{
              printf("\t\t*********************************************\n");
	      printf("\t\t*********************************************\n");
	      printf("\t\t********学 生 考 试 报 名 管 理 系 统********\n");
              printf("\t\t*************     1.建立文件     ************\n");
              printf("\t\t*************     2.插入数据     ************\n");
              printf("\t\t*************     3.删除数据     ************\n");
              printf("\t\t*************     4.修改记录     ************\n");
              printf("\t\t*************     5.查找记录     ************\n");
              printf("\t\t*************     6.报名人数     ************\n");
              printf("\t\t*************     7.信息排序     ************\n");
	      printf("\t\t*************     0.退出         ************\n");
	      printf("\t\t*********************************************\n");
	      printf("\t\t*********************************************\n");
              printf("请选择(0-7):");
              scanf("%d",&choise);
              switch(choise)
	      {
		case 1:
		    head=creat();//创建学生信息
		    print(head);
                    break;
               case 2: 
		    head=insert(head);//插入学生信息
		    print(head);
                    break;
               case 3: 
		    head=delet(head);//删除学生信息
		    print(head);
                    break;
               case 4:
		    head=modify_num(head); //修改学生信息
		    print(head);
                    break;
               case 5:
		    head=search(head);//查找学生信息
                    break;
	       case 6:
		    head=length(head);//统计报考人数
		    break;
	       case 7:
		    sort(head);//按考号排序
		    print(head);
		    break;
               case 0:
                    exit(0);//退出系统
                    break;
               default :
		    printf("输入错误,请重新输入!\n"); 
		    break;
	     }
        }
}
 
  


运行结果:

<1>建立学生信息

课程设计--考试报名管理系统_第1张图片


<2>插入学生信息

课程设计--考试报名管理系统_第2张图片


<3>查找信息

课程设计--考试报名管理系统_第3张图片


<4>统计报名人数

课程设计--考试报名管理系统_第4张图片


<5>按考生号升序排序

课程设计--考试报名管理系统_第5张图片


<6>删除学生信息

课程设计--考试报名管理系统_第6张图片


<7>退出系统:

课程设计--考试报名管理系统_第7张图片





你可能感兴趣的:(课程设计--考试报名管理系统)