学术休假-学生信息管理系统v1.0

来源:互联网 发布:引用js文件加上时间戳 编辑:程序博客网 时间:2024/04/25 20:21

这是第一个学术休假的项目,主体部分在回家时的火车上完成的,隔了几天继续加工,今天终于完成,这是学生管理系统的beta版本,后续还将继续完善。

学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)学生信息录入功能(学生信息用文件保存)---输入
(3)学生信息浏览功能---输出
(4)查询、排序功能
     按学号查询
     按姓名查询
(5)学生信息的删除与修改(可选项)

/* *Copyright (c) 2015,烟台大学计算机学院 *All gight reserved. *文件名称:temp.cpp *作者:邵帅 *完成时间:2015年1月19日 *版本号:v1.0*/#include<fstream>#include<iostream>#include<cstdlib>#include<string>using namespace std;void showmeun(void);int name_search(string ,int );int num_search(string ,int );void showinfo(int num);void showchange(void);int open(void);void save(int num);struct Student{    string number;    string name;    string old;    string sex;    string birthday;    string add;    string phone;    string mail;}; //档案结构体Student stu[8000];int main(){    int choice,i;    string numkey,namekey;    int num=0,add,addsum,cut;    while (1)    {        num=open();        showmeun();//打开开始菜单        cin>>choice;        if (choice==0)        {            cout<<"感谢使用@Mayuko学生管理系统!"<<endl;            break;        }        else if (choice==1)        {            cout<<"请输入学生的学号:";            cin>>numkey;            i=num_search(numkey,num);            if (i==-1)            {                cout<<"无此学生信息!"<<endl;                continue;            }            else                showinfo(i);            cout<<endl;        }        else if (choice==2)        {            cout<<"请输入学生的姓名:";            cin>>namekey;            i=name_search(namekey,num);            if (i==-1)            {                cout<<"无此学生信息!"<<endl;                continue;            }            else                showinfo(i);            cout<<endl;        }        else if (choice==3)        {            cout<<"学生的信息如下:"<<endl;            for (i=0; i<num; i++)            {                showinfo(i);                cout<<endl;            }        }        else if (choice==4)        {            cout<<"请输入写入的个数;";            cin>>addsum;            cout<<"请依次输入学生的学号、姓名、年龄、性别(M or F)、出生年月、地址、电话、E—mail"<<endl;            cout<<"列如:201401 晓凡 18 M 19961218 地球村 17862817891 xiaofan@163.com"<<endl;            //打开文件            ofstream outfile("students.txt",ios::app);            if (!outfile)            {                cout<<"打开文件失败!";                exit(1);            }            num+=addsum;            for (add=num; add<(addsum+num); add++)            {                cin>>stu[add].number>>stu[add].name>>stu[add].old>>stu[add].sex>>stu[add].birthday>>stu[add].add>>stu[add].phone>>stu[add].mail;                outfile<<stu[add].number<<" "<<stu[add].name<<" "<<stu[add].old<<" "<<stu[add].sex<<" "<<stu[add].birthday<<" "<<stu[add].add<<" "<<stu[add].phone<<" "<<stu[add].mail<<endl;            }            outfile.close();            cout<<"写入结束!共写入"<<addsum<<"条记录,现共有"<<num<<"条记录。"<<endl;            //文件写入结束        }        else if (choice==5)        {            cout<<"请输入要修改学生的学号:";            cin>>numkey;            i=num_search(numkey,num);            cout<<"您正在修改“";            showinfo(i);            cout<<"”的信息"<<endl;            showchange();            cin>>cut;            cout<<"请输入修改的内容:";            while (1)            {                if (cut==1)                    cin>>stu[i].number;                else if (cut==2)                    cin>>stu[i].name;                else if (cut==3)                    cin>>stu[i].old;                else if (cut==4)                    cin>>stu[i].sex;                else if (cut==5)                    cin>>stu[i].birthday;                else if (cut==6)                    cin>>stu[i].add;                else if (cut==7)                    cin>>stu[i].phone;                else if (cut==8)                    cin>>stu[i].mail;                else                {                    cout<<"输入错误,即将返回"<<endl;                    break;                }                save(num);                cout<<"修改成功!"<<endl;                break;            }        }    }    return 0;}int open(void){    int num=0;    ifstream infile("students.txt",ios::in);    if (!infile)    {        cout<<"打开文件失败!";        exit(1);    }    while (infile>>stu[num].number)    {        infile>>stu[num].name;        infile>>stu[num].old;        infile>>stu[num].sex;        infile>>stu[num].birthday;        infile>>stu[num].add;        infile>>stu[num].phone;        infile>>stu[num].mail;        num++;    }    infile.close();    //文件读取结束    return num;}void save(int num){    int add;    ofstream outfile("students.txt",ios::out);    if (!outfile)    {        cout<<"打开文件失败!";        exit(1);    }    for (add=0; add<num; add++)    {        outfile<<stu[add].number<<" "<<stu[add].name<<" "<<stu[add].old<<" "<<stu[add].sex<<" "<<stu[add].birthday<<" "<<stu[add].add<<" "<<stu[add].phone<<" "<<stu[add].mail<<endl;    }    outfile.close();}void showmeun(void){    cout<<"-----------------"<<endl;    cout<<"学生信息管理系统"<<endl;    cout<<"-----------------"<<endl;    cout<<"1、按学号查找"<<endl;    cout<<"2、按姓名查找"<<endl;    cout<<"3、学生信息浏览"<<endl;    cout<<"4、学生信息录入"<<endl;    cout<<"5、修改学生信息"<<endl;    cout<<"请选择功能(键入0退出):";}void showchange(void){    cout<<"--------------"<<endl;    cout<<"1-学号"<<endl;    cout<<"2-姓名"<<endl;    cout<<"3-年龄"<<endl;    cout<<"4-性别"<<endl;    cout<<"5-出生年月"<<endl;    cout<<"6-地址"<<endl;    cout<<"7-电话"<<endl;    cout<<"8-E-mail"<<endl;    cout<<"--------------"<<endl;    cout<<"请输入要修改的选项:";}void showinfo(int num){    cout<<stu[num].number<<" "<<stu[num].name<<" "<<stu[num].old<<" "<<stu[num].sex<<" "<<stu[num].birthday<<" "<<stu[num].add<<" "<<stu[num].phone<<" "<<stu[num].mail;}int name_search(string key,int n){    int i;    for (i=0; i<n; i++)    {        if (key==stu[i].name)            return i;    }    return i;}int num_search(string key,int n){    int i=-1;    for (i=0; i<n; i++)    {        if (key==stu[i].number)            return i;    }    return i;}
运行结果:






另外,temp文件夹的文件“students.txt”文件截图:



@ Mayuko

2 0
原创粉丝点击