#include <iostream>#include <stdioh>#include <stringh>#include <conioh>#include <iostream>#include <ctime>using namespace std;#define max 100
//////////////////////////////////////////////////////////////////////////strcut stustruct stu //学生资料结构体{ char name[10]; char num[20]; //学号 char adress[8]; float x,y,z,score; int number;};
//////////////////////////////////////////////////////////////////////////////studentcppint count=0;int temp=0;int Exchang=0; //定义数据修改标志,若修改则为1,否则为0class student //学生类{private: stu data[max]; char start_del;public: void input(char ch1,char num,char ch2,float x,float y,float z); //输入 void find(char num); //查找 void del(char num); //删除 int check_num(char num) //确定没有重复学号 { int m=0; while(m<=count) if(!strcmp(num,data[m++]num)) //判断是否相同 break; if(m>count) return 0; else return 1; } void taxis(); //总分排序 void show(); void save(); //保存学生资料 void read(); //从文件"student"读取学生资料};
void student::input(char ch1,char num,char ch2,float x,float y,float z){ strcpy(data[count]name,ch1); strcpy(data[count]num,num); strcpy(data[count]adress,ch2); data[count]x=x; data[count]y=y; data[count]z=z; count++; Exchang=1; //设置已修改数据标志}void student::find(char num){ int m=0; while(m<=count) if(!strcmp(num,data[m++]num)) break; if(m>count) { cout << "很抱歉,没有该学号的学生" << endl; start_del='n'; getch(); } else { temp=count; count=m; start_del='y'; cout << "该学生的资料为" <<endl << "序号\t姓名\t学号\t\t地址\t\t\t高数\t英语\t计算机" << endl; show(); count=temp; getch(); }}void student::del(char num){ char chose; find(num); if(start_del=='y') {
cout << "确实要删除该学生资料 Y/N" << endl; cin >> chose; if(chose=='y') { int m=0; while(m<count) if(strcmp(num,data[m++]num)==0) //错在这里 break; temp=count; count=m; if(temp==count) { count=temp-1;printf("2"); cout << "该学生资料已删除" << endl; Exchang=1; //设置已修改数据标志 } else { while(count<temp) { strcpy(data[count-1]name,data[count]name); strcpy(data[count-1]num,data[count]num); strcpy(data[count-1]adress,data[count]adress); data[count-1]x=data[count]x; data[count-1]y=data[count]y; data[count-1]z=data[count]z; count++;
}printf("1"); count=temp-1; cout << "该学生资料已删除" << endl; Exchang=1; //设置已修改数据标志 } } else cout << "学生资料未删除" << endl; getch();
}}void student::taxis(){ int x,y,array[max]; int change; for(x=0;x<count;x++) array[x]=data[x]score=data[x]x+data[x]y+data[x]z; for(x=0;x<count-1;x++) for(y=0;y<count-1-x;y++) if(array[y]<array[y+1]) { change=array[y]; array[y]=array[y+1]; array[y+1]=change; } cout << "总分\t姓名\t学号\t\t地址\t\t高数\t英语\t计算机" << endl; for(x=0;x<count;x++) for(y=0;y<count;y++) if(array[x]==data[y]score) { cout << data[y]score << "\t" << data[y]name << "\t" << data[y]num << "\t" << data[y]adress << "\t" << data[y]x << "\t" << data[y]y << "\t" << data[y]z << endl; } getch(); Exchang=1; //设置已修改数据标志}
void student::show(){ cout << count << "\t" << data[count-1]name << "\t" << data[count-1]num << "\t" << data[count-1]adress << "\t\t" << data[count-1]x << "\t" << data[count-1]y << "\t" << data[count-1]z << endl;}
//////////////////////////////////////////////////////////////////////maincppvoid main(){ student st; char ch1,ch2,chose; char flag[2],num[20],find[20],del[20]; char ch;
float x,y,z; time_t t; time(&t);
while(1) { system("cls"); cout << "------------------------学生管理系统------------------------" <<endl
<< " 1输入/添加学生资料 "<<endl << " 2输出学生资料" <<endl << " 3查找 " <<endl << " 4删除" <<endl << " 5总分排序" <<endl << " 6退出" << endl << endl << " 请选择你要的服务(1-6)"<< endl; cin >> chose; if(chose=='6') { break; } switch(chose) { case '1': // 输入学生信息 { do { cout << "请输入学生姓名:" << endl; ch1=new char[]; ch2=new char[]; cin >> ch1 ; cout << "请输入学号:" << endl; cin >> num ; while(stcheck_num(num)) { cout << "学号重复,请重新输入" << endl; cin >> num; } cout << "请输入地址:"<<endl; cin >> ch2 ; cout << "请输入高数成绩:"<<endl; cin >> x; cout << "请输入英语成绩:" <<endl; cin >> y; cout << "请输入计算机成绩:" <<endl; cin >> z; stinput(ch1,num,ch2,x,y,z); printf("\n是否继续输入学生信息(\"y\"继续)"); scanf("%s", flag); }while(strcmp(flag, "y") == 0); }break; case '2':// 输出学生资料 { temp=count; count=1; cout << "序号\t姓名\t学号\t\t地址\t\t\t高数\t英语\t计算机" << endl; while(count<=temp) { stshow(); count++; } count--; getch(); }break; case '3': { cout << "请输入你要查找学生的学号" << endl; cin >> find; stfind(find); }break; case '4': { cout << "请输入你要删除的学生学号" << endl; cin >> del; stdel(del); }break; case '5': { sttaxis(); }break;
default: { cout << "输入错误!!!,请重新输入" << endl; getch(); } } } cout << "感谢你的使用!\n" <<endl; getch();
}
以上就是关于用C语言设计一个简单的学生信息管理程序全部的内容,包括:用C语言设计一个简单的学生信息管理程序、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)