数据结构课程设计(考试管理系统)

来源:互联网 发布:php过滤微信表情符号 编辑:程序博客网 时间:2024/04/28 11:44

为考试报名管理人员编写一个考试报名管理系统 ,用菜单选择方式完成下列功能:

1.考生报名信息添加:包括准考证号、姓名、性别、年龄、学院、专业、班级、身份证号、报考科目(eg. CET4/CET6)等。

2.考生报名信息查询:分别按姓名、学院、专业、班级、报考科目等进行查询。

3.排序:分别根据姓名、年龄、学院等按升序进行排序。

4.考生报名信息的修改、删除:按准考证号进行考生信息的修改和删除。


长期手懒,现在写的程序越来越瓜皮了。

先贴一个cpp文件

#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<windows.h>
#include<conio.h>
#include"datastructure.h"
using namespace std;
#define maxn 1000
int menu()
{
    cout<<"\t\t欢迎来到考试报名系统!选择你想要的服务"<<endl;
    cout<<"\t\t\t 1.考生报名信息添加"<<endl;
    cout<<"\t\t\t 2.考生报名信息查询"<<endl;
    cout<<"\t\t\t 3.考生排序"<<endl;
    cout<<"\t\t\t 4.考生信息修改和删除"<<endl;
    return 0;
}
int ask(char ch)
{
    cout<<"是否继续此操作?(y/n)"<<endl;
    ch=getche();
    if(ch=='y')
    {
    system("cls");
    menu();
    return 1;
    }
    else
    {
    system("cls");
    menu();
    return 0;
    }
}
int InitList(SQL &L)
{
        L.s = new CET[maxn];
        if (!L.s) exit(-1);
        else
                L.length = 0;
        return 0;
}
int add(SQL &L,int i)
{
        cout << "请输入第"<<i++<<"个学生的信息!\n";
        cout << "准考证号:" << endl;
        cin >> L.s[L.length].adcard;
        cout << "姓名:" << endl;
        cin >> L.s[L.length].name;
        cout << "性别:" << endl;
        cin >> L.s[L.length].sex;
        cout << "年龄:" << endl;
        cin >> L.s[L.length].age;
        cout << "学院:" << endl;
        cin >> L.s[L.length].academy;
        cout << "专业:" << endl;
        cin >> L.s[L.length].major;
        cout << "班级:" << endl;
        cin >> L.s[L.length].grade;
        cout << "身份证号:" << endl;
        cin >> L.s[L.length].idcard;
        cout << "报考科目:" << endl;
        cin >> L.s[L.length].subject;
        ++L.length;
        cout<<"信息添加成功!"<<endl;
        return 0;
}
int print_info(SQL &L, int i)
{
        cout << "姓名:  " << L.s[i].name << endl;
        cout << "准考证号:  " << L.s[i].adcard << endl;
        cout << "年龄:  " << L.s[i].age << endl;
        cout << "性别:  " << L.s[i].sex << endl;
        cout << "学院:  " << L.s[i].academy << endl;
        cout << "专业:  " << L.s[i].major << endl;
        cout << "班级:  " << L.s[i].grade << endl;
        cout << "身份证号:  " << L.s[i].idcard << endl;
        cout << "报考科目:  " << L.s[i].subject << endl<<endl;
        return 0;
}

