学生成绩管理系统的思路和void思路

大学分数线2023-03-05 20:10:56佚名

学生成绩管理系统思路

学生成绩管理系统首先要对系统进行初始化,启动一个新的学生成绩系统。 系统初始化记录学生的姓名、学号、系,然后录入学生各科成绩,包括数学、英语、语文。 记录每个班级的成绩后,可以查看学生的平均成绩,是否及格。 成绩查询包括学号查询、姓名查询、院系查询、全部输出。 可以清楚看到通过人数,按分数排序,最后还可以增删学生成绩,或者更改学生成绩,避免人为输入成绩出错。

基本功能 1.结构

定义一个结构体,结构体的关键字,定义的结构体对象。 学号 char ID[20]; 名称字符名称[10]; 每个分数浮动标记,总分数浮动所有平均分数浮动;

2.条目(无效())

使用循环将数据从[0]输入到各种信息,计数器num+1。

2.删除(无效())

使用循环将数组中的信息与要删除的信息进行比较。 如果相同,则删除此项并将后面的信息前移一位, num-1; 如果没有项目,提示重新输入。

3.修改(无效())

使用循环将数组中的信息与要修改的信息进行比较。 如果相同,则重新复制修改; 如果没有项目,提示重新输入。

4.插入(无效())

提示输入插入的位置,将位置和位置的信息向后移动一位,将新的信息输入位置。 计数器编号+1。

5.排序(无效排序())

取排序的平均分数,依次比较相邻的两个分数,如果顺序小于前者,则交换。 重复访问元素的工作,直到不需要交换相邻元素为止,也就是说元素已经排序完毕。

6.显示(无效())

使用循环打印出输入的信息。

7.查询(无效x())

提示查询该学生的学号二级c语言成绩查询二级c语言成绩查询,使用循环比较,如果相同,打印出这条信息; 如果没有此项,提示重新输入。

8.主函数main()

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

#include
#include
#include
#include
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二级c语言成绩查询_c语言成绩管理系统课程设计_c语言成绩管理系统代码

"); } else { printf("你要修改的学生信息为: "); Student_DisplaySingle(index); printf("-- 请输入新值-- "); printf("请输入学号:"); scanf("%s",&students[index].ID); getchar(); printf("请输入姓名:"); scanf("%s",&students[index].Name); getchar(); printf("请输入语文成绩:"); scanf("%f",&students[index].Mark1); getchar(); printf("请输入数学成绩:"); scanf("%f",&students[index].Mark2); getchar(); printf("请输入英语成绩:"); scanf("%f",&students[index].Mark3); getchar(); printf("请输入计算机成绩:"); scanf("%f",&students[index].Mark4); //重新录入一套新的数据替代 getchar(); students[index].All=students[index].Mark1+students[index].Mark2+students[index].Mark3+students[index].Mark4; students[index].Average=(students[index].Mark1+students[index].Mark2+students[index].Mark3+students[index].Mark4)/4; } printf("是否继续?(y/n)"); if (getchar()=='n') { break; } } } void deletee()//删除学生信息 { int i; while(1) { char id[20]; int index; printf("请输入要删除的学生的学号:"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); //调用搜查id函数,根据其返回值确定位置 if (index==-1) { printf("学生不存在! "); } else { printf("你要删除的学生信息为: "); Student_DisplaySingle(index); printf("是否真的要删除?(y/n)"); if (getchar()=='y') { for (i=index;inum) { printf("输入的位置有误,请重新输入,当前共%d条数据 ",num); scanf("%d",&a);} b=num-1; for(;b>=a-1;b--) { //strcpy(students[b+1].ID,students[b].ID); //strcpy(students[b+1].Name,students[b].Name); //students[b+1].Mark1=students[b].Mark1; //students[b+1].Mark2=students[b].Mark2; //students[b+1].Mark3=students[b].Mark3; //students[b+1].Mark4=students[b].Mark4; //students[b+1].All=students[b].All; //students[b+1].Average=students[b].Average; Copy(students,b+1,b); //根据其输入的位置,将其及以后的数据向后移动一个位置 } num++; printf("请输入学号:"); scanf("%s",&students[a-1].ID); getchar(); printf("请输入姓名:"); scanf("%s",&students[a-1].Name); getchar(); printf("请输入语文成绩:"); scanf("%f",&students[a-1].Mark1); getchar(); printf("请输入数学成绩:"); scanf("%f",&students[a-1].Mark2); getchar(); printf("请输入英语成绩:"); scanf("%f",&students[a-1].Mark3); getchar(); printf("请输入计算机成绩:"); scanf("%f",&students[a-1].Mark4); //输入新数据

c语言成绩管理系统代码_二级c语言成绩查询_c语言成绩管理系统课程设计

getchar(); students[a-1].All=students[a-1].Mark1+students[a-1].Mark2+students[a-1].Mark3+students[a-1].Mark4; students[a-1].Average=(students[a-1].Mark1+students[a-1].Mark2+students[a-1].Mark3+students[a-1].Mark4)/4; } void search()//查询学生信息 { while(1) { char name[20]; int index; printf("请输入要查询的学生的姓名:"); scanf("%s",&name); getchar(); index=Student_SearchByName(name); //调用搜查name函数,根据其返回值确定位置 if (index==-1) { printf("学生不存在! "); } else { printf("你要查询的学生信息为: "); Student_DisplaySingle(index); } printf("是否继续?(y/n)"); if (getchar()=='n') { break; } } } void sort()//根据平均分排序 { int i,j; //struct students tmp; for (i=0;imax) max=students[a].Mark1; } for(a=0;a二级c语言成绩查询_c语言成绩管理系统代码_c语言成绩管理系统课程设计

max=students[0].Mark2; for(a=1;amax) max=students[a].Mark2; } for(a=0;amax) max=students[a].Mark3; } for(a=0;amax) max=students[a].Mark4; } for(a=0;a

代码修改如下

1.关于复制包含数组成员的结构体的问题

2.学号唯一性受限(函数)

3.新增文件读写

存在的问题

1.输出格式

2.插入()时,不判断学号的唯一性

相关推荐

猜你喜欢

大家正在看

换一换