📄 smart.cpp
字号:
/* Note:Your choice is C IDE */
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define M 3
//定义一个学生的结构
typedef struct student
{
int num;
char name[12];
float score[M];
float aver;
};
//函数声明部分
int count = 0;
struct student stu[50];
struct student Input();
void Display(struct student stud[]);
void Sort(struct student stud[]);
void Insert(struct student stud[]);
void Delete(struct student stud[]);
//主函数部分
void main()
{
char ch = 'y';
while((ch == 'y')||(ch == 'Y'))
{
stu[count] = Input();
count++;
fflush(stdin);
printf("\n 是否继续输入?(y or n)");
scanf("%c",&ch);
}
printf("学生人数为:%d\n",count);
printf("所有学生信息如下:");
//Sort(stu,count);
Insert(stu);
//printf("学生人数为:%d\n",count);
//Delete(stu);
//printf("学生人数为:%d\n",count);
Display(stu);
}
//学生信息录入
struct student Input()
{
struct student studn;
int j;
float sum;
sum = 0.0;
printf("\n学号:");
scanf("%d",&studn.num);
printf("\n学生姓名:");
scanf("%s",&studn.name);
printf("\n各科成绩如下:");
printf("\n");
for(j = 0; j < M; j++)
{
printf("专业%d:",j+1);
scanf("%f",&studn.score[j]);
//scanf("%d", &studn.score[j]);
sum += studn.score[j];
}
studn.aver = sum/M;
return studn;//返回一个学生
}
//学生信息打印
void Display(struct student stud[])
{
int i;
printf("\n学号\t学生姓名\t平均成绩\n");
//if(count<1)
//printf("error!");
//else
// {
for(i = 0; i<count; i++)
{
printf("%d",stud[i].num);
printf("\t%s",stud[i].name);
printf("\t\t%f",stud[i].aver);
printf("\n");
}
// }
}
//按平均成绩排序
void Sort(struct student stud[])
{
int i,j;
struct student t;
for(i = 0; i < count; i++)
{
for(j = 0; j < count-i-1; j++ )
{
if(stud[j].aver < stud[j+1].aver)
{
t = stud[i];
stud[i] = stud[j+1];
stud[j+1] = t;
}
}
}
}
//添加学生成绩
void Insert(struct student stud[])
{
int i,j;
struct student temp;
printf("\n请输入要插入学生的学号");
temp = Input();
for(i = 0; i<count; i++)
{
if(stud[i].aver<temp.aver)//前面对已有学生进行过排序
break;
}
for(j = count;j>=i;j--)
{
stud[j+1] = stud[i];
}
stud[i] = temp;
}
//删除学生信息
void Delete(struct student stud[])
{
int delNum,i,j;
struct student temp;
printf("\n请输入要删除学生的学号:");
scanf("%d",&delNum);
for(i=0;i<count;i++)
{
if(stud[i].num == delNum)//如下最好检查输入学号是否存在
break;
}
for(j = i; j<count-1;j++)//后移
{
stud[j+1] = stud[i];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -