C++设计一个学生信息管理系统 请用c++设计一个学生信息管理系统

作者&投稿:况勇 (若有异议请与网页底部的电邮联系)
#include<iostream>
#include<fstream>
#include<string>
#include<cstring>
using namespace std;

class Student{ //学生类
private:
string number; //学号
string name; //姓名
int age; //年龄
char sex; //性别
string grade; //班级
public:
Student(); //无参构造
Student(string Num,string Nam,int Age,char Sex,string Gra):number(Num),name(Nam),age(Age),sex(Sex),grade(Gra){}//有参构造
~Student(){} //析构
virtual void Display(); //显示学生信息
virtual void Add(); //声明新增学生对象的函数
virtual int FindRevise(string str) {if(str==number) return 1;else return 0;}
void Setname(string str) {name=str;} //修改姓名
void SetGrade(string str) {grade=str;} //修改班级
};
Student::Student(){ //定义学生类无参构造函数
number="001";
name="Zhangsan";
age=18;
sex='M';
grade="One";
}
void Student::Display(){ //定义显示学生信息函数
cout<<"学号:"<<number<<endl;
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"年级:"<<grade<<endl;
}
void Student::Add(){ //定义增加学生信息函数
cout<<"请输入"<<endl;
cout<<"学号:";cin>>number;
cout<<"姓名:";cin>>name;
cout<<"年龄:";cin>>age;
cout<<"性别:";cin>>sex;
cout<<"年级:";cin>>grade;
}

class Undergrade:public Student{ //本科生类,继承了学生类
private:
double score1; //成绩1
double score2; //成绩2
double score3; //成绩3
double score4; //成绩4
Student monitor; //班长(学生类)
public:
Undergrade(); //无参构造
Undergrade(string Num,string Nam,int Age,char Sex,string Gra,double s1,double s2,double s3,double s4,Student Mon):Student(Num,Nam,Age,Sex,Gra){
score1=s1;
score2=s2;
score3=s3;
score4=s4;
monitor=Mon;
}//有参构造
virtual void Display_monitor();//定义显示班长信息函数
~Undergrade(){} //析构
void Display();//声明显示本科生类学生信息函数
void Add(); //声明新增本科类学生的函数
virtual void AddMon();//声明增加班长信息的函数
int FindRevise(string str); //用于查找判断该学号是否为该学生 str为学号
void Revise(int n); //修改学生信息,n为需要修改的信息(详细见ReviseMenu)
};
Undergrade::Undergrade(){ //定义本科生类学生无参构造函数
score1=100;
score2=100;
score3=100;
score4=100;
Student t;
monitor=t;
}
void Undergrade::Display_monitor(){ //定义显示本科生信息函数
monitor.Display();
}
void Undergrade::Display(){ //定义显示本科生信息函数
Student::Display();
cout<<"成绩1:"<<score1<<endl;
cout<<"成绩2:"<<score2<<endl;
cout<<"成绩3:"<<score3<<endl;
cout<<"成绩4:"<<score4<<endl;
cout<<"班长:"<<endl;
Display_monitor();
}
void Undergrade::AddMon(){ //定义增加班长信息的函数
monitor.Add();
}
void Undergrade::Add(){ //定义增加本科生信息函数
Student::Add();
cout<<"成绩1:";cin>>score1;
cout<<"成绩2:";cin>>score2;
cout<<"成绩3:";cin>>score3;
cout<<"成绩4:";cin>>score4;
cout<<"班长:"<<endl;
AddMon();
}
int Undergrade::FindRevise(string str){//用于查找判断该学号是否为该学生 str为学号
if(Student::FindRevise(str)) return 1;
else return 0;
}
void Undergrade::Revise(int n){ //修改学生信息 n为修改的具体类型(详情见ReviseMenu)
string str;
switch(n){
case 1:{
cout<<"请输入新姓名:";cin>>str;
Student::Setname(str);
break;
}
case 2:{
cout<<"请输入新班级:";cin>>str;
Student::SetGrade(str);
break;
}
}
}
class Graduate:public Student{//研究生类
private:
double scoreA; //成绩a
double scoreB; //成绩b
Student monitor; //班长(学生类)
string res_direction;//研究方向
string res_teacher; //研究导师
double pay;//工资

public:
Graduate(); //无参构造
Graduate(string Num,string Nam,int Age,char Sex,string Gra,double A,double B,Student Mon,string Dir,string Tea,double Pay):Student(Num,Nam,Age,Sex,Gra){
scoreA=A;
scoreB=B;
monitor=Mon;
res_direction=Dir;
res_teacher=Tea;
pay=Pay;
}//有参构造
void Display_monitor();//声明显示班长信息函数
~Graduate(){} //析构
void Display();//声明显示研究生类学生信息函数
void Add();//新增学生信息
void AddMon();//新增班长信息
int FindRevise(string str);//用于查找判断该学号是否为该学生 str为学号
void Revise(int n);//修改学生信息 n为修改的具体类型(详情见ReviseMenu)
};
Graduate::Graduate(){ //定义研究生类学生无参构造函数
scoreA=100;
scoreB=100;
Student t;
monitor=t;
res_direction="Zhang";
res_teacher="Zhang";
pay=999;
}
void Graduate::Display_monitor(){ //定义显示班长信息函数
monitor.Display();
}

