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

来源:互联网 发布:斯林百兰严重造假知乎 编辑:程序博客网 时间:2024/04/28 02:00
<span style="font-size:18px;">/*Copyright (c)2015,烟台大学计算机与控制工程学院    All rights reserved.       文件名称:学期总结 作    者:佟兴锋        完成日期:2015年12月31日       版 本 号:v1.0问题描述:课程设计--考试报名系统*/</span>


.h文件

<span style="font-family:FangSong_GB2312;font-size:18px;">#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#include<windows.h>#include<string>#include<iostream>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,完成交换{                                                                                </span>
<span style="font-family:FangSong_GB2312;font-size:18px;">           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;</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">      while(p!=NULL)</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">    {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;i<n;i++)   {      r=L; //r指向头结点      s=(ID *)malloc(sizeof(ID));//创建新结点      s->num=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;   }}</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">*/</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">void sort(ID *head){    struct ID *p1,*p2,*p0;    _int64 b;    char temp[20];    int NO=0;    p0=head;</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">      p2=head;</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">    p1=p2->next;    b=p2->num;    while(p0->next!=NULL)    {while(p1!=NULL){      </span>
<span style="font-family:FangSong_GB2312;font-size:18px;">                       if((p1->num)<b)</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">   {</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">                            b=p1->num;</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">      p2=p1;   }   p1=p1->next;</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">                 };</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">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");//清屏}</span>


main.cpp:

<span style="font-size:18px;">#include <stdio.h>#include <iostream>#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;     }        }</span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">}</span></span>


运行结果:

<1>建立学生信息



<2>插入学生信息



<3>查找信息



<4>统计报名人数



<5>按考生号升序排序



<6>删除学生信息



<7>退出系统:






0 0
原创粉丝点击