C语言课程设计报告学生成绩管理系统1_精品文档Word文档下载推荐.doc
《C语言课程设计报告学生成绩管理系统1_精品文档Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告学生成绩管理系统1_精品文档Word文档下载推荐.doc(16页珍藏版)》请在冰豆网上搜索。
![C语言课程设计报告学生成绩管理系统1_精品文档Word文档下载推荐.doc](https://file1.bdocx.com/fileroot1/2022-10/6/bb0b91f3-3359-42b9-a31b-a672390cd3b5/bb0b91f3-3359-42b9-a31b-a672390cd3b51.gif)
显示数据
查询
删除
输出界面
插入数据
退出系统
按学号
按姓名
保存数据吧
按景平均成绩
选择7
选择6
选择5
选择4
选择3
选择2
选择1
选择8
按平均成绩高低i
读取数据吧
三门成绩
学号
姓名
五、界面设计
此系统界面采用图形和数字化菜单设计。
主界面设计如下:
-----------------------------------------------------------------------------------------
欢迎进入
学生成绩管理系统
-----制作者:
武汉纺织大学理学院信科092班岳英明
************************主菜单**********************
1.登记学生资料2.删除学生资料
3.查找学生资料4.修改学生资料
5.保存学生资料6.退出系统
*********************************************************
六、程序代码
#include"
stdio.h"
stdlib.h"
string.h"
intshoudsave=0;
/**/
structstudent
{
charnum[10];
/*学号*/
charname[20];
charsex[4];
intcgrade;
intmgrade;
integrade;
inttotle;
intave;
charneartime[10];
/*最近更新时间*/
};
typedefstructnode
structstudentdata;
structnode*next;
}Node,*Link;
voidmenu()
printf("
*********************************主菜单*****************************************"
);
\t1登记学生资料\t\t\t\t\t2删除学生资料\n"
\t3查询学生资料\t\t\t\t\t4修改学生资料\n"
\t5保存学生资料\t\t\t\t\t0退出系统\n"
********************************************************************************\n"
}
voidprintstart()
-----------------------------------------------------------------------\n"
voidWrong()
\n=====>
提示:
输入错误!
\n"
voidNofind()
没有找到该学生!
voidprintc()/*本函数用于输出中文*/
学号\t姓名性别英语成绩数学成绩C语言成绩总分平均分\n"
voidprinte(Node*p)/*本函数用于输出英文*/
%-12s%s\t%s\t%d\t%d\t%d\t%d\t%d\n"
p->
data.num,p->
data.name,p->
data.sex,p->
data.egrade,p->
data.mgrade,p->
data.cgrade,p->
data.totle,p->
data.ave);
Node*Locate(Linkl,charfindmess[],charnameornum[])/*该函数用于定位连表中符合要求的接点,并返回该指针*/
Node*r;
if(strcmp(nameornum,"
num"
)==0)/*按学号查询*/
r=l->
next;
while(r!
=NULL)
if(strcmp(r->
data.num,findmess)==0)
returnr;
r=r->
elseif(strcmp(nameornum,"
name"
)==0)/*按姓名查询*/
data.name,findmess)==0)
return0;
voidAdd(Linkl)/*增加学生*/
Node*p,*r,*s;
r=l;
s=l->
while(r->
next!
/*将指针置于最末尾*/
while
(1)
请你输入学号(以'
0'
返回上一级菜单:
)"
scanf("
%s"
num);
if(strcmp(num,"
0"
)==0)
break;
while(s)
if(strcmp(s->
data.num,num)==0)
=====>
学号为'
%s'
的学生已经存在,若要修改请你选择'
4修改'
!
printstart();
printc();
printe(s);
return;
s=s->
p=(Node*)malloc(sizeof(Node));
strcpy(p->
data.num,num);
请你输入姓名:
"
data.name);
getchar();
请你输入性别:
data.sex);
请你输入c语言成绩:
%d"
&
p->
data.cgrade);
请你输入数学成绩:
data.mgrade);
请你输入英语成绩:
data.egrade);
data.totle=p->
data.egrade+p->
data.cgrade+p->
data.mgrade;
data.ave=p->
data.totle/3;
/*信息输入已经完成*/
next=NULL;
r->
next=p;
r=p;
shoudsave=1;
voidQur(Linkl)/*查询学生*/
intsel;
charfindmess[20];
Node*p;
if(!
l->
next)
没有资料可以查询!
1按学号查找\n=====>
2按姓名查找\n"
sel);
if(sel==1)/*学号*/
请你输入要查找的学号:
findmess);
p=Locate(l,findmess,"
if(p)
\t\t\t\t查找结果\n"
printe(p);
else
Nofind();
elseif(sel==2)/*姓名*/
请你输入要查找的姓名:
Wrong();
voidDel(Linkl)/*删除*/
Node*p,*r;
没有资料可以删除!
1按学号删除\n=====>
2按姓名删除\n"
if(sel==1)
请你输入要删除的学号:
=p)
next=p->
free(p);
该学生已经成功删除!
elseif(sel==2)
请你输入要删除的姓名:
{