学生成绩管理系统数据结构C语言版源代码Word文件下载.docx
《学生成绩管理系统数据结构C语言版源代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据结构C语言版源代码Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
voidmenu();
/*主菜单*/
voidsecret();
/*安全验证*/
structstudents*Input();
/*新建学生信息*/
voidfprint(structstudents*head);
/*将信息导入文件可追加*/
voidfprint_(structstudents*head);
/*将信息导入文件并覆盖*/
voidBrowse(structstudents*head);
/*浏览全部学生信息*/
structstudents*create(structstudents*head
int*n);
/*从tushu_list中读取数据构建链表*/
voidFindofNum(structstudents*head);
/*按学号查询学生信息*/
voidFindofNname(structstudents*head);
/*按姓名查询学生信息*/
voidSortEnglish(structstudents*head);
/*按英语成绩排序*/
voidSortJava(structstudents*head);
/*按Java成绩排序*/
voidSortSjjg(structstudents*head);
/*按数据结构成绩排序*/
voidSortSzdl(structstudents*head);
/*按数字逻辑电路成绩排序*/
voidSortJsj(structstudents*head);
/*按计算机组成原理成绩排序*/
structstudents*Delete(structstudents*head
charm[15]);
/*按学号删除学生成绩信息*/
structstudents*Revise();
/*修改学生信息(按编号修改)*/
voidmenu()
{
printf("
\n\n"
);
***************************************************\n"
学生成绩管理系统\n"
---------------------------------------------------\n"
1-添加新同学2-浏览学生信息\n"
3-按学号查询4-按姓名查询\n"
5-按成绩排序6-修改学生信息\n"
7-删除学生信息0-退出系统\n"
___________________________________________________\n"
}
voidSortmenu()
按成绩排序\n"
1-大学英语2-JAVA编程\n"
3-数据结构4-数字逻辑电路\n"
5-计算机组成原理0-返回上级菜单\n"
voidRevisemenu()
\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
1--修改学生姓名2--修改学生学号\n"
3--修改学生性别4--修改英语成绩\n"
5--修改JAVA成绩6--修改数据结构\n"
7--修改数字电路8--修改计算计\n"
0--返回上级菜单\n"
voidsecret()
chara[20];
**欢迎来到学生信息管理系统
进入系统前请先进行密码验证---"
"
do{
gets(a);
/*输入密码*/
system("
cls"
/*调用库函数清屏*/
printf("
对不起!
您输入的密码有误
请重新输入---"
}while(strcmp(a
"
0605"
)!
=0);
/*单一密码"
*/
system("
structstudents*Input()
structstudents*p1
*p2
*head;
/*建立辅助结点及头结点*/
charName;
intn=0
x;
\n请按对应项输入学生信息以#结束:
\n"
姓名学号性别英语Java数据结构数字电路计算机组成原理\n"
p1=(structstudents*)malloc(sizeof(structstudents));
head=p2=p1;
do{/*使用dowhile语句输入学生信息*/
scanf("
%s"
&
p1->
Name);
if(strcmp(p1->
Name
#"
)==0)break;
/*判断结束符*/
else
scanf("
%s%s%lf%lf%lf%lf%lf"
p1->
Num
Sex
English
Java
Sjjg
Szdl
Jsj);
Name='
#'
;
p1=(structstudents*)malloc(sizeof(structstudents));
p2->
next=p1;
p2=p1;
n++;
}while
(1);
p1->
next=NULL;
学生信息输入结束!
getchar();
是否保存学生信息?
(1.是/2.否):
scanf("
%d"
x);
if(x==1)
fprint(head);
/*调用函数保存至文件*/
else
\n文件没有被保存!
returnhead;
/*返回头指针*/
voidfprint(structstudents*head)
structstudents*p1;
if((fp=fopen("
students_list.txt"
a"
))==NULL)
{
Fileopenerror!
exit(0);
}
for(p1=head;
next!
=NULL;
p1=p1->
next)/*遍历*/
fprintf(fp
%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"
/*将学生信息写入文件*/
fclose(fp);
/*关闭文件*/
\n学生信息已成功保存到文件students_list.txt中!
voidfprint_(structstudents*head)
w"
p1!
/*关闭文件*/;
voidBrowse(structstudents*head)
a+"
-------------------------------------------------------------\n"
姓名学号性别英语Java数据结构数字电路计算机\n"
while(!
feof(fp))/*读取并输出*/{
fscanf(fp
%s%s%s%lf%lf%lf%lf%lf"
Name
};
if(fclose(fp))
Cannotclosethefile!
structstudents*create(structstudents*head
int*n)
structstudents*p
*p1
*p2;
feof(fp))
(*n)++;
p=(structstudents*)malloc(sizeof(structstudents));
p->
p->
if(head==NULL)
{
head=p;
p1=p;
}
p1->
next=p;
p2=p1;
p2->
free(p);
(*n)--;
voidFindofName(structstudents*head)
inti=0
n=0;
charb[20];
structstudents*p;
head=create(head
n);
p=head;
\n请输入要查询的学生姓名:
b);
while(p!
=NULL){
if(strcmp(p->
b)==0){
printf("
p->
i++;
p=p->
next;
if(i==0)
\n对不起!
没有找到名为"
的学生信息!
voidFindofNum(structstudents*head)
n;
\n请输入要查询的学生学号:
b)==0){
没有找到学号为"
学生信息!
voidSortEnglish(structstudents*head)
structstudents*p
*tail;
/*定义中间变量*/
intn;
while(head->
=NULL)/*利用选择法排序*/
tail=NULL;
English=p->
English;
/*将链表中第一个成绩赋给English*/
=NULL)
if((p->
English)>
English)/*比较*/
English=p->
tail=p;
p=head;
while(p->
if(p->
English==English){
printf("
p->
if(p==head)
head=head->
else
tail->
next=p->
}
p=p->
if(p->
English==English){/*分数相同时无需比较*/
tail->
}
}
/*将链表赋给结构体指针*/
p->
/*浏览排序后的信息*/
按英语成绩排序后输出如上(注:
此过程不保存至文件):
return;
/*按JAVA成绩排序*/
voidSortJava(structstudents*head)
Java=p->
Java;
/*将链表中第一个成绩赋给Java*/
Java)>
Java)/*比较*/
Java=p->
Java==Java){
Java==Java){/*成绩相同时无需比较*/
按Java成绩排序后输出如上(注:
/*按数据结构排序*/
voidSortSjjg(structstudents*head)
Sjjg=p->
Sjjg;
/*将链表中第一个成绩赋给Sjjg*/
Sjjg)>
Sjjg)/*比较*/
Sjjg=p->
Sjjg==Sjjg){