学生成绩信息管理系统

合集下载

学生成绩管理系统数据流程图及数据字典

学生成绩管理系统数据流程图及数据字典

学生成绩管理系统数据流程图及数据字典一、数据流程图学生成绩管理系统是一个用于管理学生的课程成绩的系统。

下面是该系统的数据流程图,展示了数据在系统中的流动和处理过程。

1. 学生信息管理流程:- 输入:学生信息(学生姓名、学号、性别、年级等)- 处理:将学生信息存储到学生信息表中- 输出:无2. 课程信息管理流程:- 输入:课程信息(课程名称、课程编号、学分等)- 处理:将课程信息存储到课程信息表中- 输出:无3. 成绩录入流程:- 输入:学生课程成绩信息(学号、课程编号、成绩)- 处理:将成绩信息存储到成绩表中- 输出:无4. 成绩查询流程:- 输入:学号- 处理:根据学号在学生信息表中查找学生姓名,并在成绩表中查询该学生的所有成绩信息- 输出:学生姓名及其对应的成绩信息5. 成绩统计流程:- 输入:课程编号- 处理:根据课程编号在课程信息表中查找课程名称,并在成绩表中统计该课程的平均成绩、最高成绩和最低成绩- 输出:课程名称及其对应的平均成绩、最高成绩和最低成绩二、数据字典数据字典是对系统中使用的数据元素进行定义和描述的文档。

下面是学生成绩管理系统的数据字典,包含了系统中使用的各个数据元素及其属性。

1. 学生信息表(StudentInfo):- 学号(StudentID):学生的惟一标识符,数据类型为整数- 学生姓名(StudentName):学生的姓名,数据类型为字符串- 性别(Gender):学生的性别,数据类型为字符串- 年级(Grade):学生所在的年级,数据类型为字符串2. 课程信息表(CourseInfo):- 课程编号(CourseID):课程的惟一标识符,数据类型为整数- 课程名称(CourseName):课程的名称,数据类型为字符串- 学分(Credit):课程的学分,数据类型为浮点数3. 成绩表(Score):- 学号(StudentID):学生的惟一标识符,数据类型为整数- 课程编号(CourseID):课程的惟一标识符,数据类型为整数- 成绩(Grade):学生在该课程中的成绩,数据类型为浮点数通过以上的数据流程图和数据字典,学生成绩管理系统可以实现学生信息的录入和管理、课程信息的录入和管理、成绩的录入、查询和统计等功能。

学生成绩管理系统c++课程设计

学生成绩管理系统c++课程设计

学生成绩管理系统c++课程设计学生成绩管理系统是一种用于记录和管理学生课程成绩的软件系统。

它能够帮助学校、教师和学生实时监控和分析学生的学业表现,为教育管理者提供决策支持,为学生提供个性化的学习建议。

在C++课程设计中,学生成绩管理系统可以实现以下功能:1. 学生信息管理:包括学生的基本信息(如姓名、性别、年龄、班级等),以及学生的学号、联系方式等。

系统可以提供添加、修改、删除和查询学生信息的功能。

2. 课程管理:包括课程名称、学分、授课教师等信息。

系统可以对课程进行添加、修改、删除和查询操作。

3. 成绩管理:系统可以记录学生的每门课程的成绩,并计算学生的综合成绩。

可以输入或导入成绩数据,支持对成绩进行修改、删除和查询操作。

系统还可以生成成绩报表和统计分析,帮助教师和学校了解班级或全校学生的成绩分布和趋势。

4. 学生选课管理:学生可以根据自己的兴趣或专业要求选择课程。

系统可以提供学生选课、退课的功能,并根据学生的选课情况进行课程调整和排课。

5. 教师管理:包括教师的基本信息、授课情况和成绩评定等。

系统可以对教师信息进行管理,支持教师信息的添加、修改、删除和查询操作。

6. 用户权限管理:系统可以对不同用户设置不同的权限,例如管理员可以对系统进行设置和管理,教师可以录入和修改成绩,学生可以查询自己的成绩等。

通过学生成绩管理系统,学校和教师可以更方便地管理学生的成绩,及时发现和解决学生学习中的问题。

学生可以方便地查询自己的成绩,了解自己的学业表现,及时调整学习策略。

同时,学生成绩管理系统也为教育管理者提供了数据支持,可以通过统计和分析成绩数据来评估教学效果,并为学校的教学改进提供参考依据。

在C++课程设计中,可以通过使用面向对象的编程思想,设计合适的类和数据结构来实现学生成绩管理系统的各项功能。

同时,还可以通过使用文件读写技术,将学生、课程和成绩等信息保存到文件中,实现数据的持久化存储。

在用户界面设计上,可以使用C++图形库或者命令行界面来实现用户与系统的交互。

学生成绩管理系统

学生成绩管理系统

“学生学习成绩管理系统”用于对学生学习成绩数据文件的新文件创建和老文件管理,并可以进行密码设置。

具体要求实现的功能如下:1、输入/添加记录:将每一个学生的学号、姓名和各科学习成绩作为一个记录进行输入或添加。

要求经过密码验证后能建立一个新的数据文件或给已建立好的数据文件增加记录。

2、显示、查询记录:能按学生姓名(或学号)显示、查询一个或多个学生的各门(或某门)功课的成绩和平均成绩。

3、修改记录:可以对数据文件中的任意记录的数据进行修改,在修改前后对该记录的内容进行显示,并设确认提示。

(要求设置密码,验证通过后方可进入修改环节)4、删除记录:可以删除数据文件中的任一记录,包括逻辑删除(具有恢复功能)和物理删除(不可恢复)。

(说明:该功能也应设置为经过验证密码后才可实施删除)5、成绩排序:采用不同的排序方法对单科成绩和总(或平均)成绩进行排序,但不能改变原记录的顺序。

6、统计功能:(A)计算各门课程全班总成绩及平均成绩;(B)统计各门课程得分为100、90~99、80~89、70~79、60~69和不及格学生的人数,以及与全班总人数的百分比。

7、其他:该软件应具有系统名称、设计单位或个人等基本信息。

