学生信息管理系统能做些什么?
学生管理系统,不能仅仅能进行学员信息录入管理就可以了,当然如果你的需求就是这个的话,那就不用说。现在一般的学生管理系统都是综合性的管理系统,包含涉及到学生管理的方方面面,以我们正在用的排控通来说吧,除了对学生基本信息的管理,还能对学生进行报班选课管理,课程安排管理,课消签到管理,续费缴费管理等等,可以说涉及到学生管理的各个方面,使用它都可以协助你进行管理工作。如果你真的想选用系统进行学生管理那就选择排控通,它还是很不错的。
学生信息管理系统的功能包括 学生信息管理系统的功能包括
学生信息管理系统的功能包括 学生信息管理系统的功能包括
浪腾学生管理系统,可以综合管理学生信息。从招生到结课所有相关信息都有记录。方便快速查询信息。保证数据的真实和准确性。避免产生不必要的。
就是学生信息资料录入!
学生信息管理系统
#include
#include
#include
#define MAX_LEN 10
#define STU_NUM 30
#define COURSE_NUM 6
typedef struct student
{long num;
char name[MAX_LEN];
float score[COURSE_NUM];
float sum;
float er;
}STU;
int Menu(void);
void ReadScore(STU stu[],int n,int m);
void AverSumofEveryStudent(STU stu[],int n,int m);
void AverSumofEveryCourse(STU stu[],int n,int m);
void SortbyScore(STU stu[],int n,int m,int (compare)(float a,float b));
int Ascending(float a,float b);
int Descending(float a,float b);
void SwapFloat(float x,float y);
void SwapLong(long x,long y);
void SwapChar(char x[],char y[]);
void AsSortbyNum(STU stu[],int n,int m);
void SortbyName(STU stu[],int n,int m);
void SearchbyNum(STU stu[],int n,int m);
void SearchbyName(STU stu[],int n,int m);
void StatisticAnalysis(STU stu[],int n,int m);
void PrintScore(STU stu[],int n,int m);
void WritetoFile(STU record[],int n,int m);
void ReadfromFile(STU record[],int n,int m);
int main()
{char ch;
int n=0,m=0;
STU stu[STU_NUM];
while(1)
{ch=Menu();
switch (ch)
{case 1:printf("Input student number(n<=%d):",STU_NUM);
scanf("%d",&n);
printf("Input course number(m<=%d):",COURSE_NUM);
scanf("%d",&m);
ReadScore(stu,n,m);
break;
case 2:AverSumofEveryCourse(stu,n,m);
break;
case 3:AverSumofEveryStudent(stu,n,m);
break;
case 4:SortbyScore(stu,n,m,Descending);
printf("nSort in descending order by score:n");
PrintScore(stu,n,m);
break;
case 5:SortbyScore(stu,n,m,Ascending);
printf("nSort in ascending order by score:n");
PrintScore(stu,n,m);
break;
case 6:AsSortbyNum(stu,n,m);
printf("nSort in ascending order by score:n");
PrintScore(stu,n,m);
break;
case 7:SortbyName(stu,n,m);
printf("nSort in dictionary order by score:n");
PrintScore(stu,n,m);
break;
case 8:SearchbyNum(stu,n,m);
break;
case 9:SearchbyName(stu,n,m);
break;
case 10:StatisticAnalysis(stu,n,m);
break;
case 11:PrintScore(stu,n,m);
break;
case 12:WritetoFile(stu,n,m);
break;
case 13:ReadfromFile(stu,&n,&m);
break;
case 14:printf("End of program!n");
exit(0);
default :printf("Input error!n");
}}
return 0;
}/函数功能:显示菜单并获得用户键盘输入的选项/
int Menu(void)
{int Selected;
printf("Mament for Students' scoresn");
printf("1.Input recordn");
printf("2.Caculate total and erage score of ry course n");
printf("3.Caculate total and erage score of ry student n");
printf("4.Sort in descending order by score n");
printf("5.Sort in ascending order by score n");
printf("6.Sort in ascending order by number n");
printf("7.Sort in dictionary order by name n");
printf("8.Search by number n");
printf("9.Search by name n");
printf("10.Statistic ysis n");
printf("11.List record n");
printf("12.write to a file n");
printf("13.read from a file n");
printf("0.Exit n");
printf("Please Input your cho:"); //读入用户输入
scanf("%d",&Selected);
return Selected;
}/函数功能:输入n个学生的m门课程成绩/
void ReadScore(STU stu[],int n,int m)
{int i,j;
printf("Input students' ID,name and score:n");
for(i=0;i {scanf("%ld%s",&stu[i].num,stu[i].name); for(j=0;j {scanf("%f",&stu[i].score[j]); }} }/函数功能:计算每个学生各门课程的总分和平均分/ void AverSumofEveryStudent(STU stu[],int n,int m) {int i,j; for(i=0;i {stu[i].sum=0; for(j=0;j {stu[i].sum=stu[i].sum+stu[i].score[j]; }stu[i].er=m>0?stu[i].sum/m:-1; printf("student %d: sum = %.0f,er = %.0fn", i+1,stu[i].sum,stu[i].er); }} /函数功能:计算每门课程的总分和平均分/ void AverSumofEveryCourse(STU stu[],int n,int m) {int i,j; float sum[COURSE_NUM],er[COURSE_NUM]; for(j=0;j {sum[j]=0; for(i=0;i {sum[j]=sum[j]+stu[i].score[j]; }er[j] = n>0 ? sum[j]/n:-1; printf("course %d:sum = %.0f,er = %.0fn",j+1,sum[j],er[j]); }} /函数功能:按选择法将数组sum中的元素值排序/ void SortbyScore(STU stu[],int n,int m,int (compare)(float a,float b)) {int i,j,k,t; for(i=0;i {k=i; for(j=i+1;j {if((compare)(stu[j].sum,stu[k].sum)) k=j; }if(k!=i) {for(t=0;t {SwapFloat(&stu[k].score[t],&stu[i].score[t]); }SwapFloat(&stu[k].sum,&stu[i].sum); SwapFloat(&stu[k].er,&stu[i].er); SwapLong(&stu[k].num,&stu[i].num); SwapChar(stu[k].name,stu[i].name); }} }/使数据按升序排序/ int Ascending(float a,float b) {return a }/使数据按降序排序/ int Descending(float a,float b) {return a>b; }/交换两个单精度浮点型数据/ void SwapFloat(float x,float y) {float temp; temp=x; x=y; y=temp; }/交换两个长整形数据/ void SwapLong(long x,long y) {long temp; temp=x; x=y; y=temp; }/交换两个字符串/ void SwapChar(char x[],char y[]) {char temp[MAX_LEN]; strcpy(temp,x); strcpy(x,y); strcpy(y,temp); }/函数功能:按选择法将数组num的元素值按从低到排高序/ void AsSortbyNum(STU stu[],int n,int m) {int i,j,k,t; for(i=0;i {k=i; for(j=i+1;j {if(stu[j].num < stu[k].num) k=j; }if(k!=i) {for(t=0;t {SwapFloat(&stu[k].score[t],&stu[i].score[t]); }SwapFloat(&stu[k].sum,&stu[i].sum); SwapFloat(&stu[k].er,&stu[i].er); SwapLong(&stu[k].num,&stu[i].num); SwapChar(stu[k].name,stu[i].name); }} }/函数功能:交换法实现字符串按字典顺序排序/ void SortbyName(STU stu[],int n,int m) {int i,j,t; for(i=0;i {for(j=i+1;j {if(strcmp(stu[j].name, stu[i].name)<0) {for(t=0;t {SwapFloat(&stu[i].score[t],&stu[j].score[t]); }SwapFloat(&stu[i].sum,&stu[j].sum); SwapFloat(&stu[i].er,&stu[j].er); SwapLong(&stu[i].num,&stu[j].num); SwapChar(stu[i].name,stu[j].name); }} }} /函数功能:按学号查找学生成绩并显示查找结果/ void SearchbyNum(STU stu[],int n,int m) {long number; int i,j; printf("Input the number you want to search"); scanf("%ld",&number); for(i=0;i {if(stu[i].num==number) {printf("%ld t%s t",stu[i].num,stu[i].name); for(j=0;j {printf("%.0f t",stu[i].score[j]); }printf("%.0ft%.0fn",stu[i].sum,stu[i].er); return; }} printf("n Not Found! n"); }/函数功能:按姓名的字典顺序排出成绩表/ void SearchbyName(STU stu[],int n,int m) {char x[MAX_LEN]; int i,j; printf("Input the number you want to search"); scanf("%s",x); for(i=0;i {if(strcmp(stu[i].name,x)==0) {printf("%ld t%s t",stu[i].num,stu[i].name); for(j=0;j {printf("%.0f t",stu[i].score[j]); }printf("%.0ft%.0fn",stu[i].sum,stu[i].er); return; }} printf("n Not Found! n"); }/函数功能:统计各分数段的学生人数及所占的百分比/ void StatisticAnalysis(STU stu[],int n,int m) {int i,j,total,t[6]; for(j=0;j {printf("For course %d:n",j+1); memset(t,0,sizeof(t)); //将数组t的全部元素初始化为0 for(i=0;i {if(stu[i].score[j]>=0&&stu[i].score[j]<60) t[0]++; else if (stu[i].score[j]<70) t[1]++; else if (stu[i].score[j]<80) t[2]++; else if (stu[i].score[j]<90) t[3]++; else if (stu[i].score[j]<100) t[4]++; else if (stu[i].score[j]=100) t[5]++; }for(total=0,i=0;i<=5;i++) {total=total+t[i]; }for(i=0;i<=5;i++) {if(i==0) printf("<60t%dt%.2f%%n",t[i],(float)t[i]/n100); else if(i==5) printf("%dt%dt%.2f%%n",(i+5)10,t[i],(float)t[i]/n100); else printf("%d-%dt%dt%.2f%%n",(i+5)10,(i+5)10+9,t[i],(float)t[i]/n100); }} }/函数功能:打印学生成绩/ void PrintScore(STU stu[],int n,int m) {int i,j; for(i=0;i {printf("%ldt%st",stu[i].num,stu[i].name); for(j=0;j {printf("%.0ft",stu[i].score[j]); }printf("%.0ft%.0fn",stu[i].sum,stu[i].er); }} /输出n个学生的学号,姓名及m门课程的成绩到文件student.txt中/ void WritetoFile(STU stu[],int n,int m) {FILE fp; int i,j; if((fp=fopen("student.txt","w"))==NULL) {printf("Failure to open score.txt!n"); exit(0); }fprintf(fp,"%dt%dn",n,m); //将学生人数和课程门数写入文件 for(i=0;i {fprintf(fp,"%10ld%10s",stu[i].num,stu[i].name); for(j=0;j {fprintf(fp,"%10.0f",stu[i].score[j]); }fprintf(fp,"%10.0f%10.0fn",stu[i].sum,stu[i].er); }fclose(fp); }/从文件中读取学生的学号,姓名及成绩等信息写入到结构体数组stu中/ void ReadfromFile(STU stu[],int n,int m) {FILE fp; int i,j; if((fp=fopen("student.txt","r"))==NULL) {printf("Failure to open score.txt!n"); exit(0); }fscanf(fp,"%dt%d",n,m); //从文件中读出学生人数和课程门数 for(i=0;i< n;i++) {fscanf(fp,"%10ld",&stu[i].num); fscanf(fp,"%10s",stu[i].name); for(j=0;j< m;j++) {fscanf(fp,"%10f",&stu[i].score[j]); }fscanf(fp,"%10f%10f",&stu[i].sum,&stu[i].er); //不能用%10.0f }fclose(fp); } 1 系统功能系统的主要功能包括:信息的作功能、查询功能、统计功能、分析功能和打印功能。
1.1信息作功能
(1)学生基本信息的添加、修改和删除。学生基本信息包括:学好(学号的前6位为班级号)、姓名、性别、出生日期和所在的专业。
(2)课程信息的添加、修改和删除。课程信息包括:课程号、所属专业、课程名称、课程类型(专修、选修、方向、通修、公修)、开课学期、学时数和学分。
(3)学生成绩信息的添加、修改和删除。学生成绩信息包括:学好、课程号、成绩和学分。
1.2.查询功能
可以通过学号来查学生基本信息,通过学号和学期号查询学生的成绩,通过课程号查询该课程的信息。
1.3.统计功能
统计当前信息所显示的信息数以及学生某个学期或所有学期课程的总学分。
1.4.分析功能
对某一个班级的某一门课程的成绩分布进行分析,并以直方图的形式显示出来。
1.5.打印功能
打印和预览当前显示的信息。
2数据库用Microsoft Access2003创建一个数据库main.mdb,含有3个主要数据表:学生基本信息表student、课程信息表course和学生成绩表score。这3个表的结构如表1~3所示。这几个表中,学号studentno和课程号courseno内容都是的,分别是student和course表中的主关键字。score表中的studentno和student表中的同名字段相对应,字段course和course表中的courseno字段相对应。该数据字典也作为数据库main.mdb的一格数据表special学生信息管理系统的需求分析