C语言课程设计学生成绩管理系统源代码吉林大学1Word格式.doc
- 文档编号:1450074
- 上传时间:2023-04-30
- 格式:DOC
- 页数:12
- 大小:44.50KB
C语言课程设计学生成绩管理系统源代码吉林大学1Word格式.doc
《C语言课程设计学生成绩管理系统源代码吉林大学1Word格式.doc》由会员分享,可在线阅读,更多相关《C语言课程设计学生成绩管理系统源代码吉林大学1Word格式.doc(12页珍藏版)》请在冰点文库上搜索。
for(i=0;
i<
=4;
i++)
{
s->
data.sum+=s->
data.score[i];
}
return(s->
data.sum);
}
floatAverstu(linklistL){
linklistq;
q=L;
Sumstu(q);
q->
data.average=q->
data.sum/4;
return(q->
data.average);
voidTimeNow()/*获取系统时间*/
structtm*ptm;
longts;
inty,m,d,h,n,s;
ts=time(NULL);
ptm=localtime(&
ts);
y=ptm->
tm_year+1900;
//年
m=ptm->
tm_mon+1;
//月
d=ptm->
tm_mday;
//日
h=ptm->
tm_hour;
//时
n=ptm->
tm_min;
//分
s=ptm->
tm_sec;
//秒
intMenu()/*菜单函数*/
{
intn;
printf("
\t\t\t\n\n\n\n欢迎使用学生成绩管理系统\n\n\t\t\t按任意键进入系统!
"
);
system("
pause"
cls"
**************************************************************************\n"
\n\t\t\t学生成绩管理系统\n\t\t\t\t制作人陈光林(52101407)\n"
-------------------------------菜单(Menu)---------------------------------\n"
\n\t1.Enterlist 输入记录\n"
\t2.Deletearecordfromlist删除记录\n"
\t3.Printlist 显示所有记录\n"
\t4.Searchrecordonname 按照姓名查找记录\n"
\t5.Savethefile 保存记录到文件中\n"
\t6.Loadthefile 从文件中读入记录\n"
\t7.Computethescore 计算所有学生的总分和均分\n"
\t8.Querybyclass 按班级查询显示学生总分\n"
\t9.Insertrecordtolist插入记录到表中\n"
\t0.Quit 退出系统\n"
---------------------------------------------------------------------------\n"
****************************************************************************\n"
do{
printf("
\n\t\t\t请选择你需要的操作(0—9):
scanf("
%d"
&
n);
}while(n<
1||n>
5);
/*如果选择项不在1—9之间则重输*/
return(n);
/*返回选择项*/
/***************************************************************************/
linklistinitlist(void)/*建立一个空链表*/
linklistL=(linklist)malloc(sizeof(st));
L->
next=NULL;
returnNULL;
/*建立学生信息链表*/
st*creastlist(linklistL)
inti;
floats;
linklistp;
for(;
;
)
{
p=(linklist)malloc(sizeof(st));
/*开辟新的节点*/
if(!
p)
{
printf("
\nOutofmemory."
return(L);
}
printf("
请输入学生学号"
scanf("
%s"
p->
data.IDNumber);
if(p->
data.IDNumber[0]=='
0'
)break;
请输入姓:
data.FamilyName);
请输入名:
data.GivenName);
请输入性别(0女/1男):
scanf("
p->
data.sex);
请输入生日:
%d%d%d"
data.BirthYear,&
data.BirthMonth,&
data.BirthDay);
printf("
请输入成绩\n"
4);
s=0;
for(i=0;
4;
i++)
{
do
{
printf("
score%d:
i+1);
scanf("
%f"
data.score[i]);
if(p->
data.score[i]<
0||p->
data.score[i]>
100)
printf("
Dataerror,pleaseenteragain.\n"
}while(p->
100);
s=s+p->
p->
data.sum=s;
data.average=s/4;
next=L;
L=p;
}
return(L);
}
/***********************************************************************************************/
/*
voidcreastlist(linklistL)
st*p;
linklisthead=NULL;
p=(linklist)malloc(sizeof(st));
p=L;
for(;
)
{
printf("
请输入学生学号:
\n"
scanf("
请依次输入学生姓名:
%s%s"
data.FamilyName,p->
请输入出生年月日:
%d%d%d"
data.BirthYear,p->
data.BirthMonth,p->
TimeNow();
if(p->
data.BirthYear>
=ptm->
tm_year+1900){printf("
错误!
学生年龄不能为负值!
请重新输入!
continue;
elseif(p->
data.BirthMonth>
tm_mon+1){printf("
elseif(p->
data.BirthDay>
tm_mday){printf("
else{
printf("
请输入性别(0代表女,1代表男:
scanf("
if(p->
data.sex!
=0||p->
=1){printf("
else{
printf("
请分别输入外语、高数、C语言、马哲四门成绩:
scanf("
%f%f%f%f"
data.score[0],&
data.score[1],&
data.score[2],&
data.score[3]);
p->
next=head;
head=p;
}
}
}
*/
/*输出所有学生的信息*/
voidprint(linklisthead)
p=head;
printf("
**************************************************************************"
|学号|姓名|性别|出生年月日|外语C语言高数马哲|总分|平均分|"
--------------------------------------------------------------------------"
Sumstu(p);
Averstu(p);
while(p!
=NULL)
%s%s%s%d%d%d%f%f%f%f%f%f"
data.IDNumber,p->
data.GivenName,
p->
data.sex,p->
data.BirthDay,
data.score[0],p->
data.score[1],p->
data.score[2],p->
data.score[3],p->
data.sum,p->
p=p->
next;
}
printf("
/********************************************************************************************/
voidinsert(linklistL){//插入新的结点
linklists,p=L;
stue;
s=(linklist)malloc(sizeof(st));
s->
data=e;
//头插法
next=p->
p->
next=s;
/*******************************************************************************************/
voidsearch(linklistL){
intflag=1;
charfamilyname[16];
linklistp;
请输入要查询的学生姓名:
familyname);
p=L->
while(p!
{
if(strcmp(familyname,p->
data.FamilyName)==0){
system("
Sumstu(p);
Averstu(p);
printf("
printf("
printf("
data.sum,
p->
flag=0;
break;
else
p=p->
}
if(flag)printf("
没有该学生信息或输入错误"
Menu();
/*******************************************************************************************************/
voidDelete(linklistL){
linklistp,q;
charnum[16];
intlabel=1;
printf("
请输入要删除的学生学号:
scanf("
num);
p=L->
q=L;
do
{
if(strcmp(num,p->
data.IDNumber)==0)
{
system("
printf("
\t发现要删除的学生信息,确认删除吗?
\t\t确认(Y)取消(N)"
getchar();
if('
y'
||'
Y'
{
q->
deletep;
printf("
删除成功!
label=0;
}
else{
exit(0);
else{
q=q->
p=q->
}
}while(q->
next!
=NULL);
if(label)printf("
输入错误或者信息不存在!
/*********************************************************************************************************/
voidPaixu(linklistL){
linklistp;
floats1=90,s2=80,s3=70,s4=60;
p=L;
inti;
for(i=0;
i++){
****************************************************"
第%d科90分以上的学生:
i);
if(p->
=s1)
{printf("
%s%s%s%f"
p->
else{
p=p->
}
if(s2<
=p->
s1)
{printf("
}
else{
p=p->
if(s3<
s2)
if(s4<
s3)
if(p->
s4)
}
}
/***************************************************************************************************/
/*voidQuery(linklistL){//此处假设学号形式为20101407
charclasss[2];
floatsumclass;
请输入您想查询的班级:
classs);
do{
sumclass=p-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 成绩管理系统 源代码 吉林大学