C语言综合性实验报告1.docx

上传人:b****5 文档编号:5696122 上传时间:2022-12-31 格式:DOCX 页数:14 大小:176.15KB
下载 相关 举报
C语言综合性实验报告1.docx_第1页
第1页 / 共14页
C语言综合性实验报告1.docx_第2页
第2页 / 共14页
C语言综合性实验报告1.docx_第3页
第3页 / 共14页
C语言综合性实验报告1.docx_第4页
第4页 / 共14页
C语言综合性实验报告1.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言综合性实验报告1.docx

《C语言综合性实验报告1.docx》由会员分享,可在线阅读,更多相关《C语言综合性实验报告1.docx(14页珍藏版)》请在冰豆网上搜索。

C语言综合性实验报告1.docx

C语言综合性实验报告1

华北科技学院计算机系综合性实验

实验报告

 

课程名称C程序设计

实验学期至学年第学期

学生所在系部

年级专业班级

学生姓名学号

任课教师

实验成绩

 

计算机系制

《C程序设计》课程综合性实验报告

开课实验室:

数学应用实验室2010年7月1日

实验题目

《基于链表的学生成绩管理系统》

一、实验目的

1、掌握链表的创建、显示、清除;掌握链表结点的查找、修改、删除;

2、掌握链表结点的排序;

3、掌握链表数据的文件保存、读取;

二、设备与环境

微型计算机、VisualC++6.0

三、实验内容

源程序:

#include

#include

#include

#include

#defineLENsizeof(structxsnode)

structxsnode

{

intxh;

charxm[15];

intgs;

intyy;

intwl;

floatpj;

intmc;

structxsnode*next;

}stu[100];

intlength;/*全局变量*/

FILE*fp=NULL;/*定义指针*/

 

/*********************成绩录入********************/

structxsnode*luru()