void Graduate::Display(){ //定义显示研究生信息函数
Student::Display();
cout<<"成绩A:"<<scoreA<<endl;
cout<<"成绩B:"<<scoreB<<endl;
cout<<"班长:"<<endl;
Display_monitor();
cout<<"研究方向:"<<res_direction<<endl;
cout<<"研究导师:"<<res_teacher<<endl;
cout<<"工资:"<<pay<<endl;
}
void Graduate::AddMon(){//定义增加班长信息的函数
monitor.Add();
}
void Graduate::Add(){ //定义增加研究生信息函数
Student::Add();
cout<<"成绩A:";cin>>scoreA;
cout<<"成绩B:";cin>>scoreB;
cout<<"班长:"<<endl;
AddMon();
cout<<"研究方向:";cin>>res_direction;
cout<<"研究导师:";cin>>res_teacher;
cout<<"工资:";cin>>pay;
}
int Graduate::FindRevise(string str){//用于查找判断该学号是否为该学生 str为学号
if(Student::FindRevise(str)) return 1;
else return 0;
}
void Graduate::Revise(int n){ //修改学生信息 n为修改的具体类型(详情见ReviseMenu)
string str;
switch(n){
case 1:{
cout<<"请输入新姓名:";cin>>str;
Student::Setname(str);
break;
}
case 2:{
cout<<"请输入新班级:";cin>>str;
Student::SetGrade(str);
break;
}
}
}

void MainMenu() //主菜单
{
cout<<"\n\t学 生 管 理 系 统";
cout<<"\n*******************************\n";
cout<<" \t1.添加新本科类学生\n";
cout<<" \t2.添加新研究生类学生\n";
cout<<" \t3.显示本科类学生信息\n";
cout<<" \t4.显示研究生类学生信息\n";
cout<<" \t5.修改本科类学生信息\n";
cout<<" \t6.修改研究生类学生信息\n";
cout<<" \t7.删除本科类学生信息\n";
cout<<" \t8.删除研究生类学生信息\n";
cout<<" \t9.\n";
cout<<" \t10.\n";

cout<<"\n*******************************\n";
cout<<"请选择:";
}
void ReviseMenu() //定义修改学生信息的函数
{
cout<<"\n***************************\n";
cout<<"1.修改姓名\n";
cout<<"2.修改班级";
cout<<"\n***************************\n";
cout<<"请选择:";
}

