C语言课程设计学生成绩管理系统源代码吉林大学1.docx
《C语言课程设计学生成绩管理系统源代码吉林大学1.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生成绩管理系统源代码吉林大学1.docx(16页珍藏版)》请在冰豆网上搜索。
C语言课程设计学生成绩管理系统源代码吉林大学1
#include
#include
#include
#include
typedefstructstudent{/*定义结构体*/
charIDNumber[16];/*学号*/
charFamilyName[16];/*姓*/
charGivenName[16];/*名*/
intsex;/*性别(0代表“女”,1代表“男”)*/
intBirthYear;/*出生年*/
intBirthMonth;/*出生月*/
intBirthDay;/*出生日*/
floatscore[4];/*成绩*/
floatsum;/*总分*/
floataverage;/*平均分*/
}stu;
typedefstructLnode
{
studentdata;
Lnode*next;
}st,*linklist;
/***************************************************************************/
structtm*ptm;
floatSumstu(linklistL);
floatAverstu(linklistL);
floatSumstu(linklistL){/*计算总分*/
linklists;
s=L;
inti;
s->data.sum=0;
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");
system("cls");
printf("**************************************************************************\n");
printf("\n\t\t\t学生成绩管理系统\n\t\t\t\t制作人陈光林(52101407)\n");
printf("-------------------------------菜单(Menu)---------------------------------\n");
printf("\n\t1.Enterlist输入记录\n");
printf("\t2.Deletearecordfromlist删除记录\n");
printf("\t3.Printlist显示所有记录\n");
printf("\t4.Searchrecordonname按照姓名查找记录\n");
printf("\t5.Savethefile保存记录到文件中\n");
printf("\t6.Loadthefile从文件中读入记录\n");
printf("\t7.Computethescore计算所有学生的总分和均分\n");
printf("\t8.Querybyclass按班级查询显示学生总分\n");
printf("\t9.Insertrecordtolist插入记录到表中\n");
printf("\t0.Quit退出系统\n");
printf("---------------------------------------------------------------------------\n");
printf("****************************************************************************\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;
printf("请输入姓:
");
scanf("%s",p->data.FamilyName);
printf("请输入名:
");
scanf("%s",p->data.GivenName);
printf("请输入性别(0女/1男):
");
scanf("%d",&p->data.sex);
printf("请输入生日:
");
scanf("%d%d%d",&p->data.BirthYear,&p->data.BirthMonth,&p->data.BirthDay);
printf("请输入成绩\n",4);
s=0;
for(i=0;i<4;i++)
{
do
{
printf("score%d:
",i+1);
scanf("%f",&p->data.score[i]);
if(p->data.score[i]<0||p->data.score[i]>100)
printf("Dataerror,pleaseenteragain.\n");
}while(p->data.score[i]<0||p->data.score[i]>100);
s=s+p->data.score[i];
}
p->data.sum=s;
p->data.average=s/4;
p->next=L;
L=p;
}
return(L);
}
/***********************************************************************************************/
/*
voidcreastlist(linklistL)
{
st*p;
linklisthead=NULL;
p=(linklist)malloc(sizeof(st));
p=L;
for(;;)
{
printf("请输入学生学号:
\n");
scanf("%s",p->data.IDNumber);
printf("请依次输入学生姓名:
\n");
scanf("%s%s",p->data.FamilyName,p->data.GivenName);
printf("请输入出生年月日:
\n");
scanf("%d%d%d",p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay);
TimeNow();
if(p->data.BirthYear>=ptm->tm_year+1900){printf("错误!
学生年龄不能为负值!
请重新输入!
");continue;}
elseif(p->data.BirthMonth>=ptm->tm_mon+1){printf("错误!
学生年龄不能为负值!
请重新输入!
");continue;}
elseif(p->data.BirthDay>=ptm->tm_mday){printf("错误!
学生年龄不能为负值!
请重新输入!
");continue;}
else{
printf("请输入性别(0代表女,1代表男:
\n");
scanf("%d",p->data.sex);
if(p->data.sex!
=0||p->data.sex!
=1){printf("错误!
学生年龄不能为负值!
请重新输入!
");continue;}
else{
printf("请分别输入外语、高数、C语言、马哲四门成绩:
\n");
scanf("%f%f%f%f",&p->data.score[0],&p->data.score[1],&p->data.score[2],&p->data.score[3]);
p->next=head;
head=p;
}
}
}
}
*/
/*输出所有学生的信息*/
voidprint(linklisthead)
{
linklistp;
p=head;
printf("**************************************************************************");
printf("|学号|姓名|性别|出生年月日|外语C语言高数马哲|总分|平均分|");
printf("--------------------------------------------------------------------------");
Sumstu(p);
Averstu(p);
wh