学生成绩管理系统源程序清单:#include<stdio.h>#include<string.h>#include<malloc.h>#include<conio.h>#define NULL 0#define LEN sizeof(student)#define N 5typedef struct stu{int flag;long num;char name[10];int score[N];struct stu *next;}student;void edit();/*编辑菜单*/void search(student *head); /*查找函数*/student *search_number(student *head,long number); /*按学号查找*/ void search_name(student *head); /*按姓名查找*/student *search_score(student *head,int min,int max,int i); /*按成绩查找*/void enter_record(student *p); /*输入成绩*/student *creat(void); /*建立链表*/student * insert(student *head); /*插入结点*/void count(int *p); /*计算总成绩及平均成绩*/void print(student *p); /*输出结点*/void print_title();/*输出标题*/student *delete(student *head); /*删除结点*/void recover(student *head); /*恢复删除*/void revise(student *head); /*修改记录*/void tongji(student *head); /*统计*/void paixu(student *head,int m); /*排序*/int cipher_check();/*密码检测*/void set_up_cipher();/*设立密码*/student *load();/*载入*/void save(student *head); /*保存*/void about();/*关于*/int n;char cipher[11]={""};/*字符串,保存密码*/main(){char c;student *head=NULL;system("cls");about();for(;;){system("cls");printf("************************************************************ *******************\n");printf("\t\t Welcome to\n");printf("\n\t\t The student score manage system\n");printf("*************************************MENU******************* *******************\n");printf("\t\t\t1. Creat the record\n");printf("\t\t\t2. Load the file\n");printf("\t\t\t3. Edit the record\n");printf("\t\t\t4. About design\n");printf("\t\t\t5. Quit\n");printf("************************************************************ ********************\n");printf("\n\t\t\tEnter your choice(1~5):");for(;;){c=getchar();if(c=='\n') continue;else if(c<'1'||c>'5') printf("\t\t\tEnter your choice(1~5):"); else break;}getchar();switch (c){case '1':head=creat();if(head==NULL){printf("Empty record!\n\nEnter any key to continue...\n"); getch();break;}set_up_cipher();printf("Enter any key to edit menu...");getch();edit(head);break;case '2':head=load();if(head==NULL){printf("\nEnter any key to continue...");getch();break;}printf("Enter any key to edit menu...");getch();edit(head);break;case '3':edit(head);break;case '4':about();break;case '5':exit(0);}}}void edit(student *head)/*编辑菜单*/{char c,m;int i,f=0;for(;;){system("cls");printf("***********************************EDIT*MENU**************** ********************\n");printf("\t\t\t1.Save the record.\n");printf("\t\t\t2.Insert a record.\n");printf("\t\t\t3.Delete a record.\n");printf("\t\t\t4.Recover the record.\n");printf("\t\t\t5.Revise the record.\n");printf("\t\t\t6.Search records.\n");printf("\t\t\t7.Sort the records.\n");printf("\t\t\t8.Tongji the records.\n");printf("\t\t\t9.Change the password.\n");printf("\t\t\t0.Return to main menu.\n");printf("************************************************************ ********************\n");printf("\t\t\tEnter your choice(0~9):");for(;;){c=getchar();if(c=='\n') continue;else if(c<'0'||c>'9') printf("\t\t\tEnter your choice(0~9):"); else break;}switch (c){case '1':save(head);f=0;break;case '2':printf("Please enter the right password:\n");if(cipher_check()==0){printf("Wrong password!\n"); break;}head=insert(head);f=1;break;case '3':printf("Please enter the right password:\n");if(cipher_check()==0){printf("Wrong password!\n"); break;}head=delete(head);f=1;break;case '4':printf("Please enter the right password:\n");if(cipher_check()==0){printf("Wrong password!\n"); break;}recover(head);f=1;break;case '5':printf("Please enter the right password:\n");if(cipher_check()==0){printf("Wrong password!\n"); break;}revise(head);f=1;break;case '6':search(head);break;case '7':printf("Sort on which subject?\n");printf("score1(1)/score2(2)/score3(3)/sum(4)\n");for(;;){scanf("%c",&m);if(m=='\n') ;else if(m>='1'&&m<='4') break;else printf("error!enter again:");}i=m-'0'-1;paixu(head,i);break;case '8':tongji(head);break;case '9':printf("Please enter the old password:\n");if(cipher_check()) {set_up_cipher();f=1;}else printf("Wrong password!\n");break;case '0':if(f==1){char c;printf("This record has already been revised.\nSave the record or not? ");for(;;){c=getchar();if(c=='\n') continue;else if(c=='y'||c=='Y') {save(head);break;}else if(c=='n'||c=='N') break;else printf("error!enter again:");}}return;}printf("\nenter any key to return...");getch();}}student *creat(void) /*建立链表*/{student *head,*p1,*p2;n=0;p1=(student *)malloc(LEN);p2=NULL;printf("please enter number");printf("(enter 0 to end):\n");scanf("%ld",&p1->num);head=NULL;while(p1->num!=0){n++;enter_record(p1);if(n==1) head=p1;else p2->next=p1;p2=p1;p1=(student *)malloc(LEN);printf("Please enter next number(0 to end):\n");scanf("%ld",&p1->num);}if(n!=0)p2->next=NULL;free(p1);return head;}student * insert(student *head) /*插入结点*/{student *p1,*p2,*new_node;for(;;){new_node=(student *)malloc(LEN);if(new_node==NULL){printf("Database is full,can't add more record.\n");return NULL;}printf("\nPlease enter the number you want to insert\n(enter 0 to end):");scanf("%ld",&new_node->num);if(new_node->num==0) {break;}for(p1=head,p2=NULL;p1!=NULL&&(new_node->num)>(p1->num);p2=p1,p1=p1->next);if(p1!=NULL&&(p1->num)==(new_node->num)&&p1->flag==1){char c;printf("This number already exists:\n");print_title();print(p1);printf("Cover or not?(y/n)?");for(;;){c=getchar();if(c=='n'||c=='N'){free(new_node);break;}else if(c=='y'||c=='Y'){free(new_node);enter_record(p1);break;}else if(c!='\n')printf("Error!enter again:");else continue;}}else if(p1!=NULL&&(p1->num)==(new_node->num)){n++;free(new_node);enter_record(p1);}else{n++;enter_record(new_node);new_node->next=p1;if(p2==NULL)head=new_node;elsep2->next=new_node;}}return head;}student *delete(student *head) /*删除结点*/{long number;char c;student *p1,*p2;for(;;){printf("Please enter the number you want to delete(enter 0 to end):\n");scanf("%ld",&number);if(!number) break;for(p1=head,p2=NULL;p1!=NULL&&p1->num!=number;p2=p1,p1=p1->next);if(p1==NULL||p1->flag==0){printf("this number doesn't exist.\n");}else{print_title();print(p1);printf("delete this record?\n");printf("sure(s)/cancle(c)/delete thoroughly(t)\n");for(;;){c=getchar();if(c=='c'||c=='C') break;else if(c=='s'||c=='S'||c=='t'||c=='T'){n--;if(c=='s'||c=='S')p1->flag=0;else{if(p2==NULL) head=p1->next;else p2->next=p1->next;free(p1);}break;}else if(c!='\n')printf("error!enter again:");}}}return head;}void recover(student *head) /*恢复删除*/{student *p;long number;printf("recover which number?\n");scanf("%ld",&number);if(number==0) return;p=search_number(head,number);if(p==NULL) printf("Can't recover this number!\n");else if(p->flag==1) printf("This number has not been deleted.\n"); else {n++;p->flag=1;printf("Recover success!\n");}}void revise(student *head) /*修改记录*/{char c;long number;student *p1;for(;;){printf("Which number do you want to revise?\n(enter 0 to end):"); scanf("%ld",&number);if(number==0) return;p1=search_number(head,number);if(p1==NULL||p1->flag==0) {printf("this number doesn'texist.\n");continue;}print_title();print(p1);printf("Do you want to revise the record?(y/n)\n");for(;;){c=getchar();if(c=='\n') continue;else if(c=='n'||c=='N') break;else if(c=='y'||c=='Y'){printf("please enter new record:\n");enter_record(p1);printf("the new record is:\n");print_title();print(p1);break;}else printf("error,enter again:");}}}void search(student *head) /*查找函数*/{char c;int i,min,max;long number;student *p;printf("Please enter search conditions:\n");printf("all(a)/number(n)/name(m)/score(s)/return(r)\n");for(;;){c=getchar();if(c=='\n') continue;else if(c=='s'){printf("Which couse do you want to search?\n");printf("score1(1)/score2(2)/score3(3)/total(4)/average(5)");for(;;){c=getchar();if(c=='\n') continue;else if(c>'0'&&c<'6') {i=c-'0'-1;break;}else printf("Error,enter again:");}printf("please enter min and max score(min-max):");scanf("%d-%d",&min,&max);p=search_score(head,min,max,i);if(p==NULL)printf("No record\n");else{ print_title();for(;p!=NULL;p=search_score(p->next,min,max,i))print(p);}}else switch(c){case 'a':print_title();for(p=head;p!=NULL;p=p->next)if(p->flag==1) print(p);break;case 'n':printf("What number do you want to search?\n");scanf("%ld",&number);p=search_number(head,number);if(p==NULL||p->flag==0) printf("This number doesn't exist!\n"); else{print_title();print(p);}break;case 'm':search_name(head);break;case 'r': return;default :printf("this condition doesn't exist,Pleaseenter again:\n");printf("all(a)/number(n)/name(m)/score(s)/return(r)\n");continue;}printf("Please enter search conditions:\n");printf("all(a)/number(n)/name(m)/score(s)/return(r)\n");}}student *search_number(student *head,long number) /*按学号查找*/ {student * p;for(p=head;p!=NULL&&p->num!=number;p=p->next);return p;}void search_name(student *head) /*按姓名查找*/{student *p1;char *p,str[10];p=str;printf("please enter the name you want to search:\n");scanf("%s",p);for(p1=head;p1!=NULL;p1=p1->next){if(p1->flag==0) continue;if(strcmp(p,p1->name)==0) break;}if(p1==NULL) printf("this people doesn't exist.\n");else{print_title();for(;p1!=NULL;p1=p1->next)if(strcmp(p,p1->name)==0&&p1->flag==1)print(p1);}}student *search_score(student *head,int min,int max,int i) /*按成绩查找*/{student *p1;for(p1=head;p1!=NULL;p1=p1->next)if(p1->flag==1&&p1->score[i]>=min&&p1->score[i]<=max) break;return p1;}void paixu(student *head,int m)/*排序*/{long *number,t;int i,j,k,max;student *p;number=calloc(n,sizeof(long));i=0;for(p=head;p!=NULL;p=p->next){if(p->flag==0) continue;number[i]=p->num;i++;}for(i=0;i<n-1;i++){k=i;max=search_number(head,number[i])->score[m];for(j=i+1;j<n;j++){p=search_number(head,number[j]);if(p->score[m]>max){max=p->score[m];k=j;}}if(k!=i){t=number[i];number[i]=number[k];number[k]=t;}}printf("************************************************************ ****************\n");if(m==3) printf("Sord by sum score:\n");else printf("Sord by score%d:\n",m+1);printf("mingci ");printf("number name score1 score2 score3 total aver\n");for(i=0;i<n;i++){printf("%4d ",i+1);print(search_number(head,number[i]));}}void tongji(student *head) /*统计*/{int i,sum,s,j;student *p1;printf("************************************************************ ****************\n");printf(" sum average\n");for(i=0;i<N-2;i++){sum=0;for(p1=head;p1!=NULL;p1=p1->next)if(p1->flag==1) sum+=p1->score[i];printf(" score%d:%6d%9.2f\n",i+1,sum,(float)sum/n);}for(sum=0,p1=head;p1!=NULL;p1=p1->next)if(p1->flag==1) sum+=p1->score[N-2];printf(" sum :%6d%9.2f\n",sum,(float)sum/n);printf("average:%6.2f%9.2f\n",(float)sum/(N-2),(float)sum/(N-2)/n); printf("************************************************************ ****************\n");printf("Ge fenshuduan renshu:\n");printf(" 100 90-99 80-89 70-79 6 0-69 fail\n");printf(" score digit rate digit rate digit rate digit rate digit rate digit rate\n");for(i=0;i<N-2;i++){printf("score%d",i+1);for(s=100;s>=60;s-=10){j=0;for(p1=search_score(head,s,s+9,i);p1!=NULL;p1=search_score(p1->next,s,s+9,i))j++;printf("%5d,%6.2f",j,(float)j/n);}for(j=0,p1=search_score(head,0,59,i);p1!=NULL;p1=search_score(p1->next,0,59,i))j++;printf("%5d,%6.2f",j,(float)j/n);printf("\n");}}void about()/*关于设计*/{clrscr();printf("\n\n\n\n\n\n");printf("\t\t\b*********************ABOUT************************\n") ;printf("\t\t\b*\tThe Student Score Manage System\t\t*\n");printf("\t\t\b*\t\t\t\t\t\t*\n");printf("\t\t\b*\t\t\b llrsnake \t\t\t*\n");printf("\t\t\b*\t\t\b 1000000001\t\t\t*\n");printf("\t\t\b**************************************************\n"); printf("\n\t\t\tPress any key to return...");getch();}student *load()/*载入*/{FILE *fp;student *head=NULL,*p1,*p2;char c[10];printf("please enter the file name:\n");scanf("%s",c);if((fp=fopen(c,"rb"))==NULL){printf("Can not open the file %s\n",c); return head;}printf("loading...\n");n=0;fgets(cipher,11,fp);p1=(student *)malloc(LEN);if(p1==NULL){printf("Out of memory!\n");return(head);}head=p1;while(!feof(fp)){if(fread(p1,LEN,1,fp)!=1)break;n++;p1->next=(student *)malloc(LEN);if(!p1->next){printf("Out of memory!\n");return (head);}p2=p1;p1=p1->next;}p2->next=NULL;fclose(fp);printf("load successfuly!\n");return head;}void save(student *head) /*保存*/{FILE *fp;student *p;char str[10];int i;printf("please enter the file name:\n");scanf("%s",str);if((fp=fopen(str,"wb"))==NULL){printf("Cannot open file!\n");return;}printf("Saving...\n");for(i=0;i<10;i++)fputc(cipher[i],fp);for(p=head;p!=NULL;p=p->next)if(fwrite(p,LEN,1,fp)!=1)printf("file save error!\n");printf("save successfully!\n");fclose(fp);}int cipher_check()/*密码检测*/{char c[11];int i,flag;for(i=0;(c[i]=getch())!='\r'&&i<11;){if(c[i]==8){if(i==0) continue;else {printf("\b");clreol();i--;continue;} }if(i==10) continue;printf("*");i++;}c[i]='\0';printf("\n");flag=!strcmp(c,cipher);return flag;}void set_up_cipher()/*设立密码*/{int i=0,flag;char c;printf("\nPlease input the password:\n"); while((cipher[i]=getch())!='\r'&&i<11){if(cipher[i]==8){if(i==0) continue;else{i--;printf("\b");clreol();continue;}if(i==10) continue;printf("*");i++;}cipher[i]='\0';printf("\nplease input the password again:\n"); flag=cipher_check(cipher);if(flag==0){printf("password set up fail\n");cipher[0]='\0';}if(flag==1)printf("\npassword set up success!\n");}void enter_record(student *p) /*输入信息*/{int i;p->flag=1;printf("name:");scanf("%s",p->name);for(i=0;i<N-2;i++){printf("score%d=",i+1);for(;;){scanf("%d",(p->score)+i);if(p->score[i]>100||p->score[i]<0)printf("Wrong score,enter again:");else break;}count(p->score);}}void count(int *p) /*计算总成绩及平均成绩*/{int i,sum=0,aver;for(i=0;i<N-2;i++)sum+=p[i];aver=(int)sum/i;p[N-2]=sum;p[N-1]=aver;}void print(student *p) /*输出结点*/printf("%5ld %-6s",p->num,p->name);for(i=0;i<N;i++)printf("%7d",p->score[i]);printf("\n");}void print_title()/*输出标题*/{printf("\n********************************************************** **********************\n");printf("number name score1 score2 score3 total aver\n");}。

