暑期实训-7月13日记录

学习任务 结构体的应用
完成情况 任务已完成
出现的问题汇总
 
未解决问题  
开发收获

对内存空间中不同数据类型的分配有了清醒的认识;

通过编写简单的学生管理程序,对结构体数组有了清醒的认识;

知道了共用体的存取规则,以及对大小端概念的理解。

自我评价 通过这一段时间对c的重新学习,对之前模糊的概念以及不清楚的知识有了进一步的认识和提高。
学生管理程序:
.c文件
#include <stdio.h>
#include "student.h"
 
 
void menu()
{
	printf("************************.\n");
	printf("1.输入信息	2.显示信息\n");
	printf("3.删除信息	4.修改信息\n");
	printf("************************.\n");
}
 
void add(stu s[])//添加信息
{
	printf("请输入姓名,年龄,性别,学号\n");
	scanf("%s%d %c%d",&s[i].name,&s[i].age,&s[i].sex,&s[i].number);
	s[i].id=i+1;
	i++;
}
 
void show(stu s[])//显示信息
{
	int j;
	for(j=0; j<i; j++)
	{
		printf("学生%d信息:\n",s[j].id);
		printf("姓名%s,年龄%d,性别%c,学号%d:\n",s[j].name,s[j].age,s[j].sex,s[j].number);
	}
}
void delete(stu s[])//实现覆盖1.结构体可以整体覆盖(赋值)吗
{
	int id,j;
	printf("请输入要删除哪个学生的信息:\n");
	scanf("%d",&id);//
	for(j=0;j<i-id;j++)
	{
		s[id+j-1] = s[id+j];
		s[id+j-1].id = id+j;
	}
	i--;
}
void change(stu s[])
{
	int id;
	printf("请输入更改对象的编号\n");
	scanf("%d",&id);
	printf("请输入更改的姓名,年龄,性别,学号\n");
	scanf("%s%d %c%d",&s[id-1].name,&s[id-1].age,&s[id-1].sex,&s[id-1].number);
}
void main()
{
	int choice;
	stu s[SIZE];
	while(1)
	{
		menu();
		scanf("%d",&choice);
		
		switch(choice)
		{
			case 1:
				add(s);
			//	printf("%s,%d,%c,%d\n",s[0].name,s[0].age,s[0].sex,s[0].number);
				break;
			case 2:
				show(s);
				break;
			case 3:
				delete(s);
				break;
			case 4:
				change(s);
				break;
			default:
				break;
		}
	}
}
.h文件
#define SIZE 10
 
typedef struct
{
	int id;
	char name[20];
	int age;
	char sex;
	int number;
	
}stu;
int i;//数组下标

猜你喜欢

转载自blog.csdn.net/jsxyma/article/details/81037584