当前位置:首页 > 代码 > 正文

学生成绩管理系统首页源代码(学生成绩管理系统源代码 顺序表)

admin 发布:2022-12-19 19:10 157


今天给各位分享学生成绩管理系统首页源代码的知识,其中也会对学生成绩管理系统源代码 顺序表进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

学生成绩管理系统的源代码

#include "stdio.h"

/*定义学生结构体*/

struct Student

{

char ID[20];

char Name[20];

float Mark1;

float Mark2;

float Mark3;

float Average;

};

/*声明学生数组及学生数量*/

struct Student students[1000];

int num=0;

/*求平均值*/

float Avg(struct Student stu)

{

return (stu.Mark1+stu.Mark2+stu.Mark3)/3;

}

/*通过学号返回数组下标*/

int Student_SearchByIndex(char id[])

{

int i;

for (i=0;inum;i++)

{

if (strcmp(students[i].ID,id)==0)

{

return i;

}

}

return -1;

}

/*通过姓名返回数组下标*/

int Student_SearchByName(char name[])

{

int i;

for (i=0;inum;i++)

{

if (strcmp(students[i].Name,name)==0)

{

return i;

}

}

return -1;

}

/*显示单条学生记录*/

void Student_DisplaySingle(int index)

{

printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");

printf("-------------------------------------------------------------\n");

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name,

students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);

}

/*插入学生信息*/

void Student_Insert()

