C语言实验报告标准格式

时间:2024.3.31

暨南大学本科实验报告专用纸

课程名称         高级语言程序设计        成绩评定          

实验项目名称       结构体和共用体       指导教师   张晓刚  

实验项目编号8060151108实验项目类型 综合性实验地点  C301 

学生姓名     苟长弘      学号        2007051282             

学院   信息科学技术       计算机科学   专业   软件工程    

实验时间2007612 午~613 午 温度  ℃湿度    

(一)            实验目的

1.         掌握结构体类型变量的定义和使用。

2.         掌握结构体类型数组的概念和应用。

3.         掌握链表的概念,初步学会对链表进行操作。

4.         掌握共用体的概念与使用。

(二)            实验内容和要求

实验内容1::试编写一个程序完成:有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。

实验要求:(1)要求用一个input函数输入5个学生数据;应一个average函数求平均分;用max函数求出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。

(2)输入事先已编好的程序,并运行该程序。分析运行结果是否正确。

实验内容2::试编写一个程序完成:建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。

实验要求:(1)用链表实现。

(2)输入事先已编好的程序,并运行该程序。分析运行结果是否正确。

(三)            主要仪器设备

仪器:计算机

实验环境: Windows XP + Visual C++6.0

暨南大学本科实验报告专用纸(附页)

                                                                    

(四)            实验原理

实验1的N-S图如下:

实验2的N-S图如下:

creat函数:

print函数:

暨南大学本科实验报告专用纸(附页)

                                                                    

del函数:

主函数:

(五)            源程序

实验1的源程序如下:

#include<stdio.h>

struct student

{

       int number;

       char name[10];

       int classes[3];

       int average;

}stu[5];

void input(struct student *p)

{

暨南大学本科实验报告专用纸(附页)

                                                                    

       int i;

       for(i=0;i<5;i++,p++)

       {

              printf("Please input %dth student's data:",i+1);

              scanf("%d %s %d %d %d",&p->number,p->name,&p->classes[0],&p->classes[1],&p->classes[2]);

       }

}

average(struct student *p)

{

       int m=0;

       m=p->classes[0]+p->classes[1]+p->classes[2];

       m=m/3;

       p->average=m;

       return(m);

}

struct student *max(struct student *p,int j)

{

       int i,n;

       struct student *q;

       for(i=0;i<5;i++,p++)

              if(p->classes[j]>=n)

              {

                     n=p->classes[j];

                     q=p;

              }

       return(q);

}

void main()

{

       int i,m[5];

       struct student *p;

       input(stu);

       p=stu;

       for(i=0;i<5;i++,p++)

       {

              m[i]=average(&stu[i]);

              printf("The %s's average score is:%d\n",p->name,m[i]);

       }

       for(i=0;i<3;i++)

暨南大学本科实验报告专用纸(附页)

                                                                    

       {

              p=max(stu,i);

              printf("The classes%d's max score is:%d %s %d %d %d %d\n",i+1,p->number,p->name,p->classes[0],p->classes[1],p->classes[2],p->average);

       }

}

实验2的源程序如下:

#include<stdio.h>

#include<malloc.h>

#define NULL 0

#define LEN sizeof(struct student)

struct student

{

       char num[10];

    char name[10];

    char sex;

    int  age;

    struct student *next;

} ;

int n;

struct student *creat(void)

{

       struct student *head;

    struct student *p1,*p2;

    n=0;

    p1=p2=(struct student *)malloc(LEN);                                  

    scanf("%s %s %c %d",p1->num,p1->name,&p1->sex,&p1->age);

    head=NULL;

    while(p1->age!=0)

       {

              n=n+1;

           if(n==1)

                     head=p1;

           else

                     p2->next=p1; 

           p2=p1;

           p1=(struct student *)malloc(LEN);

        scanf("%s %s %c %d",p1->num,p1->name,&p1->sex,&p1->age);

       }

p2->next=NULL;

暨南大学本科实验报告专用纸(附页)

                                                                    

    return(head);

}

void print(struct student *head)

{

       struct student *p;

    printf("\nNow,These %d records are :\n",n);

    p=head;

    if(head!=NULL)

    do { printf("%s %s %c %d\n",p->num,p->name,p->sex,p->age);

                p=p->next;

          }while(p!=NULL);

}

struct student *del(struct student *head ,int num)

{

       struct student *p1,*p2;

    if(head==NULL)

              printf("\nlist null!\n"); 

    else