int main()
{
Undergrade UndGra[100]; //定义本科生对象数组
int UndGraVis[100];//用于判断本科生是否存在
Graduate Gra[100]; //定义研究生对象数组
int GraVis[100];//用于判断研究生是否存在
int i,UndGraPeo=1,GraPeo=1,a[2];
memset(UndGraVis,1,sizeof(UndGraVis));
memset(GraVis,1,sizeof(GraVis));

while(1)
{
MainMenu();
int c;
cin>>c;
cout<<endl;
switch(c)
{
case 1:{//新增本科生
UndGra[UndGraPeo].Add();
cout<<"已成功添加!"<<endl;
UndGraPeo++;
break;
}
case 2:{//新增研究生
Gra[GraPeo].Add();
cout<<"已成功添加!"<<endl;
GraPeo++;
break;
}
case 3:{//显示本科生
if(UndGraPeo==1) cout<<"无记录!\n";
else{
for(i=1;i<UndGraPeo;i++){
if(!UndGraVis[i]) continue;
UndGra[i].Display();
cout<<endl;
}
}
break;
}
case 4:{//显示研究生
if(GraPeo==1) cout<<"无记录!\n";
else{
for(i=1;i<GraPeo;i++){
if(!GraVis[i]) continue;
Gra[i].Display();
cout<<endl;
}
}
break;
}
case 5:{//修改本科生信息
ReviseMenu();
int n; cin>>n;
string str;
int num=0;
cout<<"请输入该学生学号:";cin>>str;
for(i=1;i<UndGraPeo;i++){
if(UndGra[i].FindRevise(str)) {num=i;break;}
}
if(num==0||!UndGraVis[num]) {cout<<"输入错误!"<<endl;break;} //未找到该学生
else UndGra[num].Revise(n);
cout<<"修改成功!"<<endl;
break;
}
case 6:{//修改研究生信息
ReviseMenu();
int n; cin>>n;
string str;
int num=0;
cout<<"请输入该学生学号:";cin>>str;
for(i=1;i<GraPeo;i++){
if(Gra[i].FindRevise(str)) {num=i;break;}
}
if(num==0||!GraVis[num]) {cout<<"输入错误!"<<endl;break;}
else Gra[num].Revise(n);
cout<<"修改成功!"<<endl;
break;
}
case 7:{//删除本科生信息
string str;
int num=0;
cout<<"请输入该学生学号:";cin>>str;
for(i=1;i<UndGraPeo;i++){
if(UndGra[i].FindRevise(str)) {num=i;break;}
}
if(num==0||!UndGraVis[num]) {cout<<"输入错误!"<<endl;break;} //未找到该学生
else UndGraVis[num]=0;
cout<<"已删除!"<<endl;
break;
}
case 8:{//删除研究生信息
string str;
int num=0;
cout<<"请输入该学生学号:";cin>>str;
for(i=1;i<GraPeo;i++){
if(Gra[i].FindRevise(str)) {num=i;break;}
}
if(num==0||!GraVis[num]) {cout<<"输入错误!"<<endl;break;} //未找到该学生
else GraVis[num]=0;
cout<<"已删除!"<<endl;
break;
}
default:cout<<"输入错误!\n";
}
}
return 0;
}

这可绝对可用 我们刚刚 做完这个

本书是《程序设计基础——C++》一书的配套用书,主要包含3部分内容:实验指导、课程设计和《程序设计基础——C++》的习题参考答案。
 
  在课程设计部分,包含1O个课程设计题目,选材丰富,趣味性强,知识点覆盖面宽,在实际项目的设计中具有较强的指导性,提供设计步骤和部分代码,并提出改进建议,引导读者在此基础上进一步改进和完善功能。
 在习题参考答案部分,提供《程序设计基础——C++》一书的全部习题答案,并对某些难度较大的习题给出分析或注释。
 本书可作为高等院校计算机专业本科教材。由于本书具有较强的指导性和实用性,也可作为计算机爱好者的自学用书。
目录:
第1部分 实验指导 
实验1 简单编程练习 
  1.1 实验目的与要求   
  1.2 实验内容 
  1.3 实验步骤 
  1.4 实验提示信息 
  1.5 思考题 
 实验2 控制结构编程练习 
  2.1 实验目的与要求 
  2.2 实验内容 
  2.3 实验步骤 
  2.4 实验提示信息 
  2.5 思考题 
 实验3 数组 
  3.1 实验目的与要求 
  3.2 实验内容 
  3.3 实验步骤 
  3.4 实验提示信息 
  3.5 思考题 
 实验4 函数 
  4.1 实验目的与要求 
  4.2 实验内容 
  4.3 实验步骤 
  4.4 实验提示信息 
  4.5 思考题 
 实验5 指针与字符串 
  5.1 实验目的与要求 
  5.2 实验内容 
  5.3 实验步骤 
  5.4 实验提示信息 
  5.5 思考题 
 实验6 结构及其他 
  6.1 实验目的与要求 
  6.2 实验内容 
  6.3 实验步骤 
  6.4 实验提示信息 
  6.5 思考题 
 实验7 类与对象 
  7.1 实验目的与要求 
  7.2 实验内容 
  7.3 实验步骤 
  7.4 实验提示信息 
  7.5 思考题 
 实验8 继承与派生 
  8.1 实验目的与要求 
  8.2 实验内容 
  8.3 实验步骤 
  8.4 实验提示信息 
  8.5 思考题 
 实验9 多态性 
  9.1 实验目的与要求 
  9.2 实验内容 
  9.3 实验步骤 
  9.4 实验提示信息 
  9.5 思考题 
 实验10 模板与异常 
  10.1 实验目的与要求 
  10.2 实验内容 
  10.3 实验步骤 
  10.4 实验提示信息 
  10.5 思考题 
 实验11 C++流与文件流 
  11.1 实验目的与要求 
  11.2 实验内容 
  11.3 实验步骤 
  11.4 实验提示信息 
  11.5 思考题 
