c++大作业学生信息管理系统源代码

更新时间:2023-07-20 17:53:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

c++大作业学生信息管理系统源代码

学生信息管理系统源代码:

#include<iostream.h>

#include<stdlib.h>

#include<string.h>

#include<conio.h>

#include<iomanip.h>

#include<fstream.h>

struct student

{

char num[30]; int maths;

char name[30]; int chinese;

char clas[30]; int english;

int total; float average;

student *next;

};

//◆1(1)

void createlist(student * & head) //学生成绩文件导入功能(用链表储存)

{

char t[80],num0[30],name0[30],clas0[30];

int chinese0,maths0,english0;

student *s,*p;

ifstream instuf("student-score.txt",ios::in);

if (!instuf) {cerr<<"file could not be open."<<endl; abort();}

instuf.getline(t,80);

while (instuf>>num0>>name0>>clas0>>chinese0>>maths0>>english0)

{

s=new student;

strcpy(s->num,num0);strcpy(s->name,name0);strcpy(s->clas,clas0);

s->chinese=chinese0;s->maths=maths0;s->english=english0;

s->total=s->chinese+s->maths+s->english; s->average=float(s->total)/3;

if (head==NULL) head=s;

else p->next=s;

p=s;

}

p->next=NULL;

instuf.close();

c++大作业学生信息管理系统源代码

//◆1(2)

void showlist(student *head) //学生成绩信息显示功能(遍历链表)

{

int n=1;

cout<<"学号 姓名 班级 语文 数学 英语 总分 均分 序号 ";

while (head)

{

cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t'

<<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<'\t'<<" "<<n<<endl; n=n+1;

head=head->next;

}

}

//◆2

void charu(student *head) //学生成绩信息插入功能(链表尾部插入学生成绩信息)

{

student *s,*p,*q;

int n,i;

cout<<"请输入需要【插入】的学生成绩信息的数量: ";

cin>>n;

cout<<"请输入需插入的学生成绩信息(每人一行):"<<endl;

cout<<"学号 姓名 班级 语文 数学 英语"<<endl;

p=head;

while (p)

{

q=p;

p=p->next;

}

for (i=1;i<=n;i++)

{

s=new student;

cin>>s->num>>s->name>>s->clas>>s->chinese>>s->maths>>s->english;

s->total=s->chinese+s->maths+s->english; s->average=float(s->total)/3;

q->next =s;

q=s;

}

q->next=NULL;

}

c++大作业学生信息管理系统源代码

//◆3

void shanchu(student * & head) //学生成绩信息删除功能

{

student *p,*q;

char a[30];

int n,i,b=1;

cout<<"请输入需【删除】的学生成绩信息的数量: ";

cin>>n;

cout<<"请输入需要删除的学生的学号或姓名:"<<endl;

for (i=1;i<=n;i++)

{

cin>>a;

if ((strcmp(head->num,a)==0)||(strcmp(head->name,a)==0))

{

b=0;

p=head;

head=head->next;

delete p;

p=NULL;

}

else

{

p=head;

while ((p->next!=NULL)&&(strcmp(p->next->num,a)!=0)&&(strcmp(p->next->name,a)!=0))

{

p=p->next;

}

if (p->next!=NULL)

{

b=0;

q=p->next;

p->next=q->next;

delete q;

q=NULL;

}

}

}

if (b==1) cout<<"无此学号或姓名的成绩记录!"<<endl;

}

//◆4

void change(student *head) //学生成绩信息的修改功能(修改指定学生信息)

c++大作业学生信息管理系统源代码

char a[30];

int b=1;

cout<<"请输入您要【修改】的学生的学号或姓名: ";

cin>>a;

while (head)

{

if ((strcmp(head->num,a)==0)||(strcmp(head->name,a)==0))

{

cout<<""<<endl;

b=0;

cout<<"此学生原来的学生成绩信息是:"<<endl;

cout<<"学号 姓名 班级 语文 数学 英语"<<endl;

cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "

<<head->chinese<<'\t'<<head->maths<<'\t'<<head->english<<endl;

cout<<"请输入修改后的学生成绩信息:"<<endl;

cout<<"学号 姓名 班级 语文 数学 英语"<<endl;

cin>>head->num>>head->name>>head->clas>>head->chinese>>head->maths>>head->english;

head->total=head->chinese+head->maths+head->english; head->average=float(head->total)/3;

}

head=head->next;

}

if (b==1) cout<<"无此学号或姓名的成绩记录!"<<endl;

}

