急!!!!!!!!学生成绩管理系统 C语言程序设计
#include
#include
#include
#define LEN sizeof(struct record) /*对结构体长度进行宏定义*/
void menu();/*声明菜单函数*/
struct record*insert(struct record *head);/*声明添加函数 */
struct record*delet(struct record *head); /*声明删除函数 */
struct record*alter(struct record *head); /*声明修改函数 */
void search(struct record *head); /*声明查找函数*/
void show(struct record *head); /*声明显示函数*/
struct record *head; /*定义全局结构体指针变量*/
int n=0; /*定义全局变量*/
struct record /*声明结构体*/
{
char number[10];
char name[20];
char phone[20];
char adress[40];
char postcode[10];
char e_mail[30];
struct record *next;
};
/******************************************************************************
* *
* 主函数 *
* *
*******************************************************************************/
main()
{
head=NULL;
menu();
rewind(stdin);
}
/******************************************************************************
* *
* 菜单函数 *
* *
*******************************************************************************/
void menu()
{
int choice;
printf("
******************** 主菜单 ********************");
printf("
*********** 1-添加纪录 2-查询纪录 ************");
printf("
*********** 3-删除纪录 4-修改记录 ************");
printf("
*********** 5-显示纪录 6-退出系统 ************");
printf("
************************************************");
printf("
请选择:");
scanf("%d",&choice); rewind(stdin);
printf("
");
switch (choice)
{
case 1:
head=insert(head);
rewind(stdin);
menu();
break;
case 2:
search(head);rewind(stdin);
menu();
break;
case 3:
head=delet(head);
rewind(stdin);
menu();
break;
case 4:
head=alter(head);
rewind(stdin);
menu();
break;
case 5:
show(head);
rewind(stdin);
menu();
break;
default:
printf("
谢谢使用!!");
break;
}
}
/******************************************************************************
* *
* 添加函数 *
* *
*******************************************************************************/
struct record *insert(struct record *head)
{
struct record *pp,*p1,*p2;
pp=(struct record *)malloc(LEN);
printf("
**************** 请输入用户信息 ****************
");
printf("
输入序号:");
scanf("%s",pp->number); rewind(stdin);
printf("
输入姓名:");
scanf("%s",pp->name);rewind(stdin);
printf("
输入电话号码:");
scanf("%s",pp->phone); rewind(stdin);
printf("
输入地址:");
scanf("%s",pp->adress); rewind(stdin);
printf("
输入邮编:");
scanf("%s",pp->postcode); rewind(stdin);
printf("
输入e-mail:");
scanf("%s",pp->e_mail); rewind(stdin);
if(head==NULL)/*在表头插入1*/
{
head=pp;
pp->next=NULL;
}
else
{
p1=head;
while((strcmp(pp->number,p1->number)>0)&&(p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(strcmp(pp->number,p1->number)<=0)
{
if(head==p1)
head=pp; /*在表头插入2*/
else
p2->next=pp;/*在表中插入*/
pp->next=p1;
}
else /*在表尾插入*/
{
p1->next=pp;
pp->next=NULL;
}
}
printf("添加成功!请继续选择功能键!
");
n=n+1;
return(head);
}
/******************************************************************************
* *
* 删除函数 *
* *
*******************************************************************************/
struct record*delet(struct record * head)
{
struct record *p1,*p2;
char number[10];
printf("请输入要删除用户的序号number:");
scanf("%s",&number);rewind(stdin);
if(head==NULL)
{
printf("
通讯录无用户信息记录!!
");
return(head);
}
p1=head;
while(strcmp(number,p1->number)!=0&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(strcmp(number,p1->number)==0)
{
if(p1==head)
{
head=p1->next;
printf("删除成功!请继续选择功能键!
");
}
else
{
p2=p1->next;
printf("已删 除的用户的序号为:%s
",number);
printf("删除成功!请继续选择功能键!
");
}
n=n-1;
}
else printf("通讯录无该用户的信息记录!
");
return(head);
}
/******************************************************************************
* *
* 查询函数 *
* *
*******************************************************************************/
void search(struct record *head)
{
int a;
char f_name[20],f_number[10];
struct record *p1,*p2;
if(head==NULL)
{
printf("通讯录无用户信息记录
");
return;
}
else
{
printf("请你选择你查找的方式:
1:序号
2:姓名
");
printf("请选择:");
scanf("%d",&a);rewind(stdin);
switch(a)
{case 1:
printf("
请输入要查找用户的序号number:");
scanf("%s",&f_number);rewind(stdin);
p1=head;
while(strcmp(p1->number,f_number)!=0)
{
if(p1->next==NULL)
{
printf("
通讯录无此用户信息记录
");
return;
}
else
{
p2=p1->next;
p1=p2;
}
}
printf("
要查找用户的基本信息为:
");
printf("序号: %s
姓名:%s
电话号码:%s",p1->number,p1->name,p1->phone);
printf("
地址:%s
邮编:%s
e_mail:%s
",p1->adress,p1->postcode,p1->e_mail);
break;
case 2:
printf("
请输入要查找用户的姓名name:");
scanf("%s",f_name);rewind(stdin);
p1=head;
while(strcmp(p1->name,f_name)!=0)
{
if(p1->next==NULL)
{
printf("
通讯录无此用户信息记录
");
return;
}
else
{
p2=p1->next;
p1=p2;
}
}
printf("
要查找用户的基本信息为:
");
printf("序号: %s
姓名:%s
电话号码:%s",p1->number,p1->name,p1->phone);
printf("
地址:%s
邮编:%s
e_mail:%s",p1->adress,p1->postcode,p1->e_mail);
break;
}
}
}
/******************************************************************************
* *
* 显示函数 *
* *
*******************************************************************************/
void show(struct record *head)
{
int i;
struct record *p1,*p2;
p1=head;
if(head==NULL)
{
printf("通讯录无用户信息记录
");
return;
}
else
{
for(i=1;i<=n;i++)
{
printf("
第%d个用户的基本信息为:",i);
printf("
序号: %s 姓名:%s 电话号码:%s
地址:%s 邮编:%s e_mail:%s
"
,p1->number,p1->name,p1->phone,p1->adress,p1->postcode,p1->e_mail);
p2=p1->next;
p1=p2;
}
}
}
/******************************************************************************
* *
* 修改函数 *
* *
*******************************************************************************/
struct record*alter(struct record*head)
{
struct record *p1,*p2;
int choice1;
char alter_number[10],alter_name[20],alter_phone[20],alter_adress[40],alter_postcode[10],alter_e_mail[30],choice2;
p1=head;
if(head==NULL)
{
printf("通讯录无用户信息记录
");
return(head);
}
printf("请输入要修改的用户的序号number:");
scanf("%s",alter_number);
rewind(stdin);
while(strcmp(p1->number,alter_number)!=0)
{
if(p1->next==NULL)
{
printf("
通讯录无此用户信息记录
");
return(head);
}
else
{
p2=p1;
p1=p1->next;
}
}
if(strcmp(p1->number,alter_number)!=0)
{
printf("通讯录无用户信息记录
");
return(head);
}
else
{
printf("要修改的用户的基本信息为:
");
printf("序号: %s 姓名:%s 电话号码:%s 地址:%s 邮编:%s e_mail:%s
"
,p1->number,p1->name,p1->phone,p1->adress,p1->postcode,p1->e_mail);
}
while(1)
{
printf("你是否要修改的用户的基本信息?(y&n)");
scanf("%c",&choice2);
rewind(stdin);
if(choice2=='y')
{
printf("请选择你要修改的项目:
");
printf("1:姓名 2:电话号码 3:地址 4:邮编 5:e_mail
");
printf("你选择的序号为: ");
scanf("%d",&choice1);
rewind(stdin);
switch(choice1)
{case 1:printf("请输入更改后的姓名");
scanf("%s",alter_name);rewind(stdin);
strcpy(p1->name,alter_name);
continue;
case 2:printf("请输入更改后的电话号码");
scanf("%s",alter_phone);rewind(stdin);
strcpy(p1->phone,alter_phone);
continue;
case 3:printf("请输入更改后的地址");
scanf("%s",alter_adress);rewind(stdin);
strcpy(p1->adress,alter_adress);
continue;
case 4:printf("请输入更改后的邮编");
scanf("%s",&alter_postcode);rewind(stdin);strcpy(p1->postcode,alter_postcode);
continue;
case 5:printf("请输入更改后的e_mail");
scanf("%s",alter_e_mail);rewind(stdin);
strcpy(p1->e_mail,alter_e_mail);
continue;
}
printf("
修改后用户的基本信息为:
");
printf("序号: %s 姓名:%s 电话号码:%s 地址:%s 邮编:%s e_mail
"
,p1->number,p1->name,p1->phone,p1->adress,p1->postcode,p1->e_mail);
}
else
{
printf("
修改成功!!
");
break;
}
}
return(head);
}
include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.h" /*动态地址分配函数*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;
void shuru()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.
");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("
Please shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.
");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("
xuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen
");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f
",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp);
}
void xiugai()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("Cannot open this file.
");
exit(0);
}
printf("
PLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s
mingzi:%s
",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}
fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("
Cannot open this file.
");
exit(0);
}
printf("
PLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s
yuwen:%f
shuxue:%f
yingyu:%f
wuli:%f
huaxue:%f
",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("
open score.txt was failed!");
getch();
exit(0);
}
printf("
Please input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("Anykey will delet it.
");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!
");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移动光标*/
textcolor(YELLOW); /*设置文本显示颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为蓝色*/
window(1,1,99,99); /* 制作显示菜单的窗口,大小根据菜单条数设计*/
clrscr();
printf("*************welcome to use student manage******************
");
printf("*************************menu********************************
");
printf("* ========================================================= *
");
printf("* 1>shuru 2>xiugai *
");
printf("* 3>shanchu 4>chazhao *
");
printf("* 5>xianshi 6>exit *
");
printf("* *
");
printf("* --------------------------------------------------------- *
");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}
}
在tc中运行
#include<string.h>
#include<fstream.h>
class stu
{
char name[20];
double math,chinese,english,average,sum;
public:
stu()
{
}
stu(char n[20],double ma,double chin,double eng)
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
double getsum()
{
sum=chinese+english+math;
return sum;
}
double getaver()
{
average=getsum()/3;
return average;
}
friend void main();
};
void main()
{
cout<<"请选择您需要的操作!"<<endl;
cout<<"操作:"<<endl;
cout<<"(0)数据录入"<<endl;
cout<<"(1)增加人员"<<endl;
cout<<"(2)删除人员"<<endl;
cout<<"(3)修改数据"<<endl;
cout<<"查询:"<<endl;
cout<<"(4)按总成绩查询"<<endl;
cout<<"(5)按姓名查询"<<endl;
cout<<"(6)输出所有学生的数据"<<endl;
cout<<"成绩名词"<<endl;
cout<<"(7)按总分查询排名"<<endl;
cout<<"(8)按语文查询排名"<<endl;
cout<<"(9)按数学查询排名"<<endl;
cout<<"(y)按英语查询排名"<<endl;
cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl;
char p;char w;
stu *s[50];
ofstream *file[50];
int i=0;
int j=0;
bool flag2=0;
do
{
cin>>p;
if((p>='0'&&p<='10'))
flag2=1;
else
cout<<"指令错误!请重新输入:"<<endl;
}while(flag2==0);
do{
switch(p)
{
case '0':
{
char c;
char name[20];double math,chinese,english;
do{
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new stu(name, math, chinese, english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case '4':
{
double t;char c;
do
{
int flag1=0;
cout<<"请输入你要查询学生的总成绩"<<endl;
cin>>t;
for(int q=0;q<i;q++)
{
if(s[q]->getsum()==t)
{
flag1=1;
cout<<"您要查询的学生是:"<<(*s[q]).name<<endl;
}
}
if(flag1==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"您想继续查询吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '5':
{
char n[20];int j=0;char c;
do{
int flag=0;
cout<<"请输入你要查询的学生姓名"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(strcmp(n,(*s[j]).name)==0)
{
flag=1;
cout<<"您要查询的学生是:"<<(*s[j]).name<<endl;
cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()<<endl<<"平均成绩是:"<<(*s[j]).getaver()<<endl;
}
}
if(flag==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"您想继续查询吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '1':
{
char name[20];double math,chinese,english;
char c;
do
{
cout<<"请输入您要增加的学生的姓名:"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new stu(name, math, chinese, english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '2':
{
char name[20];bool flag3=0;char c;
do{
cout<<"请输入您要删除的学生姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag3=1;
i--;
do{
s[h]=s[h+1];
h++;
}while(h<=i);
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
cout<<"要继续删除吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '3':
{
char name[20];double mat,chin,eng;flag2=0;
char c;
do
{
cout<<"请输入您要修改的学生的姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag2=1;
cout<<"请输入新的数学成绩:"<<endl;
cin>>mat;
cout<<"请输入新的语文成绩:"<<endl;
cin>>chin;
cout<<"请输入新的外语成绩:"<<endl;
cin>>eng;
s[h]->chinese=chin;
s[h]->math=mat;
s[h]->english=eng;
cout<<"数据修改成功!";
}
}
if(flag2==0)
{
cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;
}
cout<<"想继续修改吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '6':
{
cout<<"本系统所有学生数据如下:"<<endl;
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<(*s[k]).getsum()
<<"平均分:"<<" "<<(*s[k]).getaver()<<endl;
}
break;
}
case '7':
{
int t;stu b;
cout<<"本系统所以学生排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->getsum())<(s[y]->getsum()))
t=y;
if(t!=x)
{
b=*s[x];
*s[x]=*s[t];
*s[t]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case '8':
{
int t;stu b;
cout<<"本系统所以学生语文排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->chinese)<(s[y]->chinese))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case '9':
{
int t;stu b;
cout<<"本系统所以学生数学排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->math)<(s[y]->math))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case 'y':
{
int t;stu b;
cout<<"本系统所以学生英语排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->english)<(s[y]->english))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
}
break;
}
cout<<"您想继续进行其他操作吗?(y/n)"<<endl;
bool flag4=0;
do
{
cin>>w;
if(w!='y'&&w!='n')
cout<<"指令错误!请重新输入!"<<endl;
else
flag4=1;
}while(flag4==0);
if(w=='y')
cout<<"请输入操作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)"<<endl;
cin>>p;
}while(w=='y');
for(int x=0;x<i;x++)
{
delete s[x];
cout<<"delete all members!"<<endl;
}
}
#include<iostream.h>
#include<string.h>
#include<fstream.h>
class
stu
{
char
name[20];
double
math,chinese,english,average,sum;
public:
stu()
{
}
stu(char
n[20],double
ma,double
chin,double
eng)
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
double
getsum()
{
sum=chinese+english+math;
return
sum;
}
double
getaver()
{
average=getsum()/3;
return
average;
}
friend
void
main();
};
void
main()
{
cout<<"请选择您需要的操作!"<<endl;
cout<<"操作:"<<endl;
cout<<"(0)数据录入"<<endl;
cout<<"(1)增加人员"<<endl;
cout<<"(2)删除人员"<<endl;
cout<<"(3)修改数据"<<endl;
cout<<"查询:"<<endl;
cout<<"(4)按总成绩查询"<<endl;
cout<<"(5)按姓名查询"<<endl;
cout<<"(6)输出所有学生的数据"<<endl;
cout<<"成绩名词"<<endl;
cout<<"(7)按总分查询排名"<<endl;
cout<<"(8)按语文查询排名"<<endl;
cout<<"(9)按数学查询排名"<<endl;
cout<<"(y)按英语查询排名"<<endl;
cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl;
char
p;char
w;
stu
*s[50];
ofstream
*file[50];
int
i=0;
int
j=0;
bool
flag2=0;
do
{
cin>>p;
if((p>='0'&&p<='10'))
flag2=1;
else
cout<<"指令错误!请重新输入:"<<endl;
}while(flag2==0);
do{
switch(p)
{
case
'0':
{
char
c;
char
name[20];double
math,chinese,english;
do{
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new
ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new
stu(name,
math,
chinese,
english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case
'4':
{
double
t;char
c;
do
{
int
flag1=0;
cout<<"请输入你要查询学生的总成绩"<<endl;
cin>>t;
for(int
q=0;q<i;q++)
{
if(s[q]->getsum()==t)
{
flag1=1;
cout<<"您要查询的学生是:"<<(*s[q]).name<<endl;
}
}
if(flag1==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"您想继续查询吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case
'5':
{
char
n[20];int
j=0;char
c;
do{
int
flag=0;
cout<<"请输入你要查询的学生姓名"<<endl;
cin>>n;
for(int
j=0;j<i;j++)
{
if(strcmp(n,(*s[j]).name)==0)
{
flag=1;
cout<<"您要查询的学生是:"<<(*s[j]).name<<endl;
cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()<<endl<<"平均成绩是:"<<(*s[j]).getaver()<<endl;
}
}
if(flag==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"您想继续查询吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case
'1':
{
char
name[20];double
math,chinese,english;
char
c;
do
{
cout<<"请输入您要增加的学生的姓名:"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new
ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new
stu(name,
math,
chinese,
english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case
'2':
{
char
name[20];bool
flag3=0;char
c;
do{
cout<<"请输入您要删除的学生姓名:"<<endl;
cin>>name;
for(int
h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag3=1;
i--;
do{
s[h]=s[h+1];
h++;
}while(h<=i);
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
cout<<"要继续删除吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case
'3':
{
char
name[20];double
mat,chin,eng;flag2=0;
char
c;
do
{
cout<<"请输入您要修改的学生的姓名:"<<endl;
cin>>name;
for(int
h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag2=1;
cout<<"请输入新的数学成绩:"<<endl;
cin>>mat;
cout<<"请输入新的语文成绩:"<<endl;
cin>>chin;
cout<<"请输入新的外语成绩:"<<endl;
cin>>eng;
s[h]->chinese=chin;
s[h]->math=mat;
s[h]->english=eng;
cout<<"数据修改成功!";
}
}
if(flag2==0)
{
cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;
}
cout<<"想继续修改吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case
'6':
{
cout<<"本系统所有学生数据如下:"<<endl;
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;
for(int
k=0;k<i;k++)
{
cout<<k+1<<"
"<<"姓名:"<<"
"<<s[k]->name<<
"语文:"<<"
"<<s[k]->chinese<<"数学:"<<"
"<<s[k]->math
<<"外语:"<<"
"<<s[k]->english<<"总分:"<<"
"<<(*s[k]).getsum()
<<"平均分:"<<"
"<<(*s[k]).getaver()<<endl;
}
break;
}
case
'7':
{
int
t;stu
b;
cout<<"本系统所以学生排名如下:"<<endl;
for(int
x=0;x<i-1;x++)
{
t=x;
for(int
y=x+1;y<i;y++)
{
if((s[t]->getsum())<(s[y]->getsum()))
t=y;
if(t!=x)
{
b=*s[x];
*s[x]=*s[t];
*s[t]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int
k=0;k<i;k++)
{
cout<<k+1<<"
"<<"姓名:"<<"
"<<s[k]->name<<
"语文:"<<"
"<<s[k]->chinese<<"数学:"<<"
"<<s[k]->math
<<"外语:"<<"
"<<s[k]->english<<"总分:"<<"
"<<s[k]->getsum()
<<"平均分:"<<"
"<<s[k]->getaver()<<endl;
}
break;
}
case
'8':
{
int
t;stu
b;
cout<<"本系统所以学生语文排名如下:"<<endl;
for(int
x=0;x<i-1;x++)
{
t=x;
for(int
y=x+1;y<i;y++)
{
if((s[t]->chinese)<(s[y]->chinese))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int
k=0;k<i;k++)
{
cout<<k+1<<"
"<<"姓名:"<<"
"<<s[k]->name<<
"语文:"<<"
"<<s[k]->chinese<<"数学:"<<"
"<<s[k]->math
<<"外语:"<<"
"<<s[k]->english<<"总分:"<<"
"<<s[k]->getsum()
<<"平均分:"<<"
"<<s[k]->getaver()<<endl;
}
break;
}
case
'9':
{
int
t;stu
b;
cout<<"本系统所以学生数学排名如下:"<<endl;
for(int
x=0;x<i-1;x++)
{
t=x;
for(int
y=x+1;y<i;y++)
{
if((s[t]->math)<(s[y]->math))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int
k=0;k<i;k++)
{
cout<<k+1<<"
"<<"姓名:"<<"
"<<s[k]->name<<
"语文:"<<"
"<<s[k]->chinese<<"数学:"<<"
"<<s[k]->math
<<"外语:"<<"
"<<s[k]->english<<"总分:"<<"
"<<s[k]->getsum()
<<"平均分:"<<"
"<<s[k]->getaver()<<endl;
}
break;
}
case
'y':
{
int
t;stu
b;
cout<<"本系统所以学生英语排名如下:"<<endl;
for(int
x=0;x<i-1;x++)
{
t=x;
for(int
y=x+1;y<i;y++)
{
if((s[t]->english)<(s[y]->english))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int
k=0;k<i;k++)
{
cout<<k+1<<"
"<<"姓名:"<<"
"<<s[k]->name<<
"语文:"<<"
"<<s[k]->chinese<<"数学:"<<"
"<<s[k]->math
<<"外语:"<<"
"<<s[k]->english<<"总分:"<<"
"<<s[k]->getsum()
<<"平均分:"<<"
"<<s[k]->getaver()<<endl;
}
}
break;
}
cout<<"您想继续进行其他操作吗?(y/n)"<<endl;
bool
flag4=0;
do
{
cin>>w;
if(w!='y'&&w!='n')
cout<<"指令错误!请重新输入!"<<endl;
else
flag4=1;
}while(flag4==0);
if(w=='y')
cout<<"请输入操作代码(0
录入/4
按总分查询/5
按姓名查询/1
增加人员/2
删除人员/3
修改数据/6
显示所有成员数据/7
按总分排名/8
按语文排名/9按数学排名/y按英语排名)"<<endl;
cin>>p;
}while(w=='y');
for(int
x=0;x<i;x++)
{
delete
s[x];
cout<<"delete
all
members!"<<endl;
}
}
哎,本来想多跟你要点分的,但是看你那么穷,0分,就算了吧,但是我辛辛苦苦写的,你可得给个满意答案啊~~~··
#include<stdio.h>
#define
N
50
struct
stu
{
int
num;
char
name[20];
float
score[3];
float
average;
};
int
count=0;
void
display(struct
stu
[]);
struct
stu
input();
void
sort(struct
stu
[]);
void
insert(struct
stu
infm[]);
void
search(struct
stu
infm[]);
void
del(struct
stu
infm[]);
void
main()
{
char
ch;
struct
stu
infm[N];
int
in_int;
do
{
printf("请输入要实现的功能:\n1、录入;2排序;3、显示;4、查找;5、插入;6、删除");
scanf("%d",&in_int);
switch(in_int)
{
case
1:{
do
{
infm[count]=input();
count++;
printf("是否继续录入?(y/n)");
fflush(stdin);
scanf("%c",&ch);
}while(ch=='y'||ch=='Y');
display(infm);
break;
}
case
2:
{
sort(infm);
break;
}
case
3:
{
display(infm);
break;
}
case
4:
{
search(infm);
break;
}
case
5:
{
insert(infm);
break;
}
case
6:
{
del(infm);
break;
}
default:{
printf("输入错误!");
}
}printf("是否继续?(y/n)");
fflush(stdin);
scanf("%c",&ch);
}while(ch=='y'||ch=='Y');
}
struct
stu
input()
{
struct
stu
in;
int
i;
printf("请输入学生学号:");
fflush(stdin);
scanf("%d",&in.num);
printf("请输入学生姓名:");
fflush(stdin);
scanf("%s",in.name);
for(i=0;i<3;i++)
{
printf("请输入学生第%d科成绩:",i+1);
fflush(stdin);
scanf("%f",&in.score[i]);
}
in.average=(in.score[0]+in.score[1]+in.score[2])/3;
return
in;
}
void
sort(struct
stu
infm[])
{
int
i,j;
struct
stu
temp;
printf("排序前的学生顺序为:");
display(infm);
for(i=0;i<count-1;i++)
{
for(j=i+1;j<count;j++)
{
if(infm[i].average<infm[j].average)
{
temp=infm[i];
infm[i]=infm[j];
infm[j]=temp;
}
}
}
printf("排序后的学生顺序为:");
display(infm);
}
void
display(struct
stu
out[])
{
int
i;
printf("学号\t姓名\t\t平均成绩\n");
for(i=0;i<count;i++)
{
printf("%d\t%s\t\t%3.1f\n",out[i].num,out[i].name,out[i].average);
}
}
void
search(struct
stu
infm[])
{
int
i,
num;
printf("请输入要查找学生的学号:");
scanf("%d",&num);
for(i=0;i<count;i++)
{
if(infm[i].num==num)
{
break;
}
}
printf("学号\t姓名\t\t平均成绩\n");
printf("%d\t%s\t%4.1f\t",infm[i].num,infm[i].name,infm[i].average);
}
void
insert(struct
stu
infm[])
{
int
i,j;
struct
stu
temp;
temp=input();
for(i=0;i<count;i++)
{
if(temp.average>infm[i].average)
{
break;
}
}
for(j=count;j>i;j--)
{
infm[j]=infm[j-1];
}
infm[i]=temp;
count++;
printf("插入后的学生顺序为:\n");
display(infm);
}
void
del(struct
stu
infm[])
{
int
i,j,number;
printf("请输入要删除学生的学号:");
scanf("%d",&number);
for(i=0;i<count;i++)
{
if(infm[i].num==number)
{
break;
}
}
for(j=i;j<count-1;j++)
{
infm[j]=infm[j+1];
}
count--;
printf("删除后的学生顺序为:\n");
display(infm);
}
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
struct List
{
string m_Name;
string m_ID;//可能有的学号里有字母,所以用string类型。
short int m_Chinese;
short int m_Match;
short int m_English;
struct List *Next; //指针域。
};
typedef struct List Node;
typedef Node *Link;
//---------------函数声明-------------------
Link Create(Link Head);
Link Search(Link Head);
Link Search_front(Link Head);
void Release(Link Head);
void Display(Link Head);
void Display_One(Link Head);
void Display(Link Head,fstream& ofile);
Link AddInfo(Link Head);
Link DelInfo(Link Head);
Link Modify(Link Head);
void Grade_Stat(Link Head);
Link Sort(Link Head);
//---------------函数实现-------------------
Link Create(Link Head)
{
/*构造一个头节点*/
Head=(Link)new Node;
if(!Head)
{
cout<<"分配内存失败。"<<endl;
exit(-1);
}
Head->m_Name="";
Head->m_ID="";
Head->m_Chinese=0;
Head->m_Match=0;
Head->m_English=0;
Head->Next=NULL;
return Head;
}
Link Search(Link Head)
{
cout<<" 1.按姓名查询 2.按学号查询 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
ptr=Head;
if(select==1)
{
string name;
cout<<"请输入要查询的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
else if(select==2)
{
string ID;
cout<<"请输入要查询的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return ptr;
}
Link Search_front(Link Head)
{//返回前驱节点。
cout<<" 1.按姓名删除 2.按学号删除 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
Link front;
ptr=Head->Next;
front=Head;
if(select==1)
{
string name;
cout<<"请输入要删除的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
else if(select==2)
{
string ID;
cout<<"请输入要删除的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return front;
}
void Release(Link Head)
{
Link ptr;
while(Head!=NULL)
{
ptr=Head;
Head=Head->Next;
delete ptr;
}
}
void Display(Link Head)
{
Link ptr;
ptr=Head->Next;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 所有学生信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
cout<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
ptr=ptr->Next;
}
}
void Display(Link Head,fstream& ofile)
{
Link ptr;
ptr=Head->Next;
ofile<<"----------------------------------------------------------------------"<<endl;
ofile<<"---------------------------- 所有学生信息 --------------------------"<<endl;
ofile<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
ofile<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
ptr=ptr->Next;
}
}
void Display_One(Link Head)
{
Link ptr;
ptr=Head;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 查询结果信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
cout<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
}
Link AddInfo(Link Head)
{
Link ptr;
ptr=Head;
while(ptr->Next!=NULL)
{
ptr=ptr->Next;
}
Link ptr2;
char again;
do
{
ptr2=(Link)new Node;
if(!ptr2)
{
cout<<"内存分配失败!"<<endl;
exit(-1);
}
//数据域
string Name,ID;
short int Chinese,Match,English;
cout<<"输入姓名:";
cin>>Name;
cout<<endl<<"输入学号:";
cin>>ID;
cout<<endl<<"语文成绩:";
cin>>Chinese;
cout<<endl<<"数据成绩:";
cin>>Match;
cout<<endl<<"英语成绩:";
cin>>English;
ptr2->m_Name=Name;
ptr2->m_ID=ID;
ptr2->m_Chinese=Chinese;
ptr2->m_Match=Match;
ptr2->m_English=English;
//指针域
ptr2->Next=NULL;//作为尾节点。
ptr->Next=ptr2;//连接入链表。
ptr=ptr2;//将ptr2作为下一次产生的节点的前驱节点.
cout<<"是否继续输入?(Y/N) ";
cin>>again;
}while(again=='Y'||again=='y');
return Head;
}
Link DelInfo(Link Head)
{
Link ptr;
Link ptr2;
ptr=Head;
Link f_ptr;//前驱节点。
f_ptr=Search_front(ptr);
ptr2=f_ptr->Next;
f_ptr->Next=f_ptr->Next->Next;
delete ptr2;
return Head;
}
Link Modify(Link Head)
{
Link ptr;
ptr=Head;
ptr=Search(ptr);
cout<<"修改前信息为:"<<endl;
Display_One(ptr);
//cout<<"请选择你要修改的选项:A:姓名 B:学号 C:语文成绩 D:数学成绩 E:英语成绩"<<endl;
string name,ID;
float Chinese,Match,English;
cout<<"输入新姓名:";
cin>>name;
cout<<endl<<"输入新学号:";
cin>>ID;
cout<<endl<<"输入新语文成绩:";
cin>>Chinese;
cout<<endl<<"输入新数学成绩:";
cin>>Match;
cout<<endl<<"输入新英语成绩:";
cin>>English;
ptr->m_Name=name;
ptr->m_ID=ID;
ptr->m_Chinese=Chinese;
ptr->m_Match=Match;
ptr->m_English=English;
cout<<endl<<"修改后信息为:"<<endl;
Display_One(ptr);
return Head;
}
void Grade_Stat(Link Head)
{//成绩统计。
Link ptr;
ptr=Head;
cout<<"请输入你要查询的课程名(chinese|match|english)和一个分数范围[min,max]."<<endl;
string name;
short int min,max;
int SwitchNum;
cout<<"课程名:";
cin>>name;
cout<<endl<<"分数下限:";
cin>>min;
cout<<endl<<"分数上限:";
cin>>max;
if(name=="chinese")
SwitchNum=1;
else if(name=="match")
SwitchNum=2;
else if(name=="english")
SwitchNum=3;
else
{
cout<<"请输入一个正确的课程名:"<<endl;
return;
}
while(ptr!=NULL)
{
switch(SwitchNum)
{
case 1:
if(ptr->m_Chinese<=max&&ptr->m_Chinese>=min)
Display_One(ptr);
break;
case 2:
if(ptr->m_Match<=max&&ptr->m_Match>=min)
Display_One(ptr);
break;
case 3:
if(ptr->m_English<=max&&ptr->m_English>=min)
Display_One(ptr);
}
}
}
Link Sort(Link Head)
{//我创建的是带头节点的链表。用直接插入法。
cout<<"请输入你想排序的课程名(用中文):";
string course_name;
cin>>course_name;
if((Head->Next==NULL)||(Head->Next->Next==NULL))//此步条件判断非常有价值。
{
cout<<"数据节点数少于2个,不用排序!"<<endl;
return Head;
}
//-----------第二步;
Link ptr;
Link ptr_F;
Link ptr_N;
ptr=Head->Next->Next;
ptr_F=Head;
Head->Next->Next=NULL;//到此,分成了两个链表。
//第三步。
while(ptr)
{
ptr_N=ptr->Next;
ptr_F=Head;//ptr_F的归位。
while(ptr_F->Next)
{
if(course_name=="语文")
{
if(ptr->m_Chinese>ptr_F->Next->m_Chinese)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="数学")
{
if(ptr->m_Match>ptr_F->Next->m_Match)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="英语")
{
if(ptr->m_English>ptr_F->Next->m_English)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
}//while(ptr_F->Next)
if(ptr_F->Next==NULL)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;//表示插到有序链表的最后面了。
}
ptr=ptr_N;//归位,准备下一次排序。
}//while(ptr)
cout<<"从高到低,排序成功!"<<endl;
return Head;
}
//----------主函数----------------------
int main()
{
fstream ofile;
ofile.open("e:\\student.txt",ios_base::out);
if(!ofile)
{
cout<<"文件打开失败。"<<endl;
exit(-1);
}
Link head=0;
head=Create(head);
while(1)
{
cout<<"*****************************************************"<<endl;
cout<<"*** 1.添加信息 2.修改信息 3.删除信息 4.信息查询 ***"<<endl;
cout<<"*** 5.成绩统计 6.排 序 7.显示/保存 0.退 出 ***"<<endl;
cout<<"*****************************************************"<<endl;
cout<<"请选择正确的菜单项:";
int sel;
cin>>sel;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>sel;
}
switch(sel)
{
case 0:
exit(0);
case 1:
head=AddInfo(head);
break;
case 2:
head=Modify(head);
break;
case 3:
head=DelInfo(head);
break;
case 4:
Search(head);
break;
case 5:
Grade_Stat(head);
break;
case 6:
Sort(head);
break;
case 7:
Display(head);//在标准显示器上显示。
Display(head,ofile);//在文件中显示。
break;
default:
break;
}
}
Release(head);
return 0;
}
lz干脆去抢算了
学!几笔划?
学,8笔画。笔画顺序:点、点、撇、点、横撇\/横钩、横撇\/横钩、竖钩、横。图片如下:学 拼音:xué,部首:子,笔画:8,繁体:学,五笔:IPBF。释义:1、学习。2、模仿。3、学问。4、指学科。5、学校。6、姓。组词:学生、学习、学校、就学、升学、苦学、放学、同学、学好、学会、学长、上...
男生,25岁一事无成!想学技术,学什么好?
但是要学好学精,就一定要找专业负责的培训机构了,推荐这个领域的老大:王氏教育。在“短视频剪辑\/短视频运营\/视频特效”处理这块,【王氏教育】是国内的老大,每个城市都是总部直营校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚...
40岁的女人适合学习什么
40岁的女人适合学种菜、学习心理学、西点培训、学习咖啡冷饮技术、化妆。1、学种菜,这几年以来,蔬菜的价钱增长了不少,我们可以去学习种菜,这也是一种手艺;科学种菜是从菜本身需要的外界条件着手,通过科学的方法,改善蔬菜的生长环境,种出优质优量的蔬菜的手段。2、学习心理学。40岁的女人成熟了,...
如何学好语文
素材的积累宜从以下几个方面入手:一是自己的亲身经历和体验(含自身周围环境见闻),这是极为丰富而行动的材料来源;二是学过的课文内容,这也是一个可观的材料库;三是课外阅读(书籍、报刊、影视等)中发现的反映社会生活的典型材料、精彩片断、名言警句等。《读者》、《青年文摘》这两本杂志故事性较强,很多同学喜欢看...
求主动学习进取的名人事例!!!
1、刺股悬梁 战国时的苏秦,夜以继日地读书,实在太累了,就用锥子刺腿来使头脑清醒;汉代的孙敬,为了防止读书时瞌睡,便用一根绳子把自己的头发系在房梁上,只要一打磕睡就会被扯醒。这就是历史上“刺股悬梁”的故事。2、凿壁偷光 晋朝的车胤、孙康、匡衡,家里都很穷,连点灯的油都买不起。
求激励学习上进的诗句(要有出处,是古诗!)
1、《勤学》宋代:汪洙 学向勤中得,萤窗万卷书。三冬今足用,谁笑腹空虚。译文:学问是需要勤奋才能得来的,就像前人囊萤取光,勤奋夜读,读很多书。苦学几年,“三冬文史足用”,学问也就有了,那时候谁还会笑话你胸无点墨,没有学问呢?2、《冬夜读书示子聿》宋代:陆游 古人学问无遗力,...
孔子关于学习的名言
一、春秋 孔子《论语》:吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲不逾矩。译文:我十五岁开始有志于学问,到三十岁,知书识理,能够做事合于礼,到四十岁,对自己的言行学说坚信不疑,到五十岁,懂得世事发展的自然规律,到六十岁,已能理解和...
伦敦各所大学的地址以及邮政编码! 送高分!
1.帝国理工学院Imperial College Imperial College London, South Kensington Campus, London SW7 2AZ,UK 伦敦帝国理工学院,伦敦南肯辛顿校园,SW7 2 az,英国 2.伦敦政治经济学院 LSE The London School of Economics and Political Science, Houghton Street, London WC2A 2AE, UK 伦敦政治经济学院,霍顿...
!!!急!!!学国际商法专业 以后就业能干什么?
学国际商法专业,以后就业能进入到司法机关、律师事务所、企业和银行、高校等。国际商法专业方向的目标是为国际和国内两个市场培养优秀的法律工作者。国际商法专业的就业前景良好,可进入到司法机关、律师事务所、企业和银行、高校等等,优秀的同学争以后还能争取到进入商务部的机会。特点:国际商法专业方向的...
鲁迅关于学习的名言还有哪些?急急急!!!
1、读书要眼到、口到、心到、手到、脑到。——鲁迅 2、孩子是要别人教的,毛病是要别人医的,即使自己是教员或医生。但做人处事的法子,却恐怕要自己斟酌,许多人开来的良方,往往不过是废纸。——鲁迅《彷徨》3、哪里有天才,天才只是把别人喝咖啡的工夫都用在了工作上了。——鲁迅《朝花夕拾》4...
在胡迪凡: #include<stdio.h>#include<stdlib.h>#include<conio.h> typedef struct{ int num; char name[20]; float score; }DATA; struct s{ DATA date; struct s*next; }; typedef struct s STU; STU*input() { STU*p1,*h=NULL,*p2; int n,i; system("cls"); printf("\n请输入...
赣县13588854234: 急!!!!!!!!学生成绩管理系统nbsp;C语言程序设计?
在胡迪凡: #includeamp;lt;iostream.hamp;gt;nbsp;#includeamp;lt;string.hamp;gt;nbsp;#includeamp;lt;fstream.hamp;gt;nbsp;classnbsp;stunbsp;{nbsp;charnbsp;name[20];nbsp;doublenbsp;math,chinese,english,average,sum;nbsp;public:nbsp;stu()nbsp;{nbsp;}...
赣县13588854234: 急求 学生成绩管理系统 请用面向对象方法设计并实现如下功能(c++) - ?
在胡迪凡: // 学生成绩管理系统.cpp : 定义控制台应用程序的入口点.//#include "stdafx.h"#define N 2 struct StudentType { char no[10]; char name[10]; double foreigen; double spec1; double spec2; double total; }; void InputMarks(struct StudentType student...
赣县13588854234: c语言 学生成绩管理系统设计学生成绩信息包括:学号,姓名,三门课程成绩(数学、英语和计算机)等.主要功能:(1) 计算各个学生的总分及平均分,... - ?
在胡迪凡:[答案] 希望对你有所帮助.#include"stdio.h"#include"stdlib.h"#include"string.h"#define N 3typedef struct z1{ char no[11]; char name[15]; int score[N]; float sum; float average; int order; ...
赣县13588854234: 急求“学生成绩统计管理系统”基于C++的 - ?
在胡迪凡: //#include "stdafx.h"#include "string.h"#include "stdio.h"#include "stdlib.h"#include "conio.h"#define M 30#define N 5/**学号长度*/#define T 10struct Student{char Stu_Name[T];/**学生姓名*/char Stu_ID[N];/**学生学号*/ ...
赣县13588854234: c语言设计学生成绩管理系统 - ?
在胡迪凡: #include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<list> #include<cstring> #include<map> #include<set> #include<algorithm> #include<queue> using namespace std; int n; struct birth {int year,month,day; };struct ...
赣县13588854234: c语言编写学生成绩管理系统 - ?
在胡迪凡: #include <stdio.h> void main() { /*输入资料*/ int student[5][4],i; for (i=0; i<=4; i++); scanf("%d,%d,%d \n",student[i][0],student[i][1],student[i][2],student[i][3]) /*平均分*/ for (i=0; i<=4; i++); printf("%f",(float)((student[i][1]+student[i][2]+student[i][3]...
赣县13588854234: 求怎么用C语言做一个学生成绩管理系统 - ?
在胡迪凡: 去年写的,你稍微改下加个成绩就行#include#include#include FILE *fp; struct student{ char name[10]; char number[12]; char age[3]; struct student *next; }; struct student *creat(); //手动创建链表 struct student *build_list(); //从文件读取信息...
赣县13588854234: 1. 编写一个学生成绩管理系统,其中包含有5个学生的基本信息. 2. 能运用自己编写的程序对学生成绩进行一定的处理. 基本内容:设有5个学生,每个学生有3门课程的成绩,从键盘输入相关数据(包括学生学号、姓名、3门课成绩),计算出平均成绩,并按平均成绩由高到低的顺序输出. - ?
在胡迪凡: #include <stdio.h> struct student { int xuehao; float score[3]; float sum; }; struct student s[1000];//该系统可支持1000名学生的信息录入 int size;/*学生人数*/ int i=0,j=0; float sum=0,jun=0; /*录入学生信息次数判断*/ void shuru() { printf("请确定...
赣县13588854234: 用C语言做一个学生成绩管理系统 输入学生人数,录入学生成绩 - ?
在胡迪凡: #include <algorithm>