第2部分 课程设计 
 项目1 简单计算器 
  1.1 目标与要求 
  1.2 分析 
  1.3 实现步骤 
  1.4 测试与思考 
 项目2 多项式相加问题 
  2.1 目标与要求 
  2.2 分析 
  2.3 实现步骤 
  2.4 测试与思考 
 项目3 平面游戏——陨石撞飞机 
  3.1 目标与要求  
  3.2 分析 
  3.3 实现步骤 
  3.4 测试与思考 
 项目4 基于OpenGL的三维动画设计——荡秋千 
  4.1 目标与要求 
  4.2 分析 
  4.3 实现步骤 
  4.4 测试与思考 
 项目5 电话号码簿 
  5.1 目标与要求 
  5.2 分析 
  5.3 实现步骤 
  5.4 测试与思考 
 项目6 纸牌游戏——“21点” 
  6.1 目标与要求 
  6.2 分析 
  6.3 实现步骤 
  6.4 测试与思考 
 项目7 音像店 
  7.1 目标与要求 
  7.2 分析 
  7.3 实现步骤 
  7.4 测试与思考 
 项目8 小小图书馆 
  8.1 目标与要求 
  8.2 分析 
  8.3 实现步骤 
  8.4 测试与思考 
 项目9 图像编辑器 
  9.1 目标与要求 
  9.2 分析 
  9.3 实现步骤 
  9.4 总结与思考 
 项目10 学生信息管理系统 
  10.1 目标与要求 
  10.2 分析 
  10.3 实现步骤 
  10.4 测试与思考 
第3部分 习题参考答案 

本书是《程序设计基础——C++》一书的配套用书,主要包含3部分内容:实验指导、课程设计和《程序设计基础——C++》的习题参考答案。
 
  在课程设计部分,包含1O个课程设计题目,选材丰富,趣味性强,知识点覆盖面宽,在实际项目的设计中具有较强的指导性,提供设计步骤和部分代码,并提出改进建议,引导读者在此基础上进一步改进和完善功能。
 在习题参考答案部分,提供《程序设计基础——C++》一书的全部习题答案,并对某些难度较大的习题给出分析或注释。
 本书可作为高等院校计算机专业本科教材。由于本书具有较强的指导性和实用性,也可作为计算机爱好者的自学用书。
目录:
第1部分 实验指导 
实验1 简单编程练习 
  1.1 实验目的与要求   
  1.2 实验内容 
  1.3 实验步骤 
  1.4 实验提示信息 
  1.5 思考题 
 实验2 控制结构编程练习 
  2.1 实验目的与要求 
  2.2 实验内容 
  2.3 实验步骤 
  2.4 实验提示信息 
  2.5 思考题 
 实验3 数组 
  3.1 实验目的与要求 
  3.2 实验内容 
  3.3 实验步骤 
  3.4 实验提示信息 
  3.5 思考题 
 实验4 函数 
  4.1 实验目的与要求 
  4.2 实验内容 
  4.3 实验步骤 
  4.4 实验提示信息 
  4.5 思考题 
 实验5 指针与字符串 
  5.1 实验目的与要求 
  5.2 实验内容 
  5.3 实验步骤 
  5.4 实验提示信息 
  5.5 思考题 
 实验6 结构及其他 
  6.1 实验目的与要求 
  6.2 实验内容 
  6.3 实验步骤 
  6.4 实验提示信息 
  6.5 思考题 
 实验7 类与对象 
  7.1 实验目的与要求 
  7.2 实验内容 
  7.3 实验步骤 
  7.4 实验提示信息 
  7.5 思考题 
 实验8 继承与派生 
  8.1 实验目的与要求 
  8.2 实验内容 
  8.3 实验步骤 
  8.4 实验提示信息 
  8.5 思考题 
 实验9 多态性 
  9.1 实验目的与要求 
  9.2 实验内容 
  9.3 实验步骤 
  9.4 实验提示信息 
  9.5 思考题 
 实验10 模板与异常 
  10.1 实验目的与要求 
  10.2 实验内容 
  10.3 实验步骤 
  10.4 实验提示信息 
  10.5 思考题 
 实验11 C++流与文件流 
  11.1 实验目的与要求 
  11.2 实验内容 
  11.3 实验步骤 
  11.4 实验提示信息 
  11.5 思考题 
