永发信息网

用c语言编写一个学生学籍管理系统

答案:2  悬赏:0  手机版
解决时间 2021-02-05 10:08
  • 提问者网友:锁深秋
  • 2021-02-04 16:18
用c语言编写一个学生学籍管理系统
最佳答案
  • 五星知识达人网友:往事埋风中
  • 2021-02-04 17:57
可以应用百度Hi通知我
有时间可以解决你的问题
同样的要求也可以通知我
用c语言编写一个学生学籍管理**
ES:\\B81AF12B26EB9002D78AA1254B6152D5
全部回答
  • 1楼网友:神的生死簿
  • 2021-02-04 19:05
#include<iostream> #include<string> #include<fstream> #include<iomanip> using namespace std; class student { protected: int number; char name[20]; char sex[6]; char place[20]; char nation[6]; char birth[20]; char party[10]; char id[20]; double score[3]; public: student *next; student(){ } ~student(){ } char* getname(){ return name; } int getnumber(){ return number;} double getscore(int i) { return score[3];} float getg(){ return (score[0]+score[1]+score[2]); } void input() { int e=1; cout<<"\t\t\t按提示输入:"<<endl; cout<<"\t\t输入编号: "; cin>>number; cout<<"\t\t输入姓名: "; cin>>name; do { cout<<"\t\t输入性别: "; cin>>sex; if(strcmp(sex,"男")==0 || strcmp(sex,"女")==0) { cout<<"\t\t输入籍贯: "; cin>>place; cout<<"\t\t输入民族: "; cin>>nation; cout<<"\t\t输入生日: "; cin>>birth; cout<<"\t\t输入政治面貌: "; cin>>party; cout<<"\t\t输入身份证号: "; cin>>id; cout<<"\t\t输入数学分数: "; cin>>score[0]; cout<<"\t\t输入英语分数: "; cin>>score[1]; cout<<"\t\t输入计算机分数: "; cin>>score[2]; e=0; } else { cout<<"\t\t\t无此类型性别!重新输入!"<<endl; e=1; } }while(e); return ; } void input(ifstream & is) { is>>number>>name>>sex>>place>>nation>>birth>>party>>id >>score[0]>>score[1]>>score[2]; is.get(); } void output() { cout<<"学生基本信息如下:"<<endl; cout<<"编号:"<<number <<" 姓名:"<<name <<" 性别:"<<sex <<" 籍贯:"<<place <<" 民族:"<<nation <<" 生日:"<<birth <<" 政治面貌:"<<party<<endl <<"身份证号:"<<id <<" 数学:"<<score[0] <<" 英语:"<<score[1] <<" 计算机:"<<score[2] <<" 总分:"<<getg()<<endl<<endl; } void output(ofstream & os) { os<<setw(6)<<number <<setw(15)<<name <<setw(6)<<sex <<setw(20)<<place <<setw(6)<<nation <<setw(20)<<birth <<setw(20)<<party <<setw(20)<<id <<setw(6)<<score[0] <<setw(6)<<score[1] <<setw(6)<<score[2]<<endl; } }; class school { public: school(){ head=new student; head->next=NULL; key=0; } ~school(){ delete head; } void input(); void mend(); void del(); int find(student **p,int num,char *pn="^"); void found(); void show(); void count(); void save(); void begin(); void clear(); char mainmenu(); int getkey(){ return key;} void setkey(int k){ key=k; } private: student *head; int key; }; //录入函数 void school::input() { student *p,*p2=NULL; p=head; int n; while(p->next) p=p->next; while(n) { p2=new student; p2->input(); p->next=p2; p2->next=NULL; p=p->next; school::setkey(1); cout<<"\t\t\t按1继续,按0返回 : "; cin>>n; } } //子查找函数 int school::find(student **p1,int num,char *pn) { student *p; p=head; while(p->next) { (*p1)=p; if( (p->next)->getnumber()==num||!strcmp( (p->next)->getname(),pn ) ) return 1; p=p->next; } return 0; } //查找函数 void school::found() { student *p; int num=-1,n=9; char name[20]="^"; do { cout<<"\t\t1:按编号查找,2:按姓名查找: "; cin>>n; }while(n<1||n>2); if(n==1) { cout<<"\t\t\t输入编号: "; cin>>num; } if(n==2) { cout<<"\t\t\t输入姓名: "; cin>>name; } if(!find(&p,num,name) ) { cout<<"\t\t找不到你要查找的内容!"<<endl; return; } (p->next)->output(); } //删除函数 void school::del() { student *p,*p2; int num; cout<<"\t\t\t输入编号: "; cin>>num; if( !find(&p,num,"^") ) { cout<<"\t\t找不到你要删除的内容!"<<endl; return; } (p->next)->output(); p2=p->next; p->next=p2->next; delete p2; school::setkey(1); } //显示函数 void school::show() { student *p; p=head; while(p->next) { (p->next)->output(); p=p->next; } } //修改函数 void school::mend() { student *p; int num=-1,n; char name[20]="^"; do { cout<<"\t\t1:按编号修改,2:按姓名修改: "; cin>>n; }while(n<1||n>2); if(n==1) { cout<<"\t\t\t输入编号: "; cin>>num; } if(n==2) { cout<<"\t\t\t输入姓名: "; cin>>name; } if( !find(&p,num,name) ) { cout<<"\t\t找不到你要修改的内容!"<<endl; return; } (p->next)->output(); (p->next)->input(); school::setkey(1); } //保存函数 void school::save() { student *p; p=head; ofstream os("student.txt",ios::out); if (school::getkey()==1) { while(p->next) { (p->next)->output(os); p=p->next; } } cout<<"\t\t\t文件已保存! "<<endl; school::setkey(0); } //初始化函数 void school::begin() { student *p,*p2; p=head; clear(); long t; ifstream is("student.txt",ios::in); if(!is) { ofstream os("student.txt",ios::out); os.close(); return ; } int num=-1; while(1) { num=-1; t=is.tellg(); is>>num; is.seekg(t); if(num<0) { is.close(); return; } p2=new student; p2->input(is); p->next=p2; p2->next=NULL; p=p->next; } } //清空函数 void school::clear() { student *p,*p2; p=head->next; while( p ) { p2=p; p=p->next; delete p2; } } //统计函数 void school::count() { student *p; p=head; int n=0; double g[3]={0,0,0}; float j[3]={0,0,0}; while(p->next) { p=p->next; n++; for(int i=0;i<3;i++) { g[++i]=g[i]+( p->getscore(i) ); (p->getscore(i) )>=60? j[i++] : 0 ; } } cout<<"\t\t\b\b\b\b数学总分:"<<g[0]<<" 平均分:"<<g[0]/n <<" 及格率:"<<j[0]/n<<endl<<"\t\t\b\b\b\b英语总分:"<<g[1] <<" 平均分:"<<g[1]/n<<" 及格率:"<<j[1]/n<<endl <<"\t\t\b\b\b\b计算机总分: "<<g[2]<<" 平均分: "<<g[2]/n <<" 及格率:"<<j[2]/n<<endl; } //主选菜单函数 char school::mainmenu() { char n[6]; cout<<"\n\n ☆☆☆☆欢迎进入高校学籍管理系统☆☆☆☆"<<endl<<endl <<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl <<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl <<" * * 1: 录入学生信息 * *"<<endl <<" * * 2: 显示学生信息 * *"<<endl <<" * * 3: 查找学生信息 * *"<<endl <<" * * 4: 删除学生信息 * *"<<endl <<" * * 5: 修改学生信息 * *"<<endl <<" * * 6: 统计学生成绩 * *"<<endl <<" * * 7: 保存学生信息 * *"<<endl <<" * * 0: 退出系统 * *"<<endl <<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl <<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl <<" 请选择:"; cin>>n; return n[0]; } //主函数 void main() { school pp; int k=1; char n; pp.begin(); while(k==1) { n=pp.mainmenu(); switch(n) { case '1':pp.input(); break; case '2':pp.show(); break; case '3':pp.found(); break; case '4':pp.del(); break; case '5':pp.mend(); break; case '6':pp.count(); break; case '7':pp.save(); break; case '0': if(pp.getkey()==1) { cout<<"\t\t\t是否保存? 1 : 保存 0:不保存 : "; cin>>k; if(k==1) pp.save(); } pp.clear(); k=0; break; } } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