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();
}
//◆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;
}
//◆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)) {。