//◆5(1)

void geren(student *head) //查询个人成绩功能

{

char a[30];

int b=1;

cout<<"请输入您要【查询】的学生的学号或姓名: ";

cin>>a;

cout<<"此学生的学生成绩信息是:"<<endl;

cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl;

while (head)

{

if ((strcmp(head->num,a)==0)||(strcmp(head->name,a)==0))

{

b=0;

cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t'

}

head=head->next; <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl;

c++大作业学生信息管理系统源代码

if (b==1) cout<<"无此学号或姓名的成绩记录!"<<endl;

}

//◆5(2)

void chabanji(student *head) //查询班级成绩功能

{

char a[30];

int b=1;

cout<<"请输入您要查询成绩的【班级】的名称: ";

cin>>a;

cout<<"此班级的学生成绩信息是:"<<endl;

cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl;

while (head)

{

if (strcmp(head->clas,a)==0)

{

b=0;

cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t'

}

head=head->next;

}

if (b==1) cout<<"无此班级的成绩记录!"<<endl;

}

//◆5(3)

void chayuwen(student *head) //查询语文成绩功能

{

int h,l,b=1;

cout<<"请输入您要查询的【语文】成绩的分数段: "<<endl;

cout<<"起始分 终止分"<<endl;

cin>>l; cin>>h;

cout<<"此分数段的学生语文成绩信息是:"<<endl;

cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl;

while (head)

{

if ((head->chinese>=l)&&(head->chinese<=h))

{

b=0;

cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t'

<<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl; <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl;

c++大作业学生信息管理系统源代码

head=head->next;

}

if (b==1) cout<<"无此分数段的语文成绩记录!"<<endl;

}

//◆5(4)

void chashuxue(student *head) //查询数学成绩功能

{

int h,l,b=1;

cout<<"请输入您要查询的【数学】成绩的分数段: "<<endl;

cout<<"起始分 终止分"<<endl;

cin>>l; cin>>h;

cout<<"此分数段的学生数学成绩信息是:"<<endl;

cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl;

while (head)

{

if ((head->maths>=l)&&(head->maths<=h))

{

b=0;

cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t'

}

head=head->next;

}

if (b==1) cout<<"无此分数段的数学成绩记录!"<<endl;

}

//◆5(5)

void chayingyu(student *head) //查询英语成绩功能

{

int h,l,b=1;

cout<<"请输入您要查询的【英语】成绩的分数段: "<<endl;

cout<<"起始分 终止分"<<endl;

cin>>l; cin>>h;

cout<<"此分数段的学生英语成绩信息是:"<<endl;

cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl;

while (head)

{

if ((head->english>=l)&&(head->english<=h))

{

b=0;

cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t' <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl;

c++大作业学生信息管理系统源代码

} head=head->next;

}

if (b==1) cout<<"无此分数段的英语成绩记录!"<<endl;

}

//◆5(6)

void chazongfen(student *head) //查询总分成绩功能

{

int h,l,b=1;

cout<<"请输入您要查询的【总分】成绩的分数段: "<<endl;

cout<<"起始分 终止分"<<endl;

cin>>l; cin>>h;

cout<<"此分数段的学生总分成绩信息是:"<<endl;

cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl;

while (head)

{

if ((head->total>=l)&&(head->total<=h))

{

b=0;

cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t'

}

head=head->next;

}

if (b==1) cout<<"无此分数段的总分成绩记录!"<<endl;

}

//◆6(1)

void yuwen(student *head) //按语文成绩从高到低排序功能

{

student *p,*q;

char a[30];

int b;

float c;

p=head;

while (p)

{

q=p->next;

while (q)

{ <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl;

c++大作业学生信息管理系统源代码

if (p->chinese<q->chinese)

{

strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a);

strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a);

strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a);

b=p->chinese;p->chinese=q->chinese;q->chinese=b;

b=p->maths;p->maths=q->maths;q->maths=b;

b=p->english;p->english=q->english;q->english=b;

b=p->total;p->total=q->total;q->total=b;

c=p->average;p->average=q->average;q->average=c;

}

q=q->next;

}

p=p->next;

}

}