{structxsnode*p1,*p2,*head;

inti,sum=0,flag=1;

system("cls");/*刷屏*/

while(flag==1)

{printf("inputlengthoflist(<100):

");

scanf("%d",&length);

if(length<100)

flag=0;

}

for(i=0;i

{p1=(structxsnode*)malloc(LEN);

if(i==0)

head=p2=p1;

else

p2->next=p1;

p2=p1;

printf("No.:

");

scanf("%d",&p1->xh);

printf("name:

");

scanf("%s",&p1->xm);

printf("gscj:

");

scanf("%d",&p1->gs);

printf("yycj:

");

scanf("%d",&p1->yy);

printf("wlcj:

");

scanf("%d",&p1->wl);

sum=p1->gs+p1->yy+p1->wl;

p1->pj=(float)(sum/3.0);

}

p1->next=NULL;

fp=fopen("stud1","w");

for(i=0;i

if(fwrite(&stu[i],sizeof(structxsnode),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

return(head);

}

 

/********************成绩修改********************/

voidxiugai(structxsnode*head)

{structxsnode*p1,*p2;

system("cls");

p1=head;

intxh1,i=0,sum=0;

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

");

scanf("%d",&xh1);

while(xh1!

=p1->xh&&p1->next!

=NULL)

{p2=p1;p1=p1->next;i++;}

if(xh1==p1->xh)

printf("要修改的学生信息为:

\n");

printf("%6d%8s%8d%8d%8d",p1->xh,p1->xm,p1->gs,p1->yy,p1->wl);

printf("\n请重新输入学生信息(学号、姓名、高数成绩、英语成绩、物理成绩):

\n");

scanf("%d%s%d%d%d",&p1->xh,&p1->xm,&p1->gs,&p1->yy,&p1->wl);

sum=p1->gs+p1->yy+p1->wl;

p1->pj=(float)(sum/3.0);

if((fp=fopen("stud1","r"))==NULL)

{printf("文件不能打开!

");

exit(0);

}

fwrite(&stu[i],sizeof(structxsnode),1,fp);

fclose(fp);

}

 

/********************成绩删除*********************/

voidshanchu(structxsnode*head)

{

intfind;

intxh1,i=0,j=0;

structxsnode*p,*pt;

system("cls");

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

");

scanf("%d",&xh1);

pt=head;

p=pt;

if(pt->xh==xh1)

{

p=pt->next;

head=pt=p;

find=1;

}

else

pt=pt->next;

while(pt!

=NULL)

{i++;

if(pt->xh==xh1)

{

p->next=pt->next;

find=1;

}

else

p=pt;

pt=pt->next;

}

if(find!

=1)

printf("Notfound%s",xh1);

p=head;

if((fp=fopen("stud1","r"))==NULL)

{printf("文件不能打开!

");

exit(0);

}

fp=fopen("stud1","w");

for(j=0;ji&&j

fwrite(&stu[i],sizeof(structxsnode),1,fp);

fclose(fp);

length--;

}

 

/***********************成绩查询**************************/

voidchaxun(structxsnode*head)

{

intxh2;

structxsnode*p;

system("cls");

p=head;

printf("输入学号为0表示退出查询:

\n");

printf("所查找学号:

");

scanf("%d",&xh2);

while(p!

=NULL&&xh2!

=0)

{

if(p->xh==xh2)

{

printf("No.namegscjyycjwlcj\n");

printf("%6d%8s%8d%8d%8d",p->xh,p->xm,p->gs,p->yy,p->wl);

}

p=p->next;

printf("\n");

printf("输入学号为0表示退出查询:

\n");

printf("所查找学号:

");

scanf("%d",&xh2);

if(xh2==0)

{

printf("inputerrorandexit!

\n");

getch();

}

}

}

 

/********************成绩浏览**********************/

voidliulan(structxsnode*head)

{structxsnodest;structxsnode*p;

inti=0,k=1,j;

floatmc[100];

system("cls");

p=head;

if((fp=fopen("stud1","r"))==NULL)

{printf("文件不能打开!

");

exit(0);

}

printf("No.namegscjyycjwlcjpjcj\n");

while(p!

=NULL)

{printf("%6d%8s%8d%8d%8d%8.2f\n",p->xh,p->xm,p->gs,p->yy,p->wl,p->pj);

mc[i]=p->pj;

i++;

p=p->next;

}for(j=0;j

{

for(i=0;i

if(mc[j]

=i)

k=k+1;

printf("学号对应名次如下:

\n");

printf("%d\n",k);

k=1;}

getch();

fclose(fp);

}

 

voidmain()

{intc,flag=0;structxsnode*head;

printf("\n\n\n\n\t\t\t##################\n");

printf("\t\t\t##\n");

printf("\t\t\t#--欢迎使用学生管理系统--#\n");

printf("\t\t\t\n");

printf("\t\t\t#----计算B101肖圣龙----#\n");

printf("\t\t\t##\n");

printf("\t\t\t##################\n");

getch();

while(flag==0)

{system("cls");

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

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

printf("\t\t\t*1.成绩录入*\n");

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

printf("\t\t\t*2.成绩修改*\n");

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

printf("\t\t\t*3.成绩查询*\n");

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

printf("\t\t\t*4.成绩浏览*\n");

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

printf("\t\t\t*5.成绩删除*\n");

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

printf("\t\t\t*6.退出系统*\n");

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

printf("\t\t\t请按数字键1~6,进行相应操作:

");

scanf("%d",&c);

fflush(stdin);/*刷新缓冲区*/

switch(c)

{

case1:

head=luru();break;

case2:

xiugai(head);break;

case3:

chaxun(head);break;

case4:

liulan(head);break;

case5:

shanchu(head);break;

case6:

flag=1;break;

default:

printf("\t\t<没有此选项,按任意键重新选择!

>");

getch();break;

}

if(flag==1)break;

}

system("cls");

printf("\n\n\n\n\t\t\t##################\n");

printf("\t\t\t##\n");

printf("\t\t\t#--谢谢使用--#\n");

printf("\t\t\t##\n");

printf("\t\t\t##################\n");

getch();

}四、实验结果及分析

第一步:

运行,出现下面屏幕

第二步:

按回车进入下面屏幕,

(1)成绩录入:

(2)成绩修改:

(3)成绩查询:

(4)成绩浏览:

(5)成绩删除后浏览:

(6)退出系统:

二.(心得)

对整体C语言来讲,它是一门具有很强的严谨性的课程。

首先你的有一个整体的观念,设计好整体的实验功能,比如结构体的运用,链表的运用,成绩录入函数,成绩修改函数,成绩查询函数,成绩浏览函数……

从最开始的打稿,就要做好每个程序的编写,小到一个符号,都要做好认真的检查。

编译过程中,由于程序函数比较多,进行一个一个处理。

每个程序都成功运行,在进行整体合并。

当出现错误时,我就用上我自己学习的设置断点,进行调试。

总体来说,一个程序的完成,是对一个人的一次考验,身体的考验,精神的考验,更加能锻炼人严谨的心。

教师评价

评定项目

A

B

C

D

评定项目

A

B

C

D

算法正确

界面美观,布局合理

程序结构合理

操作熟练

语法、语义正确

解析完整

实验结果正确

文字流畅

报告规范

题解正确

其他:

 

评价教师签名:

年月日

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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