{

while(1)

{

printf("请输入学号:");

scanf("%s",students[num].ID);

getchar();

printf("请输入姓名:");

scanf("%s",students[num].Name);

getchar();

printf("请输入成绩:");

scanf("%f",students[num].Mark1);

getchar();

printf("请输入成绩:");

scanf("%f",students[num].Mark2);

getchar();

printf("请输入成绩:");

scanf("%f",students[num].Mark3);

getchar();

students[num].Average=Avg(students[num]);

num++;

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*修改学生信息*/

void Student_Modify()

{

float mark1,mark2,mark3;

while(1)

{

char id[20];

int index;

printf("请输入要修改的学生的学号:");

scanf("%s",id);

getchar();

index=Student_SearchByIndex(id);

if (index==-1)

{

printf("学生不存在!\n");

}

else

{

printf("你要修改的学生信息为:\n");

Student_DisplaySingle(index);

printf("-- 请输入新值--\n");

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();

students[index].Average=Avg(students[index]);

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*删除学生信息*/

void Student_Delete()

{

int i;

while(1)

{

char id[20];

int index;

printf("请输入要删除的学生的学号:");

scanf("%s",id);

getchar();

index=Student_SearchByIndex(id);

if (index==-1)

{

printf("学生不存在!\n");

}

else

{

printf("你要删除的学生信息为:\n");

Student_DisplaySingle(index);

printf("是否真的要删除?(y/n)");

if (getchar()=='y')

{

for (i=index;inum-1;i++)

{

students[i]=students[i+1];

}

num--;

}

getchar();

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*按姓名查询*/

void Student_Select()

{

while(1)

{

char name[20];

int index;

printf("请输入要查询的学生的姓名:");

scanf("%s",name);

getchar();

index=Student_SearchByName(name);

if (index==-1)

{

printf("学生不存在!\n");

}

else

{

printf("你要查询的学生信息为:\n");

Student_DisplaySingle(index);

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*按平均值排序*/

void Student_SortByAverage()

{

int i,j;

struct Student tmp;

for (i=0;inum;i++)

{

for (j=1;jnum-i;j++)

{

if (students[j-1].Averagestudents[j].Average)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}

}

/*显示学生信息*/

void Student_Display()

{

int i;

printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");

printf("-------------------------------------------------------------\n");

for (i=0;inum;i++)

{

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name,

students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);

}

}

/*将学生信息从文件读出*/

void IO_ReadInfo()

{

FILE *fp;

int i;

if ((fp=fopen("Database.txt","rb"))==NULL)

{

printf("不能打开文件!\n");

return;

}

if (fread(num,sizeof(int),1,fp)!=1)

{

num=-1;

}

else

{

for(i=0;inum;i++)

{

fread(students[i],sizeof(struct Student),1,fp);

}

}

fclose(fp);

}

/*将学生信息写入文件*/

void IO_WriteInfo()

{

FILE *fp;

int i;

if ((fp=fopen("Database.txt","wb"))==NULL)

{

printf("不能打开文件!\n");

return;

}

if (fwrite(num,sizeof(int),1,fp)!=1)

{

printf("写入文件错误!\n");

}

for (i=0;inum;i++)

{

if (fwrite(students[i],sizeof(struct Student),1,fp)!=1)

{

printf("写入文件错误!\n");

}

}

fclose(fp);

}

/*主程序*/

main()

{

int choice;

IO_ReadInfo();

while(1)

{

/*主菜单*/

printf("\n------ 学生成绩管理系统------\n");

printf("1. 增加学生记录\n");

printf("2. 修改学生记录\n");

printf("3. 删除学生记录\n");

printf("4. 按姓名查询学生记录\n");

printf("5. 按平均成绩排序\n");

printf("6. 退出\n");

printf("请选择(1-6):");

scanf("%d",choice);

getchar();

switch(choice)

{

case 1:

Student_Insert();

break;

case 2:

Student_Modify();

break;

case 3:

Student_Delete();

break;

case 4:

Student_Select();

break;

case 5:

Student_SortByAverage();

Student_Display();

break;

case 6:

exit();

break;

}

IO_WriteInfo();

}

}

求“学生成绩管理系统”源代码

#includestdio.h

#includestdlib.h

#includestring.h

#define N 50 /*定义符号常量,代表学生人数最大值*/

int count=0; /*全局变量,用于记录数组的当前位置*/

struct student /*定义结构体类型,代表学生信息*/

{

char name[9]; /*学生姓名*/

char number[10]; /*学生学号*/

float math; /*数学成绩*/

float english; /*英语成绩*/

};

void input(struct student *arr); /*函数声明,输入学生信息*/

void sort(struct student *arr); /*函数声明,按总分排序*/

void find(struct student *arr); /*函数声明,查找某位学生信息*/

void main()

{

char selmenu; /*定义局部变量,用于记录用户选择的功能编号*/

struct student stud[N]; /*定义结构体数组,用于记录学生信息*/

do /*利用循环显示界面*/

{

system("cls"); /*清屏函数*/

printf("\n\n");

printf("\t\t\t\t 学生成绩管理系统 \n\n");

printf("\t\t\t\t1.输入学生成绩\n");

printf("\t\t\t\t2.按总分排榜\n");

printf("\t\t\t\t3.查找学生信息\n");

printf("\t\t\t\t4.退出\n\n");

printf("\t\t\t请输入功能选择编号(1-4):");

fflush(stdin); /*清空输入缓冲区*/

scanf("%c",selmenu); /*接受用户选择的功能编号*/

switch(selmenu) /*输入不同功能编号调用相应函数来完成功能*/

{

case'1':

input(stud); /*调用输入学生信息函数,参数为学生信息数组名*/

break;

case'2':

sort(stud); /*调用按总分排榜函数,参数是数组名*/

break;

case'3':

find(stud); /*调用按学号和姓名查找学生信息函数*/

break;

}

}while(selmenu!='4'); /*判断是否退出*/

printf("\n\n\t\t\t----------------谢谢使用----------------\n\n"); /*输出告别词*/

}

void input(struct student *arr) /*定义输入学生信息函数*/

{

char ch; /*用于接收用户指令*/

do /*利用循环,由用户控制输入学生成绩*/

{

system("cls");

printf("\n输入第%d个学生的信息:\n输入学生姓名:",count+1);

scanf("%s",arr[count].name);

printf("\n输入学生学号:");

scanf("%s",arr[count].number);

printf("\n输入数学成绩:");

scanf("%f",arr[count].math);

printf("\n输入英语成绩:");

scanf("%f",arr[count].english);

count++; /*记录当前输入的学生资料的个数*/

printf("\n是否继续输入(y/n)\n");

fflush(stdin); /*清空输入缓冲区*/

ch=getchar();

}while(ch=='y'||ch=='Y'); /*判断用户指令,是否继续输入*/

}

void sort(struct student *arr) /*定义按总分排榜函数*/

{

int i,j,k; /*定义循环变量i,j,最小数位置k*/

struct student t; /*定义交换临时变量*/

if(count==0) /*判断数组中学生成绩是否存在*/

printf("无学生成绩,请先录入学生信息\n");

else

{

for(i=0;icount-1;i++) /*用选择法按总分对学生成绩排序*/

{

k=i;

for(j=i+1;jcount;j++) /*k为arr[i]到arr[count-1]中最小数的位置*/

if((arr[k].math+arr[k].english)(arr[j].math+arr[j].english))

k=j;

if(k!=i) /*如果最小数不是比较数列中第一个,对调*/

{

t=arr[k];

arr[k]=arr[i];

arr[i]=t;

}

}

printf("\n总分排榜:\n\n");

printf("\t姓名\t学号\t数学\t英语\t总分\t名次\n");

for(j=0;jcount;j++) /*输出按总分排榜后的学生成绩和名次*/

printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\t%-5d\n",

arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english,

j+1);

}

printf("\n回车键返回主程序\n");

fflush(stdin);

getchar();

}

void find(struct student *arr) /*定义查找函数*/

{

int j;

char name[9]; /*用于接收用户输入的学生姓名*/

char number[10]; /*用于接收用户输入的学生学号*/

system("cls"); /*清屏函数*/

printf("\n请输入要查找的学生资料:\n");

printf("\n学生姓名:");

scanf("%s",name);

printf("\n学生学号:");

scanf("%s",number);

for(j=0;jcount;j++) /*使用字符串比较函数查找兵书出符合条件的学生成绩*/

{

if((strcmp(name,arr[j].name)==0)(strcmp(number,arr[j].number)==0))

{

printf("\n\t姓名\t学号\t数学\t英语\t总分\n");

printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\n",

arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english);

break;

}

}

if(j=count) /*如果没找到,会从循环条件退出*/

printf("\n未找到该学生纪录,请核对后重新查找!\n");

fflush(stdin); /*清空输入缓冲区*/

printf("\n回车键返回上一功能菜单\n");

getchar();

}

c语言程序学生成绩管理系统源代码

头文件:::

#ifndef H_STUDENT_HH

#define H_STUDENT_HH

#include "stdio.h"

#include "string.h"

#include "malloc.h"

#define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/

#define numsubs 5 /*学科数目*/

typedef struct message_student /*结构体定义*/

{

char number[6];

char name[20];

char sex[4];

float subject[numsubs];

float score;

float average;

int index;

}student;

extern int numstus; /*学生数目*/

extern student *pointer; /*指向结构体数组*/

extern int lens;

int menu_select(); /*函数声明*/

int openfile(student stu[]);

int findrecord(student stud[]);

int writetotext(student stud[]);

void welcome();

void display1();

void showtable();

void sort(student stu[]);

void deleterecord(student stu[],int i);

void addrecord(student stud[]);

void display(student stud[],int n1,int n2);

void amendrecord(student stud[]);

void count(student stud[]);

void sortnum(student stud[]);

void sortnum2(student stud[]);

void sortname(student stud[]);

void sortname2(student stud[]);

void sortcount(student stud[]);

void sortcount2(student stud[]);

void statistic(student stud[]);

void display1();

#endif

#include "head.h"

int menu_select()

{

char c;

printf("\n\n");

printf(" | 1. 增加学生记录 5.统计信息 |\n");

printf(" | 2. 查询学生记录 6.打开文件 |\n");

printf(" | 3. 修改学生记录 7.保存文件 |\n");

printf(" | 4. 学生纪录排序 8.显示记录 |\n");

printf(" | 0.退出系统 |\n");

printf("\n\n");

printf("请选择(0-8):");

c=getchar();

getchar();

return (c-'0');

}

#include "head.h"

int findrecord(student stud[]) /*查找信息*/

{

char str[2];

int i,num;

if(numstus==0)

{

printf("没有可被查找的记录\n");

return -1;

}

else

{

printf("以何种方式查找?\n1.学号\t2.姓名\t3.名次\n");

gets(str);

if(str[0]=='1') /*按学号查找*/

{

printf("请输入学号:");

gets(str);

for(i=0;i=numstus;i++)

if(strcmp(str,stud[i].number)==0)

{

display(stud,i,i);

break;

}

else continue;

}

else if(str[0]=='2') /*按姓名查找*/

{

printf("请输入姓名:");

gets(str);

for(i=0;i=numstus;i++)

if(strcmp(str,stud[i].name)==0)

{

display(stud,i,i);

break;

}

else continue;

}

else if(str[0]=='3') /*按名次查找*/

{

printf("请输入名次:");

scanf("%d",num);

getchar();

for(i=0;i=numstus;i++)

if(num==stud[i].index)

{

display(stud,i,i);

break;

}

else continue;

}

if(inumstus)

{

printf("没有查找所要的信息。\n");

return -1;

}

return i;

}

}

#include"head.h"

int openfile(student stu[])

{

int i=0,j;

FILE *fp;

char filename[20],str[2];

if(numstus!=0)

{

printf("已经有记录存在,是否保存?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

writetotext(stu);

}

printf("请输入文件名:");

gets(filename);

numstus=0;

if((fp=fopen(filename,"rb+"))==NULL)

{

printf("无法打开该文件\n");

return(-1);

}

fscanf(fp,"%d",numstus);

fgetc(fp);

while(inumstus)

{

fscanf(fp,"%s",stu[i].number);

fscanf(fp,"%s",stu[i].name);

fscanf(fp,"%s",stu[i].sex);

for(j=0;jnumsubs;j++)

fscanf(fp,"%f",stu[i].subject[j]);

fscanf(fp,"%f",stu[i].score);

fscanf(fp,"%f",stu[i].average);

fscanf(fp,"%d",stu[i].index);

i++;

}

fclose(fp);

printf("文件读取成功\n");

printf("是否显示纪录?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

display(stu,0,numstus-1);

return(0);

}

#include "head.h"

void sort(student stud[])

{

int i,j=0;

char str[5];

student *p;

p=stud;

if(numstus==0)

{

printf("没有可供查询的记录!");

}

while(1)

{

for(i=0;;i++)

{

printf(" 请输入查询方式:");

printf("(直接输入回车则结束查询操作)\n");

printf("1.按照学号\t");

printf("2.按照姓名\t");

printf("3.按照名次\n");

gets(str);

if(strlen(str)==0) break;

if(str[0]=='1')

{

printf("请输入排序次序:\n");

printf("1.升序排列\t");

printf("2.降序排列\n");

gets(str);

if(str[0]=='1')

sortnum2(p);

else

sortnum(p);

display(stud,0,numstus-1);

}

else if(str[0]=='2')

{

printf("请输入排序次序:\n");

printf("1.升序排列\t");

printf("2.降序排列\n");

gets(str);

if(str[0]=='1')

sortname2(p);

else

sortname(p);

display(stud,0,numstus-1);

}

else if(str[0]=='3')

{

printf("请输入排序次序:\n");

printf("1.升序排列\t");

printf("2.降序排列\n");

gets(str);

if(str[0]=='1')

sortcount2(p);

else

sortcount(p);

display(stud,0,numstus-1);

}

else printf("请输入1~3");

printf("是否退出排序?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y') break;

}

return;

}

}

void sortnum(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

for(i=0;inumstus;i++)

for(j=0;jnumstus-i-1;j++)

{

if(strcmp(stud[j+1].number,stud[j].number)0)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortnum2(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

for(i=0;inumstus;i++)

for(j=0;jnumstus-i-1;j++)

{

if(strcmp(stud[j].number,stud[j+1].number)0)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortname(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

for(i=0;inumstus;i++)

for(j=0;jnumstus-i-1;j++)

{

if(strcmp(stud[j+1].name,stud[j].name)0)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortname2(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

for(i=0;inumstus;i++)

for(j=0;jnumstus-i-1;j++)

{

if(strcmp(stud[j].name,stud[j+1].name)0)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortcount(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

for(i=0;inumstus;i++)

for(j=0;jnumstus-i-1;j++)

{

if(stud[j+1].indexstud[j].index)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

void sortcount2(student stud[])

{

int i,j;

student temp;

student *p;

p=stud;

for(i=0;inumstus;i++)

for(j=0;jnumstus-i-1;j++)

{

if(stud[j].indexstud[j+1].index)

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

#include"head.h"

void statistic(student stud[]) /*新增功能,输出统计信息*/

{

int i,j=0,k=0;

char c1,str[2];

float average[numsubs],sum=0;

if(numstus==0)

printf("没有可被查找的记录\n");

else

{

while(1)

{

printf("下面将统计考试成绩\n");

printf("请选择你要统计哪科的成绩 1.A\t2.B\t3.C\t4.D\t5.E\n");

c1=getchar();

printf("\t一共有个%d记录\n",numstus); /*总共记录数*/

switch(c1)

{

case '1':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[0];

if(stud[k].subject[0]stud[i].subject[0]) k=i;

if(stud[j].subject[0]stud[i].subject[0]) j=i;

}

average[0]=sum/numstus;

printf("\t科目A的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[0]);

printf("\t科目A的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[0]);

printf("\t科目A的平均分是 %5.2f\n",average[0]); /*平均分*/

break;

case '2':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[1];

if(stud[k].subject[1]stud[i].subject[1]) k=i;

if(stud[j].subject[1]stud[i].subject[1]) j=i;

}

average[1]=sum/numstus;

printf("\t科目B的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[1]);

printf("\t科目B的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[1]);

printf("\t科目B的平均分是 %5.2f\n",average[1]); /*平均分*/

break;

case '3':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[2];

if(stud[k].subject[2]stud[i].subject[2]) k=i;

if(stud[j].subject[2]stud[i].subject[2]) j=i;

}

average[2]=sum/numstus;

printf("\t科目C的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[2]);

printf("\t科目C的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[2]);

printf("\t科目C的平均分是 %5.2f\n",average[2]); /*平均分*/

break;

case '4':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[3];

if(stud[k].subject[3]stud[i].subject[3]) k=i;

if(stud[j].subject[3]stud[i].subject[3]) j=i;

}

average[3]=sum/numstus;

printf("\t科目D的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[3]);

printf("\t科目D的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[3]);

printf("\t科目D的平均分是 %5.2f\n",average[3]); /*平均分*/

break;

case '5':

for(i=0;inumstus;i++) /*循环输入判断*/

{

sum+=stud[i].subject[4];

if(stud[k].subject[4]stud[i].subject[4]) k=i;

if(stud[j].subject[4]stud[i].subject[4]) j=i;

}

average[4]=sum/numstus;

printf("\t科目E的最高分:\n"); /*最高分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[4]);

printf("\t科目E的最低分是:\n"); /*最低分*/

printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[4]);

printf("\t科目E的平均分是 %5.2f\n",average[4]); /*平均分*/

break;

default:printf("输入错误!请输入1~5之间的数\n");

}

sum=0;

getchar();

printf("是否继续进行统计?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y') ;

else break;

}

}

}

#include"head.h"

int writetotext(student stud[]) /*将所有记录写入文件*/

{

int i=0,j;

FILE *fp;

char filename[20];

printf("输入文件名称:");

gets(filename);

fp=fopen(filename,"w");

fprintf(fp,"%d\n",numstus);

while(inumstus)

{

fprintf(fp,"%s %s %s ",stud[i].number,stud[i].name,stud[i].sex);

for(j=0;jnumsubs;j++)

fprintf(fp,"%f ",stud[i].subject[j]);

fprintf(fp,"%f %f %d ",stud[i].score,stud[i].average,stud[i].index);

i++;

}

fclose(fp);

printf("已成功存储!\n");

display(stud,0,numstus-1);

numstus=0;

return 0;

}

#include"head.h"

void welcome()

{

printf("\t*************************************************************\n");

printf("\t\t\t\t这是一个学生成绩管理系统\n\t\t\t\t 倾情奉献 欢迎使用!\n");

printf("\t*************************************************************\n");

}

void showtable()

{

printf("---------------------------------------------------------------------------------------\n");

printf("学号\t姓名\t性别\tA\tB\tC\tD\tE\t总分\t平均分\t名次\n");

printf("---------------------------------------------------------------------------------------\n");

}

void display(student stud[],int n1,int n2)

{

int i;

showtable(); /*显示表头*/

for(i=n1;i=n2;i++)

printf("%s\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%d\t\n",stud[i].number,stud[i].name,stud[i].sex,stud[i].subject[0],stud[i].subject[1],stud[i].subject[2],stud[i].subject[3],stud[i].subject[4],stud[i].score,stud[i].average,stud[i].index);

/*通过循环输出数据*/

}

void display1()

{

printf("\t\t本系统由计应精英一组亲情制作\n\n");

printf("\t\t制作人员列表: (按比划)\n");

printf("\t\t王庆斌\t\t\t张威\n\t\t李智\t\t\t周在峰\n\t\t杨凯\t\t\t胡杨\n");

printf("\n\n");

getchar();

}

#include"head.h"

#includestring.h

void amendrecord(student stud[])

{

char str[5]; /*供用户输入*/

int i=-1,j;

if(numstus==0) /*没有记录返回*/

printf("没有可供修改的记录!");

while(i0)

{

i=findrecord(stud);

if(i=0)

{

printf("要删除这个学生的信息吗?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

{

deleterecord(stud,i);

count(stud);

}

else

{

printf("确定要修改这个学生的信息吗?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

{

printf("下面请重新输入学生的信息:\n");

printf("请输入学号:");

gets(stud[i].number);

printf("请输入姓名:");

gets(stud[i].name);

printf("请输入性别(男/女 1/0):");

gets(str);

if(str[0]=='0')

strcpy(stud[i].sex,"女");

else

strcpy(stud[i].sex,"男");

stud[i].score=0;

printf("请按顺序输入成绩:");

for(j=0;jnumsubs;j++)

{

scanf("%f",stud[i].subject[j]);

stud[i].score+=stud[i].subject[j];

}

getchar();

stud[i].average=stud[i].score/numsubs;

}

count(stud);

}

display(stud,0,numstus-1);

}

printf("是否继续进行其他修改?(y/n)\n");

gets(str);

if(str[0]=='y'||str[0]=='Y')

i=-1;

else i=1;

}

}

void deleterecord(student stu[],int i) /*删除信息*/

{

int j;

while(i=0)

{

for(j=i;jnumstus;j++)

stu[j]=stu[j+1];

numstus--;

printf("删除成功!\n");

}

}

void count(student stud[])

{

int i,j;

for(i=0;inumstus;i++)

{

stud[i].index=1;

for(j=0;jnumstus;j++)

if(stud[j].scorestud[i].score)

stud[i].index++;

}

}

#include "head.h"

void addrecord(student stud[])

{

int i=0,j,num;

char str[5];

if(numstus!=0)

{

printf("已有记录存在是否覆盖?(y/n)\n");

gets(str);

if(str[0]=='Y'||str[0]=='y')

i=0;

else i=numstus;

}

printf("请输入增加的学生信息条目数:");

scanf("%d",num);

if(i==0)

numstus=num;

else numstus+=num;

if(numstuslens)

{

lens+=50;

pointer=(student *)realloc(pointer,lens*LEN);

}

printf("请输入学生信息:\n");

for(;inumstus;i++)

{

getchar();

printf("请输入学号:");

gets(pointer[i].number);

printf("请输入姓名:");

gets(pointer[i].name);

printf("请输入性别(男/女 1/0):");

gets(pointer[i].sex);

if(pointer[i].sex[0]=='0') strcpy(pointer[i].sex,"女");

else strcpy(pointer[i].sex,"男");

printf("请输入各科成绩:(按ABCDE的顺序):");

stud[i].score=0;

for(j=0;jnumsubs;j++)

{

scanf("%f",stud[i].subject[j]); /*计算总分*/

stud[i].score+=stud[i].subject[j];

}

stud[i].average=stud[i].score/numsubs; /*计算平均分*/

}

count(stud); /*附名次*/

display(stud,0,numstus-1);

getchar();

}#include "head.h"

int numstus;

int lens;

student *pointer;

void main()

{

int i=1;

char str[2];

lens=100;

pointer=(student *)malloc(lens*LEN); /*分配内存*/

numstus=0;

welcome(); /*欢迎界面*/

while(i0)

{

i=menu_select(); /*控制菜单*/

switch(i)

{

case 1:addrecord(pointer);break; /*增加学生信息*/

case 2:findrecord(pointer);break; /*查询学生信息*/

case 3:amendrecord(pointer);break; /*修改学生信息*/

case 4:sort(pointer);break; /*学生信息排序*/

case 5:statistic(pointer);break; /*统计信息*/

case 6:openfile(pointer);break; /*打开文件*/

case 7:writetotext(pointer);break; /*保存文件*/

case 8:display(pointer,0,numstus-1);break; /*显示记录*/

case 0:

if(numstus!=0) printf("是否保存当前记录?(y/n)");

gets(str);

if(str[0]=='y'||str[0]=='Y')

writetotext(pointer);

i=-1;break; /*退出系统*/

default:printf("请输入数字0~8:\n");i=1; /*输入错误*/

}

}

printf("\t\t欢迎再次使用本系统。\n\n");

display1();

}

自己一改就能用,给我加分哈!

急用,C++学生成绩管理系统源代码,感谢

/*#includestdio.h

#includestdlib.h

#includestring.h

//函数的声明,扩展作用域

//能够储存的成绩个数

#define SIZE 10

//菜单函数

void ment(void);

//添加成绩函数

void chengji(int p[]);

//输出所有成绩函数

void sccj(int p[]);

//选择函数

int chse(int num);

//删除成绩函数

void dloe(int p[]);

//修改成绩

void cger(int p[]);

//查询成绩函数

void scere(int p[]);

//求平均分函数

void aser(int p[]);

//求最高分函数

void mascer(int p[]);

//求最低分函数

void miscer(int p[]);

int len=0;

int name[24];

int p[10];

int main(void)

{

//定义相关变量

//选择菜单的序号

int sent = 0;

//存放结果

int rese = 0;

char name[15];

int i=0;

for(i=0;i4;i++)

{

printf("\n请输入您的名字:");

scanf("%s",name);

if(strcmp(name,"张浪浪")==0)

{

printf("欢迎使用成绩管理系统!\n");

break;

}

else

{

printf("输出错误!!\n");

printf("请重新输入!!\n");

printf("你只有三次机会,当前为%d次\n",i+1);

if(i+1==3)

{

printf("\n账号已锁定!!\n");

return 0;

}

}

}

while(1)

{

ment();//调用菜单函数

printf("\n====请输入您选择的序号:");

scanf("%d",sent);

while(sent0 || sent8)

{

printf("\n输入错误!请输入0-8!\n");

scanf("%d",sent);

}

//调用选择函数

rese = chse(sent);

if(rese == -1) break;

}

system("pause");

return 0;

}

//菜单函数

void ment(void)

{

printf("\n=====成绩管理系统=====\n");

printf("======1:添加成绩======\n");

printf("======2:删除成绩======\n");

printf("======3:修改成绩======\n");

printf("======4:查询成绩======\n");

printf("======5:求平均分======\n");

printf("======6:求最高分======\n");

printf("======7:求最低分======\n");

printf("====8:输出所有成绩====\n");

printf("====0:退出管理系统====\n");

}

//选择函数

int chse(int num)

{

//定义相关变量

int sun = 0;//存放返回值

//利用开关函数实现函数的调用

switch(num)

{

//添加成绩

case 1:

chengji(p);

break;

//删除成绩

case 2:

dloe(p);

break;

//修改成绩

case 3:

cger(p);

break;

//查询成绩

case 4:

scere(p);

break;

//求平均分

case 5:

aser(p);

break;

//求最高分

case 6:

mascer(p);

break;

//求最低分

case 7:

miscer(p);

break;

//输出所有成绩

case 8:

sccj(p);

break;

//退出程序

case 0:

sun= -1;

break;

}

return sun;

}

//添加成绩函数

void chengji(int p[])

{

//判断是否已存满

if (len == SIZE)

{

printf("容量已满,添加失败!\n");

//退出函数,中断函数执行

return ;

}

else

{

printf("请输入要添加的成绩");

//把最新的数据存放在最后一个元素那里

scanf("%d",p[len]);

//len++;成绩个数+1

len++;

printf("成绩添加成功!\n");

}

}

//输出所有成绩函数

void sccj(int p[])

{

int i = 0;

if(len == 0)

printf("当前没有任何成绩!\n");

else

{

printf("所有成绩为:");

//对当前所有成绩进行遍历输出

for(i = 0 ; i len ; i++)

{

printf("%d",p[i]);

}

printf("\n");

}

}

//删除成绩函数

void dloe(int p[])

{

int i=0;

int idx=0;

printf("请输入同学要删除成绩的序号(第一个序号为0);");

scanf("%d",idx);

if(idx0||idxlen-1||len==0)

{

printf("找不到需要删除的成绩序号\n");

//退出函数

return;

}

//从需要删除的元素开始,后面一个元素的数据依次增加

for(i=idx;ilen-1;i++)

{

p[i]=p[i+1];

}

p[i]=0;

len=len-1;

printf("成绩删除成功\n");

}

//修改成绩函数

void cger(int p[])

{

int value=0;

int index=0;

printf("请输入要修改成绩的序号(第-一个序号为0);");

scanf("%d",index) ;

if (index0||indexlen-1l||len==0)

{

printf("找不到需要修改的成绩序号!\n");

return;

}

printf("请输入修改后的成绩:");

scanf("%d",value);

//修改成绩

p[index]=value;

printf ("成绩修改成功!\n");

}

//查询成绩函数

void scere(int p[])

{

int index=0;

printf("请输入要查询成绩的序号(第一个序号为0);");

scanf("%d",index);

if(index0|| indexlen-1||len==0)

{

printf("找不到需要查询的成绩序号!\n");

return;

}

printf("要查询的成绩为:%d分\n",p[index]);

}

//求平均分函数

void aser(int p[])

{

double avg = 0;//定义一个变量来存储平均值

int i =0,j=0;

if(len == 0)

{

printf("%s同学当前还没添加成绩!!!\n",name);

}

else

{

for(i=0;ilen;i++)

{

avg+=p[j++]/(len*1.0);

}

printf("%s同学当前成绩的平均分为:%.2f\n",name,avg);

}

}

//求最高分函数

void mascer(int p[])

{

int max = 0;

int i = 0,j = 0;

if(len == 0)

{

printf("%s同学当前还没添加成绩!!!\n",name);

}

else

{

for(i=0;ilen;i++)

{

if(p[j++] max)

max = p[j-1];

}

printf("%s同学当前成绩的最高分为:%d\n",name,max);

}

}

//求最低分函数

void miscer(int p[])

{

int min = p[0];

int i = 0,j = 0;

if(len == 0)

{

printf("%s同学当前还没添加成绩!!!\n",name);

}

else

{

for(i=0;ilen;i++)

{

if(p[j++] min)

min = p[j-1];

}

printf("%s同学当前成绩的最低分为:%d\n",name,min);

}

}

*/

/*#includestdio.h

#includestdlib.h

#define SIZE 10

int len = 0;

void addscore(int p[])

{

int index;

int i = 0;

int score = 0;

printf("请输入需要添加的位置(当前已有%d个数,第一个位置为0):",len);

scanf("%d",index);

printf("请输入添加的数据:");

scanf("%d",score);

for(i=len;iindex;i--)

{

p[i]=p[i-1];

}

p[index]=score;

len++;

}

int main(void)

{

int arr[SIZE] = {10,20,30,40};

int i = 0;

len = 4;

addscore(arr);

printf("当前数组中的数为:");

for(;ilen;)

{

printf("%d\t",arr[i++]);

}

printf("\n");

system("pause");

}

*/

/*

int j =0 ;//统计素数的个数

void fun(int *a)

{

int i = 0;

int z = 0;

for(i=2;i=100;i++)

{

for(z=2;z=i;z++)

{

if(i%z == 0)

break;

}

if(i=z)

{

*(a+j)=i;

j++;

}

}

}

int main(void)

{

int arr[100];//存放素数

int i = 0;

fun(arr);

printf("arr数组中共有%d个素数,分别是:",j);

for(;ij;i++)

{

printf("%d\t",*(arr+i));

}

printf("\n");

return 0;

}

/*

int max = 0;

int min = 0;

int fun(int *a)

{

int i = 0;

int j = 0;

max = *a;

min = *a;

for(i=0,j=0;i10;i++)

{

if(max*(a+j++))

max = *(a+j-1);

}

for(i=0,j=0;i10;i++)

{

if(min*(a+j++))

min = *(a+j-1);

}

}

int main(void)

{

int arr[10] = {10,20,30,40,50,60,70,80,90,100};

fun(arr);

printf("最大值为:%d\n最小值为:%d\n",max,min);

return 0;

}

*/

关于学生成绩管理系统首页源代码和学生成绩管理系统源代码 顺序表的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/19564.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载