学生成绩信息管理系统

学生成绩信息管理系统

学绩信息管理系统学绩信息管理系统文档1. 系统简介1.1 目的和背景1.2 功能概述2. 用户需求分析2.1 学生用户需求- 查看个人成绩记录及排名情况。

- 提交作业、报告等课程相关文件。

- 查询选修课程信息并进行选课操作。

2.2 教师用户需求- 录入学绩,并计算平均分与班级排名。

- 发布作业、考试安排以及其他通知事项给学生。

3.系统设计与架构3.1数据库设计-设计数据库表结构,包括:学生表、教师表、科目表等。

3-2功能模块划分-划定各个子模块职责范围,如登录认证模块, 成绩录入/查询模块, 文件模块等。

4.详细功能描述4-1登陆注册–实现不同角色(管理员/老师/學生)登錄註冊功能,包含用戶驗證與權限控制部分。

4-2成績查詢–允许學生根据条件查询个人成绩,并显示排名情况。

4-3成績录入–允许教师输入学绩,系统自动计算平均分与班级排名,并提供相应的错误提示功能。

4-4 文件- 学生可以提交作业、报告等文件;老师可发布课程资料给学生。

5. 系统测试5.1 单元测试- 对每个模块进行单元测试以验证其正确性和稳定性。

6.部署与运行环境6-1硬件需求-列出服务器及客户端所需要的硬件配置要求。

6-2软件需求-列出操作系統, 数据库管理系统和其他必须安装在服务器上的软体需求。

7.附件8.法律名词及注释:- GDPR(General Data Protection Regulation):欧洲通用数据保护条例,是为了加强对于公民隐私权利和信息处理规范而制定的一项监管政策。

