#include <iostream>
#include <fstream>
#include <string.h>
#include <stdlib.h>
#include <iomanip>
#define MAXACCOUNTNUMBER 500
using namespace std;
//欢迎界面
void welcome();
//主界面
void mainFrame();
//查询学生信息
void bid();
//显示学生信息
void show();
//创建账户
void openAccount();
//删除学生
void deletestu();
//修改学生
void altre();
//对学生按照学号排序
void sortstu();
//读取文件
void Read() ;
//写入文件
void Save();
struct Account
{
long stuNumber; //学号
char stuName[20]; //姓名
char stuPwd[10]; //性别
int ages; //年龄
double grade ; //成绩
};
//所有学生信息
Account array[MAXACCOUNTNUMBER];
//人员的数量
int size=0;
int main()
{
Read();
int i;
char loginName[20];
char loginPwd[20];
welcome();
for(i=0;i<3;i++)
{
cout<<endl<<"请输入用户名:";
cin>>loginName;
cout<<endl<<"请输入六位登陆密码:";
cin>>loginPwd;
if(strcmp(loginName,"admin")==0&&strcmp(loginPwd,"123456")==0)
{
mainFrame();
break;
}
else
{
cout<<endl<<"用户名或密码输入错误"<<endl;
cout<<endl<<"您还有"<<2-i<<"次机会"<<endl<<endl;
if(2-i==0){
cout<<"请办理密码业务后再来!"<<endl;
}
}
}
return 0;
}
void welcome()
{
cout<<" 欢迎登录学生信息管理系统"<<endl;
}
void mainFrame()
{
int order=0;
cout<<endl<<endl<<" 欢迎登录学生信息管理系统"<<endl;
cout<<endl;
cout<<" 1.增加学生"<<endl;
cout<<" 2.删除学生"<<endl;
cout<<" 3.修改信息"<<endl;
cout<<" 4.所有学生"<<endl;
cout<<" 5.学生排序"<<endl;
cout<<" 6.查找学生"<<endl;
cout<<" 7.退出系统"<<endl;
cout<<endl<<"请输入操作指令: ";
cin>>order;
switch(order)
{
case 1:
openAccount();
break;
case 2:
deletestu();
break;
case 3:
altre();
break;
case 4:
show();
break;
case 5:
sortstu();
break;
case 6:
bid();
break;
case 7:
Save();
exit(1);
break;
default:
cout<<endl;
cout<<"您输入的指令有误! 系统退出!!!"<<endl;
cout<<endl;
Save();
exit(1);
break;
}
}
void show()
{
cout<<endl<<" 学生信息总览"<<endl;
cout<<endl;
cout<<"学号 姓名 性别 年龄 成绩 "<<endl;
cout<<"----------------------------------------------------------------"<<endl;
for(int i=0;i<size;i++)
{
if(array[i].stuNumber!=-1)
{
cout<<array[i].stuNumber<<'\t'<<array[i].stuName<<'\t'<<array[i].stuPwd<<'\t'<<array[i].ages<<'\t'<<array[i].grade<<endl;
}
}
mainFrame();
}
//创建账户
void openAccount()
{
char s;
cout<<"请输入学生的学号,姓名,性别,年龄,成绩:"<<endl;
cin>>array[size].stuNumber>>array[size].stuName>>array[size].stuPwd>>array[size].ages>>array[size].grade;
size++;
cout<<endl<<"学生信息创建成功"<<endl;
cout<<"是否继续添加学生:y or n"<<endl;
cin>>s;
if(s=='y'||s=='Y'){
openAccount();
}else{
fflush(stdin);
mainFrame();
}
}
//删除学生
void deletestu()
{
int a;
char b;
cout<<"请输入删除学生的下标:"<<endl;
cin>>a;
array[a-1].stuNumber=-1;
cout<<"删除成功,是否继续 y or n"<<endl;
cin>>b;
if(b=='y'||b=='Y'){
deletestu();
}else{
fflush(stdin);
mainFrame();
}
}
//修改学生
void altre()
{
long a;
char b;
cout<<"请输入要修改学生的学号:"<<endl;
cin>>a;
for(int i=0;i<size;i++)
{
//cout<<"*******"<<endl;
if(array[i].stuNumber==a)
{
cout<<"请输入学生的姓名,性别,年龄,成绩:"<<endl;
cin>>array[i].stuName>>array[i].stuPwd>>array[i].ages>>array[i].grade;
fflush(stdin);
cout<<"修改成功。修改后的信息为:"<<endl;
cout<<array[i].stuNumber<<'\t'<<array[i].stuName<<'\t'<<array[i].stuPwd<<'\t'<<array[i].ages<<'\t'<<array[i].grade<<endl;
break;
cout<<"是否继续 y or n"<<endl;
cin>>b;
if(b=='y'||b=='Y'){
altre();
}
}
}
cout<<"没有录入该信息!"<<endl;
mainFrame();
}
//对学生按照学号排序
void sortstu()
{
int i,j,t,m;
double n;
char stu[20];
char sex[20];
for(j=0;j<size;j++)
for(i=0;i<size-j-1;i++)
if(array[i].stuNumber>array[i+1].stuNumber)
{
t=array[i].stuNumber;
array[i].stuNumber=array[i+1].stuNumber;
array[i+1].stuNumber=t;
strcpy(stu,array[i].stuName);
strcpy(array[i].stuName,array[i+1].stuName);
strcpy(array[i+1].stuName,stu);
strcpy(sex,array[i].stuPwd);
strcpy(array[i].stuPwd,array[i+1].stuPwd);
strcpy(array[i+1].stuPwd,sex);
m=array[i].ages;
array[i].ages=array[i+1].ages;
array[i+1].ages=m;
n=array[i].grade;
array[i].grade=array[i+1].grade;
array[i+1].grade=n;
}
cout<<"排序后的结果是:"<<endl;
show();
}
//查询学生信息
void bid()
{
long num;
char b;
cout<<"请输入您要查询的学生学号:"<<endl;
cin>>num;
for(int i=0;i<size;i++){
if(array[i].stuNumber==num){
cout<<array[i].stuNumber<<'\t'<<array[i].stuName<<'\t'<<array[i].stuPwd<<'\t'<<array[i].ages<<'\t'<<array[i].grade<<endl;
cout<<"是否继续 y or n"<<endl;
cin>>b;
if(b=='y'||b=='Y'){
bid();
}
}
}
cout<<"没有录入该信息!"<<endl;
mainFrame();
}
//读取文件
void Read()
{
ifstream infile("学生数据.txt",ios::in); //文件目标
if(!infile)
{
cerr<<endl<<"学生数据文件不存在!!!"<<endl<<endl;
exit(1);
}
while(!infile.eof()) //依次检索文件
{
infile>>array[size].stuNumber>>array[size].stuName>>array[size].stuPwd>>array[size].ages>>array[size].grade;
size++;
}
size-=1;
infile.close();
}
//保存文件
void Save()
{
ofstream outfile("学生数据.txt",ios::out);
if(!outfile)
{
cerr<<endl<<"文件不存在!"<<endl;
exit(1);
}
for(int i=0;i<size;i++) //依次写入文件
{
outfile<<array[i].stuNumber<<" "<<array[i].stuName<<" "<<array[i].stuPwd<<" "<<array[i].ages<<" "<<array[i].grade<<endl;
}
outfile.close();
cout<<endl<<"祝您心情愉快!"<<endl;
cout<<endl<<"欢迎您下次使用!"<<endl;
cout<<endl;
exit(1);
}
输出结果:
心得体会:
可能不是很完善,考试仓促。