行业

智慧交通 智慧商业 智慧安全

钱柜娱乐跪求数据结构课程设计(C语言版)代码

  题目描述:定义一个结构体变量(包括年、月、日),计算该日在本年(注意要考虑闰年问题)中为第几天以及该日属于本学期的第几周。假定:每年9月1日至12月31日及1月1日至3月1日为第一...

  题目描述:定义一个结构体变量(包括年、月、日),计算该日在本年(注意要考虑闰年问题)中为第几天以及该日属于本学期的第几周。假定:每年9月1日至12月31日及1月1日至3月1日为第一学期,假定9月1日为第一学期第1天且每周7天;3月2日至8月31日为第二学期,假定3月2日为第一学期第1天且每周7天。例如:用户输入2013年3月3日,则输出:2013年3月3日属于本年第51天,第二学期第一周。用户输入2013年3月9日,则输出:2013年3月9日属于本年第57天,第二学期第二周。

  (1)计算该日为本年第几天要有一个函数days来实现,由主函数将年、月、日传递给days函数,计算后将结果传递回主函数输出;

  (2)计算该日属于第几学期第几周要有一个函数weeks来实现,由主函数将年、月、日传递给days函数,计算后将结果传递回主函数输出;

  (4)对从键盘上接受到的数据,以及运行得到的结果,要输出保存到outfile.txt文件中;

  没有更多财富值了,求路过的大佬可以伸出援手救救小的一命展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。[1]

  结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。[1]

  //此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c

  //同上声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c

  在上面的声明中,第一个和第二声明被编译器当作两个完全不同的类型,钱柜娱乐即使他们的成员列表是一样的,如果令t3=&s1,则是非法的。[1]

  结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表和树等。[1]

  如果两个结构体互相包含,则需要对其中一个结构体进行不完整声明,如下所示:[1]

  结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。[1]

  在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。[1]

  结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。[1]

  结构体的大小不是结构体元素单纯相加就行的,因为我们主流的计算机使用的都是32bit字长的CPU,对这类型的CPU取4个字节的数要比取一个字节要高效,也更方便。所以在结构体中每个成员的首地址都是4的整数倍的话,取数据元素时就会相对更高效,这就是内存对齐的由来。每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。[1]

  1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。[1]

  2、结构(或联合)的整体对齐规则:在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对齐将按照#pragma pack指定的数值和结构(或联合)最大数据成员长度中,比较小的那个进行。[1]