您的位置:首页 > 其它

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

2015-01-19 19:45 239 查看
这是第一个学术休假的项目,主体部分在回家时的火车上完成的,隔了几天继续加工,今天终于完成,这是学生管理系统的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: