学生成绩管理系统c语言Word下载.docx
- 文档编号:7029228
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:29
- 大小:139.25KB
学生成绩管理系统c语言Word下载.docx
《学生成绩管理系统c语言Word下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统c语言Word下载.docx(29页珍藏版)》请在冰点文库上搜索。
/*姓*/
charGivenName[16];
/*名*/
intsex;
/*性别(0代表“女”,1代表“男”)*/
intBirthYear;
/*出生年*/
intBirthMonth;
/*出生月*/
intBirthDay;
/*出生日*/
floatscore[4];
/*成绩*/
floatsum;
/*总分*/
floataverage;
/*平均分*/
structSt1*next;
};
StudentNode
该程序中需要处理的基础数据有:
学生基本信息:
学号(例如2003级12班6号写作20031206)、姓、名、性别、出生年月日、课程名称(外语SCORE[0]、高数SCORE[1]、C语言SCORE[2]、马哲SCORE[3])、考试成绩等。
因此定义结构体重要包括所以要素,另外,本程序用链表方法来处理对象。
对象之间连接起来的程序为:
p1=p1->
next.数据交换的代码为:
p2=p1->
next;
P1->
next=p2->
P2->
next=p1;
P1=p2;
五:
各模块的功能
该程序包含的函数以及作用:
head=Enterlist()输入记录
head=Delet(head)从表中删除记录
Searchrecordonname(head)按照姓名查找记录
PrintfSavethefile(head)显示链表中所有记录
Loadthefile(head)从文件中读入记录
Computethescore(head)计算所有学生的总分和均分
Querybyclass(head)按班级查询显示学生成绩
head=Insert(head)插入记录到表中
exit(0)退出
sortbyaverage(head)以平均成绩排序
waiyu(head)输出英语成绩的平均分,总分,各分数段的同学的信息
gaoshu(head)输出高数成绩的平均分,总分,各分数段的同学的信息
cyuyan(head)输出c语言成绩的平均分,总分,各分数段的同学的信息
mazhe(head)输出马哲绩的平均分,总分,各分数段的同学的信息
bujige(head)输出不及格同学的信息
六:
程序结构图
七:
试验结果(包括输入数据和输出结果)
菜单:
密码是:
sundayang。
然后回车
输入2:
输入11个0,结束输入
输入错误,会有提示。
。
输入正确信息后,再输入11个零退出输入:
输入4:
按平均成绩排序
输入9,按照姓氏查询学生信息:
输入3,删除学生信息:
输入8退出程序并且保存:
输入9退出程序。
八:
体会
此次的编程实验是“学生成绩管理系统”,主要运用链表实现其功能。
为了做好本次试验,我在实验之前通过翻阅书籍和上网查询获取了所用的基础函数。
然后分析每一模块怎么做,思路是什么。
把整个一个大程序分为几个部分去做,这样编程才会更简单。
为了使做出的系统更加新颖,我在书上学习了一种新的函数getch,这种函数能将在键盘上键入的信息在屏幕上不显示,只显示*号。
这样一个密码系统就完成了。
在完成程序的过程中,我也碰到了很多问题,函数误用,调用指针不明确,还有一些细小的问题,所以以后的实验过程中我会更加仔细。
附录:
程序清单及源程序
#include<
stdio.h>
malloc.h>
string.h>
#include<
stdlib.h>
conio.h>
#defineNULL0
#defineLENsizeof(StudentNode)
typedefstructSt1{
/*学号*/
charGivenName[16];
/*性别(0代表“女”,1代表“男”)*/
/*出生年*/
intBirthMonth;
/*出生月*/
intBirthDay;
/*出生日*/
/*成绩*/
/*总分*/
/*平均分*/
}StudentNode;
intn,m;
charmima[12];
/*********密码验证************/
voidpaw()
intk,i,p=0;
charc;
system("
cls"
);
printf("
\n\n\n\n"
\t"
for(k=0;
k<
15;
k++)
printf("
★☆"
★"
\n"
2;
\t☆\t\t\t\t\t\t\t☆\n"
\t☆学生成绩管理系统☆\n"
\t☆\t\t\t\t\t\t☆\n"
\t☆\t\t制作人:
李赛男\t\t\t☆\n"
36,36);
\n\n\t你最崇拜、最仰慕的人是谁:
"
for(i=0;
i<
20;
i++)
{
c=getch();
//输入密码
if(c=='
\r'
){
break;
}
else
{
printf("
*"
mima[i]=c;
}
while(strcmp(mima,"
wangqingbin"
)!
=0)//验证密码
p++;
if(p>
=3)
\n\n\t\t----->
输入密码错误超过3次,自动退出程序!
<
-----\n"
exit(-1);
//输入密码次数超过三次则退出程序
密码错误%d次,请重新输入!
p);
\t\t----->
密码:
for(i=0;
c=getch();
if(c=='
break;
}
else
{
printf("
mima[i]=c;
}
/*******登陆初始界面********/
voidstart()
\n\n\n\n\n"
\t*****************************************************************\n\n"
\t\t\t欢迎使用学生成绩管理系统\n\n"
\t初始化信息:
\t\t\t"
1、载入文件\t2、手动录入\n\n\n"
\t请选择菜单:
scanf("
%d"
&
m);
/**********菜单界面************/
voidindex()
------------------------------------------------------------------------\n"
\t*************欢迎使用学生成绩管理系统**************\n\n"
\t1、显示学生信息2、添加学生信息3、删除学生信息\n\n"
\t4、按平均分排序5、按姓名查找学生信息6、计算总分和平均分\n\n"
\t7、班级成绩总结8、保存并退出9、退出\n\n"
------------------------------------------------------------------------\n\n"
请选择菜单:
/******创建动态链表*******/
StudentNode*creat(void)
StudentNode*head;
StudentNode*p1,*p2;
\n\n\t*****************************欢迎使用学生成绩管理系统*******************************\n\n"
n=1;
p1=p2=(StudentNode*)malloc(LEN);
\t(学号,姓,名,性别,出生年,出生月,出生日,外语成绩,高数成绩,C语言成绩,马哲成绩)\n"
\t"
%s%s%s%d%d%d%d%f%f%f%f"
p1->
IDNumber,&
FamilyName,&
GivenName,&
sex,&
BirthYear,&
BirthMonth,
&
BirthDay,&
score[0],&
score[1],&
score[2],&
score[3]);
p1->
sum=p1->
score[0]+p1->
score[1]+p1->
score[2]+p1->
score[3];
average=p1->
sum/4;
head=NULL;
while(strcmp(p1->
IDNumber,"
0"
))
while(p1->
BirthYear<
1985||p1->
BirthMonth>
12||p1->
BirthMonth<
0||(p1->
sex!
=1&
&
=0)||p1->
BirthDay>
31||p1->
BirthDay<
0||p1->
score[0]>
100||p1->
score[0]<
score[1]>
score[1]<
score[2]>
score[2]<
0){
输入的数据不合法!
请重新输入\n"
scanf("
&
n=n+1;
if(n==2)head=p1;
elsep2->
p2=p1;
p1=(StudentNode*)malloc(LEN);
scanf("
p1->
p2->
next=NULL;
return(head);
/*******输出学生信息*******/
voidprint(StudentNode*head)
\n\n***************************************欢迎使用学生成绩管理系统************************************\n\n"
StudentNode*p;
\t┏━━━━┳━━━┳━━━┳━━━━━┳━━━━┳━━━━┳━━━━━┳━━━━┳━━━━┳━━━┓\n"
\t┃学号┃姓名┃性别┃出生日期┃外语成绩┃高数成绩┃C语言成绩┃马哲成绩┃平均成绩┃总成绩┃\n"
\t┣━━━━╋━━━╋━━━╋━━━━━╋━━━━╋━━━━╋━━━━━╋━━━━╋━━━━╋━━━┫\n"
p=head;
if(head!
=NULL)
do
\t┃%-8s┃%1s%s\t┃%-6d┃%4d/%2d/%2d┃%-8.2f┃%-8.2f┃%-10.2f┃%-8.2f┃%-8.2f┃%-6.2f┃\n"
p->
IDNumber,p->
FamilyName,p->
GivenName,p->
sex,p->
BirthYear,
p->
BirthMonth,p->
BirthDay,p->
score[0],p->
score[1],p->
score[2],p->
score[3],p->
average,p->
sum);
p=p->
}while(p!
=NULL);
\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
pause"
/*******按平均分排序******/
voidcomp(StudentNode*p)
StudentNodet,*p2;
StudentNode*p0,*p1;
p0=p;
while(p0->
next!
p1=p0->
while(p1!
if(p0->
average>
average)
t=*p1;
*p1=*p0;
*p0=t;
p2=p1->
p1->
next=p0->
p0->
next=p2;
p1=(p1->
next);
p0=p0->
print(p);
/******删除学生信息*****/
StudentNode*del(StudentNode*head)
chardel_no[16];
\n\n\t\t**********欢迎使用学生成绩管理系统***********\n\n"
\t\t\t提示:
输入0结束当前操作\n\n"
\t\t要删除学生的学号:
%s"
del_no);
while(strcmp(del_no,"
{
if(head==NULL){printf("
\n无信息\n"
returnhead;
p1=head;
while(strcmp(del_no,p1->
IDNumber)&
=NULL){p2=p1;
if(!
strcmp(del_no,p1->
IDNumber))
if(p1==head)head=p1->
elsep2->
next=p1->
n=n-1;
删除成功!
elseprintf("
\n没找到此学生信息\n"
/******添加学生信息*****/
StudentNode*insert(StudentNode*head)
StudentNode*p,*p0;
\t\t\t请输入要添加的信息\n\n"
p=(StudentNode*)malloc(LEN);
p->
p->
sum=p->
score[0]+p->
score[1]+p->
score[2]+p->
average=p->
while(strcmp(p->
))
if(head==NULL)
head=p;
p0=head;
next=p0;
while(p->
1985||p->
12||p->
0||(p->
=0)||p->
31||p->
0||p->
100||p->
}n=n+1;
p=(StudentNode*)malloc(LEN);
p->
average=p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 语言
![提示](https://static.bingdoc.com/images/bang_tan.gif)