学生成绩管理系统(C语言)

学生成绩管理系统

思路

学生成绩管理系统,首先要初始化系统,开始一个新的学生成绩系统初始化记录学生姓名,学号,院系,然后输入学生各科成绩,数学,英语,语文成绩。记录完各课成绩以后,可查看学生平均成绩和是否及格,成绩查询其中有学号查询,姓名查询,院系查询,还有全部输出,可以清晰的看到及格人数,按照分数高低排列,最后还可以添加和删除学生成绩,或者更改学生成绩,避免人为录入成绩错误。

基本函数

1.结构体 struct Student

定义一个结构体struct,结构体的关键字,students定义的结构体对象。学号char ID[20];姓名char Name[10]; 各项成绩float Mark,总成绩 float All 平均成绩 float Average;

2.录入(void inputt())

利用循环将数据从students[0]开始录入各项信息,计数器num+1。

2.删除(void deletee())

利用循环将数组里面的信息与待删除的信息比对,若相同,将此项删除并将后面的信息向前移动一位,计数器num-1;若无此项,提示重新输入。

3.修改(void modfiy())

利用循环将数组里面的信息与待修改的信息比对,若相同,对其进行重新复制即修改;若无此项,提示重新输入。

4.插入(void insert())

提示输入插入的位置,将该位置后及该位置的信息向后挪一位,将新信息录入该位置。计数器num+1。

5.排序 (void sort())

走排序的平均分,依次比较两个相邻的成绩,如果他们的顺序如果前小于后就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。

6.显示 (void display())

利用循环将已录入的信息打印出来。

7.查询 (void Student_SearchByIndex())

提示要查询学生的学号,利用循环比对,若相同,将此项信息打印出来;若无此项,提示重新输入。

8.主函数 main()

利用无限次循环while和swithch()实现各函数的调用,系统根据输入的数字来操控相应的函数,同时显示可供选择的选项。

#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
#include<string.h>
struct Student{   //每个学生对应一个结构体 
	char ID[20];//学号 
	char Name[10];//姓名 
	float Mark1;//语文成绩 
	float Mark2;//数学成绩 
	float Mark3;//英语成绩 
	float Mark4;//计算机成绩 
	float All; //总分 
	float Average;//平均成绩 
}students[1000];
int num=0; //计数器
void Copy(struct Student *arr,int i,int j)
{
	strcpy(arr[i].ID,arr[j].ID);
	strcpy(arr[i].Name,arr[j].Name);
	arr[i].Mark1 = arr[j].Mark1;
	arr[i].Mark2 = arr[j].Mark2;
	arr[i].Mark3 = arr[j].Mark3;
	arr[i].Mark4 = arr[j].Mark4;
	arr[i].All = arr[j].All;
	arr[i].Average = arr[j].Average;
}
int Student_SearchByName(char name[])//通过姓名来检索学生
{
     int i;
     for (i=0;i<num;i++)
     {
         if (strcmp(students[i].Name,name)==0)  //通过strcmp函数来对比学生姓名,找到返回在数组的位置 
         {
              return i;
       }
     }
     return -1;    //未找到返回 -1 
}
int Student_SearchByIndex(char id[])//通过学号来检索学生信息
{
     int i;
     for (i=0;i<num;i++)
     {
         if (strcmp(students[i].ID,id)==0)  //通过strcmp函数来对比学生id,找到返回位置 
         {
              return i;
         }  
     }
     return -1;   //未找到返回 -1 
}
void Student_DisplaySingle(int index)//输出表头
{
     printf("%10s%10s%8s%8s%8s%10s
","学号","姓名","语文","数学",&
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值