学生成绩管理系统源代码知识讲解.docx

上传人:b****3 文档编号:26797239 上传时间:2023-06-22 格式:DOCX 页数:24 大小:17.90KB
下载 相关 举报
学生成绩管理系统源代码知识讲解.docx_第1页
第1页 / 共24页
学生成绩管理系统源代码知识讲解.docx_第2页
第2页 / 共24页
学生成绩管理系统源代码知识讲解.docx_第3页
第3页 / 共24页
学生成绩管理系统源代码知识讲解.docx_第4页
第4页 / 共24页
学生成绩管理系统源代码知识讲解.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统源代码知识讲解.docx

《学生成绩管理系统源代码知识讲解.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统源代码知识讲解.docx(24页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统源代码知识讲解.docx

学生成绩管理系统源代码知识讲解

 

学生成绩管理系统源代码

#include

#include

#include

#include

structstudent//结构体定义

{

intnum;

charname[10];

charbirthday[10];

intCyuyan;

intshujujiegou;

structstudent*next;

};

structstudent*creat_by_input();

structstudent*get_last_student(structstudent*head);

structstudent*Print_menu_main()//主菜单

{

printf("*********************************************************************\n");

printf("|1.........输入学生信息|\n");

printf("|2.........输出学生信息|\n");

printf("|3.........查找学生信息|\n");

printf("|4.........修改学生信息|\n");

printf("|5.........插入学生信息|\n");

printf("|6.........删除学生信息|\n");

printf("|7.........排序学生信息|\n");

printf("|0.........退出系统|\n");

printf("|_____________|\n");

}

structstudent*print_table_head()

{

printf("+----------+----------+----------+----------+-------------+\n");

printf("|学号|姓名|出生日期|c成绩|数据结构成绩|\n");

printf("+----------+----------+----------+----------+-------------+\n");

}

structstudent*print_table_row(structstudent*p)

{

printf("|%10d|%10s|%10s|%10d|%10d|\n",p->num,p->name,p->birthday,p->Cyuyan,p->shujujiegou);

}

voidprint_table_bottom()

{

printf("+----------+----------+----------+----------+-------------+\n");

}

structstudent*Creat_stu_record()//建立链表

{

structstudent*plaststu=NULL,*pnewstu;

charcontinue_input='N';

structstudent*head=NULL;

while

(1)

{

if(head==NULL)

{

head=creat_by_input();

print_table_head();

print_table_row(head);

print_table_bottom();

}

else

{

pnewstu=creat_by_input();

print_table_head();

print_table_row(pnewstu);

print_table_bottom();

plaststu=get_last_student(head);

plaststu->next=pnewstu;}

printf("是否继续输入学生信息?

(Y继续,N返回菜单)\n");

getchar();

continue_input=getchar();

if(continue_input=='n'||continue_input=='N')

{

system("cls");

Print_menu_main();

break;

}

}

returnhead;

}

structstudent*creat_by_input()

{

structstudent*pnewstu=(structstudent*)malloc(sizeof(structstudent));

printf("请输入学生信息\n");

printf("学号:

");scanf("%d",&pnewstu->num);

printf("姓名:

");scanf("%s",pnewstu->name);

printf("出生年月:

");scanf("%s",pnewstu->birthday);

printf("请输入学生成绩\n");

printf("C语言:

");scanf("%d",&(pnewstu->Cyuyan));

printf("数据结构:

");scanf("%d",&(pnewstu->shujujiegou));

pnewstu->next=NULL;

returnpnewstu;

}

structstudent*get_last_student(structstudent*p)

{

if(p->next==NULL)

returnp;

else

returnget_last_student(p->next);

}

voidPrint_Stu_Doc(structstudent*head)

{

structstudent*p;

charr;

print_table_head();

if(head==NULL)

{

printf("\nNoRecords\n");

}

for(p=head;p;p=p->next)

{

printf("|%10d|%10s|%10s|%10d|%10d|\n",p->num,p->name,p->birthday,p->Cyuyan,p->shujujiegou);

printf("+----------+----------+----------+----------+-------------+\n");}

printf("(按Enter键返回主菜单)\n");

getchar();

r=getchar();

if(r!

='1')

{

system("cls");

Print_menu_main();

}

else

{

system("cls");

Print_menu_main();

}

}

structstudent*search_by_name(structstudent*head)//按姓名查找

{

charname[10];

structstudent*p=head;

charcontinue_input;

/*intisfound=0;*/

printf("请输入要查找的姓名:

");

scanf("%s",name);

printf("查找%s\n",name);

print_table_head();

while(p!

=NULL)

{

if(strcmp(p->name,name)==0)

{

print_table_row(p);

p=p->next;

/*isfound=1;*/

break;

}

p=p->next;

}

print_table_bottom();

printf("是否继续查找?

(Y继续;N返回主菜单)\n");

getchar();

continue_input=getchar();

if(continue_input=='n'||continue_input=='N')

{

system("cls");

Print_menu_main();

}

else

search_by_name(head);

}

structstudent*search_by_id(structstudent*head)//按学号查找

{

intid;

structstudent*p=head;

charcontinue_input;

/*intisfound=0;*/

printf("请输入要查找的学号:

");

scanf("%d",&id);

printf("查找%d\n",id);

print_table_head();

while(p!

=NULL)

{

if(p->num==id)

{

print_table_row(p);

p=p->next;

/*isfound=1;*/

break;

}

p=p->next;

}

print_table_bottom();

printf("是否继续查找?

(Y继续;N返回主菜单)\n");

getchar();

continue_input=getchar();

if(continue_input=='n'||continue_input=='N')

{

system("cls");

Print_menu_main();

}

else

search_by_id(head);

returnhead;

}

structstudent*modify_record_by_id(structstudent*head)//按学号修改

{

structstudent*p=head;

intid;

charcontinue_input;

printf("请输入要修改的学生的学号:

\n");

scanf("%d",&id);

while(p!

=NULL)

{

if(p->num==id)

break;

p=p->next;

}

if(p==NULL)

printf("抱歉,没有学号为%d的学生\n",id);

else

{

printf("请输入学生信息:

\n");

printf("学号:

");scanf("%d",&(p->num));

printf("姓名:

");scanf("%s",&(p->name));

printf("出生年月:

");scanf("%s",&(p->birthday));

printf("请输入学生成绩:

\n");

printf("C语言:

");scanf("%d",&(p->Cyuyan));

printf("数据结构:

");scanf("%d",&(p->shujujiegou));

print_table_head();print_table_row(p);print_table_bottom();}

printf("继续修改学生信息吗?

Y继续;N返回主菜单\n");

getchar();

continue_input=getchar();

if(continue_input=='y'||continue_input=='Y')

creat_by_input();

else

{

system("cls");

Print_menu_main();

}

returnhead;

}

structstudent*modify_record_by_name(structstudent*head)//按姓名修改

{

structstudent*p=head;

charname[10];

charcontinue_input;

printf("请输入要修改的学生的姓名:

\n");

scanf("%s",name);

while(p!

=NULL)

{

if(strcmp(p->name,name)==0)

break;

p=p->next;

}

if(p==NULL)

printf("抱歉,没有姓名为%s的学生\n",name);

else

{

printf("请输入学生信息:

\n");

printf("学号:

");scanf("%d",&(p->num));

printf("姓名:

");scanf("%s",&(p->name));

printf("出生年月:

");scanf("%s",&(p->birthday));

printf("请输入学生成绩:

\n");

printf("C语言:

");scanf("%d",&(p->Cyuyan));

printf("数据结构:

");scanf("%d",&(p->shujujiegou));

print_table_head();print_table_row(p);print_table_bottom();}

printf("继续修改学生信息吗?

Y继续;N返回主菜单\n");

getchar();

continue_input=getchar();

if(continue_input=='y'||continue_input=='Y')

creat_by_input();

else

{

system("cls");

Print_menu_main();

}

returnhead;

}

structstudent*insert_record(structstudent*head)//插入

{

structstudent*ptr1;

structstudent*ptr,*stud;

structstudent*ptr2=head;

charcontinue_input='N';

intid;

printf("请输入一个学号,在此之前插入学生信息:

");

scanf("%d",&id);

stud=creat_by_input();

ptr=stud;

if(head==NULL)

{

head=ptr;head->next=NULL;

}

elseif(head->num==id)

{

ptr->next=head;

head=ptr;

}

else

{

while(ptr2!

=NULL)

{

ptr1=ptr2;

ptr2=ptr1->next;

if(ptr2->num==id)

{

ptr1->next=ptr;

ptr->next=ptr2;

break;

}

}

}

print_table_head();

print_table_row(ptr);

print_table_bottom();

printf("是否继续插入学生信息?

(Y继续N返回主菜单)\n");

getchar();

continue_input=getchar();

if(continue_input=='y'||continue_input=='Y')

returninsert_record(head);

else

{

system("cls");

Print_menu_main();

returnhead;

}

}

structstudent*Delete_record_by_id(structstudent*head)//按学号删除

{

structstudent*p=head,*ppre=NULL;

intid;

charcontinue_input;

printf("请输入要删除的学号:

");

scanf("%d",&id);

while(p!

=NULL)

{

if(p->num==id)

break;

p=p->next;

}

if(p==NULL)

printf("抱歉,没有该学号的学生信息!

\n");

else

{

printf("确定要删除学号为%d的学生的信息吗?

(Y确定;N返回主菜单)\n",p->num);

getchar();

continue_input=getchar();

if(continue_input=='y'||continue_input=='Y')

{

ppre=head;

if(ppre==p)

{

head=p->next;

printf("\n");

free(p);

}

else

{

while(ppre!

=NULL)

{

if(ppre->next==p)

{

ppre->next=p->next;

free(p);

break;

}

ppre=ppre->next;

}

}

printf("删除成功!

");

}

//Print_menu_main();

}

printf("继续删除学生信息吗?

(Y继续;N返回主菜单)");

getchar();

continue_input=getchar();

if(continue_input=='y'||continue_input=='Y')

Delete_record_by_id(head);

else

{

system("cls");

Print_menu_main();

returnhead;

}

return0;

}

structstudent*Delete_record_by_name(structstudent*head)//按姓名删除

{

structstudent*p=head,*ppre=NULL;

charname[10];

charcontinue_input;

printf("请输入要删除的姓名:

");

scanf("%s",name);

while(p!

=NULL)

{

if(strcmp(p->name,name)==0)break;

p=p->next;

}

if(p==NULL)

{

printf("抱歉,没有该姓名的学生信息!

\n");

gotoend;

}

else

printf("确定要删除姓名为%s的学生的信息吗?

(Y确定;N返回主菜单)",p->name);

printf("\n");

getchar();

continue_input=getchar();

if(continue_input=='y'||continue_input=='Y')

{

ppre=head;

if(ppre==p)

{

head=p->next;

free(p);

}

else

{

while(ppre!

=NULL)

{

if(ppre->next==p)

{

ppre->next=p->next;

free(p);

break;

}

ppre=ppre->next;

}

}

printf("删除成功!

");

}

//elsePrint_menu_main();

end:

printf("继续删除学生信息吗?

(Y继续;N返回主菜单)");

printf("\n");

getchar();

continue_input=getchar();

if(continue_input=='Y'||continue_input=='y')

Delete_record_by_name(head);

else

{

system("cls");

Print_menu_main();returnhead;

}

return0;

}

structstudent*Sorting_record_by_id(structstudent*head)//按学号排序

{

inti=0,j,k,r;

structstudent*pt1,*pt2,*pt,m;

if(head==NULL)

{

printf("现在无同学记录\n");

printf("(按Enter键返回主菜单)\n");

getchar();

r=getchar();

if(r!

='1')

{

system("cls");

Print_menu_main();

}

else

{

system("cls");

Print_menu_main();

}

}

else

{

pt1=head;

pt2=head->next;

for(pt=head;pt;pt=pt->next)

i++;

for(j=1;j

{

pt1=head;

pt2=head->next;

for(k=1;k

{

if(pt1->num>pt2->num)

{

m=*pt1;

*pt1=*pt2;

*pt2=m;

pt2->next=pt1->next;

pt1->next=pt2;

}

pt1=pt2;

pt2=pt1->next;

}

}

}

print_table_head();

for(pt=head;pt;pt=pt->next)

{

pr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1