一、什么是学生成绩管理系统
学生成绩管理系统的目的更快统计学生成绩并进行排名。
意义:它的内容对于学校的决策者和管理者来说都至关重要,它为用户提供充足的信息和快捷的查询手段。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。
扩展资料:
学生成绩管理系统针对学校学生信息的特点以及管理中实际需要而设计,能够有效地实现学生信息管理的信息化,减轻管理人员的工作负担,高效率、规范化地管理大量的学生信息,并避免人为操作的错误和不规范行为。
系统目标随着办公自动化水平的不断提高,学校的学生管理工作也从手工转到计算机自动化信息处理阶段。设计一个功能完整、操作简单、界面友好的教学管理系统已经势在必行。
二、如何用excel制作学生成绩查询系统
我们用excel可以很容易制作学生成绩管理表,但是这张表可以看到所有人的信息,我们可以用excel制作一个查询系统,学生要输入自己的准考证号才能查询,如果不知道别人的考号是不可以查询别人的成绩。
我们新建一个工作簿,在sheet2中建立学生成绩表,顺序是:准考证号码、姓名、语文、数学、英语、政治、物理、化学、历史、地理、生物、总分。如下图所示;我们把sheet命名为成绩表;
我们回到sheet1,把这张表重命名为查询表,并制作好表头。A1中输入“火星学校学生成绩查询系统”,再合并A1:L1;
复制成绩表中A1到L1的内容,粘贴到查询工作表的A3到L3,即制作好查询表的表头;
在A2中输入“请输入准考证号:"输入后,合并a2:c2;并设置文字颜色和加粗;
D2单元格用来输入查询的准考证号。为了醒目,D2单元格可设置为红色、加粗。A4到C4单元格用来输出考生的考试信息。
选定“查询”工作表的A4单元格,输入公式“IF(AND($D$2=“50102001”,$D$2=“50102020”),VLOOKUP($D$2,'成绩表'!$A$1:'成绩表'!$L$1000,COLUMN(A:A)),"请")”。其中“50102001”、“50102020”为准考证起始号和末尾号。
用自动填充功能完成B4:L4的数据,并修改B4到L4单元格的公式,把"请"依次改成"输"、"入"、"正"、"确"、"的"、"准"、"考"、"证"、"号"、"码"、"!"。
为保证数据不被改变,我们要对成绩表进行保护,选定成绩表,选菜单中的“工具”—“保护”—“保护工作表”,并设定工作表保护的密码。隐藏“成绩表”工作表。
在“查询“工作表,选定A1到L4单元格,选菜单中的“格式”—“单元格保护”,选择“隐藏”。选定D2单元格,选菜单中的“工具”—“保护”—“允许用户编辑区域”,设定D2单元格为可编辑区域,并选择“保护工作表“,设定工作表保护密码。选菜单中的“工具”—“保护”—“保护工作簿”,并设定工作簿保护的密码。
输入考号进行查询,结果就出来了。
三、2.学生成绩管理系统 (c语言做)
给你找一份类似的。不完全一致。做课程设计还是可行的。自己稍加修改即可!
总体设计
一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)
1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu*p1)来实现此操作。
2、查询模块:可用stu*lookdata(stu*p1)来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert()函数来实现。其中通过学号的大小来比较的,并且以此来排序。
4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage()和comaverage()来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:
详细设计
一、界面设计
此系统界面采用图形和数字化菜单设计。
主界面设计如下:
学生成绩管理系统
请选择相应的数字执行相应的功能:
1:是否输入其他数据
2:查看数据
3:插入数据
4:查找数据
5:更新数据
6:保留数据
7:显示或打印数据
8:语文成绩状况
9:数学成绩状况
10:英语成绩状况
11:计算机成绩状况
12:?
13:退出系统
二、数据结构设计:
程序设计中用到的结构体类型:
学生信息结构体类型:
typedef struct student{
char name[MAX];
int num[MAX];
char sex[MAX];
int chinese;
int mathematic;
int english;
int computer;
struct student*next;
}
程序代码:
//原始密码是123456
#include"stdio.h"
#include"stddef.h"
#include"stddef.h"
#include"string.h"
#define MAX 10
typedef struct student{/*定义结构体*/
char name[MAX];/*姓名*/
int num[MAX];/*学号*/
char sex[MAX];/*性别*/
int chinese;/*语文*/
int mathematic;/*数学*/
int english;/*英语*/
int computer;/*计算机*/
struct student*next;/*结构体指针*/
}stu;
stu*head;/*头指针*/
void print()/*显示或打印函数*/
{
system("cls");
printf("\t\t\tScore Manage System\n");/*成绩管理系统*/
printf("<1>Enter Record\t");/*输入数据*/
printf("<2>Display\t");/*显示*/
printf("<3>Insert\t");/*插入数据*/
printf("<4>Quest\t");/*访问数据*/
printf("<5>Update\t");/*以前数据*/
printf("<6>Save\t");/*保留数据*/
printf("<7>Fresh\t");/*更新数据*/
printf("<8>Chinese Average\t");/*语文平均成绩*/
printf("<9>Math Average\t");/*数学平均成绩*/
printf("<10>English Average\t");/*英语平均成绩*/
printf("<11>Computer Average\t");/*计算机平均成绩*/
printf("<12>Quit\t\n");/*退出*/
}
void cin(stu*p1)/*输入相关数据的函数*/
{ printf("Enter name:\n");
scanf("%s",&p1->name);
printf("Enter num:\n");
scanf("%d",&p1->num);
printf("Enter sex:\n");
scanf("%s",&p1->sex);
printf("Enter score:\n");
printf("Enter chinese:\n");
scanf("%d",&p1->chinese);
printf("Enter math:\n");
scanf("%d",&p1->mathematic);
printf("Enter English:\n");
scanf("%d",&p1->english);
printf("Enter Computer:\n");
scanf("%d",&p1->computer);
}
stu*cindata()/*其他数据是否继续输入的函数*/
{ stu*p1,*p2;
int i=1;
char ch;
p1=(stu*)malloc(sizeof(stu));
head=p1;
while(i)
{
cin(p1);
printf("Do you Want to Continue?yes or no");/*是否继续输入数据*/
ch=getchar();
ch=getchar();
if(ch=='n'||ch=='N')
{ i=0;
p1->next=NULL;
}
else
{ p2=p1;
p1=(stu*)malloc(sizeof(stu));
p2->next=p1;
}
}
return(p1->next);
}
stu*lookdata(stu*p1)/*查看数据的函数*/
{
while(p1!=NULL)
{ printf("Num:%d\t",p1->num);
printf("Name:%s\t",p1->name);
printf("Sex:%s\t",p1->sex);
printf("\n");
printf("Chinese:%d\t",p1->chinese);
printf("Math:%d\t",p1->mathematic);
printf("English:%d\t",p1->english);
printf("Computer:%d\t",p1->computer);
printf("\n");
p1=p1->next;
}
return p1;
}
void insert()/*通过比较学号来插入数据的函数*/
{ stu*p1,*p3,*p2;
char ch;
p1=head;
p3=(stu*)malloc(sizeof(stu));
p3->next=NULL;
if(head==NULL){ head=p3; return;}
cin(p3);
while(p1!=NULL&&(p1->num<p3->num))/*通过学号的比较来插入*/
{ p2=p1;p1=p1->next;}
if(p2==head){p3->next=head; head=p3; return;}
p3->next=p1;
p2->next=p3;
}
find(stu*p2)/*通过姓名查找查看数据的函数*/
{ char name[20];
int b=0;
printf("Enter the name of the student you want to find:");/*通过姓名查看*/
scanf("%s",name);
while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("The data you want has be found\n");
printf(" Name:%s\t",p2->name);
printf("Num:%d\t",p2->num);
printf("sex%s\t",p2->sex);
printf("\n");
printf("Chinese:%d\t",p2->chinese);
printf("Math:%d\t",p2->mathematic);
printf("English:%d\t",p2->english);
printf("Computer:%d\t",p2->computer);
printf("\n");
b=1;
}
else if(b==0)
printf("sorry not find data!");
p2=p2->next;
}
if(b==1)
{
print();
printf("Find one\n");}
else
{print();
printf("Not find\n");
}
}
void caverage()/*求各学生语文平均分、最高和最低分成绩的函数*/
{ stu*p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->chinese;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->chinese)
max=p1->chinese;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->chinese)
min=p1->chinese;
}
printf("Chinese Average:%f",aver);
printf("Chinese Max:%f",max);
printf("Chinese Min:%f",min);
}
void maverage()/*求各学生数学平均分、最高和最低分成绩的函数*/
{ stu*p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->mathematic;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->mathematic)
max=p1->mathematic;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->mathematic)
min=p1->mathematic;
}
printf("Mathe Average:%f",aver);
printf("Mathe Max:%f",max);
printf("Mathe Min:%f",min);
}
void eaverage()/*求各学生英语平均分、最高和最低分成绩的函数*/
{ stu*p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->english;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->english)
max=p1->english;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->english)
min=p1->english;
}
printf("English Average:%f",aver);
printf("English Max:%f",max);
printf("English Min:%f",min);
}
void comaverage()/*求各学生计算机平均分、最高和最低分成绩的函数*/
{ stu*p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->computer;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->computer)
max=p1->computer;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->computer)
min=p1->computer;
}
printf("Computer Average:%f",aver);
printf("Computer Max:%f",max);
printf("Computer Min:%f",min);
}
update(stu*p2)/*通过姓名查找来更新数据*/
{
char name[10];/*p2为指向结构体struct student的指针*/
int b=0;
printf("Enter The Name");/*输入姓名*/
scanf("%s",name);
while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("Find you data\n");
scanf("Name:%s",p2->name);
scanf("Num:%s",p2->num);
scanf("Sex:%s",p2->sex);
scanf("Chinese:%d",p2->chinese);
scanf("Math:%d",p2->mathematic);
scanf("english:%d",p2->english);
scanf("Computer:%d",p2->computer);
printf("Success!");
b=1;}
else if(b==0)
printf("Sorry not Find data!");
p2=p2->next;}
if(b==0)
{print();
printf("Sorry not Find data!");
}
else
{
print();
printf("Finish!");
}
}
save(stu*p2)/*保留数据函数*/
{
FILE*fp;
char file[10];
printf("Enter file name");/*输入文件名*/
scanf("%s",file);
fp=fopen(file,"w");
while(p2!=NULL)
{
fprintf(fp,"%s",p2->name);
fprintf(fp,"%s",p2->num);
fprintf(fp,"%s",p2->sex);
fprintf(fp,"%d",p2->chinese);
fprintf(fp,"%d",p2->mathematic);
fprintf(fp,"%d",p2->english);
fprintf(fp,"%d",p2->computer);
p2=p2->next;
}
fclose(fp);
}
char password[7]="123456";/*定义初始密码*/
void main()/*主函数*/
{ int choice;
stu*p2;
char s[8];
int flag=0,i;/*标志项*/
int n=3;
do{ printf("Enter password:\n");
scanf("%s",s);
if(!strcmp(s,password))/*进行密码匹配验证*/
{ printf("PASS\n\n\n");
flag=1;
break;
}
else{
printf("Error Enter again:\n");
n--;
}
}
while(n>0);
if(!flag)
{printf("you have Enter 3 times!");/*输入密码超过了3次!!*/
exit(0);/*自动退出*/
}
/*密码验证成功后进入的界面*/
printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n");/*操作界面*/
printf("\t\tWelcom to the Mis\n");
printf("Author:-----\tClass:------\tNum:------\n");/*作者,班级和号码*/
printf("Adress:HG\n");/*地址*/
printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");
printf("\t\tEnter OP:\n");
printf("\n\n\n\n");
printf("==============\t\t==============\n");
printf("==============\t\t==============\n");
printf("\t\tEnter the MIS yes or no\n");/*问进入系统与否*/
scanf("%d",&choice);
if(choice=='n'||choice=='N')
exit(1);
print();
while(1)
{
printf("Enter choice:");
scanf("%d",&i);
if(i<1||i>13)
{
printf("Enter num from 1 to 13:\n");/*再从1-13中进行选择*/
exit(1);
}
switch(i)
{ case 1:
p2=cindata();/*其他数据是否继续输入的函数*/
break;
case 2:
p2=lookdata(head);/*查看数据的函数*/
break;
case 3:
insert();/*通过比较学号来插入数据的函数*/
break;
case 4:
find(head);/*通过姓名查找查看数据的函数*/
break;
case 5:
update(head);/*通过姓名查找来更新数据*/
break;
case 6:
save(head);/*保留数据函数*/
break;
case 7:
print();/*显示或打印函数*/
break;
case 8:
caverage();/*求各学生语文平均分、最高和最低分成绩的函数*/
break;
case 9:
maverage();/*求各学生数学平均分、最高和最低分成绩的函数*/
break;
case 10:
eaverage();/*求各学生英语平均分、最高和最低分成绩的函数*/
break;
case 11:
comaverage();/*求各学生计算机平均分、最高和最低分成绩的函数*/
break;
case 12:
;/*空操作*/
case 13:
exit(1);/*退出*/
break;
}
scanf("%d",&i);
}
}