       {

              p1=head;

        while(num!=p1->age&&p1->next!=NULL)

              {

                     p2=p1;

            p1=p1->next;

              }

        if(num==p1->age)

              {

                     if(p1==head)

                            head=p1->next;

               else

                            p2->next=p1->next;

            printf("delete:%d\n",num);

             n=n-1;

          }

       else

                 printf("%d not been found!\n",num);

       }

    return(head);

}                                    

void main()

{

暨南大学本科实验报告专用纸(附页)

                                                                    

       struct student *head,*stu;

    int del_num;

    printf("input records:\n");

    head=creat();

    print(head);

    printf("\ninput the deleted number:");

    scanf("%d",&del_num);

    while(del_num!=0)

       {

              head=del(head,del_num);

        print(head);

        printf("\ninput the deleted number:");

        scanf("%d",&del_num);

       }

}

(六)            实验步骤与调试

实验1:运行时未发生任何错误,结果正确。

实验2:运行时提示语法错误,原因是输入语句写为了“scanf("%s%s%d%d",p1->num,p1->name,p1->sex,&p1->age);”

将起改为“scanf("%s%s%d%d",p1->num,p1->name,&p1->sex,&p1->age);”,

成功运行,但是结果却错误,再检查,发现原因还是输入语句:“scanf("%s%s%d%d",p1->num,p1->name,&p1->sex,&p1->age);”

应该改为“scanf("%s%s%c%d",p1->num,p1->name,&p1->sex,&p1->age);”

运行后,结果正确。

暨南大学本科实验报告专用纸(附页)

                                                                    

(七)            实验结果与分析

实验1的结果如下:

实验2 的结果如下:

暨南大学本科实验报告专用纸(附页)

                                                                    

分析:

  利用结构体可以很好的对各类数据进行组合,而且还很容易引用。对于学生的数据有多个,而且数据类型都不相同,首选可用结构体来存放。对结构体的变量成员的引用要注意引用的格式。它不同于普通变量的引用方式,它要有结构体名加一点再加变量名来引用。在输入时,也应注意输入的成员的类型。

  利用链表对结构体的处理是一种很好的方法。它是线性存储的,可以动态的分配空间,根据需要开辟内存单元,减少对空间的浪费,而且对于数据的删除和添加,它并不需要利用额外的空间对以存放好的数据进行移动或交换。链表是利用指针来实现的操作的。


第二篇:C语言电子版实验报告样式


C语言程序设计 课程实验报告

系 (院): 信息工程学院 班 级: 学 号: 姓 名: 完成日期: 20xx年2-6月 指导教师: 徐永安

二○一三年六月

C语言程序设计实验内容安排

实验一、了解编程环境

主要内容:基于Visual C++6.0对C语言的兼容,了解Visual C++6.0--Win32 Console Application 的编程步骤,通过简单编程了解printf()、scanf()、getch()/getchar()的基本用途,了解基本编程规范。

实验二、顺序结构

主要内容:学会在程序中运用基本类型数据和表达式;重点掌握赋值语句和格式I/O语句在程序开发中的运用。

实验三、条件结构

主要内容:熟悉if语句和switch语句的语法规则及应用;学会编写分支结构的C程序。 实验四、循环结构

主要内容:训练循环设计技巧,重点训练for循环、while循环和do-while循环的构造技术,进一步加深对有关经典算法的理解,能灵活运用循环结构编写高质量的C程序。

实验五、数组

主要内容:掌握数值型数组和字符型数组各自的编程特点,积累有关经典算法,能在程序中灵活使用数组技术。

实验六、函数

主要内容:熟悉模块化设计方法在C语言中的实现,能进行正确的函数调用,并能实现函数嵌套调用,进一步积累程序调试经验,增强编写大型程序的能力。

实验七、指针

主要内容:练习指针变量、指向一维数组的指针变量、指向二维数组的指针变量在程序中的运用,练习编写返回指针值的函数,掌握指针在函数通信中的运用,能合理运用指针技术编写更为高效、紧凑的C程序。

实验八、结构

主要内容:学会在程序中运用结构变量和结构数组,掌握指向结构体的指针变量的定义和使用方法,掌握动态存储分配函数,熟练掌握链表操作。

实验九、文件

主要内容:学会数据文件的建立、读写和关闭操作。能在程序中使用数据文件实现相关算法。

备注:

(1)实验报告总量控制在10页以内,标题黑体小四,其它五号字体、单倍行距。

(2)提交程序全部工程的压缩文件。

