结构体和共用体参考答案借鉴内容.doc

上传人:夺命阿水 文档编号:126998 上传时间:2025-07-11 格式:DOC 页数:11 大小:444KB
下载 相关 举报
结构体和共用体参考答案借鉴内容.doc_第1页
第1页 / 共11页
结构体和共用体参考答案借鉴内容.doc_第2页
第2页 / 共11页
结构体和共用体参考答案借鉴内容.doc_第3页
第3页 / 共11页
结构体和共用体参考答案借鉴内容.doc_第4页
第4页 / 共11页
结构体和共用体参考答案借鉴内容.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、实验八 结构体及其应用班级: 学号: 姓名: 成绩: 一 实验目的1、掌握结构体数据类型的定义和使用。2、掌握结构体数组的定义和使用。3、掌握链表的基本概念,熟练掌握单链表的创建、插入、删除和遍历操作。二 使用的设备和仪器:计算机+Windows XP +Visual C+6.0三 实验内容及要求1、定义一个描述时间的结构体类型Time(包括时、分、秒),然后定义一个该结构体类型的变量,按24小时制输入时间信息,然后按12小时制输出(区分AM和PM)。例如,输入的时间是22:10:30;输出:PM 10:10:30。2、定义描述学生信息(学号、姓名、成绩)的结构体数组。1)定义输入学生信息的函

2、数Input;2)定义输出学生信息的函数Output;3)定义按学号进行查找的函数Search,若找到,则输出该学生的信息;如果没找到,则输出“该学生不存在”。3、建立一个由3个学生(包括学号、姓名、成绩)组成的静态链表,然后,输出该链表中各结点的数据。4、动态建立一个学生信息(包括学号、姓名、成绩)的链表,学号输入-1时表示结束,然后输出该链表中各结点的数据。选作题:5、在第2题的基础上修改函数Search,若找到,则返回该学生的信息;否则,返回一个内容为空的结构变量。6、有N个候选人,每个选民只能投一票,要求编写一个模拟10个选民进行投票的程序,先后输入被选人的名字,最后按照选票由高到低输

3、出投票结果。7、在第3题的基础上,定义一个链表查找函数,对所输入的姓名进行查找,如果找到,则输出该学生的信息;如果没找到,则输出“该学生不存在”。四 实验步骤1、 程序代码:#includestruct Timeint h,m,s;void Input(Time *pt);void Output12(Time t);void main()Time t;Input(&t);Output12(t);void Input(Time *pt)printf(Input hour:minute:second:);scanf(%d:%d:%d,&pt-h,&pt-m,&pt-s);void Output12

4、Time t)printf(The Time is:);if(t.h12)printf(AM %d:%d:%dn,t.h,t.m,t.s);elseprintf(PM %d:%d:%dn,t.h-12,t.m,t.s);运行结果:2、 程序代码:#include#include#define N 3struct Studentchar num10;char name10;double score;void Input(Student *p)int i;for(i=0;inum,(p+i)-name,&(p+i)-score );void Output(Student *p)int i;for

5、i=0;inum,(p+i)-name,(p+i)-score );void Search(Student *p,char *nm)for(int i=0;inum,nm)=0)printf(num=%s name=%s score=%lfn,(p+i)-num,(p+i)-name,(p+i)-score ); break;if(i=N)printf(该学生不存在!n);void main()Student stuN;printf(请输入%d个学生的信息(学号、姓名、成绩):n,N);Input(stu);printf(学生的信息为:n); Output(stu);char nm10;pr

6、intf(请输入要查找的学生的学号:);scanf(%s,nm);printf(查找结果:n);Search(stu,nm);运行结果:3、 程序代码:#include#define N 3struct studentchar num10;char name10;double score;student *next;void main()student stu1=001,zhangsan,89,stu2=002,lisi,99,stu3=004,wangwu,70;student *head,*p;head=&stu1;stu1.next=&stu2;stu2.next=&stu3;stu3.

7、next=NULL;p=head;while(p!=NULL)printf(num:%s,name:%s,socre:%.2lfn,p-num,p-name,p-score);p=p-next;运行结果:4、程序代码:#include#include#include#define N 3struct studentchar num10;char name10;double score;student *next;void main()student *head,*p,*s;head=NULL;printf(请输入学生信息,包括学号和姓名(学号输入-1,表示结束):n);s=(student*)

8、malloc(sizeof(student);scanf(%s%s%d,s-num,s-name,&s-score);s-next=NULL;while(strcmp(s-num,-1)!=0)if(head=NULL)head=s;elsep-next=s;p=s;s=(student*)malloc(sizeof(student);scanf(%s%s%d,s-num,s-name,&s-score);s-next=NULL;p=head;while(p!=NULL)printf(%s,%s,%dn,p-num,p-name,p-score);p=p-next;free(s);运行结果:

9、选做题:5、 程序代码:#include#include#define N 3struct Studentchar num10;char name10;double score;void Input(Student *p)int i;for(i=0;inum,(p+i)-name,&(p+i)-score );void Output(Student *p)int i;for(i=0;inum,(p+i)-name,(p+i)-score );Student Search(Student *p,char *nm)Student ept_stu=,0;for(int i=0;inum,nm)=0)

10、return *(p+i);return ept_stu;void main()Student stuN;printf(请输入%d个学生的信息(学号、姓名、成绩):n,N);Input(stu);printf(学生的信息为:n); Output(stu);char nm10;printf(请输入要查找的学生的学号:);scanf(%s,nm);printf(查找结果:n);Student t=Search(stu,nm);printf(num=%s name=%s score=%lfn,t.num,t.name,t.score);运行结果:6、 程序代码:#include#include#de

11、fine N 3struct personchar name20;int count;void main()person leaderN=HJT,0,WJB,0,XJP,0;char lname20;person t;int i,j;printf(候选人为:n);for(i=0;iN;i+)printf(%s ,leaderi.name );printf(n请开始投票:n);for(i=1;i=10;i+)scanf(%s,lname);for(j=0;jN;j+)if(strcmp(lname,leaderj.name )=0)leaderj.count +;for(i=0;iN-1;i+)

12、for(j=i+1;jleaderj.count)t=leaderj; leaderj=leaderi; leaderi=t;printf(最后的投票结果为:n);for(i=0;iN;i+)printf(%s:%dn,leaderi.name ,leaderi.count );运行结果:7、 程序代码:#include#includestruct Studentint num;char name20;double score;Student *next;void PrintList(Student *head);void Search(Student *head);void main()St

13、udent s1=1001,Lily,100;Student s2=1002,Lucy,90;Student s3=1003,Ada,70;Student *head;head=&s1; s1.next =&s2; s2.next =&s3; s3.next =NULL;PrintList(head);Search(head);void PrintList(Student *head)printf(The List are:n);Student *p=head;while(p!=NULL)printf(num=%d name=%s score=%lfn,p-num ,p-name ,p-score );p=p-next ;void Search(Student *head)char nm20;printf(请输入要查找的姓名:);scanf(%s,nm);Student *p=head;while(p!=NULL)if(strcmp(p-name,nm)=0)break;p=p-next ;if(p!=NULL)printf(查找的结果为:num=%d name=%s score=%lfn,p-num ,p-name ,p-score );elseprintf(该学生不存在!n);运行结果:五、 实验总结11参考分析#

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

当前位置:首页 > 建筑/环境 > 房地产

宁ICP备18001539号-1