- COPPA (Children's Online Privacy Protection Act):儿童在线隐私保护法案,在美国旨在增强对13岁以下孩子们网络活动中收集到他们身份信息使用者责任意识方面做了规定。

- FERPA (Family Educational Rights and Privacy Act):家庭教育权利和隐私法案,是美国一项旨在保护学生个人信息的联邦法律。

数据库课程设计学生成绩管理系统

数据库课程设计学生成绩管理系统
安全性加强
可以进一步加强系统的 安全性设计,如增加用 户权限管理、数据备份 与恢复等功能,确保数 据的完整性和安全性。
THANKS
感谢观看
情况下的容错处理。
性能测试用例
设计针对不同用户数量和不同数据量 的测试用例,以验证系统的性能和稳
定性。
安全测试用例
设计针对系统安全性的测试用例,如 用户权限验证、数据加密传输等。
测试执行与结果分析
测试执行
按照测试计划和测试用例进行测试,记录测试结果和发现的问题 。
问题跟踪与修复
对发现的问题进行跟踪,确保问题得到及时修复,并重新进行测试 验证。
测试方法
采用黑盒测试和白盒测试相结合的方法,包括功能测试、 性能测试、安全测试等。
测试范围
包括系统的所有功能模块,如学生信息管理、课程管理、 成绩录入与查询、报表生成等。
测试资源
包括测试人员、测试环境、测试数据等。
测试用例设计
功能测试用例
针对系统的每个功能模块设计测试用 例,包括正常情况下的操作以及异常
系统功能实现
课程信息管理
实现课程基本信息的录入、修 改、查询和删除功能。
报表生成
根据需求生成各类报表,如学 生成绩单、课程统计表等。
学生信息管理
实现学生基本信息的录入、修 改、查询和删除功能。
成绩录入与查询
实现学生成绩的录入、修改、 查询和删除功能,支持批量导 入成绩数据。
权限管理
实现不同用户角色的权限管理 ,确保系统的安全性和稳定性 。
常见问题与解决方案
数据库连接问题
检查数据库连接配置是否正确,确保数据库服务 正常运行,并尝试重新启动数据库服务或修复连 接问题。
系统性能下降

学生成绩管理系统

学生成绩管理系统

学生成绩管理系统简介学生成绩管理系统是一种用于管理学生的学业成绩和相关信息的软件系统。

它可以帮助学校、教师和学生有效地管理和查询学生的成绩,提供全面的成绩分析和统计功能,促进教学质量的提高。

功能学生成绩管理系统通常具有以下核心功能:1.学生信息管理:包括学生的基本信息、课程注册、班级信息等。

2.成绩录入:教师可以登录系统,录入学生成绩,并进行相应的成绩审核和修改。

3.成绩查询:学生、教师和学校管理者均可通过系统查询学生成绩,可以按照学生、班级、课程等维度进行灵活查询。

4.成绩统计与分析:系统可以对成绩数据进行统计和分析,生成各类成绩报告和分析图表,为教师和学校提供决策依据。

5.成绩排名:系统可以根据学生成绩进行排名,可以按照总分、班级、课程等维度进行排名。

6.数据导入导出:系统可以支持将学生成绩数据导入导出到Excel、CSV等格式,方便学校的数据管理。

优势学生成绩管理系统的应用带来诸多优势:1.提高工作效率:通过系统自动化处理和统计成绩数据,节省了大量的人力和时间成本。

2.提供准确的数据:系统可以准确地计算和记录学生成绩,避免了人工计算和录入带来的错误。

3.提供个性化服务:学生成绩管理系统可以根据学生的不同需求提供个性化的信息查询和分析功能,满足学生个性化的学习需求。

4.提供全面的分析和决策支持:系统可以生成各类成绩报告和分析图表,帮助教师和学校进行成绩分析和决策。

5.提高教学质量:通过系统对学生成绩进行全方位的管理和分析,有助于教师了解学生的学习状况,及时调整教学方法,提高教学质量。

使用场景学生成绩管理系统适用于各类学校、教育机构以及在线教育平台的学生成绩管理需求。

以下是几个典型的使用场景:1.学校管理者可以通过系统了解学校整体的学生成绩情况,进行综合分析和决策。

2.教师可以通过系统录入学生成绩、排名、查询历史成绩等,方便管理学生成绩和进行个性化教学。

3.学生可以通过系统查询自己的成绩、查看排名等,及时了解自己的学习状况。

UML学生成绩管理系统

UML学生成绩管理系统
•精选ppt
管理员删除学生成绩信息序列图
图3-3 管理员删除学生信息序列图
•精选ppt
管理员查询学生信息序列图
•精选ppt 图3-4 管理员查询信息序列图
教师录入学生成绩信息序列图
•精选ppt 图3-5 教师录入学生成绩信息序列
教师修改学生成绩信息序列图
•精选ppt 图3-6 教师修改学生成绩信息序列
•精选ppt
图1-2 管理员接口模块框图
(三)教师接口模块
■ 管理员接口是 系统提供给教 师管理学生成 绩的接口 。教 师接口模块包 括如下图所示 几个几个方面:
•精选ppt
图1-3 教师接口模块框图
二、系统建模
➢ 用例图 ➢ 类图 ➢ 序列图 ➢ 协作图 ➢ 活动图 ➢ 状态图
•精选ppt
1.用例图
•精选ppt
学生成绩管理系统
•精选ppt
第四组
➢ 需求分析
➢ 系统总体功能需求 ➢ 管理员接口模块 ➢ 教师接口模块
➢ 系统建模
➢ 总结
•精选ppt
目录
一、需求分析
学生成绩管理系统是专门针对学校所开发 的一种以管理为基础的信息管理系统 , 它 涵盖成绩管理服务的所有环节 ,将原始的 人工统计方法转换为先进的电脑管理模式。 ■ 系统管理员登录系统后 ,通过身份验证 , 能够对学生的基本信息进行管理 ,包括如 下: 添加学生信息、查询学生信息、修改 学生信息、删除学生信息。
用户拥有不同级别的权限 , 以及实现不同的管理操作 。当 用户登录到系统中后用例结束。 ■ 参与者: 管理员 、教师和学生 ■ 前提条件: 用户身份验证。 ■ 事后条件: 登录到系统中。 ■ 主事件流: 进入系统 , 实现管理操作。 ■ 其他事件流: 当用户忘记密码而不能登录到系统中时 , 可 以进行密码寻回操作。

学生成绩信息管理系统

学生成绩信息管理系统

题目:学生成绩信息管理系统用c语言实现学生管理系统,每个学生的信息包括:学号、姓名、性别、平时成绩、期末成绩。

系统能够完成学生信息的查询、更新、插入、删除、排序功能。

1、系统以菜单方式工作;2、学生信息录入功能(学生信息用文件保存)--输入;3、学生信息按条件查询功能—算法;●按学号查询●按姓名查询●按性别查询●按平时成绩查询●按期末成绩查询4、学生信息的删除与修改。

流程图:图1 函数功能模块图输入输出的要求(1)等候用户输入时,给出足够的提示信息,如:选择1,输入学生信息、选择2,查询学生信息。

(2)对输入值的类型,大小范围,字符串长度等,进行检查,对不合法的输入值给出出错信息。

(3)对删除数据给出方式,让用户进行确认删除。

1.概要设计1.抽象数据类型定义struct Student//创建结构体{………………………………};2.系统功能模块划分与设计(系统功能模块图)录入学生信息模块:输入1,判断学生信息是否存在,不存在输入1,继续上次输入,判断学生信息是否存在,运行结束。

输入2,判断学生信息是否存在,不存在输入2,清除数据重新输入,运行结束。

查询学生信息模块:查询学生信息,请输入选择查询方式。

输入1,按姓名查找学生信息输入2,按学号查找学生信息输入3,按性别查找学生信息输入4,按平时成绩查找学生信息输入5,按期末成绩查找学生信息运行结束删除学生信息模块:首先使用查询功能查询出需要修改/删除的记录,然后进行修改/删除操作无学生信息!请选项删除方式。

输入1,按照姓名删除输入2,按照学号删除运行结束修改,输出,排序学生信息输入4,修改学生信息,请输入需要修改的学生信息输入5,按姓名,成绩,平时成绩,期末成绩输出学生成绩。

输入6,将学生信息进行排序。

运行结束2.详细设计1、数据类型的定义struct Student//创建结构体{char num[20]; //学号char name[20]; //姓名char sex[5]; //性别int score; //平时成绩int QiMoscore; //期末成绩struct Student *next; //动态链表连接下一个结构体};2、主要模块的算法描述菜单模块通过while语句给出信息提示;清屏;绘制菜单(包含输入,查询,删除,修改,输出,排序);提示菜单选择并读入到变量;根据读入变量的值调用不同的模块函数;信息录入模块打开文件While(){ 清屏;按照提示输入各种信息;While显示各种信息;通过选择1.确认并继续 2.填写 3.修改 4.确认并返回选择四种功能;}}信息查询While(){ 通过菜单式的选择是学号查询还是姓名printf("\n----------请选择查询方式----------");printf("\n 1.按姓名查询");printf("\n 2.按学号查询");printf("\n 3.按性别查询");printf("\n 4.按平时成绩查询");printf("\n 2.按期末成绩查询");printf("\n 3.返回主菜单");printf("\n****************************\n");}如果选择学号进入学号模块通过输入学号If(学号存在继续){输出学生信息}Else 输出无此学生如果选择姓名进入姓名模块If(根据比较姓名判断学生是否存在){输出学生信息}Else 输出无此学生删除模块while( 继续删除 ){提示并读入待删除的学生的学生号;显示要删除的信息}删除成功信息修改模块输入要修改学生信息的学号:If (判断是否有此学生){ 菜单形式显示要修改的项目printf("\n1.姓名 2.学号 3.性别 4.平时成绩 5. 期末成绩 \n");printf("\n输入0可返回主页面 \n");}打开文件模块struct Student *read(){struct Student *p0, *p1, *head; FILE *fp;if ( ){return NULL;}if ( ){return 0;}do{if ( ){return NULL;}if ( ){return 0;}} while ( );}排序模块int paixu(struct Student *head)while(){while(){if(){}}}}}3.使用说明及编程体会使用说明该程序可以实现学生管理系统的信息排序、查询、更新、插入和删除。

学生成绩管理系统

学生成绩管理系统
3 可以开发移动端应用:方便用户随时随 地进行学生成绩的管理和查询
4 可以引入更多的教学和管理功能:如在 线学习、教学评估等,更好地服务于教 育教学
-
THANK YOU
ENGLISH
可爱/简约/卡通
学生成绩管理系统
-
1
系统功能2系统流程来自3系统要求4
系统实现
5
系统未来发展
学生成绩管理系统
1
学生成绩管理系统是一个用于管理学生成绩的 计算机程序,通常用于学校或教育机构
2
这个系统可以记录每个学生的个人信息和成绩,
包括学生姓名、学号、班级、各科成绩等
3
以下是一个简单的学生成绩管理系统的示例
系统功能
系统流程
系统流程
2.1 学生信息流程
打开系统:进入学生信息管理界面
系统流程
选择添加学生信息:输入学生姓名、学 号、班级等信息
选择编辑学生信息:输入要修改的学生 学号,修改相关信息
选择删除学生信息:输入要删除的学生 学号,删除该学生信息
退出系统
系统流程
2.2 成绩管理流程
打开系统:进入成绩管理界面 选择添加成绩:输入学生学号及各科成 绩 选择编辑成绩:输入要修改的学生学号 及要修改的科目和成绩 选择删除成绩:输入要删除的学生学号 及科目,删除该科目成绩 退出系统

系统实现
系统实现
系统实现
为了实现学生成绩管理系统的各项功能,以下步骤需要被完成 确定系统的需求和功能:制定详细的需求说明书 设计系统的数据库结构和数据模型:包括学生信息、成绩信息等 开发系统的各项功能模块:包括学生信息管理、成绩管理、查询和统计等 进行系统的测试和调试:确保系统的稳定性和正确性 进行系统的用户培训和文档编写:确保用户能够正确使用系统

管理信息系统课程设计 学生成绩管理系统

管理信息系统课程设计 学生成绩管理系统

管理信息系统课程设计学生成绩管理系统一、引言在当今教育领域,学生成绩管理是学校教学管理的重要组成部分。

随着学校规模的不断扩大,学生人数的日益增加,传统的手工成绩管理方式已经无法满足高效、准确、便捷的管理需求。

因此,开发一个功能齐全、操作简便的学生成绩管理系统具有重要的现实意义。

二、系统需求分析(一)功能需求1、学生信息管理能够录入、修改、查询和删除学生的基本信息,如学号、姓名、班级等。

2、课程信息管理对学校开设的课程进行管理,包括课程名称、课程代码、学分、授课教师等信息的录入、修改和查询。

3、成绩录入与修改教师能够方便地录入学生的考试成绩,并支持成绩的修改和调整。

4、成绩查询与统计学生和教师可以按照不同的条件查询成绩,如学号、课程名称等。

同时,系统能够提供成绩统计功能,如平均分、最高分、最低分等。

5、权限管理为不同的用户设置不同的权限,如学生只能查询自己的成绩,教师可以录入和修改所授课程的成绩,管理员拥有系统的最高权限。

(二)性能需求1、响应时间系统在进行数据录入、查询和统计等操作时,响应时间应控制在合理范围内,确保用户的操作能够及时得到反馈。

2、稳定性系统应具备良好的稳定性,能够在长时间运行的情况下不出现故障或数据丢失。

3、安全性保证系统数据的安全性,防止非法用户的入侵和数据的篡改。

(三)数据需求1、学生信息包括学号、姓名、性别、出生日期、班级等。

2、课程信息课程代码、课程名称、学分、授课教师等。

3、成绩信息学号、课程代码、成绩等。

三、系统设计(一)总体设计1、系统架构采用 B/S(浏览器/服务器)架构,用户通过浏览器访问系统,服务器端负责数据的处理和存储。

2、模块划分系统主要分为学生信息管理模块、课程信息管理模块、成绩管理模块、查询统计模块和权限管理模块。

(二)数据库设计1、数据库概念模型根据系统需求,设计出学生、课程、成绩等实体以及它们之间的关系。

2、数据库表结构创建学生表(Student)、课程表(Course)、成绩表(Score)等,并定义相应的字段和数据类型。

学生成绩管理系统设计与实现

学生成绩管理系统设计与实现

学生成绩管理系统设计与实现摘要:学生成绩管理系统是典型的信息管理系统(MIS)。

文章系统的开发主要有前台登录查询界面以及数据库的建立2个方面。

对于前台登录界面要做到界面美观,功能完备,用户容易操作;对于数据库方面要做到数据完整性和一致性。

关键词:控件;窗体;数据库;学生成绩学生成绩管理系统主要是为用户提供方便和快捷的查询方法,但传统的人工方式管理学生的成绩依旧存在于很多学校,这些传统的方式存在着效率低、易出错等许多缺点,而且随着时间的增加会产生越来越多的文件从而导致经常会有查询的数据与实际上的数据对不上的情况,所以本文设计学生成绩管理系统,利用计算机程序设计的学生成绩管理系统,大大提升学校师生管理查询成绩的效率,并且可以做到不易出错和长期保存。

1 系统总体设计设计之前先调查学校师生对于成绩管理系统的需求,特别是对于功能方面的需求。

根据调查内容主要有学生需要查询每学期的课程安排信息,并且需要通过网络进行选择公选课和专业课,然后将所选择的内容保存到数据库,此外学生还可以查询以前每学期所上的课程成绩,而且能打印成绩,并且档案信息可以按照系部姓名和年级进行统计。

另外还应该具有汇总成绩、排列名次以及打印补考通知单等功能.根据调查结果,本学生成绩管理系统主要包括以下功能:(1)密码管理功能.(2)权限设置功能。

(3)学籍管理动能.(4)成绩管理功能。

(5)课程管理功能。

(6)退出系统功能。

2 数据库设计2.1 数据库需求分析本系统主要包括登录管理、学籍管理、课程管理、成绩管理等功能。

在每个功能中都需要设计表单和报表以及子段,然后通过输入必要的数据来操作该数据库,将所有有用的数据信息都存储到数据库中。

2.2 所需数据表及字段本系统得数据表有学院院系表、师生情况表、专业情况表、课程表、成绩表、其他基本情况表。

学院院系表主要用来记录学校的各个院系的信息情况,主要包括:院系的代码和院系的名称。

师生情况表主要用来记录教师和学生的信息,主要包括:教师工号或者学生学号、教师或学生姓名、所处权限和密码。

学生成绩管理系统数据库设计

学生成绩管理系统数据库设计

学生成绩管理系统数据库设计一、引言学生成绩管理系统是现代教育系统中必不可少的一部分。

数据库作为该系统的核心组成部分,用于存储和管理学生的个人信息和学业成绩数据。

本文将介绍学生成绩管理系统数据库设计的方案,包括数据库的结构、关系和各个表的字段及其类型。

二、数据库结构学生成绩管理系统数据库包含多个表,每个表对应一个实体或关系。

以下是数据库的主要结构:1. 学生表(Student)该表存储学生的个人信息,如学生ID、姓名、年龄、性别、班级等。

表结构如下:- 学生ID(StudentID):主键,用于唯一标识学生。

- 姓名(Name):学生的姓名。

- 年龄(Age):学生的年龄。

- 性别(Gender):学生的性别。

- 班级(Class):学生所在的班级。

2. 课程表(Course)该表存储所有开设的课程信息,如课程ID、课程名称、学分等。

表结构如下:- 课程ID(CourseID):主键,用于唯一标识课程。

- 课程名称(CourseName):课程的名称。

- 学分(Credit):课程的学分。

3. 成绩表(Grade)该表存储学生的成绩信息,包括学生ID、课程ID、成绩等。

表结构如下:- 学生ID(StudentID):外键,与学生表中的学生ID相关联。

- 课程ID(CourseID):外键,与课程表中的课程ID相关联。

- 成绩(Score):学生在某一门课程中的成绩。

三、关系说明学生成绩管理系统数据库中的表之间存在以下关系:1. 学生与课程的多对多关系一个学生可以选择多门课程,而一门课程也可以被多个学生选择。

这种关系可以通过成绩表来连接学生表和课程表。

2. 学生与成绩的一对多关系一个学生可以有多门课程的成绩,而一门课程只对应一个学生的成绩。

这种关系可以通过成绩表中的学生ID字段来建立。

3. 课程与成绩的一对多关系一门课程可以有多个学生的成绩,而一个学生只对应一门课程的成绩。

这种关系可以通过成绩表中的课程ID字段来建立。

学生成绩管理系统

学生成绩管理系统

一个简单的学生成绩管理系统本程序有以下功能:1.录入学生的信息及成绩2.查找学生的信息3.修改学生的信息4.添加学生的信息(程序编译无误,可以运行,自己写的,难免有疏漏,欢迎批评指正。

)程序源码如下:#include<stdio.h>#define MAXSIZE 100typedef struct student{int number;char name[20];char sex[2];int score[3];int total;float average;}STUDENT;STUDENT stu[MAXSIZE];void InputStu(STUDENT stu[],int n);void OutputStu(STUDENT stu[],int n);void SerachStu(STUDENT stu[],int n);void UpdateStu(STUDENT stu[],int n);void AppendStu(STUDENT stu[],int *pn);int main(){int n;int index;printf("请输入学生记录个数:\n");scanf("%d",&n);InputStu(stu,n);do{printf("\n***********************学生信息管理主菜单***********************\n");printf("\t1:显示学生信息\n");printf("\t2:查找学生信息\n");printf("\t3:修改学生信息\n");printf("\t4:添加学生信息\n");printf("\t5:退出\n");printf("\t :请选择1~5\n");scanf("%d",&index);printf("\n******************************************************************\n ");switch (index){case 1:OutputStu(stu,n);break;case 2:SerachStu(stu,n);break;case 3:UpdateStu(stu,n);break;case 4:AppendStu(stu,&n);break;case 5:return 0;default:printf("输入有误,请重新输入\n");}}while(1);}void InputStu(STUDENT stu[],int n){int i=0,j=0;for(i=0;i<n;i++){stu[i].total=0;printf("number:");scanf("%d",&stu[i].number);printf("name:");scanf("%s",stu[i].name);printf("sex:");scanf("%s",stu[i].sex);printf("分别输入英语、电路、高数成绩\n");for(j=0;j<3;j++){scanf("%d",&stu[i].score[j]);stu[i].total+=stu[i].score[j];}stu[i].average=stu[i].total/3.0;}}void OutputStu(STUDENT stu[],int n){int i=1;STUDENT *p=stu;printf("\n序号\t学号\t姓名\t性别\t英语\t电路\t高数\t总分\t平均分\n");for(p;p<stu+n;p++){printf("%d\t",i++);printf("%d\t",p->number);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%d\t",p->score[0]);printf("%d\t",p->score[1]);printf("%d\t",p->score[2]);printf("%d\t",p->total);printf("%f\n",p->average);}}void SerachStu(STUDENT stu[],int n){int x,i;printf("请输入要查找学生的学号:\n");scanf("%d",&x);for(i=0;i<n;i++){if(stu[i].number==x)break;}if(i<n){printf("%d\t%s\t%s\t",stu[i].number,stu[i].name,stu[i].sex);}elseprintf("不存在学号为%d的学生,查找失败\n",x);return ;}void UpdateStu(STUDENT stu[],int n){STUDENT *p;int x1,x2;printf("请输入要修改学生的学号:\n");scanf("%d",&x1);for(p=stu;p<stu+n;p++){if(p->number==x1)break;}if(p<stu+n){printf("%d\t%s\t%d\n",p->number,p->name,p->score[2]);printf("请输入新的数学成绩\n");scanf("%d",&x2);p->score[2]=x2;p->total=p->score[0]+p->score[1]+p->score[2];p->average=p->total/3.0;}else{printf("不存在学号为%d的学生,修改失败\n",x1);}return ;}void AppendStu(STUDENT stu[],int *pn){int i;if(*pn==100){printf("空间已满,不能添加!\n");return ;}else{i=*pn;printf("请依次输入\n");printf("学号姓名性别英语电路高数\n");scanf("%d%s%s%d%d%d",&stu[i].number,stu[i].name,stu[i].sex,&stu[i].score[0],&stu[i].sco re[1],&stu[i].score[2]);stu[i].total=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];stu[i].average=stu[i].total/3.0;*pn=*pn+1;}return ;}。

学生成绩管理信息系统

学生成绩管理信息系统

第一部分系统的需求分析1.1现状分析随着计算机应用的普及和迅雷般的飞速发展,信息化必然成为世界发展的潮流和趋势。

信息化正在以前所未有的速度影响着人类的方方面面,同时对传统教育的改革也起到了推动作用。

作为培养一代又一代面向21世纪,面向社会人才的摇篮一一学校,必然受到全球信息化影响。

在学校众多管理工作中,学生的成绩管理原来越重要。

然而传统的工作方式如手工修改和查询成绩是一项非常繁重而枯燥的工作,经常耗费很大财力和人力。

数据量大时,将不可避免的出现失误。

因此,学生成绩管理工作的信息化是十分必要的。

学生成绩管理系统是利用现代的信息技术,实现学生信息资源的共享,实现学生信息与社会其他信息的有机联系,促进学生成绩管理工作的科学化、现代化,提高学生管理工作的效率。

1.2系统需求分析通过调查,要求系统具有以下功能:1)任课教师可以录入所教课程的成绩2)成绩的上传和下载3)教务处即系导员能够统计成绩4)成绩的发布和查询5)用户权限的限定第二部分系统的可行性分析可行性研究的目的使用最小的代价在尽可能段的时间确定问题是否能解决。