(3)考虑Word文档实验报告的篇幅限制(10以内),可挑选实验二到九中的任意4个实验写Word文档实验报告。实验结果输出界面为黑底白字的,请做反色处理。

(以下是某个实验的文档格式,供大家参考)

实验五、数组应用

1、 实验目的

掌握数值型数组和字符型数组各自的编程特点,积累有关经典算法,能在程序中灵活使用数组技术。

2、 实验内容

输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

3、设计思路

C语言电子版实验报告样式

4、实现代码

#include<stdio.h>

void main()

{

char string[81]; //字符数组

int i,num=0;//统计单词个数

int word=0;//判别是否是单词的标志,word=0表示未出现单词,若出现单词word就置为1 char c;

gets(string); //键盘输入字符串

for(i=0;(c=string[i])!='\0';i++) //循环与数组结合,统计字符串中的单词数

{

if(c==' ')

word=0;

else if(word==0)

{

word=1;

num++;

}

}

printf("There are %d words in the line.\n",num);//输出结果

}

5、实验结果

C语言电子版实验报告样式

6、实验体会

通过实验验证,将数组和循环相结合,能够有效提高数据处理效率。

更多相关推荐:
C语言实验报告模板完成版

高级语言程序设计学生实验报告专业学号姓名实验一C程序的运行环境和使用方法1实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2了解在该系统上如何编辑编译连接和运行一个C程序3通过运行简单的C程序初步...

C语言实验报告(样板)

滁州学院机械与电子工程学院实验报告课程姓名专业20xx机械本科学号实验一工作平台一目的和要求1熟悉语言程序的支持运行环境了解所用计算机系统的软硬件配置和使用方法2初步了解运行一个语言程序的过程二实验环境硬件环境...

C语言实验报告书写格式及模板

大学学院实验报告专业名称实验室实验课程C实验名称姓名学号同组人员实验日期语言程序设计程序设计12345678

c语言实验报告范本

说明下面的模板中黑体字标明的部分是我加的注释大家要按注释来写报告实验项目名称符号函数的实现此条要求写清楚一实验目的熟练掌握ififelseifelseif语句格式及使用方法掌握if语句中的嵌套关系和匹配原则利用...

C语言实验报告范文

计算机科学与技术系C语言实验报告实验名称:指针及其应用日期:得分:指导老师:专业:班次:姓名:学号:实验目的(1)掌握变量的指针及其基本用法。(2)掌握一维数组的指针及其基本用法。(3)掌握指针变量作为函数的参…

C语言实验报告格式

实验1熟悉VisualC运行环境一实验目的二实验重点三实验难点四实验内容1程序清单includestdiohmain2调试过程2errors3warnings1错误位置错误原因2警告位置警告原因3运行结果五实验...

C语言实验报告样本

实验报告课程名称C语言程序设计实验项目顺序结构程序设计实验仪器计算机系别机电工程学院专业机械设计制造及其自动化班级学号机械110120xx010008学生姓名郭奎宇实验日期20xx年10月24日成绩指导教师一实...

C语言实验报告(五)

C语言实验报告五一实验目的1掌握使用C语言中数组的方法2掌握如何定义数组如何引用数组元素3掌握二维数组的元素在内存中的存放方式4掌握什么是字符串字符串结束符的作用5实现字符串的存储和操作包括字符串的输入和输出6...

C语言实验报告-函数

华北水院高级语言程序设计C语言实验报告五20xx20xx学年第二学期20xx级专业学号姓名一实验题目函数二实验目的略三实验内容1程序验证略2程序设计1编程实现求两个正整数的最大公约数要求计算最大公约数用函数fu...

C语言实验报告模板

C语言程序设计20xx20xx1实验报告专业班级冶金122姓名课程教师实验时间20xx年11月4日星期二实验一一实验目的1熟悉C程序编辑环境掌握主要菜单项的操作和作用2熟悉编写一个C程序的上机过程编辑编译链接和...

C语言课程设计实验报告模板

C语言课程设计通讯录管理系统程序设计基础课程设计报告课程设计题目通讯录管理系统指导教师李萍班级0903班学生姓名20xx100333闫晓20xx100334皇倩20xx100335翟少平20xx100336谢成...

广东工业大学龙洞C语言选修实验报告—黄永慧

序号C程序设计实验报告课程名称C程序设计学生学院XX学院专业班级20XX级XXXX学号学生姓名XXXX指导教师黄永惠20xx年10月一实验目的1熟悉并掌握VC60的开发环境掌握C程序的编辑编译连接和运行的基本过...

c语言实验报告格式(36篇)