//◆6(2)

void shuxue(student *head) //按数学成绩从高到低排序功能

{

student *p,*q;

char a[30];

int b;

float c;

p=head;

while (p)

{

q=p->next;

while (q)

{

if (p->maths<q->maths)

{

strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a);

strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a);

strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a);

b=p->chinese;p->chinese=q->chinese;q->chinese=b;

b=p->maths;p->maths=q->maths;q->maths=b;

b=p->english;p->english=q->english;q->english=b;

b=p->total;p->total=q->total;q->total=b;

c=p->average;p->average=q->average;q->average=c;

}

q=q->next;

}

c++大作业学生信息管理系统源代码

}

}

//◆6(3)

void yingyu(student *head) //按英语成绩从高到低排序功能

{

student *p,*q;

char a[30];

int b;

float c;

p=head;

while (p)

{

q=p->next;

while (q)

{

if (p->english<q->english)

{

strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a);

strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a);

strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a);

b=p->chinese;p->chinese=q->chinese;q->chinese=b;

b=p->maths;p->maths=q->maths;q->maths=b;

b=p->english;p->english=q->english;q->english=b;

b=p->total;p->total=q->total;q->total=b;

c=p->average;p->average=q->average;q->average=c;

}

q=q->next;

}

p=p->next;

}

}

//◆6(4)

void zongfen(student *head) //按总分成绩从高到低排序功能

{

student *p,*q;

char a[30];

int b;

float c;

p=head;

c++大作业学生信息管理系统源代码

{

q=p->next;

while (q)

{

if (p->total<q->total)

{

strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a);

strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a);

strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a);

b=p->chinese;p->chinese=q->chinese;q->chinese=b;

b=p->maths;p->maths=q->maths;q->maths=b;

b=p->english;p->english=q->english;q->english=b;

b=p->total;p->total=q->total;q->total=b;

}

q=q->next;

}

p=p->next;

}

}

//◆7

void xuehao(student *head) //按学号从小到大排序功能

{

student *p,*q;

char a[30];

int b;

float c;

p=head;

while (p)

{

q=p->next;

while (q)

{

if (strcmp(p->num,q->num)>0)

{

strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); c=p->average;p->average=q->average;q->average=c;

strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a);

strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a);

b=p->chinese;p->chinese=q->chinese;q->chinese=b;

b=p->maths;p->maths=q->maths;q->maths=b;

b=p->english;p->english=q->english;q->english=b;

c++大作业学生信息管理系统源代码

b=p->total;p->total=q->total;q->total=b;

c=p->average;p->average=q->average;q->average=c;

}

q=q->next;

}

p=p->next;

}

}

//◆8

void xingming(student *head) //按姓名首字母排序功能

{

student *p,*q;

char a[30];

int b;

float c;

p=head;

while (p)

{

q=p->next;

while (q)

{

if (strcmp(p->name,q->name)>0)

{

strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a);

strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a);

strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a);

b=p->chinese;p->chinese=q->chinese;q->chinese=b;

b=p->maths;p->maths=q->maths;q->maths=b;

b=p->english;p->english=q->english;q->english=b;

b=p->total;p->total=q->total;q->total=b;

}

q=q->next;

}

p=p->next;

}

}

//◆9

void banji(student *head) //按班级的类别排序功能

