mian.c
#include "student.h"
int main(int argc, const char *argv[])
{
class_t *my_class = NULL;
create_class(&my_class);
int choose = 0;
while(1){
tra_student(my_class);
menu_printf();
printf("请输入你的选项");
scanf("%d",&choose);
switch(choose){
case 1:
insert_student(my_class);
break;
case 2:
modify_student(my_class);
break;
case 3:
serach_student(my_class);
break;
case 4:
delete_student(my_class);
break;
case 5:
sort_student(my_class);
break;
}
if(choose==6){
free_class(&my_class);
break;
}
}
return 0;
}
student.c
#include "student.h"
int create_class(class_t **my_class){
*my_class=(class_t *)malloc(sizeof(class_t));
if(*my_class==NULL){
printf("入参为空");
exit(-1);
}
memset(*my_class,0,sizeof(class_t));
return 0;
}
int insert_student(class_t *my_class){
printf("请输入学生信息:");
scanf("%d%s%d",&(my_class->person[my_class->count].id),
my_class->person[my_class->count].name,
&(my_class->person[my_class->count].score));
my_class->count++;
if(my_class->count==N){
printf("人数已满,添加失败");
return 1;
}
return 0;
}
int tra_student(class_t *my_class){
int i = 0;
for(i=0;i<my_class->count;i++){
printf("%-6d%-10s%-3d\n",my_class->person[i].id,
my_class->person[i].name,
my_class->person[i].score);
}
return 0;
}
void menu_printf(){
printf("----------------------\n");
printf("1.插入 2.修改 3.查找 \n");
printf("4.删除 5.排序 6.退出 \n");
printf("----------------------\n");
}
int free_class(class_t **my_class){
free(*my_class);
*my_class=NULL;
return 0;
}
int modify_student(class_t *my_class){
int num = 0;
printf("请输入要修改学生的学号:");
scanf("%d",&num);
int i = 0;
for(i=0;i<my_class->count;i++){
if(num==my_class->person[i].id){
printf("请输入学生姓名,成绩");
scanf("%s%d",my_class->person[i].name,
&(my_class->person[i].score));
}
}
if(i==my_class->count){
printf("查无此人\n");
}
return 0;
}
int serach_student(class_t *my_class){
int num = 0;
int i = 0;
printf("请输入要查找的信息");
scanf("%d",&num);
for(i=0;i<my_class->count;i++){
if(num==my_class->person->id){
printf("%-10s%-6d\n",my_class->person[i].name,
my_class->person[i].score);
return 0;
}
}
if(i==my_class->count){
printf("查无此人\n");
}
return 0;
}
int delete_student(class_t *my_class){
int num = 0;
int i = 0;
printf("请输入要删除的学生学号");
scanf("%d",&num);
for(i=0;i<my_class->count;i++){
if(num==my_class->person[i].id){
for(;i<my_class->count-1;i++){
my_class->person[i]=my_class->person[i+1];
}
my_class->count--;
return 0;
}
}
if(i==my_class->count){
printf("查无此人\n");
}
return 0;
}
int sort_student(class_t *my_class){
stu_t temp;
int i = 0;
int j = 0;
for(i = 0;i<my_class->count-1;i++){
for(j = 0; j<my_class->count-1-i;j++){
if(my_class->person[j].score>my_class->person[j+1].score){
temp=my_class->person[j];
my_class->person[j]=my_class->person[j+1];
my_class->person[j+1]=temp;
}
}
}
return 0;
}
student.h
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 3
//定义一个结构学生信息的结构类型
typedef struct stuent{
int id;
char name[32];
int score;
}stu_t;
//定义一个班级的结构类型
typedef struct class{
stu_t person[N]; //学生信息结构体数组
int count; //记录登记的学生人数
}class_t;
int create_class(class_t **my_class);
void menu_printf();
int free_class(class_t **my_class);
int insert_student(class_t *my_class);
int tra_student(class_t *my_class);
int modify_student(class_t *my_class);
int serach_student(class_t *my_class);
int delete_student(class_t *my_class);
int sort_student(class_t *my_class);
11-20
5319
11-17
2854
07-26
10万+
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交