C语言实验八结构体上机报告

  • 格式:doc
  • 大小:53.50 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《标准C语言程序设计》上机报告实验八结构体程序设计

专业:电子信息工程

班级:电信1301

学号:U201313480

姓名:秦行

完成日期:2014/6/9

一、实验目的:

1、掌握结构体类型的说明和结构体变量的定义;

2、掌握结构体变量成员的引用和对结构体变量的初始化;

3、掌握结构体数组及结构体指针变量的定义及使用。

4、理解并掌握结构体在函数间的传递;

5、进一步掌握复杂程序编译、连接和调试的技巧。

二、实验内容及要求(鼓励一题多解)

——以下均要求不得使用全局变量:

1

(1)、正确定义该表格内容要求的数据类型;

(2)、分别输入各成员项数据,并打印输出(为简便起见,假设只有3名考生)。#include

#include

#define N 3

struct date

{

int year;

int month;

int day;

};

struct student

{

unsigned int num;

char name[20];

char sex;

struct date birth;

};

void main()

{

struct student tester[N];

int i;

for(i=0;i

{

printf("请输入考生学生证号:");

scanf("%d",&tester[i].num);

printf("请输入姓名:");

scanf("%s",tester[i].name);

printf("请输入M或W,M表示男,W表示女");

scanf("%s",&tester[i].sex);

printf("请输入考生生日,(按年月日敲如2014 enter 06 enter 09 enter)");

scanf("%d%d%d",&tester[i].birth.year,&tester[i].birth.month,&tester[i].birth. day);

}

printf("学生证号\t姓名\t性别\t考生生日\n");

printf("______________________________\n");

for(i=0;i

{

printf("%d\t%s\t%c\t%d%d%d\n",tester[i].num,tester[i].name,tester[i].sex,tester[I ].birth.year,tester[i].birth.month,tester[i].birth.day);

}

}

2、编程实现:(1)输入10个职工姓名和工资,(2)按职工姓名由小到大排序,

(3)在主函数中输出排序后的职工姓名与工资、调用查找函数(需要编程)查找输入姓名的职工工资并输出职工姓名和工资。

要求:定义结构体数组(由结构体构成的链表——可选)保存10个职工姓名和工资信息,各模块均用函数实现

#include

#include

#include

#define N 10

struct worker

{

char name[20];

int salary;

};

int input(struct worker *pt); //录入函数

void display(struct worker *p,int N); //输出函数

void compare(struct worker *pdata,int N); //排序函数

void main()

{

struct worker man[N];

int i;

char search[20];

for(i=0;i

if(input(&man[i])==0)break;

compare(man[N].name,N);

display(man,N);

printf("键入查找的职工的名字");

scanf("%s",search);

int j,flag=0;

for(j=0;j

{

if(strcmp(man[j].name,search)==0)

{

flag=1;

k=j+1;

printf("find the worker");

break;

}

}

if(!flag)

printf("can not find the worker");

printf("the worker's name :%s,He's salary is %d",man[k].name,man[k].salary); }

int input(struct worker *pt)

{

printf("Name?");

gets(pt->name);

if(pt->name=='/0')return 0;

printf("Salary?");

gets(pt->salary);

return 1;

}

void compare(struct worker *pdata,int n)