也就是说可行性研究的目的不是解决问题而是确定问题是否值得去研究解决,研究在当前,开发新系统是否具备必要的资源和其他条件。

一般说来,可行性分析包括技术可行性、经济可行性、社会可行性等方面。

2.1技术可行性分析该系统选择微软公司的Visual Basic 6.0作为系统开发工具,主要是因为它是一个快速可视化程序开发工具软件且功能强大,主要表现为:所见即所得的界面设计,尤其是数据窗口能方便而间接操纵数据库的智能化对象,基于对象的设计方法,极短的软件开发周期,较易的代码维护,同时还有众多的Active控制,提高了软件的使用效率。

连接采用SQL Server数据库,SQL Server是一种关系数据库工具,关系数据库已开发的最通用的数据库之一。

该数据库能汇集各种信息以供查询、存储和检索。

它是一种使用广泛的数据库管理系统,具有许多优点:易用性、适合分布组织科伸缩性、用于决策支持的数据库功能等。

学生成绩管理系统

学生成绩管理系统

摘要学生成绩管理系统是为了实现学校对学生成绩管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。

它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生成绩管理提供了强有力的工具和管理手段。

学生成绩管理系统应该是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生成绩管理的要求。

本文中只是运用结构化方法学对这一系统的简单分析与建模,没有具体的实现过程,通过这阶段的学习与思考,能够对软件开发过程进行简单分析和判断。