第2部分 课程设计 
 项目1 简单计算器 
  1.1 目标与要求 
  1.2 分析 
  1.3 实现步骤 
  1.4 测试与思考 
 项目2 多项式相加问题 
  2.1 目标与要求 
  2.2 分析 
  2.3 实现步骤 
  2.4 测试与思考 
 项目3 平面游戏——陨石撞飞机 
  3.1 目标与要求  
  3.2 分析 
  3.3 实现步骤 
  3.4 测试与思考 
 项目4 基于OpenGL的三维动画设计——荡秋千 
  4.1 目标与要求 
  4.2 分析 
  4.3 实现步骤 
  4.4 测试与思考 
 项目5 电话号码簿 
  5.1 目标与要求 
  5.2 分析 
  5.3 实现步骤 
  5.4 测试与思考 
 项目6 纸牌游戏——“21点” 
  6.1 目标与要求 
  6.2 分析 
  6.3 实现步骤 
  6.4 测试与思考 
 项目7 音像店 
  7.1 目标与要求 
  7.2 分析 
  7.3 实现步骤 
  7.4 测试与思考 
 项目8 小小图书馆 
  8.1 目标与要求 
  8.2 分析 
  8.3 实现步骤 
  8.4 测试与思考 
 项目9 图像编辑器 
  9.1 目标与要求 
  9.2 分析 
  9.3 实现步骤 
  9.4 总结与思考 
 项目10 学生信息管理系统 
  10.1 目标与要求 
  10.2 分析 
  10.3 实现步骤 
  10.4 测试与思考 
第3部分 习题参考答案 
是否可以解决您的问题?

本书是《程序设计基础——C++》一书的配套用书,主要包含3部分内容:实验指导、课程设计和《程序设计基础——C++》的习题参考答案。
 
  在课程设计部分,包含1O个课程设计题目,选材丰富,趣味性强,知识点覆盖面宽,在实际项目的设计中具有较强的指导性,提供设计步骤和部分代码,并提出改进建议,引导读者在此基础上进一步改进和完善功能。
 在习题参考答案部分,提供《程序设计基础——C++》一书的全部习题答案,并对某些难度较大的习题给出分析或注释。
 本书可作为高等院校计算机专业本科教材。由于本书具有较强的指导性和实用性,也可作为计算机爱好者的自学用书。
目录:
第1部分 实验指导 
实验1 简单编程练习 
  1.1 实验目的与要求   
  1.2 实验内容 
  1.3 实验步骤 
  1.4 实验提示信息 
  1.5 思考题 
 实验2 控制结构编程练习 
  2.1 实验目的与要求 
  2.2 实验内容 
  2.3 实验步骤 
  2.4 实验提示信息 
  2.5 思考题 
 实验3 数组 
  3.1 实验目的与要求 
  3.2 实验内容 
  3.3 实验步骤 
  3.4 实验提示信息 
  3.5 思考题 
 实验4 函数 
  4.1 实验目的与要求 
  4.2 实验内容 
  4.3 实验步骤 
  4.4 实验提示信息 
  4.5 思考题 
 实验5 指针与字符串 
  5.1 实验目的与要求 
  5.2 实验内容 
  5.3 实验步骤 
  5.4 实验提示信息 
  5.5 思考题 
 实验6 结构及其他 
  6.1 实验目的与要求 
  6.2 实验内容 
  6.3 实验步骤 
  6.4 实验提示信息 
  6.5 思考题 
 实验7 类与对象 
  7.1 实验目的与要求 
  7.2 实验内容 
  7.3 实验步骤 
  7.4 实验提示信息 
  7.5 思考题 
 实验8 继承与派生 
  8.1 实验目的与要求 
  8.2 实验内容 
  8.3 实验步骤 
  8.4 实验提示信息 
  8.5 思考题 
 实验9 多态性 
  9.1 实验目的与要求 
  9.2 实验内容 
  9.3 实验步骤 
  9.4 实验提示信息 
  9.5 思考题 
 实验10 模板与异常 
  10.1 实验目的与要求 
  10.2 实验内容 
  10.3 实验步骤 
  10.4 实验提示信息 
  10.5 思考题 
 实验11 C++流与文件流 
  11.1 实验目的与要求 
  11.2 实验内容 
  11.3 实验步骤 
  11.4 实验提示信息 
  11.5 思考题 
