`
dcj3sjt126com
  • 浏览: 1871230 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言学习八结构体,综合应用,学生管理系统

    博客分类:
  • C
 
阅读更多

实现功能的代码:

# include <stdio.h>
# include <malloc.h>

struct Student
{
	int age;
	float score;
	char name[100];
};


int main(void)
{
	int len;
	struct Student * pArr;
	int i, j;
	struct Student t;

	// 动态的构造一维数组
	printf("请输入学生的个数:\n");
	printf("len = ");
	scanf("%d", &len);
	pArr = (struct Student *)malloc(len * sizeof(struct Student));

	for (i=0; i<len; i++)
	{
		printf("请输入第%d个学生的信息:\n", i+1);
		printf("name = ");
		scanf("%s", pArr[i].name);	//name是数组名,本身就已经是数组首元素的地址,所以pArr[i].name不能够改为&pArr[i].name

		printf("age = ");
		scanf("%d", &pArr[i].age);

		printf("score = ");
		scanf("%f", &pArr[i].score);
	}

	for (i=0; i<len-1; i++)
	{
		for (j=0; j<len-1-i; j++)
		{
			if (pArr[j].score > pArr[j+1].score)	//大于是升序,小于是降序
			{
				t = pArr[j];
				pArr[j] = pArr[j+1];
				pArr[j+1] = t;
			}
		}
	}

	printf("\n\n学生的信息是:\n");
	//输出
	for (i=0; i<len; i++)
	{
		printf("第%d个学生的信息是:\n", i+1);
		printf("name = %s\n", pArr[i].name);
		printf("age = %d\n", pArr[i].age);
		printf("score = %f\n", pArr[i].score);
		printf("\n");
	}
	

	return 0;
}

 

调优实现的代码如下:

/*
	2013年3月15日22:07:07
	实现学生管理系统功能,其实就是实现用户输入几个学生的信息,然后将成绩从高到低排序一下,显示一下
	用了结构体,函数,指针,动态分配
*/
# include <stdio.h>
# include <malloc.h>

struct Student
{
	int age;
	float score;
	char name[100];
};
void sort(struct Student *, int);
void InputStudent(struct Student *, int);
void OutputStudent(struct Student *, int);

int main(void)
{
	int len;
	struct Student * pArr;
	// 动态的构造一维数组
	printf("请输入学生的个数:\n");
	printf("len = ");
	scanf("%d", &len);
	pArr = (struct Student *)malloc(len * sizeof(struct Student));
	
	InputStudent(pArr, len);
	sort(pArr, len);
	OutputStudent(pArr, len);

	return 0;
}

void InputStudent(struct Student * pArr, int len)
{
	int i;

	for (i=0; i<len; i++)
	{
		printf("请输入第%d个学生的信息:\n", i+1);
		printf("name = ");
		scanf("%s", pArr[i].name);	//name是数组名,本身就已经是数组首元素的地址,所以pArr[i].name不能够改为&pArr[i].name

		printf("age = ");
		scanf("%d", &pArr[i].age);

		printf("score = ");
		scanf("%f", &pArr[i].score);
	}
}

void OutputStudent(struct Student * st, int len)
{
	int i;
	printf("\n\n学生的信息是:\n");
	//输出
	for (i=0; i<len; i++)
	{
		printf("第%d个学生的信息是:\n", i+1);
		printf("name = %s\n", st[i].name);
		printf("age = %d\n", st[i].age);
		printf("score = %f\n", st[i].score);
		printf("\n");
	}
}

void sort(struct Student * pArr, int len)
{
	int i, j;
	struct Student t;
	for (i=0; i<len-1; i++)
	{
		for (j=0; j<len-1-i; j++)
		{
			if (pArr[j].score > pArr[j+1].score)	//大于是升序,小于是降序
			{
				t = pArr[j];
				pArr[j] = pArr[j+1];
				pArr[j+1] = t;
			}
		}
	}	
}

 

分享到:
评论

相关推荐

    c语言 学生管理系统

    【标题】:“C语言 学生管理系统” ...总的来说,“C语言 学生管理系统”项目是一个综合性的实践平台,涵盖了C语言的基础知识、文件操作、数据结构和简单的数据管理功能,对于学习和提升C语言编程技能非常有价值。

    C语言写的小型学生管理系统

    总的来说,"C语言写的小型学生管理系统"项目是一个综合性的学习资源,它涵盖了C语言的诸多核心概念和实用技巧,包括文件操作、数据结构、输入/输出以及控制结构等。通过这个项目,初学者不仅可以提升C语言编程能力,...

    c语言版学生成绩管理系统实验报告

    综上所述,C语言版的学生成绩管理系统是一个综合性的项目,涵盖了C语言编程基础、数据结构、文件操作、多账户系统设计等多个关键知识点。通过这个项目,开发者可以提升自身的编程能力,同时理解实际应用中的软件开发...

    C语言大作业学生信息管理系统

    总的来说,C语言实现的学生信息管理系统是一个综合性的项目,涵盖了数据结构、文件操作、内存管理、输入/输出、算法设计和错误处理等多个方面,对于学习和掌握C语言有极大的帮助。通过这个项目,不仅可以提升编程...

    C语言实现控制台学生信息管理系统.zip

    在本项目中,"C语言实现控制台学生信息管理系统.zip" 是一个使用C语言编写的命令行应用程序,用于管理学生信息。这个系统可能包括添加、删除、查询和更新学生记录等基本功能,是学习C语言面向结构化编程和数据管理的...

    C语言学生管理系统

    本篇将深入探讨一个基于C语言实现的学生管理系统,它是一个典型的面向数据结构和文件操作的应用项目,对于学习C语言的同学来说,是提升实践能力、理解数据管理和文件操作的好例子。 学生管理系统通常包含学生信息的...

    c语言上机报告-学生信息综合管理系统(文档+代码)

    在学生管理系统中,我们需要将学生信息持久化存储到磁盘文件中,以便下次启动程序时能继续使用。这就需要用到文件操作的知识,如二进制文件的读写,以确保数据的准确无误。 此外,数据结构的选择和使用也是关键。在...

    C语言学生信息管理系统

    总之,《C语言学生信息管理系统》是一个综合性的学习资源,不仅涵盖了C语言的基础编程技能,还涉及到了文件操作、数据结构和算法等核心概念。通过学习和实践这个项目,开发者不仅可以提升C语言编程能力,还能深入...

    学生数据库管理系统(C语言实现)

    通过以上知识点的综合应用,可以构建出一个基本的学生数据库管理系统。不过,这样的系统可能不包含复杂的事务处理、并发控制或查询优化等功能,这些通常是现代数据库管理系统的核心部分。如果你对这个项目感兴趣,...

    学生管理系统(C语言)

    本项目是一个使用C语言编写的简单学生管理系统,它涉及到的关键知识点包括数据结构、数组、结构体以及基本的排序、查找和删除操作。下面将详细阐述这些知识点。 首先,C语言是一种底层编程语言,以其高效和灵活性...

    C语言实现的学生管理系统

    总结而言,C语言实现的学生管理系统是一个结合了数据结构、文件操作、用户交互和权限控制的综合实践项目。通过这个系统,开发者不仅能锻炼编程技能,还能理解如何在实际场景中运用计算机科学理论,为未来更复杂的...

    C语言 学生成绩管理系统

    总结,C语言学生成绩管理系统是一个结合了C语言基础、数据结构和文件操作的综合性项目。通过这个系统,我们可以巩固和提高C语言编程能力,同时对数据结构的理解也会更加深刻。无论是初学者还是有一定经验的开发者,...

    C语言课程设计:学生成绩管理系统

    ### C语言课程设计:学生成绩管理系统 #### 一、课程设计目的 C语言课程设计是计算机科学与技术专业的一项重要实践性教学活动。通过这一实践活动,学生不仅可以巩固和加深在课堂上学习到的理论知识,还能培养解决...

    C语言课程设计报告学生成绩管理系统

    从给定的文件信息来看,这是一份关于C语言课程设计报告的详细描述,主要聚焦于学生成绩管理系统的开发,以及一系列与加密技术相关的实践任务。以下是对这些知识点的深入解析: ### C语言课程设计报告学生成绩管理...

    c语言学生信息管理系统

    整个学生信息管理系统综合运用了C语言的多种高级特性,包括但不限于结构体、动态内存管理、文件操作、键盘事件处理以及基本的图形用户界面设计。这不仅展示了C语言的强大功能,也体现了软件工程中模块化设计和面向...

    C语言实训学生信息管理系统报告

    1. **理论与实践结合**:通过设计和实现学生信息管理系统,使学生能够将所学的C语言理论知识应用到实际项目中。 2. **技能提升**:训练学生独立编写和调试C语言应用程序,以及进行相关设计的能力。 **设计内容** ...

    C语言课程设计_学生信息管理系统

    总的来说,【C语言课程设计_学生信息管理系统】是一个综合性的项目,它涵盖了C语言的诸多核心概念和技术,包括基本语法、数据结构、文件操作、结构体、内存管理和错误处理。通过这个项目,C语言初学者不仅能巩固基础...

    C语言课程设计-学生信息管理系统.zip

    《C语言课程设计——学生信息管理系统》 在IT领域,特别是在软件工程中,课程设计是提升学生实践能力的重要环节。本项目“C语言课程设计-学生信息管理系统”旨在通过使用C语言开发一个实用的信息管理系统,让学生...

    c语言学习学生成绩管理系统.zip

    总结来说,“C语言学习学生成绩管理系统”是一个综合性的实践项目,涵盖了C语言的诸多核心知识点。通过这个项目,学习者不仅可以巩固对C语言基本语法的理解,还能提升解决实际问题的能力,包括数据结构设计、文件...

Global site tag (gtag.js) - Google Analytics