{ c=p->average;p->average=q->average;q->average=c;

c++大作业学生信息管理系统源代码

student *p,*q;

char a[30];

int b;

float c;

p=head;

while (p)

{

q=p->next;

while (q)

{

if (strcmp(p->clas,q->clas)>0)

{

strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a);

strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a);

strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a);

b=p->chinese;p->chinese=q->chinese;q->chinese=b;

b=p->maths;p->maths=q->maths;q->maths=b;

b=p->english;p->english=q->english;q->english=b;

b=p->total;p->total=q->total;q->total=b;

c=p->average;p->average=q->average;q->average=c;

}

q=q->next;

}

p=p->next;

}

}

//◆10

void show(student *head,char *s) //学生成绩信息文件导出功能

{

int n=1;

ofstream outstuf;

outstuf.open(s,ios::out);

if (!outstuf) {cerr<<"file could not be open."<<endl; abort();}

outstuf<<"学号 姓名 班级 语文 数学 英语 总分 均分

while (head)

{

outstuf<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t'

<<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'

<<setprecision(3)<<head->average<<'\t'<<" "<<n<<endl;

n=n+1;

head=head->next; 序号"<<endl;

c++大作业学生信息管理系统源代码

}

outstuf.close();

}

void main()

{

student *head=NULL;

int n;

char s[30];

cout<<"********************************************************************************";

cout<<"* ★欢迎使用学生成绩管理系统★ *";

cout<<"* 管理员: XXX *";

cout<<"* 请选择您想使用的功能: *";

cout<<"* 功能名 请输入 功能名 请输入 *";

cout<<"* ◆导入学生成绩文件 1 ◆按学号小到大排序 7 *";

cout<<"* ◆插入学生成绩信息 2 ◆按姓名首字母排序 8 *";

cout<<"* ◆删除学生成绩信息 3 ◆按班级的类别排序 9 *";

cout<<"* ◆修改学生成绩信息 4 ◆导出学生成绩文件 10 *";

cout<<"* ◆查询学生成绩信息 5 ◆其它功能...... *";

cout<<"* ◆按成绩高到低排序 6 ◆退出管理系统 0 *";

cout<<"********************************************************************************";

cout<<"您的输入是: ";

cin>>n;

createlist(head);

while (n>0)

{

switch (n)

{

case 1:cout<<"导入的需管理的学生成绩信息表:"<<endl;

case 2:charu(head);

case 3:shanchu(head);

cout<<"删除后的学生成绩信息表:"<<endl; showlist(head); break; cout<<"插入后的学生成绩信息表:"<<endl; showlist(head); break; showlist(head); break;

c++大作业学生信息管理系统源代码

case 4:change(head);

case 5:cout<<"请选择查询学生成绩的方式:"<<endl;

cout<<" 方式 请输入 方式 请输入 "<<endl; cout<<"修改后的学生成绩信息表:"<<endl; showlist(head); break;

cout<<" ●查询个人成绩 1 ●查询数学成绩 4 "<<endl;

cout<<" ●查询班级成绩 2 ●查询英语成绩 5 "<<endl;

cout<<" ●查询语文成绩 3 ●查询总分成绩

cout<<"您的输入是: ";

cin>>n;

switch (n)

{

case 1:geren(head);

break;

case 2:zongfen(head);

chabanji(head);

break;

case 3:yuwen(head);

chayuwen(head);

break;

case 4:shuxue(head);

chashuxue(head);

break;

case 5:yingyu(head);

chayingyu(head);

break;

case 6:zongfen(head);

chazongfen(head);

break;

}

break;

case 6:cout<<"请选择需排序的成绩的类型:"<<endl;

cout<<" 类型 请输入 类型

cout<<" ●按语文成绩排序 1 ●按英语成绩排序

cout<<" ●按数学成绩排序 2 ●按总分成绩排序

cout<<"您的输入是: ";

cin>>n;

switch (n)

{

case 1:yuwen(head);

cout<<"按【语文】成绩排序后的学生成绩信息表:"<<endl; 6 "<<endl; 请输入 "<<endl; 3 "<<endl; 4 "<<endl;

c++大作业学生信息管理系统源代码

showlist(head);

break;

case 2:shuxue(head);

cout<<"按【数学】成绩排序后的学生成绩信息表:"<<endl;

showlist(head);

break;

case 3:yingyu(head);

cout<<"按【英语】成绩排序后的学生成绩信息表:"<<endl;

showlist(head);

break;

case 4:zongfen(head);

cout<<"按【总分】成绩排序后的学生成绩信息表:"<<endl;

showlist(head);

case 7:xuehao(head);

cout<<"按【学号】从小到大排序后的学生成绩信息表:"<<endl;

case 8:xingming(head);

cout<<"按【姓名】首字母排序后的学生成绩信息表:"<<endl;

case 9:banji(head);

cout<<"按【班级】的类别排序后的学生成绩信息表:"<<endl;

case 10:cout<<"请选择需导出的学生成绩数据文件的内容:"<<endl;

cout<<" 内容 请输入 内容 请输入 "; showlist(head); showlist(head); showlist(head); } break; break; break; break; break; cout<<" ●按总分成绩排序的成绩表 1 ●按姓名首字母排序的成绩表 3 "; cout<<" ●按学号大小排序的成绩表 2 ●按班级分类别排序的成绩表 4 "; cout<<"您的输入是: ";

cin>>n;

switch (n)

{

case 1:zongfen(head);

cout<<" 按【总分】成绩排序的成绩表已导出"<<endl;

cout<<" 在生成的 total-sort.txt 文件中"<<endl; cout<<" 请注意查看!"<<endl;

c++大作业学生信息管理系统源代码

strcpy(s,"total-sort.txt");

show(head,s);

break;

case 2:xuehao(head);

cout<<" 按【学号】大小排序的成绩表已导出"<<endl;

cout<<" 在生成的 number-sort.txt 文件中"<<endl; cout<<" 请注意查看!"<<endl; strcpy(s,"number-sort.txt");

show(head,s);

break;

case 3:xingming(head);

cout<<" 按【姓名】首字母排序的成绩表已导出"<<endl;

cout<<" 在生成的 name-sort.txt 文件中"<<endl; cout<<" 请注意查看!"<<endl; strcpy(s,"name-sort.txt");

show(head,s);

break;

case 4:banji(head);

cout<<" 按【班级】分类排序的成绩表已导出"<<endl;

cout<<" 在生成的 class-sort.txt 文件中"<<endl; cout<<" 请注意查看!"<<endl; strcpy(s,"class-sort.txt");

show(head,s);

}

cout<<"继续操作请按回车键!"<<endl;

cgets(s);

cout<<endl<<endl<<endl;

cout<<"********************************************************************************"; cout<<"* ★欢迎使用学生成绩管理系统★ *"; cout<<"* 管理员: XXX *"; cout<<"* 请选择您想使用的功能: *"; cout<<"* 功能名 请输入 功能名 请输入 *"; cout<<"* ◆导入学生成绩文件 1 ◆按学号小到大排序 7 *"; cout<<"* ◆插入学生成绩信息 2 ◆按姓名首字母排序 8 *"; cout<<"* ◆删除学生成绩信息 3 ◆按班级的类别排序 9 *"; cout<<"* ◆修改学生成绩信息 4 ◆导出学生成绩文件 10 *"; cout<<"* ◆查询学生成绩信息 5 ◆其它功能...... *"; cout<<"* ◆按成绩高到低排序 6 ◆退出管理系统 0 *"; cout<<"********************************************************************************"; cout<<"您的输入是: "; } break; break;

c++大作业学生信息管理系统源代码

cin>>n;

}

cout<<endl<<" 您所使用的功能已完成,谢谢使用!"<<endl; cout<<" 欢迎再次使用!"<<endl<<endl; }

本文来源:https://www.bwwdw.com/article/fr31.html

Top