第2部分 课程设计 
 项目1 简单计算器 
  1.1 目标与要求 
  1.2 分析 
  1.3 实现步骤 
  1.4 测试与思考 
 项目2 多项式相加问题 
  2.1 目标与要求 
  2.2 分析 
  2.3 实现步骤 
  2.4 测试与思考 
 项目3 平面游戏——陨石撞飞机 
  3.1 目标与要求  
  3.2 分析 
  3.3 实现步骤 
  3.4 测试与思考 
 项目4 基于OpenGL的三维动画设计——荡秋千 
  4.1 目标与要求 
  4.2 分析 
  4.3 实现步骤 
  4.4 测试与思考 
 项目5 电话号码簿 
  5.1 目标与要求 
  5.2 分析 
  5.3 实现步骤 
  5.4 测试与思考 
 项目6 纸牌游戏——“21点” 
  6.1 目标与要求 
  6.2 分析 
  6.3 实现步骤 
  6.4 测试与思考 
 项目7 音像店 
  7.1 目标与要求 
  7.2 分析 
  7.3 实现步骤 
  7.4 测试与思考 
 项目8 小小图书馆 
  8.1 目标与要求 
  8.2 分析 
  8.3 实现步骤 
  8.4 测试与思考 
 项目9 图像编辑器 
  9.1 目标与要求 
  9.2 分析 
  9.3 实现步骤 
  9.4 总结与思考 
 项目10 学生信息管理系统 
  10.1 目标与要求 
  10.2 分析 
  10.3 实现步骤 
  10.4 测试与思考 
第3部分 习题参考答案 

如何c++设计一个学生信息管理系统?具体要求如下。~

问一些比较现实的问题吧!如何设计?一般思路如下:首先读懂题目要求,然后考虑怎样组织数据。题中有排序、查找,用什么排序算法?冒泡排序法?快速排序法?归并排序法?希尔排序法?桶排序等等。使用的这个排序算法时间复杂度如何?是否稳定?用空间换区时间是否值得?至于查找,最一般的从头到尾遍历查找,如果数据量太多是不是考虑换一种算法?二分查找法?使用的数据结构用哪种算法比较合适?一开始有了大致的方案之后就着手写代码,调试,改代码,调试,改bug。。。。通过,完工。