关键字:成绩管理系统建模目录摘要 (1)目录 (1)1绪论 (1)1.1 设计任务 (1)1.1.1 需求说明 (1)1.1.2系统设计目标 (1)1.2 设计内容 (2)2 需求分析 (2)2.1 系统功能需求 (2)2.2 系统的性能需求 (2)2.3 系统数据要求 (3)2.4 系统业务流程分析 (3)2.4.1 班级管理业务流程图: (4)2.4.2学籍管理业务流程图: (4)2.4.3成绩管理业务流程图: (5)2.4.4课程管理业务流程图: (5)2.5数据模型的实体——联系图表示 (5)2.6 功能模型的数据流图表示 (7)2.7本章小结 (7)3 概要设计 (8)3.1 系统功能设计 (8)3.2系统模块具体划分 (9)4 详细设计 (11)5体会 (14)6参考文献 (15)1绪论1.1 设计任务1.1.1 需求说明学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改,打印等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。

学生信息管理系统在管理学生中占有重要的地位,它关系着学生信息的基本信息,其中包括学生信息,班级信息、课程信息等。

对于学校来讲,学生信息管理系统是不可缺少的组成部分,它有效地管理学生档案,对学校学生的变动和统计起着重要的管理作用。

大学生成绩管理信息系统

大学生成绩管理信息系统

一、成绩管理信息系统规划学生成绩是高校人才培养计划的重要组成部分,是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。

而笔者所在学院多采用半手工管理学生成绩的方式,所以有必要开发学生成绩管理系统来对学生成绩档案进行数字化管理。

既可减轻学院教职员工工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,又可加快成绩查询速度、加强成绩管理,跟上国家各部门关于信息化的步伐,使各项管理更加规范化。

正是针对上述问题,本论文对学生成绩管理系统的开发过程进行了较为详细的论述。

本系统是以大学生成绩管理信息系统为开发内容的管理信息系统,讲述了除系统实施外的全部内容,报告分包括在内的部分。

1、系统名称:大学生成绩管理信息系统2、系统开发背景:当今社会计算机的应用已深入到社会生活的各个方面,而其在拥有众多21世纪国家和社会顶梁柱的大学更是不可缺少的。

而随着计算机技术的发展的计算机人才的大量涌现计算机在信息管理方面的优势逐渐凸现出来,并开始大量应用于各层次的信息管理服务与实践中。

与此同时,大量管理信息系统软件不断涌现,且不断升级与改进。

大学生成绩管理是一项繁杂、琐碎的事务,同时其管理又与学生学籍管理、学生基本信息管理、教务系统等联系密切,它涉及到对学生的奖惩以及找工作,对教师的教学评估的重要事宜,因此大学生成绩管理的水平的重要性可见一斑。

应用大学生成绩管理信息系统来进行管理必定会大大提高管理的速度、实效、安全性、准确性、完整性、保密性。

本系统主要针对当前一些大学对学生信息管理不到位、混乱等不足进行开发并引以为鉴,当然由于开发人员专业知识和计算机技术有限,设计中可能存在欠缺,望请老师及相关读者给予指正。

本系统的业务主要包括任课教师登记汇总初始成绩、学生反馈、组织补考、成绩修改、教务系统进行统计分析修正后的成绩、学生查询。

3、项目背景开发软件的名称:学生信息管理系统项目的任务提出者:西安外事学院开发者:×××用户:西安外事学院学生信息管理员实现软件的单位:人力(电商)一班兼容系统:Windows XP SP2/SP3开发工具:+ Microsoft SQL Server 2000开发时间:6个月4、相关术语Macromedia Dreamweaver 8:网页设计工具Microsoft SQL Server:数据库工具5、选题说明:当今学生成绩管理的繁琐给具有强烈时间观念的行政人员带来了诸多不便,教学办公室缺少一种完善的学籍管理软件,为了对学生成绩的管理方便,开发人员完成了全面的调查与分析,同时与目标用户进行了多次深入沟通,主要用于大中专院校学生日常管理工作,以规范的学生档案为基础,实现了学生考勤,学籍变更、学生奖惩、考试成绩、教师考勤等电算化管理,实现学校人力资源的优化和学生成绩管理的科学管理而设计的,通过试用本系统,可以更加有效的管理学生成绩信息,系统目标。

学生成绩管理信息系统

学生成绩管理信息系统

摘要随着信息系统的普及,学生成绩管理系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。

开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。

本系统在开发过程中,采用Visual Basic作为开发工具,Access作为后台数据库,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。

在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。

本论文主要从系统分析、系统设计、系统实施与使用等几个方面进行介绍。

关键词:学生成绩管理信息系统;Visual Basic 6.0;Access 2000Student achievement management systemStudent:LIANG Ren-ren Teacher:QIN Li-taoAbstract:With the development of information systems , Student achievement management system is mainly applied to education system which manage as the daily teaching education al administration and computeration of teachers and students.Developing grade Management System cannot only ruduce thep resure of the staff and system atically manage the service and information,but also decrease the use of lab our force,accelerate there quiring speed,improve management,speed the pace of concernad national department automated information retrieval to standardize the managements.In developing procedure, ,we use VB and database Access 2000 technology to exploit this system. It can give you a short-cut to build up a prototype of system application. The prototype could be modified and developed till users are satisfied with it. This system can achieve fundamentally adding、modification and deleting functions in student score and student information facts. The system also includes extra function: security 、updating、expanding 、safeguard etc.Keywords:Student achievement management system;Visual Basic 6.0;Access 2000目次摘要 (I)ABSTRACT (II)绪论 (1)1 系统分析 (2)1.1系统需求分析 (2)1.2系统可行性分析 (2)1.2.1经济上可行性 (2)1.2.2技术上可行性 (2)1.2.3运行上可行性 (3)2 系统设计原理分析 (3)2.1基础数据的处理问题 (3)2.2开发工具设计分析 (3)3 系统设计 (4)3.1系统结构体系设计 (4)3.1.1 功能模块 (5)3.1.2身份认证 (6)3.2数据库结构设计 (7)3.2.1数据结构 (7)3.2.2表结构 (8)3.3系统性能要求设计 (11)3.3.1安全可靠性 (11)3.3.2操作灵活性 (11)3.3.3可维护性 (11)4 系统测试实施 (11)4.1软件测试 (11)4.1.1测试软件 (11)4.1.2测试环境 (12)4.1.3测试内容 (12)4.1.4 测试过程 (12)4.1.5 测试结果 (13)4.1.6数据测试结果图 (13)结论 (15)谢辞 (17)参考文献 (18)绪论随着社会的发展和经济时代的到来,管理信息系统在各行各业都越来越重要,特别是教育事业。

学生成绩管理系统

学生成绩管理系统

华南师范大学增城学院学生成绩管理信息系统简介队名:twins 组队员:何锦涛、林丽影学生成绩管理信息系统简介一、开发背景当今我校已有院系7个,专业更是多达近100种,学生已达近万人,教师也已近300名,面对如此庞大的信息,使用人工手段进行管理,将会耗费大量的人力以及时间;而且人工管理效果较差,容易出错,同时对数据的修改或查询更是效率低下。

所以本着服务师生,方便管理为目的,本小组编写了学生信息管理系统。

1.本课题的研究意义面对庞大的信息量,学生信息的管理需要对学生的基本信息、学生的课程、学生的成绩进行管理,为了轻松的处理学生庞大的信息量,减少在管理上面的物力和人力,提高学生管理的工作效率,及时了解各个环节中信息的变更。

开发一个“学生成绩管理信息系统”将会为学生的管理带来极大的方便,并且降低学生的管理成本。

通过系统,可以做到信息的规范管理、统计和快速的查询,从而减少在管理方面的工作量。

2.可行性分析可行性研究的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。

当然不能靠主观猜想而是要靠客观分析。

必须分析几种主要的可能解法的利弊,从而判原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得去投资开发这个系统的程度。

因此,可行性研究实质上是要进行依次大大地压缩简化了的系统分析和设计的过程,也就是在较高层次以较抽象的方式进行的系统分析和设计的过程。

可行性研究主要从以下三个方面来进行。

3.技术上可行性本系统是通过需要的软件和硬件配置有:(1)硬件平台硬件平台是由服务器、客户机、打印机等设备构成。

(2)软件平台软件平台由Windows xp 系统、visual studio 2005, SQL SERVER 2000、Office Excel 2003、软件开发语言c#构成。

综合以上的软硬件条件,考虑到系统要求不是太高,在技术可行性来说,这个“学生成绩管理信息系统”完全能够实现。

4.经济可行性我们设计的这个“学生成绩管理信息系统”,面向的是学校的教学工作,设计和实现它所要求的硬件、软件、人员等这些基本的条件不是很高,在经济上的成本支出不高,所以成本是非常的小,而它的适用范围又比较广,节约管理成本,同时又可以提高管理效率,在经济上来说也是可行的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 问题描述学生成绩管理系统学生成绩管理系统学生信息包括学期、学号、班级、姓名,和语文、数学、英语、计算机四门课成绩。