int besearch(SQL &L)
{
        bool flag = false;
        string s;
        cout << "填入你要查找的信息:" << endl;
        cout << "1.   姓名"<<endl<<"2.   学院"<<endl<<"3.   专业"<<endl<<"4.   报考科目"<<endl;
        cin >> s;
        getchar();
        for (int i = 0; i < L.length; i++)
        {
            if ((L.s[i].name == s||L.s[i].academy==s||L.s[i].major==s||L.s[i].subject==s)&&L.s[i].have)
                {
                flag = true;
                print_info(L, i);
                }
        }
        if (!flag) cout << "查找失败!" << endl;
        return 0;
}
int sort_info(SQL &L)
{
    char op;
    cout<<"1.  按姓名排序"<<endl<<"2.  按年龄排序"<<endl<<"3.  按学院排序"<<endl;
    cin>>op;
    if(op=='1')
    {
        for(int i=0;i<L.length-1;i++)
            for(int j=0;j<L.length-i-1;j++)
            if(L.s[j].name<L.s[j+1].name)
            {
            CET* p=new CET;
            *p=L.s[j];
            L.s[j]=L.s[j+1];
            L.s[j+1]=*p;
            }
    }
    if(op=='2')
    {
        for(int i=0;i<L.length-1;i++)
            for(int j=0;j<L.length-i-1;j++)
            if(L.s[j].age<L.s[j+1].age)
            {
            CET* p=new CET;
            *p=L.s[j];
            L.s[j]=L.s[j+1];
            L.s[j+1]=*p;
            }
    }
    return 0;
}
int modify(SQL &L)
{
    bool flag = false;
    string s;
    char op,op2;
    int i;
    cout<<"选择你所需要的服务:"<<endl<<"1.    修改信息"<<endl<<"2.    删除信息"<<endl;
    cin>>op;
    cout<<"输入准考证号:"<<endl;
    cin>>s;
    for (i = 0; i < L.length; i++)
    {
        if (L.s[i].adcard == s&&L.s[i].have)
        {
        flag = true;
        print_info(L, i);
        }
    }
    if (!flag) {cout << "查找失败!" << endl; return -1;}
    if(op=='1')
    {
        cout<<"选择你需要修改的项目!"<<endl;
        cout << "1.   姓名"<<endl<<"2.   年龄"<<endl<<"3.   性别"<<endl<<"4.   身份证号"<<endl<<"5.   准考证号"<<endl;
        cout << "6.   学院"<<endl<<"7.   专业"<<endl<<"8.   班级"<<endl<<"9.    报考科目"<<endl;
        op2=getchar();
        switch(op2)
        {
            case '1': cout << "性别:" << endl;cin >> L.s[i].sex; break;
            case '2': cout << "年龄:" << endl;cin >> L.s[i].age; break;
            case '3': cout << "性别:" << endl;cin >> L.s[i].sex; break;
            case '4': cout << "身份证号:" << endl;cin >> L.s[i].idcard; break;
            case '5': cout << "准考证号:" << endl;cin >> L.s[i].adcard; break;
            case '6': cout << "学院:" << endl;cin >> L.s[i].academy; break;
            case '7': cout << "专业:" << endl;cin >> L.s[i].major; break;
            case '8': cout << "班级:" << endl;cin >> L.s[i].grade; break;
            case '9': cout << "报考科目:" << endl;cin >> L.s[i].subject; break;
        }
        cout<<"修改成功!"<<endl;
    }
    if(op=='2')
    {
    L.s[i].have=false;
    cout<<"删除成功!"<<endl;
    }
    return 0;
}



然后main文件
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<windows.h>
#include<conio.h>
#include"datastructure.h"
using namespace std;
int main()
{
    int n;
    char op,ch;
    SQL L;
 InitList(L);
    menu();
 while(cin>>op)
    {
    if(op=='1')
    {
        for(;;)
        {
        cout<<"\t请输入学生人数!"<<endl;
        cin>>n;
        for(int i=0;i<n;i++)
        add(L,i+1);
        if(!ask(ch)) break;
        }
    }
    else if(op=='2')
    {
        for(;;)
        {
            besearch(L);
            if(!ask(ch)) break;
        }
    }
    else if(op=='3')
    {
        for(;;)
        {
        sort_info(L);
        cout<<"排序成功,是否需要输出?(y/n)"<<endl;
        char c;
        cin>>c;
        if(c=='y')
        for (int i = 0; i < L.length; i++)
        print_info(L,i);
        if(!ask(ch)) break;
        }
    }
    else if(op=='4')
    {
        for(;;)
        {
        modify(L);
        if(!ask(ch)) break;
        }
    }
    else    {cout<<"输入错误,请重新输入!\n";continue;}
    }
 return 0;
}

最后头文件
#ifndef DATASTRUCTURE_H_INCLUDED
#define DATASTRUCTURE_H_INCLUDED
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
struct CET
{
    bool have=true;
 string adcard,name,sex,academy,major,idcard,subject;
 int age,grade;
};
struct SQL
{
 CET *s;
 int length;
};
int menu();
int ask(char ch);
int InitList(SQL &L);
int add(SQL &L,int i);
int print_info(SQL &L,int i);
int besearch(SQL &L);
int sort_info(SQL &L);
int modify(SQL &L);

#endif // DATASTRUCTURE_H_INCLUDED

原创粉丝点击