c++成绩系统程序代码Word下载.docx
- 文档编号:4905819
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:23
- 大小:21.51KB
c++成绩系统程序代码Word下载.docx
《c++成绩系统程序代码Word下载.docx》由会员分享,可在线阅读,更多相关《c++成绩系统程序代码Word下载.docx(23页珍藏版)》请在冰点文库上搜索。
floatshuxue;
/*数学成绩*/
structscorenode*next;
};
typedefstructscorenodescore;
intn,k;
/*n,k为全局变量,本程序中的函数均可以使用它*/
/*==================================================================================*/
score*creat2311(void)
/*函数creat2311,功能:
创建链表,此函数带回一个指向链表头的指针*/
{
score*head;
score*p1,*p2,*p3,*max;
inti,j;
floatfen;
chart[10];
n=0;
p1=p2=p3=(score*)malloc(LEN);
head=p3;
/*开辟一个新单元*/
printf("
请输入学生资料,输0退出!
"
);
repeat1:
请输入学生学号(学号应大于0):
"
/*输入学号,学号应大于0*/
scanf("
%d"
&
p1->
number);
while(p1->
number<
0)
{getchar();
输入错误,请重新输入学生学号:
}
/*输入学号为字符或小于0时,程序报错,提示重新输入学号*/
if(p1->
number==0)
gotoend;
/*当输入的学号为0时,转到末尾,结束创建链表*/
else
{
p3=head;
if(n>
{for(i=0;
i<
n;
i++)
{if(p1->
number!
=p3->
number)
p3=p3->
next;
{printf("
学号重复,请重输!
gotorepeat1;
/*当输入的学号已经存在,程序报错,返回前面重新输入*/
}
}
请输入学生姓名:
%s"
name);
/*输入学生姓名*/
请输入语文成绩(0~100):
/*输入语文成绩,成绩应在0-100*/
%f"
yuwen);
yuwen<
0p1->
yuwen>
100)
{getchar();
输入错误,请重新输入语文成绩"
/*输入错误,重新输入语文成绩直到正确为止*/
}
请输入英语成绩(0~100):
/*输入英语成绩,成绩应在0-100*/
yingyu);
yingyu<
yingyu>
输入错误,请重新输入英语成绩"
/*输入错误,重新输入英语成绩直到正确为止*/
请输入数学成绩(0~100):
/*输入数学成绩,成绩应在0-100*/
shuxue);
shuxue<
shuxue>
输入错误,请重新输入数学成绩"
}/*输入错误,重新输入数学成绩直到正确为止*/
head=NULL;
while(p1->
=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->
next=p1;
p2=p1;
p1=(score*)malloc(LEN);
repeat2:
printf("
输入错误,请重新输入学生学号:
else
gotorepeat2;
}/*输入错误,重新输入语文成绩直到正确为止*/
}/*输入错误,重新输入英语成绩直到正确为止*/
}end:
p1=head;
p3=p1;
for(i=1;
for(j=i+1;
j<
=n;
j++)
max=p1;
p1=p1->
if(max->
number>
k=max->
number;
max->
number=p1->
p1->
number=k;
/*交换前后结点中的学号值,使得学号大者移到后面的结点中*/
strcpy(t,max->
strcpy(max->
name,p1->
strcpy(p1->
name,t);
/*交换前后结点中的姓名,使之与学号相匹配*/
fen=max->
yuwen;
yuwen=p1->
yuwen=fen;
/*交换前后结点中的语文成绩,使之与学号相匹配*/
yingyu;
yingyu=p1->
yingyu=fen;
/*交换前后结点中的英语成绩,使之与学号相匹配*/
shuxue;
shuxue=p1->
shuxue=fen;
/*交换前后结点中的数学成绩,使之与学号相匹配*/
max=head;
p1=head;
/*重新使max,p指向链表头*/
}
p2->
next=NULL;
/*链表结尾*/
输入的学生数为:
%d个!
n);
return(head);
/*=================================================================================*/
score*load2311(score*head)
/*函数load2311,功能:
从文件读入学生记录*/
{
score*p1,*p2;
intm=0;
charfilepn[10];
FILE*fp;
请输入文件路径及文件名:
filepn);
/*输入文件路径及名称*/
if((fp=fopen(filepn,"
r+"
))==NULL)
不能打开文件!
return0;
fscanf(fp,"
考试成绩治理系统
作者:
周纯钢班级:
信息023
学号:
11"
-----------------------------------------"
学号姓名语文英语数学"
/*读入表格域*/
作者:
/*打印表格域*/
m=m+1;
if(m==1)
%d%s%f%f%f"
number,p1->
name,&
yuwen,&
yingyu,&
%d%s%.1f%.1f%.1f"
p1->
yuwen,p1->
yingyu,p1->
/*文件读入与显示*/
do
if(n==1)head=p1;
elsep2->
/*开辟一个新单元*/
%d%s%f%f%f"
}while(!
feof(fp));
}printf("
/*表格下线*/
fclose(fp);
/*结束读入,关闭文件*/
return(head);
}/*================================================================================*/
/*================================================================================*/
score*add2311(score*head,score*stu)
/*函数add2311,功能:
追加学生资料,并且将所有学生资料按学号排序*/
score*p0,*p1,*p2,*p3,*max;
inti,j;
p3=stu=(score*)malloc(LEN);
/*开辟一个新单元*/
输入要增加的学生的资料!
repeat4:
stu->
/*输入学号,学号应大于0*/
while(stu->
}/*输入错误,重新输入学号*/
/******************************************************/
if(stu->
gotoend2;
/*当输入的学号为0时,转到末尾,结束追加*/
{if(stu->
gotorepeat4;
/******************************************************/
输入学生姓名:
stu->
/*输入学生姓名*/
/*输入语文成绩,成绩应在0-100*/
0stu->
/*输入错误,重新输入语文成绩直到正确为止*/
p0=stu;
if(head==NULL)
/*当原来链表为空时,从首结点开始存放资料*/
else/*原来链表不为空*/
next==NULL)/*找到原来链表的末尾*/
next=p0;
p0->
/*将它与新开单元相连接*/
next!
=NULL)/*还没找到末尾,继续找*/
p1=p1->
n=n+1;
}end2:
现在的学生数为:
/*=============================================================================*/
/*==============================================================================*/
score*search2311(score*head)
/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 成绩 系统 程序代码