//仅作参考
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
int studentNum = 0;
#define MAXSTUDENT (1024)
#define CheckData()\
{\
if(!studentNum)\
{\
printf("没有学生数据,按任意键返回……\n");\
getch();\
return;\
}\
}\
typedef struct Student
{
int id;
int cScore;
int mathScore;
}Student;
void ClearStudent(Student* student)
{
memset((void*)student,0,sizeof(*student));
}
void ShowMainMenu()
{
system("cls");
printf("1.增加记录\n2.计算每个学生的总成绩\n3.计算每门课程的平均成绩\n4.按座号查询学生的成绩\n5.按总分排名\n6.输出前n名的学生的成绩\n7.修改成绩\n0.退出\n");
}
void ShowCountScore(const Student* student)
{
system("cls");
CheckData();
for(int i = 0;i < studentNum;i++)
printf("学生%04d的总成绩:%d\n",(student+i)->id,(student+i)->cScore+(student+i)->mathScore);
printf("\n按任意键继续……");
getch();
}
void ShowClassAvg(const Student* student)
{
system("cls");
CheckData();
double sumc = 0;
double summath = 0;
for(int i = 0;i < studentNum;i++)
{
sumc += (student+i)->cScore;
summath += (student+i)->mathScore;
}
printf("C语言平均成绩为:%lf\n",sumc/studentNum);
printf("数学平均成绩为:%lf\n",summath/studentNum);
printf("\n按任意键继续……");
getch();
}
void AddStudent(Student* student)
{
system("cls");
if(studentNum == MAXSTUDENT)
{
printf("人数已满,按任意键返回……\n");
getch();
}
printf("分别录入座号、C语言成绩、数学成绩:\n");
int id = 0;
int cScore = 0;
int mathScore = 0;
scanf("%d%d%d",&id,&cScore,&mathScore);
for(int i = 0 ;i < studentNum;i++)
if((student+i)->id == id)
{
printf("座号重复,按任意键返回……\n");
getch();
return;
}
(student+studentNum)->id = id;
(student+studentNum)->cScore = cScore;
(student+studentNum)->mathScore = mathScore;
studentNum++;
}
void SelectFromID(const Student* student)
{
system("cls");
CheckData();
printf("输入查询ID:\n");
int id = 0;
scanf("%d",&id);
printf("查询结果:\n");
for(int i = 0;i<studentNum;i++)
if(id == (student+i)->id)
{
printf("C语言成绩为:%d\n数学成绩为:%d\n",(student+i)->cScore,(student+i)->mathScore);
break;
}
printf("\n按任意键继续……");
getch();
}
void SortForCount(Student* student)
{
system("cls");
CheckData();
for(int i = 0;i < studentNum;i++)
{
for(int j = studentNum -1;j > i;j--)
if(((student+j)->cScore+(student+j)->mathScore) > ((student+j-1)->cScore+(student+j-1)->mathScore))
{
Student stu;
stu = *(student+j);
*(student+j) = *(student+j-1);
*(student+j-1) = stu;
}
}
}
void SortForN(Student* student,int n)
{
SortForCount(student);
if(!studentNum)
return;
n = n>studentNum?studentNum:n;
for(int i = 0;i< n;i++)
printf("第%d名:\nID:%d\nC语言成绩为:%d\n数学成绩为:%d\n总分为:%d\n\n",i+1,(student+i)->id,(student+i)->cScore,(student+i)->mathScore,(student+i)->cScore+(student+i)->mathScore);
printf("\n按任意键继续……");
getch();
}
void UpdateScore(Student* student)
{
system("cls");
CheckData();
printf("输入修改ID:\n");
int id = 0;
scanf("%d",&id);
int i = 0;
for(;i<studentNum;i++)
if(id == (student+i)->id)
break;
if(i == studentNum)
printf("\n查无此人,按任意键继续……");
else
{
printf("输入欲修改的C语言成绩、数学成绩:\n");
int cScore = 0;
int mathScore = 0;
scanf("%d%d",&cScore,&mathScore);
(student+i)->cScore=cScore;
(student+i)->mathScore = mathScore;
printf("\n按任意键继续……");
}
getch();
}
void RunStudent(Student* student)
{
while(1)
{
ShowMainMenu();
char chGet = getch();
switch(chGet)
{
case '1':
AddStudent(student);
break;
case '2':
ShowCountScore(student);
break;
case '3':
ShowClassAvg(student);
break;
case '4':
SelectFromID(student);
break;
case '5':
SortForCount(student);
for(int i =0;i<studentNum;i++)
printf("第%d名:\nID:%d\nC语言成绩为:%d\n数学成绩为:%d\n总分为:%d\n\n",i+1,(student+i)->id,(student+i)->cScore,(student+i)->mathScore,(student+i)->cScore+(student+i)->mathScore);
printf("\n按任意键继续……");
getch();
break;
case '6':
{
int n = 0;
printf("输入N:\n");
scanf("%d",&n);
SortForN(student,n);
}
break;
case '7':
UpdateScore(student);
break;
case '0':
return;
default:
break;
}
}
}
int main()
{
Student* allStudent = (Student*)malloc(MAXSTUDENT*sizeof(Student));
memset((void*)allStudent,0,MAXSTUDENT*sizeof(Student));
RunStudent(allStudent);
return 0;
}
温馨提示:内容为网友见解,仅供参考
编程如何用C语言编写一个学生成绩管理系统程序
main() \/*主函数main,功能:通过调用creat,search,del,add,print,ststistics,save,taxis等函数,实现学生成绩查询系统功能*\/{ score *head=0,*stu=0;while(1){k=menu();switch(k)\/*用switch语句实现功能选择*\/{case 1: head=creat();break;\/*调用创建链表函数*\/case 2: head=search(head);break;\/*调...
C语言编程--输入5个学生成绩 判断是否及格
include "stdio.h"int main(){ int score;printf("请输入一个成绩:");scanf("%d",&score);if(score>60 && score<=100)printf("成绩合格\\n");else if(score<60 && score>=0)printf("成绩不合格\\n");else printf("输入的成绩有误\\n");} 例如:include<stdio.h> int main(){ int ...
如何用C#编程实现学生成绩管理系统?
1、首先,定义一个数据结构student,包含学生的各信息。2、定义两个student类型的变量,保存所有学生的成绩信息和临时变量。3、定义一个自定义函数,输入学生的成绩信息。4、具体实现学生信息的输入,并计算总分。5、主函数中,先定义4个整型变量,保存学生的总数,以及控制循环的变量。6、接着,输入学生...
学生成绩管理系统C语言代码
printf("How many students are you want to add(1-%d)?:",N-n); scanf("%d",&m); k=m+n; for(i=n;i<k;i++) {printf("\\n Input %dth student record.\\n",i+1); input(i); } if((fp=fopen("score.txt","ab"))==NULL) {printf("Cannot open file.\\n"); } for(i=n;i<k...
C语言~输入5个学生的学号,成绩,按成绩排序(升序),查找90分以上的
\/*注意:变量temp的类型与数组stu的元素类型为相同结构体的时候,才可交换两个结构体数组元素,所以此处需要定义temp的类型*\/ printf("请输入学生人数:\\n");scanf("%d",&n);printf("请按顺序输入名字、学号、年龄、分数:\\n");for(i=0;i<n;i++){ scanf("%s",&stu.name);scanf("%d",&...
c语言编写查询学生成绩管理程序。
printf("\\n请输入第 %d 个学生的语文成绩:",i+1);scanf("%d",&stu[i].ke2);printf("\\n请输入第 %d 个学生的英语成绩:",i+1);scanf("%d",&stu[i].ke3);if(flag==0){ i=i;i++;} }while(i<n+m);n+=m;printf("录入完毕!\\n\\n");}void del(){ int i,j,flag=0;...
求C语言源代码 题目 学生成绩管理系统
设计要求:1、数据结构:班级\/学号\/姓名\/数学\/英语\/语文\/C语言\/总分\/平均分2、模块分析:(1)系统主模块:以菜单形式提示用户本系统的功能,并能调用各子模块(2)录入模块:完成学生成绩的录入,同时实现计算每个学生的平均分,完善每个人的信息。(3)统计模块:可提供以下五种统计:① 每班各科的平均分;② 各科及格率、...
C语言编程,输入5个学生的成绩,按照优良中差四个级别输出.
intmain(){ intscore=0;\/\/学生成绩(实际类型请根据需要更改)printf("请输入学生成绩:\\n");scanf("%d",&score);\/ 使用if、elseif \/ if(score>=90){\/\/具体是多少,更具需要更改 printf("优\\n");}elseif(score>=80){ printf("良\\n");} \/\/其他雷同,已省略 \/ 使用switch \/ switch...
C语言学生成绩管理,求程序~
1、输入学生的 语文 英语 数学 体育 计算机5门课程的成绩 2、计算生成5门课程的平均分及成绩,以及学生的平均成绩 3、查找并输出最高分数所对应的学生及课程 4、计算:计算生成学生平均分方差 ---*\/ struct Student { char szName[20];int nChi, nEng, nMath, nSport, nCmp;};\/\/全局变量...
C语言编程 编写程序,对学生的考试成绩给出评定信息。
include<stdio.h>int main(void){int score=0;printf("input score: ");scanf("%d", &score );if ( score >= 90 ) printf("优秀\\n");else if ( score >= 80 ) printf("良好\\n");else if ( score >= 70 ) printf("中等\\n");else if ( score >= 60 ) printf...