Student Information System

来源:互联网 发布:英镑符号 mac系统 编辑:程序博客网 时间:2024/06/06 04:28

学生信息管理系统1.0


this project is a practice from my friend, just at your study reference materials

#include<iostream>#include<iomanip>#include<string>#include<fstream>#include<cstdlib>#include<Windows.h>using namespace std;struct Student{    int no;    string num_stu;    string name;    string age;    string sex;    string address;    string num_phone;    string num_room;}b[1000];int sum = 0;//functionsvoid display();void menu();void readin();void outprint(int n);void enterin();void modify_student();void delete_student();void savein();void search();void pb(int i);void p();bool advancedsearch(string str1, string str2);int main(){    system("color 75");    MessageBoxA(0, "Welcome", "学生信息管理系统!", 1);    display();    system("pause");    return 0;}void display(){    int n;    menu();    while (cin >> n, n != 0)    {        readin();        switch (n)        {        case 1:enterin();            break;        case 2:outprint(sum);            break;        case 3:search();            break;        case 4:modify_student();            break;        case 5:delete_student();            break;        case 0:            break;        default:            break;        }        system("pause");        system("cls");        menu();    }}//readin all book datavoid readin(){    ifstream fin;    ofstream fout;    int i;    fin.open("student.txt");    if (!fin.is_open())    {        MessageBoxA(0, "Could not open the file student.txt", "Program terminating", 1);        system("pause");        exit(EXIT_FAILURE); //exit the program;using <cstdlib>    }    i = 0;    sum = 0;    while (fin >> b[i].no)    {        fin >> b[i].num_stu;        fin >> b[i].name;        fin >> b[i].age;        fin >> b[i].sex;        fin >> b[i].address;        fin >> b[i].num_phone;        fin >> b[i].num_room;        i++;        sum++;    }}//ouotput book listvoid outprint(int n){    cout << setiosflags(ios::left) << setw(8) << "序号" << setw(16) << "学号" << setw(16) << "姓名" << setw(8) << "年龄"         << setw(10) << "性别" << setw(16) << "家庭住址" << setw(16) << "联系电话" << setw(16) << "寝室房间号" << endl;    for (int i = 0; i < n; i++)    {        pb(i);    }}//input booksvoid enterin(){    int t, i;    bool flag = false;    ifstream fin;    ofstream fout;    fout.open("student.txt", ios::app);    if (!fout.is_open())    {        MessageBoxA(0, "Could not open the file student.txt", "Program terminating", 1);        system("pause");        exit(EXIT_FAILURE); //exit the program;using <cstdlib>    }    cout << "请输入添加的人数: ";    cin >> t;    while (t--)    {        cout << "输入学生的:" << endl;        cout << "学号、姓名、年龄、性别、家庭住址、联系电话、寝室号" << endl;        i = sum + 1;        if (flag == false)        {            cin.clear();            while (cin.get() != '\n')                continue;            flag = true;        }        cout << "学号" << endl;        getline(cin, b[i].num_stu);        cout << "姓名" << endl;        getline(cin, b[i].name);        cout << "年龄" << endl;        getline(cin, b[i].age);        cout << "性别" << endl;        getline(cin, b[i].sex);        cout << "家庭住址" << endl;        getline(cin, b[i].address);        cout << "联系电话" << endl;        getline(cin,b[i].num_phone);        cout << "寝室号" << endl;        getline(cin,b[i].num_room);        b[i].no = i + 1;        cout << "录入一个学生的信息如下:" << endl;        fout << b[i].no << "\t" << b[i].num_stu << "\t" << b[i].name << "\t" << b[i].age << "\t" << b[i].sex            << "\t" << b[i].address << "\t" << b[i].num_phone << "\t" << b[i].num_room << endl;        cout << b[i].no << "\t" << b[i].num_stu << "\t" << b[i].name << "\t" << b[i].age << "\t" << b[i].sex            << "\t" << b[i].address << "\t" << b[i].num_phone << "\t" << b[i].num_room << endl;        i++;        sum++;    }}//change student  datavoid delete_student(){    outprint(sum);    int a, i;    cout << "输入要删除学生的编号: " << endl;    cin >> a;    a--;    for (i = a; i < sum; i++)    {        b[i].num_stu = b[i + 1].num_stu;        b[i].name = b[i + 1].name;        b[i].age = b[i + 1].age;        b[i].sex = b[i + 1].sex;        b[i].address = b[i + 1].address;        b[i].num_phone = b[i + 1].num_phone;        b[i].num_room = b[i + 1].num_room;    }    b[sum].no = NULL;    b[sum].num_stu = '\0';    b[sum].name = '\0';    b[sum].age = '\0';    b[sum].sex = '\0';    b[sum].address = '\0';    b[sum].num_phone = '\0';    b[sum].num_room = '\0';    sum--;    cout << "删除成功!-_-!" << endl;    savein();}void modify_student(){        //修改学生的信息    outprint(sum);    int a;    cout << "输入要修改学生的编号: " << endl;    cin >> a;    a--;    cout << "请重新输入要修改的学生的信息:" << endl;    cout << "输入学生的:学号、姓名、年龄、性别、家庭住址、联系电话、寝室号" << endl;    cin >> b[a].num_stu;    cin >> b[a].name;    cin >> b[a].age;    cin >> b[a].sex;    cin >> b[a].address;    cin >> b[a].num_phone;    cin >> b[a].num_room;    cout << "Modify Succeed , you can go on!" << endl;    savein();}//save all student datavoid savein(){    ifstream fin;    ofstream fout;    int i;      fout.open("student.txt");    for (i = 0; i < sum; i++)    {        fout << b[i].no << "\t"            << b[i].name << "\t" << b[i].num_stu << "\t"            << b[i].name << "\t" << b[i].age << "\t" << b[i].sex << "\t"            << b[i].address << "\t" << b[i].num_phone << "\t" << b[i].num_room << endl;    }    //cout << "saved" << endl;}//searchvoid search(){    string str;    string st[30];    int i, j, flag = 0, k, l, m, n;    cout << "1)普通搜索\n2)模糊搜索" << endl; <span style="background-color: rgb(51, 204, 255);">  <em>//amazing code for first learner</em></span>    cin >> j;    if (j == 1)//common search    {        cout << "输入搜索信息:" << endl;        cin.clear();        while (cin.get() != '\n')            continue;        getline(cin, str);        //search        for (i = 0; i < sum; i++)        {            if (b[i].num_stu == str)            {                pb(i);                flag++;            }            else if (b[i].name == str)            {                pb(i);                flag++;            }            else if (b[i].age == str)            {                pb(i);                flag++;            }            else if (b[i].sex == str)            {                pb(i);                flag++;            }            else if (b[i].address == str)            {                pb(i);                flag++;            }            else if (b[i].num_phone == str)            {                pb(i);                flag++;            }            else if (b[i].num_room == str)            {                pb(i);                flag++;            }        }        cout << "共 " << flag << " 个学生" << endl;    }    else if (j == 2)//advanced search    {        cout << "输入搜索信息(中文):\n";        //-------------------        cin.clear();        while (cin.get() != '\n')            continue;        //------------------        getline(cin, str);        for (i = 0; i < sum; i++)        {            if (advancedsearch(str, b[i].name))            {                pb(i);                flag++;            }            else if (advancedsearch(str, b[i].sex))            {                pb(i);                flag++;            }            else if (advancedsearch(str, b[i].address))            {                pb(i);                flag++;            }        }        cout << "共 " << flag << " 个学生" << endl;    }    else    {        cout << "输入错误,返回主菜单。" << endl;    }}void pb(int i){    cout << setw(8) << i << setw(16) << b[i].num_stu << setw(16) << b[i].name << setw(8) << b[i].age        << setw(10) << b[i].sex << setw(16) << b[i].address << setw(16) << b[i].num_phone << setw(16) << b[i].num_room << endl;}bool advancedsearch(string str1, string str2){    int i, j, l, m, n;    bool flag = false;    string st[30];    //Chinese sum    l = str1.length();    //split input    for (i = 0, j = 0; j < l; j += 2, i++)    {        st[i] = st[i].assign(str1, j, 2);    }    //compare    for (m = 0; m < i; m++)    {        if (str2.find(st[m], 0) == -1)            break;        flag = true;    }    return flag;}void menu(){    cout << "|---------------------------------------------------|" << endl;    cout << "|    This is a system about student information     |" << endl;    cout << "|                                                   |" << endl;    cout << "|   1.录入学生个人信息                              |" << endl;    cout << "|   2.输出学生个人信息                              |" << endl;    cout << "|   3.查询学生个人信息                              |" << endl;    cout << "|   4.学生信息修改                                  |" << endl;    cout << "|   5.学生信息删除                                  |" << endl;    cout << "|   0)退出                                          |" << endl;    cout << "|                                                   |" << endl;    cout << "|---------------------------------------------------|" << endl;    cout << endl;}


它仍然不完善,希望初学者可以作为参考,写出艺术的代码

欢迎大家指正 :)

0 0