班级档案管理系统(C语言)

96df6d1819794ebc86ebf5495df5d1b1.jpeg

这是本人基本学完C语言时做的一个课程设计,希望能够帮到大家(设计要求如上图片)。

怎么说呢?这个也是我第一次写课程设计,准确来说,对于第一次确实时有难度的。

现在我要分享我写这个课程设计的一些心得分享给大家。

第一步:首先我们一拿到需求,肯定是要先想好这个题目的一些需求思路,并且做出一个思维导图肯定是更好的。

其实做出了思维导图,我们只需要按着一个一个的需求来写相关代码,就不会觉得难度那么大了。这也算是用到了大化小的一个逻辑思维了(我记得这个方法好像是有个名字的,但是我现在不太记得了)。

话不多说,我们直接上思维导图:

82f51a73c2cc4ffdbff91563ea38b267.jpeg

 现在我们已经有思维导图了,那么直接不用多说了(其实我感觉算是思路还是比较清晰的哈)。

我们现在需要做的第一步,那就是学生的基本信息的录入。

那么这个时候,我们有面临的问题就是:如何存储学生的基本信息

我们有两种选择:一种是利用结构体数组,另外一种就是用链表(链表相对于数组来说是难度较大的)。

这里我做的时候,是选择了用链表,因为考虑到我们后面还有删除,修改的操作,用数组来说,这里的操作就不如链表便捷了。

第二步:那就是写代码啦!

①.我们直接上代码:(这一段代码我们是对学生信息的基本录入)

struct Student* pEnd, *pNew;
 struct Student* pHead=NULL;
 
 int iCount;//全局变量来表示链表长度
 struct Student* Create()//我们创建一个链表,来录入信息 
 {
 	/*struct Student* pHead=NULL;//初始化链表头指针为空 
 	struct Student* pEnd, *pNew;*/
 	iCount=0;//初始化链表长度;
	pEnd=pNew=(struct Student*)malloc(sizeof(struct Student));
//	printf("请输入学生信息:\n");
	scanf("%ld", &pNew->num);
	scanf("%s", &pNew->name);
	scanf("%s", &pNew->sex);
	scanf("%d", &pNew->birthday.year);
	scanf("%d", &pNew->birthday.month);
	scanf("%d", &pNew->birthday.day);
	scanf("%s", &pNew->bz);
	while(1/*pNew->num!=0*/)//如果学号为零,就停止输入; 
	{
		iCount++;//iCount自增,表示链表中节点增加,同时也表示,学生的人数; 
		if(iCount==1)
		{
			pNew->pNext=pHead;//使得头指针为空; 
			pEnd=pNew;//跟踪加入新的节点 ; 
			pHead=pNew;//头指针指向首节点 ; 
		}
		else
		{
			pNew->pNext=NULL;//新节点的指针头为空 
			pEnd->pNext=pNew;//原来的尾节点指向新的节点 
			pEnd=pNew;	//pEnd指向新的节点 
		} 
		pNew=(struct Student*)malloc(sizeof(struct Student));//在此分配节点内存空间
		scanf("%ld", &pNew->num);
		scanf("%s", &pNew->name);
		scanf("%s", &pNew->sex);
		scanf("%d", &pNew->birthday.year);
		s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值