学生成绩管理系统_结构体、指针、存储、排序、动态内存分配
2017-08-16 09:47
351 查看
#include<stdio.h>
#include<malloc.h>
//定义结构体
struct Student
{
int age ;
float score;
char name[100];
};
int main(void)
{
//函数的声明
void LeaveStudent(struct Student * p_1,int len_1);
void sort(struct Student * p_2,int len_2);
void OutputStudent(struct Student * p_3,int len_3);
//定义变量以及动态内存分配定义
int sum;
struct Student * p_sum;
p_sum = (struct Student *)malloc(sum * sizeof(struct Student));
printf("请用户输入学生的个数:\n");
printf("sum= ");
scanf("%d",&sum);
printf("\n");
LeaveStudent(p_sum,sum);
sort(p_sum,sum);
OutputStudent(p_sum,sum);
return 0;
}
//接受保存数据的函数
void LeaveStudent(struct Student * p_1,int len_1)
{
int i = 0;
for(i=0; i<len_1; ++i)
{
printf("请依次输入第%d个学生的成绩信息:\n",i +1);
printf("age = ");
scanf("%d",&p_1[i].age);
printf("name = ");
scanf("%s",p_1[i].name);//这里代表数组名,所以不用取地址符号
printf("score = ");
scanf("%f",&p_1[i].score);
}
}
//按照分数的降序进行排序
void sort(struct Student * p_2,int len_2)
{
int i,j;
struct Student t;
for(i=0; i<len_2-1; ++i)
{
for(j=0; j<len_2-1-i; ++j)
{
if(p_2[j].score < p_2[j+1].score) // >表示升序,<表示降序
{
t = p_2[j];
p_2[j] = p_2[j+1];
p_2[j+1] = t;
}
}
}
}
//输出结果函数
void OutputStudent(struct Student * p_3,int len_3)
{
printf("成绩排序后结果为:\n");
int i;
for(i=0; i<len_3; ++i)
{
printf("依次输出第%d个学生的成绩信息:\n",i +1);
printf("age = ");
printf("%d \n",p_3[i].age);
printf("name = ");
printf("%s \n",p_3[i].name);//这里代表数组名,所以不用取地址符号
printf("score = ");
printf("%f \n",p_3[i].score);
printf("\n");
}
}
#include<malloc.h>
//定义结构体
struct Student
{
int age ;
float score;
char name[100];
};
int main(void)
{
//函数的声明
void LeaveStudent(struct Student * p_1,int len_1);
void sort(struct Student * p_2,int len_2);
void OutputStudent(struct Student * p_3,int len_3);
//定义变量以及动态内存分配定义
int sum;
struct Student * p_sum;
p_sum = (struct Student *)malloc(sum * sizeof(struct Student));
printf("请用户输入学生的个数:\n");
printf("sum= ");
scanf("%d",&sum);
printf("\n");
LeaveStudent(p_sum,sum);
sort(p_sum,sum);
OutputStudent(p_sum,sum);
return 0;
}
//接受保存数据的函数
void LeaveStudent(struct Student * p_1,int len_1)
{
int i = 0;
for(i=0; i<len_1; ++i)
{
printf("请依次输入第%d个学生的成绩信息:\n",i +1);
printf("age = ");
scanf("%d",&p_1[i].age);
printf("name = ");
scanf("%s",p_1[i].name);//这里代表数组名,所以不用取地址符号
printf("score = ");
scanf("%f",&p_1[i].score);
}
}
//按照分数的降序进行排序
void sort(struct Student * p_2,int len_2)
{
int i,j;
struct Student t;
for(i=0; i<len_2-1; ++i)
{
for(j=0; j<len_2-1-i; ++j)
{
if(p_2[j].score < p_2[j+1].score) // >表示升序,<表示降序
{
t = p_2[j];
p_2[j] = p_2[j+1];
p_2[j+1] = t;
}
}
}
}
//输出结果函数
void OutputStudent(struct Student * p_3,int len_3)
{
printf("成绩排序后结果为:\n");
int i;
for(i=0; i<len_3; ++i)
{
printf("依次输出第%d个学生的成绩信息:\n",i +1);
printf("age = ");
printf("%d \n",p_3[i].age);
printf("name = ");
printf("%s \n",p_3[i].name);//这里代表数组名,所以不用取地址符号
printf("score = ");
printf("%f \n",p_3[i].score);
printf("\n");
}
}
相关文章推荐
- java版学生成绩管理系统(增删改查+数据用xml文档存储)
- 用C语言关于学生管理系统的几种实现方法(一位数组,二维数组,指针,结构体)
- C语言利用结构体数组实现学生成绩管理系统
- 学生成绩管理系统(指针,动态数组…
- (C语言)利用结构体数组制作学生成绩管理系统
- 【C项目】 文件,结构体,链表,排序, 学生信息管理系统
- 【C语言】结构体的应用以及学生成绩管理系统的设计
- 汇编语言学生成绩管理系统(一)结构体的使用
- 设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能
- 结构体指针数组完成输入学生姓名学号数学语文成绩修改排序显示等功能
- 学生成绩管理系统
- 学生成绩管理系统(dos+文件)
- C项目实践--学生成绩管理系统
- 数据结构实验 第一单元 学生成绩管理系统(链表版)
- 学生成绩管理系统/学生信息管理系统
- 学生成绩管理系统(二)
- lua 自学笔记 练习篇-学生成绩管理系统之教师文档
- 对于学生选课和成绩管理系统数据库设计的分析
- C语言 学生成绩管理系统
- 学生成绩管理系统(Linux Shell版)