这是我用c语言写的.执行前在当前目录创建一个1.txt的文件希望对你有帮助#include "stdafx.h"
#include
#include
#include
#include
#include
//————学生信息数据结构的定义
struct STU
{
int Num;
char Name[20];
float Score;
};
//————数据结构的定义
struct SNode
{
STU data;
SNode *pnext;
};//————头节点的定义
SNode *pheader=NULL;void Menu();void TableToDisk();//————初始化链表
void InitList()
{
pheader=NULL;
}
//———发现尾部节点:
SNode *Findtail()
{
SNode *p=pheader;
if(p)
while(p->pnext)
p=p->pnext;
return p;
}//————将磁盘数据存储到链表:
void DiskTotable(char* name)
{
STU data;
FILE *fp=fopen(name,"r");
InitList();
while(fread(&data,sizeof(STU),1,fp)>0)
{

//将数据插入到链表尾部:
SNode *p=Findtail();
SNode *pnew=(SNode *)malloc(sizeof(SNode));
pnew->data=data;
pnew->pnext=NULL;
if(p)
p->pnext=pnew;
else
pheader=pnew;
}

}//————打印链表:
void printList()
{
SNode *p=pheader;
while(p!=NULL)
{
printf("号码:%d
姓名:%s
分数:%f
",p->data.Num,p->data.Name,p->data.Score);
printf("

");
p=p->pnext;
}
}//——————————子菜单1————————浏览学生信息
//——按学号进行排序:
void List1()
{
printf("按照学号浏览学生信息
");
SNode *p,*q,*small;
p=pheader;
while(p)
{
small=p;
q=p->pnext;
while(q)
{
if(q->data.Numdata.Num)
small=q;
q=q->pnext;
}
if(small!=p)
{
STU temp=p->data;
p->data=small->data;
small->data=temp;
}
p=p->pnext;
}
printList();
printf("请按任意键返回主菜单:");
getch();
system("cls");
Menu();}
//——按英语成绩进行排序:
void List2()
{
printf("按照英语成绩浏览学生信息
");
SNode *p,*q,*small;
p=pheader;
while(p)
{
small=p;
q=p->pnext;
while(q)
{
if(q->data.Scoredata.Score)
small=q;
q=q->pnext;
}
if(small!=p)
{
STU temp=p->data;
p->data=small->data;
small->data=temp;
}
p=p->pnext;
}
printList();
printf("请按任意键返回主菜单:");
getch();
system("cls");
Menu();
}//——子菜单——外观:
int Sub1()
{
printf("


*************************
");
printf("* 1.按学号浏览: *
");
printf("* 2.按英语成绩浏览: *
");
printf("*************************
");
printf("请选择:");
int i=0;
scanf("%d",&i);
switch(i)
{
case 1:
system("cls");
List1();
break;
case 2:
system("cls");
List2();
break;
}
return i;
}
//————————————子菜单2——————————查询学生信息//————按姓名进行查询:
void Search1()
{

printf("请输入要查询学生的学号:");
int Num1;
scanf("%d",&Num1);

SNode *p=pheader;
while(p!=NULL)
{
if(p->data.Num==Num1)
printf("号码:%d
姓名:%s
分数:%f
",p->data.Num,p->data.Name,p->data.Score);
p=p->pnext;
} printf("请按任意键返回主菜单:");
getch();
system("cls");
Menu();}
//————按学号进行查询:
void Search2()
{
printf("请输入要查询学生的姓名:");
char name[20];
int result=0;
scanf("%s",name);
SNode *p=pheader;
while(p!=NULL)
{
result=strcmp(p->data.Name,name);
if(result==0)
printf("号码:%d
姓名:%s
分数:%f
",p->data.Num,p->data.Name,p->data.Score);
p=p->pnext;
}
printf("请按任意键返回主菜单:");
getch();
system("cls");
Menu();
}//————子菜单——外观:
int Sub2()
{
printf("


*************************
");
printf("* 1.按学号查询: *
");
printf("* 2.按姓名查询: *
");
printf("*************************
");
printf("请选择:");
int i=0;
scanf("%d",&i);
switch(i)
{
case 1:
system("cls");
Search1();
break;
case 2:
system("cls");
Search2();
break;
}
return i;
}
//————————————子菜单3——————————删除学生信息void Sub3()
{

printf("请输入要删除的学生学号:");
int num=0;
scanf("%d",&num);
printf("是否真的删除该学生信息(Y/N)?");
printf("
");
char m;
m=getch();
if(m=='Y'||m=='y')
{
SNode *p=pheader;
SNode *p1;
while((p->data.Num!=num)&&(p->pnext!=NULL))
{
p1=p;
p=p->pnext;
}
if(p==pheader)
{
pheader=p->pnext;
}
else
p1->pnext=p->pnext;
free(p);
printf("剩余学生信息
");
printList();
TableToDisk();
printf("请按任意键退出以保存数据到文件,请重新启动启动程序:");
getch();
exit(0);
}if(m=='N'||m=='n')
{
system("cls");
Menu();
}
if((m!='y')&&(m!='Y')&&(m!='n')&&(m!='Y'))
{
printf("输入错误!!");
system("cls");
Menu();
}
}
//————————————子菜单4——————————添加学生信息//学生信息加到链表尾部
void Addtail(STU &data)
{
if(!pheader)
{
return;
}
printf("请输入号码:");
scanf("%d",&data.Num);
printf("请输入姓名:");
scanf("%s",&data.Name);
printf("请输入分数:");
scanf("%f",&data.Score);
SNode *p=Findtail();
SNode *pnew=(SNode *)malloc(sizeof(SNode));
pnew->data=data;
pnew->pnext=NULL;
p->pnext=pnew;
}//将添加后的链表存入文件
void TableToDisk()
{
FILE *fp=fopen("1.txt","w");
SNode *p=pheader;
while(p)
{
fwrite(p,sizeof(STU),1,fp);
p=p->pnext;
}
}
//——子菜单
int Sub4()
{
printf("请输入学生信息:
");
STU d5;
Addtail(d5);
TableToDisk();
printf("请按任意键退出程序以确保文件更新成功
");
getch();
exit(0);
return 0;}
//——————————主菜单————————
void Menu()
{
printf("


********************
");
printf("* 1.浏览: *
");
printf("* 2.查询: *
");
printf("* 3.删除: *
");
printf("* 4.添加: *
");
printf("* 0.退出: *
");
printf("********************
");
printf("请选择:");
int i=0;
scanf("%d",&i);
switch(i)
{
case 0:
exit(0);
break;
case 1:
system("cls");
while(Sub1());
break;
case 2:
system("cls");
while(Sub2());
break;
case 3:
system("cls");
Sub3();
break;
case 4:
system("cls");
Sub4();
break;
}
}int main(int argc, char* argv[])
{char name[100]="1.txt";
DiskTotable(name);
Menu();
return 0;
}

用c语言设计一个学生信息管理系统,急啊.谢谢
答:charnbsp;addr[10];nbsp;nbsp;nbsp;nbsp;intnbsp;score[3];nbsp;nbsp;nbsp;nbsp;floatnbsp;avr;nbsp;nbsp;}nbsp;stu[SIZE];/*nbsp;1--Inputnbsp;*/voidnbsp;fin(){nbsp;intnbsp;i,j,s;charnbsp;f;nbsp;nbsp;FILEnbsp;*fp;nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;...

C语言课程设计"学生信息管理系统设计 "怎么做?
答:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作学生信息录入功能... 学生信息管理系统设计 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:...

c语言程序设计 学生信息管理系统
答:不然,没必要做了。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 更多回答(1) 其他类似问题 2010-07-09 学生信息管理系统C语言编程 148 2013-07-19 C语言程序设计学生成绩管理系统,要求链表 23 2011-07-01 求以下c语言编程:一个简单的学生成绩管理系统。其中每个学生信... 32 ...

用C语言做学生信息管理系统设计
答:2012-12-22 用C语言编写学生信息管理系统设计 2010-07-13 c语言编写学生信息管理系统 174 2013-06-16 用C语言编写一个学生管理系统。 197 2007-09-19 用c语言设计一个学生信息管理系统,急啊.谢谢 9 2009-02-22 C语言程序设计题目:学生信息管理系统设计 93 更多类似问题 > 为...

C语言程序设计 题目:学生信息管理系统
答:1题目:学生信息管理系统2程序要求:(1)学生信息录入功能1)用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治、语文四门课成绩。2)可插入一个或多个学生信息到当... 1题目:学生信息管理系统 2 程序要求:(1)学生信息录入功能 1)用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治...

设计题目: 学生信息管理系统设计
答:设计题目: 学生信息管理系统设计 120 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一程序,提供以下功能:1、学生信息录入功能(学生信息用文件保存)--输入2、学生信息浏览功能--... 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一程序,提供以下功能:1...

C语言 学生信息管理系统设计
答:l学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。l试设计一学生信息管理系统,使之能提供以下功能:a)系统以菜单方式工作b)学生信息录入功能(学生信息用文... l学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。l试设计一学生信息管理系统,使之能提供以下功能:a)系统以菜单...

C程序设计学生信息管理系统
答:printf("学生信息添加成功!!!\n");} void InsertInformation(LinkStudent &l){ int location;int count=1;l.current=(stu*)malloc(sizeof(stu));l.p=(stu*)malloc(sizeof(stu));printf("输入要插入的位置号:");scanf("%d",&location);if(location>l.tot||location<1)printf("错误\n...

学生信息管理系统代码设计怎么写
答:printf("| 欢迎使用学生信息管理系统 |\n");printf("+---+\n");printf("提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n");do { printf("\n\t\t\t---\n");printf("\t\t\t+ 主菜单 |\n");printf("\t\t\t---\n");printf("\t\t\t+ [1]---录入...

用C++编写一个学生信息管理系统
答:addstudent(char* nname, int ngrade, int nID)//增加{ tag = 0; grade = ngrade; ID = nID; strcpy_s(name, nname);}void show()//显示信息{ cout << " 学号: " << ID << endl; cout << " 姓名: " << name << endl; cout <<"...