并按班级、学期查询学生成绩,并能录入、修改,求学生平均成绩和总成绩,输出不及格科目,按班级输出成绩单,按班级对学生成绩进行排序。

2 系统分析2.1 问题定义学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。

主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单(5)能按班级,按课程,对学生成绩进行排序。

要求:使用二进制文件方式存储数据,系统以菜单方式工作2.2开发工具 VC++6.02.3数据结构typedef struct studentMark{int term;int classes;char name[10];int number;char sex[7];float chinese;float math;float english;float computer;struct studentMark *next;} MARK;这是定义一个结构体,主要包括学期,班级,姓名,学号,性别,语文成绩,数学成绩,英语成绩,计算机成绩,以及包括一个结构体指针。

另外还用了typedef这个关键字。

因此,在程序的后面也可以用MARK来定义结构体变量或结构体指针变量。

int term; 定义学期,学期只能是第一学期或者第二学期。

例如int 1;则表示第一学期。

int classes; 定义班级,班级只能是一班或者二班。

例如 int 2;则是表示定义为二班。

char name[10]; 定义姓名,在数组中存放字符串。

例如 char name[]=“yang”;则该学生的姓名为yang int number; 定义学号,例如int 1;则该学生学号为1号。

char sex[7]; 定义姓别,其性别最大长度为7.例如 char sex[]=“man”;说明该学生为男生。

同样可以这样定义女生。

float chinese; 定义语文成绩。

float math; 定义数学成绩。

float english; 定义英语成绩。

float computer; 定义计算机成绩。

struct studentMark *next; 定义一个结构体指针。

int main();主函数,程序的入口。

void m(MARK *head);主菜单的函数原型,在函数m(head)中主要有选择创建学生成绩信息,查询学生成绩信息,修改学生成绩信息,统计学生成绩信息,输出学生成绩信息,存储学生成绩信息于文件,以及退出体统等选项可供用户选择。

MARK *creat(void );创建函数的函数原型,在函数creat()中用户可以输入初始的学生信息:其中包括学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息。

void searchMark(MARK *head);查询菜单的函数原型,在函数searchMark(head)中用户可以自由选择是查询某一个学生的成绩还是查询不及格学生的成绩。

而这通过调用函数searchMarkStusentone(head)和函数searchMarkFail(head)完成操作。

void searchMarkStusentone(MARK *head);查询某个学生成绩的函数原型,在函数searchMarkStusentone(head)中用户可以按学号或班级或者是按学期来查找某个学生的成绩。

通过函数searchnumber(head)和函数 searchclasses(head)以及函数searchterm(head)完成操作。

void searchnumber(MARK *head) 按学号查找学生的函数原型,;void searchclasses(MARK *head); 按班级查找学生的函数原型,void searchterm(MARK *head); 按学期查找学生的函数原型,void searchMarkFail(MARK *head);查询没有及格的学生的函数原型,通过这个函数可以查找学生不及格科目及学生名单。

MARK *changeMark(MARK *head);修改学生成绩信息的函数原型,可以修改学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息。

void conuntMark(MARK *head);统计学生成绩的函数原型,在函数conuntMark(head)中用户可以统计学生的总成绩以及平均成绩,通过调用函数totalMark(head)和函数aveMark (head)完成操作。

void totalMark(MARK *head); 统计学生总成绩的函数原型,void aveMark(MARK *head); 统计学生平均成绩的函数原型,void printClassMark(MARK *head);输出学生成绩信息的函数原型,通过此函数可以输出学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息到屏幕上。

void saveFileMark(MARK *head);存储学生成绩信息于文件的函数原型,通过此函数可以输出学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息与文件中。

2.4算法描述(1)创建主菜单(2)实现学生成绩信息录入(3)实现学生成绩信息查询(4)实现学生成绩信息修改(一)修改某个学生的成绩(a)按学期查询学生的成绩(b)按班级查询学生的成绩(c)按学号查询学生的成绩(二)查询不及格的科目和学生名单(5)实现学生成绩统计(a)按班级统计学生的总分。

(b)按班级统计学生的平均分。

