C语言程序设计基于链表的学生成绩管理系统文档格式.docx
- 文档编号:19938572
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:20
- 大小:19.22KB
C语言程序设计基于链表的学生成绩管理系统文档格式.docx
《C语言程序设计基于链表的学生成绩管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基于链表的学生成绩管理系统文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
实验题目
基于链表的学生成绩管理系统
一、实验目的
1、掌握链表的创建、遍历显示和清除;
2、掌握链表数据的文件保存、读取;
二、设备与环境
微型计算机、VC++6.0
三、实验内容
1、定义结构体,创建链表
structxsnode
{
intxh;
charxm[15];
intgs;
intyy;
intwl;
structxsnode*next;
};
2、根据以上链表结点结构,实现以下功能
a、学生学号、姓名、各门成绩的录入;
b、链表数据显示及清除;
c、链表数据的文件保存与读取;
四、实验结果及分析
1、运行结果
主菜单
数据显示
2、源程序
✍主函数
voidmain()
intxz=0;
structxs*head;
head=init();
while(xz!
=5)
{
menu();
scanf("
%d"
&
xz);
switch(xz)
case1:
create(head);
break;
case2:
print(head);
case3:
save(head);
case4:
read(head);
case5:
printf("
\n系统退出,拜拜!
\n"
);
default:
printf("
\n选择错误,请按任意键选择!
getch();
break;
}
fr(head);
free(head);
}
✍数据录入源代码
voidcreate(structxs*hd)
intxh,gs,yy,wl,i;
charxm[20];
structxs*p;
fr(hd);
printf("
\n请输入学生个数:
"
num);
for(i=0;
i<
num;
i++)
请输入%d个学生of%d\n"
i+1,num);
学号:
scanf("
xh);
姓名:
%s"
xm);
高数:
gs);
英语:
yy);
物理:
wl);
p=(structxs*)malloc(sizeof(structxs));
p->
xh=xh;
strcpy(p->
xm,xm);
gs=gs;
yy=yy;
wl=wl;
next=hd->
next;
hd->
next=p;
录入数据完毕,请按任意键继续!
getch();
✍添加记录源代码
voidprint(structxs*hd)
structxs*p;
p=hd->
if(p!
=NULL)
{
\n数据显示\n"
**********************************************\n"
学号姓名高数英语物理平均分\n"
while(p!
{
printf("
%4d"
p->
%10s"
xm);
%8d"
%7d"
%6d"
%8.2f\n"
(p->
wl+p->
wl)/3.0);
p=p->
}
链表显示完毕,请按任意键继续!
\n"
}
else
\n当前链表为空,请先读取文件或创建链表!
\n按任意键继续!
✍查询记录源代码
voidmenu()
system("
cls"
****************************************\n"
*学生成绩管理系统(1.0)*\n"
*jb11-131宋洁2012-7-3*\n"
*1-创建链表*\n"
*2-数据显示*\n"
*3-保存文件*\n"
*4-读取文件*\n"
*5-系统退出*\n"
请选择操作(1-5:
✍源程序
#include"
stdio.h"
stdlib.h"
#include<
string.h>
conio.h"
structxs
intxh;
intgs,yy,wl;
structxs*next;
intnum=0;
structxs*init()
structxs*hd;
hd=(structxs*)malloc(sizeof(structxs));
hd->
next=NULL;
returnhd;
voidfr(structxs*hd)
p=hd->
while(hd->
next!
next=p->
free(p);
voidsave(structxs*hd)
if(hd->
structxs*p=hd->
inti;
FILE*fp;
fp=fopen("
yh.txt"
"
w"
fprintf(fp,"
%3d\n"
num);
for(i=0;
fprintf(fp,"
%3d%12s%3d%3d%3d\n"
xh,p->
xm,p->
gs,p->
yy,p->
fclose(fp);
\n保存文件完毕,请按任意键继续!
\n当前链表为空,不需要保存,请按任意键继续!
voidread(structxs*hd)
inti;
structxs*p;
FILE*fp;
fr(hd);
fp=fopen("
r"
fscanf(fp,"
for(i=0;
p=(structxs*)malloc(sizeof(structxs));
fscanf(fp,"
p->
hd->
fclose(fp);
\n读取文件完毕,请按任意键继续!
getch();
voidprint(structxs*hd)
intxz=0;
3、试验收获
通过这次试验,我掌握了链表的创建、遍历显示和清除功能,掌握了链表数据的文件保存、读取,能够熟练的使用VC++6.0,对C程序有了更深的了解。
教师评价
评定项目
A
B
C
D
算法正确
界面美观,布局合理
程序结构合理
操作熟练
语法、语义正确
解析完整
实验结果正确
文字流畅
报告规范
题解正确
其他:
评价教师签名:
年月日
代码:
structxs*head
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基于 学生 成绩管理系统