跪求数据结构课程设计(C语言版)代码,感激不尽

题目描述:定义一个结构体变量(包括年、月、日),计算该日在本年(注意要考虑闰年问题)中为第几天以及该日属于本学期的第几周。假定:每年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函数,计算后将结果传递回主函数输出;
(3)使用菜单选择操作,提示用户进行相应操作;
(4)对从键盘上接受到的数据,以及运行得到的结果,要输出保存到outfile.txt文件中;
没有更多财富值了,求路过的大佬可以伸出援手救救小的一命

《数据结构课程精讲教案合集-复旦大学(共计1061页).pdf 》百度网盘免费资源下载

  链接: https://pan.baidu.com/s/15uwjtHgKKzZdheWFQC21pQ

?pwd=abzc 提取码: abzc

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-12-27
在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。[1]
定义与声明
结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。[1]
struct tag {
member-list
} variable-list ;

在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。以下为示例:[1]
//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//同时又声明了结构体变量s1
//这个结构体并没有标明其标签

struct {

int a;

char b;

double c;

} s1;

//同上声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//结构体的标签被命名为SIMPLE,没有声明变量
struct SIMPLE{

int a;

char b;

double c;

};

//用SIMPLE标签的结构体,另外声明了变量t1、t2、t3
struct SIMPLE t1, t2[20], *t3;
//也可以用typedef创建新类型
typedef struct{
int a;
char b;
double c;
} Simple2;
//现在可以用Simple2作为类型声明新的结构体变量
Simple2 u1, u2[20], *u3;

在上面的声明中,第一个和第二声明被编译器当作两个完全不同的类型,即使他们的成员列表是一样的,如果令t3=&s1,则是非法的。[1]
结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表和树等。[1]
//此结构体的声明包含了其他的结构体
struct COMPLEX{
char string[100];
struct SIMPLE a;
};
//此结构体的声明包含了指向自己类型的指针
struct NODE{
char string[100];
struct NODE *next_node;
};

如果两个结构体互相包含,则需要对其中一个结构体进行不完整声明,如下所示:[1]
struct B;
//对结构体B进行不完整声明
//结构体A中包含指向结构体B的指针
struct A{
struct B *partner;
//other members;
};
//结构体B中包含指向结构体A的指针,在A声明完后,B也随之进行声明
struct B{
struct A *partner;
//other members;};

结构体作用
结构体和其他类型基础数据类型一样,例如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]
3、结合1、2可推断:当#pragma pack的n值等于或超过所有数据成员长度的时候,这个n值的大小将不产生任何效果。本回答被网友采纳

跪求数据结构课程设计(C语言版)代码,感激不尽
链接: https:\/\/pan.baidu.com\/s\/15uwjtHgKKzZdheWFQC21pQ ?pwd=abzc 提取码: abzc

...一道数据结构题,删除单链表中最大和次最大的数,感激不尽_百度...
include <stdio.h>#define elemType int#define status int#define OVERFLOW -1#define ERROR 0#define OK 1\/* 单链表数据结构 *\/typedef struct lNode {elemType data;struct lNode *next;} lNode, *linkList;\/*** 以下为函数声明 ***\/void initList (linkList *L);\/* 初始化 *\/status ...

急求数据结构《农夫过河问题》课程设计(C\/C++)源代码,编程要体现过河的...
include<stdio.h> int s[100],t=0;void BA(int a[4],int b[4]);void xu(int a[4]){ int i,j,k;for(i=0;i<3;i++)for(j=i+1;j<4;j++)if(a[i]=t\/2

设计一个一元多项式简单的计算器(数据结构C语言版)急
除以上功能外,还有乘法和除法的计算和导数计算呢。这是我以前做的数据结构课程设计。希望能帮上你的忙。include<stdio.h> include<malloc.h> typedef struct Polynomial{ float coef;int expn;struct Polynomial *next;}*Polyn,Polynomial; \/\/Polyn为结点指针类型 void Insert(Polyn p,Polyn h){ ...

数据结构课程设计:十字链表的应用
ifndef Matrix_H define Matrix_H include "List.h"class MatNode { public:int data;int row, col;union { Node<MatNode> *down; List<MatNode> *downrow; };MatNode(int value = 0, Node<MatNode> *p = NULL, int i = 0, int j = 0): data(value), down(p), row(i), col...

求数据结构(C语言)大侠帮忙啊!!为什么这个程序运行的时候总是陷入无限循...
你判断输入的时候不对啊,那句 do { printf("\\n\\t是否继续添加?(Y\/N)");scanf("%c",&v); ; printf("\\n");}while(v!='Y'||v!='y'||v!='N'||v!='n');while后面条件应该是且才对

数据结构课程设计《报数游戏》队列问题 c语言
约瑟夫环问题:如果你用队列做的话,设一个计数器,如果计数器<m就出队后再入队,等于m时那个元素只出队不入队,输出这个元素并且让m等于0。循环到队列为空就行了。

我想学程序设计,欲求一明师指点,感激不尽
首先,你要学习一门面向过程的语言,体验一下程序设计,对程序设计有个初步了解。例如:C语言(首选),VB,PASCAL等。然后,你该学习一下数据结构,这是基础。有空的话看看汇编,学学计算机原理。接着,挑选一门面向对象的语言,例如C#,JAVA,C++,PHP等等。最后,恭喜你终于进入了编程的世界,看你是专精...

征集《数据结构》课程设计的课题
最优二叉树图的计算遍历 栈与广义表 等等 可以分组来让学生选择。说实话找个好题目真的好难~~~而且抄袭现象严重~~~ 最后拿到手的基本是一个代码 有几个给你变变形 那就是好学生~~~网上有大量的例题,可以下来 改改数 或者叙述 在组合成没有重复的题组,一人一个组 不重复 题也不重复~ 这样...

跪求 大学电脑课教什么
1 6 4013990101 编译原理课程设计 1.0 1 1 6 4043070102 计算机系统结构课程设计 2.0 2 0 2 6 4043350101 数据库系统课程设计 1.0 1 0 1 7 4000670102 计算机工程实践 2.0 2 0 2 7 4000040104 生产实习 4.0 4 0 4 8 4000061014 毕业设计 14.0 14 0 14 8 公共基础课 ...

相似回答