(6)实现学生成绩信息输出(7)保存学生的成绩信息于文件(8)流程图如下:. 2.5程序调试情况(1)源程序如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#define MAR (struct studentMark *)malloc(sizeof(struct studentMark))typedef struct studentMark{int term;int classes;char name[10];int number;char sex[7];float chinese;float math;float english;float computer;struct studentMark *next;} MARK;void m(MARK *head);MARK *creat(void );void searchMark(MARK *head);void searchMarkStusentone(MARK *head);void searchnumber(MARK *head);void searchclasses(MARK *head);void searchterm(MARK *head);void searchMarkFail(MARK *head);MARK *changeMark(MARK *head);void conuntMark(MARK *head);void totalMark(MARK *head);void aveMark(MARK *head);void printClassMark(MARK *head);void saveFileMark(MARK *head);int main(void){MARK *head=NULL;printf("**********************************************\n");printf(" ## 欢迎进入学生成绩信息管理系统##\n");printf("**********************************************\n");printf("\n");head=creat();m(head);return(0);}void m(MARK *head ){int choose;while(1){printf("************************************\n");printf(" 学生成绩信息管理\n");printf("************************************\n");printf(" 1创建成绩信息\n");printf(" 2查询成绩信息\n");printf(" 3修改成绩信息\n");printf(" 4统计成绩信息\n");printf(" 5按班级输出学生信息\n");printf(" 6保存成绩信息于文件\n");printf(" 7退出系统\n");printf("************************************\n");fflush(stdin);printf("请选择:");scanf("%d",&choose);if(1==choose)head=creat();else if(2==choose)searchMark(head);else if(3==choose)head=changeMark(head);else if(4==choose)conuntMark(head);else if(5==choose)printClassMark(head);else if(6==choose)saveFileMark(head);elseprintf("退出系统");break;}}//创建一个学生成绩信息系统MARK *creat(){MARK *head=NULL,*p1=NULL,*p2=NULL;char ch;fflush(stdin);printf("请问是否输入信息?(y 或n)\n");scanf("%c",&ch);head=p1=p2=MAR;while(p1!=NULL && ch=='y'){p1=MAR;printf("请输入要录入学生信息的学期(学期只能为 1 或 2 ):");fflush(stdin);scanf("%d",&p1->term);while(p1->term!=1 && p1->term!=2){getchar();printf("输入错误!请重新输入:");scanf("%d",&p1->term);}printf("请输入要录入学生成绩信息的班级:");fflush(stdin);scanf("%d",&p1->classes);while(p1->classes!=1 && p1->classes!=2){getchar();printf("输入错误!请重新输入:");scanf("%d",&p1->classes);}printf("请输入该班的学生信息!\n");printf("请输入学生学号:");fflush(stdin);scanf("%d",&p1->number);printf("请输入学生姓名:");fflush(stdin);scanf("%s",p1->name);printf("请输入学生姓别:");fflush(stdin);scanf("%s",p1->sex);fflush(stdin);printf("请输入语文成绩(0-100):");scanf("%f",&p1->chinese);fflush(stdin);printf("请输入数学成绩(0-100):");scanf("%f",&p1->math);fflush(stdin);printf("请输入英语成绩(0-100):");scanf("%f",&p1->english);fflush(stdin);printf("请输入计算机成绩(0-100):");scanf("%f",&p1->computer);p2->next=p1;p2=p1;printf("是否还要输入信息(y/n):");fflush(stdin);scanf("%c",&ch);}p2->next = NULL; //链表结尾return(head);}//查找学生成绩信息void searchMark(MARK *head){int choose1;while(1){printf("************************************\n");printf(" 查询学生成绩信息\n");printf(" 1查询某个学生成绩\n");printf(" 2查询不及格学生成绩\n");printf(" 3返回主菜单\n");printf("*************************************\n");fflush(stdin);printf("请选择:");scanf("%d",&choose1);if(1==choose1)searchMarkStusentone(head);else if(2==choose1)searchMarkFail(head);elseprintf("返回主菜单");break;}}//修改学生成绩信息(按学期或按学号修改)MARK *changeMark(MARK *head){int choose2;.MARK *p=head->next;char name[10];char ch;int number;printf("************************************\n");printf(" 你所需要修改的\n");printf(" 1修改学号\n");printf(" 2修改姓名\n");printf(" 3修改班级\n");printf(" 4修改性别\n");printf(" 5修改成绩\n");printf("*************************************\n");fflush(stdin);printf("请选择:");scanf("%d",&choose2);while(1){while(p!=NULL){if(1==choose2){printf("你要修改的信息是:学号!\n"); //按姓名修改学号fflush(stdin);printf("请输入你要修改的学生姓名:");scanf("%s",name);if (strcmp(name,p->name)==0){fflush(stdin);printf("请输入该学生新的学号:"); //输入新学号scanf("%d",&p->number);printf("修改学生的学号后:\n");printf("%s学生的新学号是%d\n",p->name,p->number);break;}}else if(2==choose2){printf("你要修改的信息是:姓名!\n");fflush(stdin);printf("请输入你要修改的学生的学号:");scanf("%d",&number);if(number==p->number)//输入学号,判断条件{fflush(stdin);printf("请输入该学生的姓名:");scanf("%s",p->name);//输入要做修改的学生姓名printf("修改学生的姓名后:\n");printf("%s是该学生的新姓名\n",p->name);break;}}else if(3==choose2){printf("你要修改的信息是:班级!\n"); //按学号修改班级fflush(stdin);printf("请输入你要修改的学生的学号:");scanf("%d",&number);if(number==p->number){fflush(stdin);printf("请输入该学生的班级:"); //输入要做修改的班级scanf("%d",&p->classes);printf("修改班级后\n");printf("该学生的新班级为:%d\n",p->classes);break;}}else if(4==choose2){printf("你要修改的信息是:性别!\n"); //按学号修改性别fflush(stdin);printf("请输入你要修改的学生的学号:");scanf("%d",&number);if(number==p->number){fflush(stdin);printf("请输入该学生的性别:"); //输入要做修改的性别scanf("%s",p->sex);printf("修改该学生的性别后\n");printf("该学生的新性别为:%s\n",p->sex);break;}}else if(5==choose2){printf("你要修改的信息是:成绩!\n");//按学号修改成绩fflush(stdin);printf("请输入你要修改的学生的学号:");scanf("%d",&number);if(number==p->number) //输入学号{fflush(stdin);printf("请输入该学生新的语文成绩:\n");scanf("%f",&p->chinese);fflush(stdin);printf("请输入该学生新的数学成绩:\n");scanf("%f",&p->math); //输入新的四门成绩fflush(stdin);printf("请输入该学生新的英语成绩:\n");scanf("%f",&p->english);fflush(stdin);printf("请输入该学生新的计算机成绩:\n");scanf("%f",&p->computer);printf("修改后的成绩\n");printf("该学生新的语文成绩:%f\n",p->chinese);printf("该学生新的数学成绩:%f\n",p->math);printf("请该学生新的英语成绩:%f\n",p->english);printf("该学生新的计算机成绩:%f\n",p->computer);break;}}elsep=p->next;}printf("是否还要继续修改信息(y/n):\n"); //判断,是否还要修改信息,跳出循环fflush(stdin);if((ch=getchar())=='n')break;}return(head);}//统计学生成绩总分和平均分void conuntMark(MARK *head){MARK *p=head->next;int classes;char ch1,ch2;fflush(stdin);printf("请输入要统计成绩的班级(1或2):");scanf("%d",&classes);printf("正在统计该班级学生的总分,请稍侯\n");while(1){totalMark(p);printf("是否还要继续统计其他学生的成绩(y/n):");fflush(stdin);if((ch1=getchar())=='n')break;}printf("是否统计该班级学生平均分?(y/n):");fflush(stdin);if((ch2=getchar()!='n')){printf("正在统计该班学生平均分进行统计,请稍侯\n");aveMark(p); //调用平均分函数printf("\n");}}//按班级输出学生信息void printClassMark(MARK *head){MARK *p;p=head->next;printf("***********************************************************************\n");printf("学期\t学号\t班别\t姓名\t性别\t语文\t\t数学\t\t英语\t\t计算机\t\t\n");printf("***********************************************************************\n");while(p!=NULL){printf("%d\t",p->term);printf("%d\t",p->number);printf("%d\t",p->classes);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%f\t",p->chinese);printf("%1f\t",p->math);printf("%1f\t",p->english);printf("%1f\t",p->computer);p=p->next;printf("\n");printf("**************************************************************************\n");}}//保存学生成绩信息于文件void saveFileMark(MARK *head){char *fileName;FILE *stu;MARK *p=head->next;if(p==NULL){printf("没有任何信息,请先存入信息!\n");printf("请按任意键返回主菜单!\n");getchar();}else{fileName=(char *)malloc(sizeof(char));fflush(stdin);printf("请输入你要保存的文件名!\n");gets(fileName);fileName=strcat(fileName,".txt");stu=fopen(fileName,"wb+");while(p!=NULL){fprintf(stu,"%d %d",p->term ,p->classes );fprintf(stu,"%s %d",p->name,p->number);fprintf(stu,"%s",p->sex );fprintf(stu,"%f %f %f %f",p->chinese ,p->math ,p->english ,p->comp uter );p=p->next ;}fclose(stu);printf("已经保存文件在%s中!\n",fileName);printf("请按任意键返回主菜单!\n");getchar();}}//查找某个学生的成绩void searchMarkStusentone(MARK *head){char ch1,ch2;MARK *p=head->next;if(p==NULL){printf("没有任何信息,请先存入信息!\n");printf("请按任意键返回主菜单!\n");getchar();}elsewhile(1){printf(" 你要选择何种方式查询成绩!\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf(" a、学号: \n");printf(" b、班级: \n");printf(" c、学期: \n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");fflush(stdin);scanf("%c",&ch1);switch(ch1){case 'a':searchnumber(head);break;case 'b':searchclasses(head);break;case 'c':searchterm(head);break;}printf("\n");printf("是否还要继续查询学生的信息(y/n):");fflush(stdin);if((ch2=getchar())=='n')break;}}//查询不及格学生void searchMarkFail(MARK *head){MARK *p=head->next ;char name[10];int number,flag=0;int choose5;do{fflush(stdin);printf("请输入!(1按姓名查询 2按学号查询 3 返回)\n");scanf("%d",&choose5);switch(choose5){case 1 :fflush(stdin);printf("请输入要查找的名字\n");gets(name);while(p!=NULL){if(!strcmp(name,p->name)){printf("姓名学号\n");printf("%s %d\n",p->name ,p->number );if(p->chinese <60)printf("%s 的语文成绩不及格\n",p->name );if(p->math <60)printf("%s 的数学成绩不及格\n",p->name );if(p->english <60)printf("%s 的英语成绩不及格\n",p->name );if(p->computer <60)printf("%s 的计算机成绩不及格\n",p->name );flag++;}printf("\n");p=p->next;}if(flag==0)printf("没有你要找的信息!\n");break;case 2 :fflush(stdin);printf("请输入你想要查找的学号:\n");scanf("%d",&number);while(p!=NULL){if(number==p->number){printf("姓名学号\n");printf("%s %d\n",p->name ,p->number );if(p->chinese <60)printf("%s 的语文成绩不及格\n",p->name );if(p->math <60)printf("%s 的数学成绩不及格\n",p->name );if(p->english <60)printf("%s 的英语成绩不及格\n",p->name );if(p->computer <60)printf("%s 的计算机成绩不及格\n",p->name );flag++;}printf("\n");p=p->next;}if(flag==0)printf("没有你要找的信息!\n");break;case 3:printf("请按任意键返回!\n");getchar();break;default:printf("你输入的有误!!请重新选择\n");break;}}while(choose5!=1 && choose5!=2 && choose5!=3);printf("按任意键返回!\n");getchar();}//按学号查询void searchnumber(MARK *head){MARK *p=head->next;int number,i=0;printf("请输入你要查询的学生学号:\n");scanf("%d",&number);while(p!=NULL){if(number==p->number){printf("-------------------------------------------------------------------------\n");printf("\t学期\t学号\t班别\t姓名\t性别\t语文\t数学\t英语\t计算机\t\n");printf("-------------------------------------------------------------------------\n");printf("%d\t",p->term);printf("%d\t",p->number);printf("%d\t",p->classes);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%1f\t",p->chinese);printf("%1f\t",p->math);printf("%1f\t",p->english);printf("%1f\t",p->computer);i=2;}p=p->next;}if(i==0)printf("没找到该学生的信息!");}//按班级查询成绩void searchclasses(MARK *head){int classes,i=0;MARK *p=head->next;printf("请输入你要查询成绩的班级:");scanf("%d",&classes);printf("请输出%d班所有同学的成绩:\n",classes);printf("------------------------------------------------------------------------\n");printf("\t学期\t学号\t班别\t姓名\t性别\t语文\t数学\t英语\t计算机\t\n");printf("-------------------------------------------------------------------------\n");while(p!=NULL) {if(classes==p->classes){printf("%d\t",p->term);printf("%d\t",p->number);printf("%d\t",p->classes);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%1f\t",p->chinese);printf("%1f\t",p->math);printf("%1f\t",p->english);printf("%1f\t",p->computer);printf("\n");printf("\n");i=2;}p=p->next;}if(i==0)printf("没找到学生信息!\n");}//按学期查询void searchterm(MARK *head){int term,i=0;MARK *p=head->next;printf("请输入你要查询成绩的学期:");scanf("%d",&term);printf("请输出第%d学期所有班级的信息:\n");printf("------------------------------------------------------------------------\n");printf("\t学期\t学号\t班别\t姓名\t性别\t语文\t数学\t英语\t计算机\t\n");printf("-------------------------------------------------------------------------\n");while(p!=NULL) {if(term==p->term){printf("%d\t",p->term);printf("%d\t",p->number);printf("%d\t",p->classes);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%1f\t",p->chinese);printf("%1f\t",p->math);printf("%1f\t",p->english);printf("%1f\t",p->computer);printf("\n");printf("\n");i=2;}p=p->next;}if(i==0)printf("没找到学生信息!\n");}//学生总分void totalMark(MARK *head){float total=0;int i=0;MARK *p=head->next;while(p!=NULL){total=p->chinese+p->math+p->english+p->computer;printf("第%d个学生的总分为:%1f!\n",i+1,total);printf("\n");printf("已经统计了第%d个学生的总成绩!\n",i+1);printf("\n");printf("\n");i++;p=p->next;}}//学生平均分void aveMark(MARK *head){float total=0,ave=0;int i=0;MARK *p=head->next;while(p!=NULL){total=p->chinese+p->math+p->english+p->computer;ave=total/4;printf("第%d个学生的平均分:%1f!\n",i+1,ave);printf("\n");printf("已经统计了第%d个学生的平均成绩!\n",i+1);printf("\n");printf("\n");i++;p=p->next;}}(2)调试结果如下:(a)创建学生成绩信息(b)查找学生成绩信息2.6心得及体会在做这学生成绩管理系统时,自我感觉还好,在大的方面能够较为准确的把握,只是在一些小的细节不能做的很好,这一点是值得思考的地方。

相关文档
最新文档