1. 程式人生 > >資料結構設計作業之順序表考生系統

資料結構設計作業之順序表考生系統

#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
typedef int ElemType;
ElemType sum=0;
typedef struct
{
    ElemType age;
    char num[20];
    char name[20];
    char l[10],x[10];
}li;
li lis[100];
void add()
{
    system("cls");
    printf("新增考生資訊:\n請依次輸入學生的准考證號、姓名、性別、年齡、報考類別\n");
    scanf("%s%s%s%d%s",&lis[sum].num,&lis[sum].name,lis[sum].x,&lis[sum].age,lis[sum].l);
    sum++;
    getch();
    return ;
}
void del()
{
    int i;
    system("cls");
    if(sum==0)
    {
        printf("記憶體中無學生資訊!\n請先進行學生資訊錄入!\n按任意鍵返回主選單......");
        getch();
        return ;
    }
    printf("刪除考生資訊:\n請輸入學生的准考證號\n");
    char x[20];
    scanf("%s",x);
    for(i=0;i<sum;i++)
        if(strcmp(x,lis[i].num)==0)
            break;
    if(i==sum)
    {
        printf("暫無該考生資訊!\n按任意鍵返回......\n");
        getch();
        return ;
    }
    for(i;i<sum;i++)
        lis[i]=lis[i+1];
    sum--;
    printf("\n刪除成功!");
    getch();
    return ;
}
void input()
{
    system("cls");
    int s;
    printf("請輸入將要輸入的學生人數:\n");
    scanf("%d",&s);
    int i,t;
    for(i=1;i<=s;i++)
    {
        printf("\n第%d人:\n請依次輸入學生的准考證號、姓名、性別、年齡、報考類別\n",i);
        scanf("%s%s%s%d%s",&lis[sum].num,&lis[sum].name,&lis[sum].x,&lis[sum].age,&lis[sum].l);
        sum++;
    }
    printf("\n輸入完成,按任意鍵返回主選單......");
    getch();
    return ;
}
void fd()
{
    int i,t;
    system("cls");
    if(sum==0)
    {
        printf("記憶體中無學生資訊!\n請先進行學生資訊錄入!\n按任意鍵返回主選單......");
        getch();
        return ;
    }
    printf("查詢考生資訊:\n請輸入學生的准考證號\n");
    char ff[20];
    scanf("%s",&ff);
    for(i=0;i<sum;i++)
        if(strcmp(ff,lis[i].num)==0)
            break;
    if(i==sum)
    {
        printf("暫無該考生資訊!\n按任意鍵返回......\n");
        getch();
        return ;
    }
    printf("\n該生資訊為:\n准考證號        姓名      性別   年齡  報考類別\n%-16s %-10s %-5s %-5d %-5s\n按任意鍵返回......",lis[i].num,lis[i].name,lis[i].x,lis[i].age,lis[i].l);
    getch();
    return ;
}
void print()
{
    system("cls");
    if(sum==0)
    {
        printf("記憶體中無學生資訊!\n請先進行學生資訊錄入!\n按任意鍵返回主選單......");
        getch();
        return ;
    }
    int i,t;
    printf("准考證號        姓名      性別   年齡  報考類別\n");
    for(i=0;i<sum;i++)
        printf("%-16s %-10s %-5s %-5d %-5s\n",lis[i].num,lis[i].name,lis[i].x,lis[i].age,lis[i].l);
    printf("輸入任意鍵返回主選單......\n");
    getch();
    return ;

}
void xg()
{
    int i;
    system("cls");
    if(sum==0)
    {
        printf("記憶體中無學生資訊!\n請先進行學生資訊錄入!\n按任意鍵返回主選單......");
        getch();
        return ;
    }
    printf("修改考生資訊:\n請輸入學生的准考證號\n");
    char x[20];
    scanf("%s",x);
    for(i=0;i<sum;i++)
        if(strcmp(x,lis[i].num)==0)
            break;
    if(i==sum)
    {
        printf("暫無該考生資訊!\n按任意鍵返回......\n");
        getch();
        return ;
    }
    printf("\n請依次輸入待修改學生的准考證號、姓名、性別、年齡、報考類別\n");
    scanf("%s%s%s%d%s",&lis[i].num,&lis[i].name,lis[i].x,&lis[i].age,lis[i].l);
    printf("\n修改成功!");
    getch();
    return ;
}
int main()
{
    int i,t;
    int menu=0;
    int cz;
    while(1)
    {
        system("cls");
        printf("\n\n\t\t\t\t\t\t歡迎來到考試報名管理系統!\n");
        if(menu==0)
            printf("\n\n\n\n\t\t\t\t\t\t=>>");
        else printf("\n\n\n\n\t\t\t\t\t\t   ");
        printf("輸入考生資訊:\n");
        if(menu==1)
            printf("\t\t\t\t\t\t=>>");
        else printf("\t\t\t\t\t\t   ");
        printf("輸出考生資訊:\n");
        if(menu==2)
            printf("\t\t\t\t\t\t=>>");
        else printf("\t\t\t\t\t\t   ");
        printf("刪除考生資訊:\n");
        if(menu==3)
            printf("\t\t\t\t\t\t=>>");
        else printf("\t\t\t\t\t\t   ");
        printf("查詢考生資訊:\n");
        if(menu==4)
            printf("\t\t\t\t\t\t=>>");
        else printf("\t\t\t\t\t\t   ");
        printf("新增考生資訊:\n");
        if(menu==5)
            printf("\t\t\t\t\t\t=>>");
        else printf("\t\t\t\t\t\t   ");
        printf("修改考生資訊:\n");
        printf("\n\n\n\n\n\n\t\t\t\t\t\t\t\t請使用方向鍵選擇......\n\t\t\t\t\t\t\t\t\t回車鍵進入\n\t\t\t\t\t\t\t\t\tEsc鍵退出");
        cz=getch();
        if(cz==27)
            break;
        if(cz==13)
        {
            switch(menu)
            {
                case 0:input();break;
                case 1:print();break;
                case 2:del();break;
                case 3:fd();break;
                case 4:add();break;
                case 5:xg();break;
            }

        }
        if((cz==80||cz==77)&&menu<5)
            menu++;
        else if((menu>0)&&(cz==75||cz==72))
            menu--;
    }
    system("cls");
    printf("\n\n\n\n\n\t\t\t\t再見!\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
    return 0;
}