本文主要是介绍学生管理系统--CCAT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdlib.h>
#include <iomanip>#define MAXACCOUNTNUMBER 500using 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);
}
输出结果:
心得体会:
可能不是很完善,考试仓促。
这篇关于学生管理系统--CCAT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!