当前位置:文档之家› 学生成绩管理系统C++

学生成绩管理系统C++

学生成绩管理系统C++
学生成绩管理系统C++

《c++学生成绩管理系统》的设计与实现

一、概述:

1、每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。

powered by https://www.doczj.com/doc/c115967656.html,

2、输入功能:可以一次完成无数条记录的输入。

3、显示功能:完成全部学生记录的显示。

4、查找功能:完成按姓名查找学生记录,并显示。

5、排序功能:按学生平均成绩进行排序。

6、插入功能:按平均成绩高低插入一条学生记录。

7、保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。

8、读取功能:将保存在文件中的学生记录读取出来。

9、有一个清晰美观界面来调用各个功能

二、要求

1、整个系统均用C语言实现;

2、利用指针、链表来实现学生成绩的数据结构设计;

3、系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;

4、系统的各个功能模块都用函数的形式来实现;

5、可以将学生成绩信息保存在文件中。

6、可以将学生信息从文件中读取出来。

三、内容

整个系统除了主函数外,另外还有10个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。各个函数的详细设计说明分别如下:

1、主函数main()

利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

2、初始化函数STUDENT *init()

这是一个无参函数,里面只有一个语句,它的作用是使链表初始化,使head的值为NULL。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码!

3、菜单选择函数int menu_select();

这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择,中间还显示系统当前的时间。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!

4、输入记录函数STUDENT *create()

这是一个无参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入,函数结束后,带回一个指向链表头的指针head。

算法:先声明一个首节点head,并将head->next设为NULL。每输入一个数据就声明一个新节点p,把p->next设为NULL,并且链接到之前列表的尾端。

5、显示记录函数void print(STUDENT *head)

这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。

算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复执行此步聚直到p指针指向NULL为止。

6、查找记录函数void search(STUDENT *head)

这是一个不返回值的有参函数,形参为“链表头的指针”,实现按学号对某个学生进行查找,并显示所查找到的记录。

算法:采用线性查找法往下一个节点查找。输入所要查找的学生的学号s,设一个指针变量p,先指向第一个结点,当strcmp(p->name,s) && p != NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点

7、删除记录函数STUDENT *delete(STUDENT *head)powered by https://www.doczj.com/doc/c115967656.html,

这是一个有参函数,形参为“链表头的指针”,先输入要删除的学生记录的学号,找到后显示该学生信息,等确认后便可按“Y”进行删除。

算法:从p指向的第一个结点开始,检查该结点中的num值是否等于输入的要求删除的那个学号。如果相等就将该结点删除,如不相等,就将p后移一个结点,再如此进行下去,直到遇到表尾为止。

8、排序函数STUDENT *sort(STUDENT *head)

这是一个有参函数,形参为“链表头的指针”,按学生成绩的平均分高低进行排序,还可以显示名次。

9、插入函数STUDENT *insert(STUDENT *head,STUDENT *new)

这是一个有参函数,形参有两个,一个是“链表头的指针”,一个是“待插入指针”,按照原来成绩平均分的高低进行插入,插入后会重新进行排序,并返回。

算法:先将学生的成绩按平均分由高分到低分进行排序,再插入一个新生的结点,要求按平均分的高低顺序插入。先用指针变量p0指向待插入的结点,p1指向第一个结点。如果p0->averageaverage,则待插入的结点不应插在p1所指的结点之前。此时将p1后移,并使p2指向刚才p1所指的结点。重复以上的步骤,直到p0->average>=p1->average为止。这时将p0指向的结点插到p1所指结点之前。但是如果p1所指的已是表尾结点,则p1就不应后移了。如果

p0->average比所有结点的average都小,则应将p0所指的结点插到链表末尾。如果插入的位置既不在第一个结点之前,又不在表尾结点之后,则将p0的值赋给p2->,使p2->next指向待插入的结点,然后将p1的值赋给p0->next,使得p0->next指向p1指向的变量。如果插入位置为第一个结点之前,则将p0赋给head,将p1赋给p0->next。如果要插到表尾之后,应将p0赋给p1->next,NULL赋给p0->next。最后再调用排序的函数,将学生成绩重新排序.

10、保存数据到文件函数void save(STUDENT *head)

这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑上由自己任意命名的二进制文件。

11、从文件读数据函数STUDENT *load()

这是一个不返回值的有参函数,形参为“链表头的指针”,根据输入的文件地址进行读取。

四、调试分析

(1)刚开始没有那个初始化函数,程序运行后,没有输入任何数据就试得去执行显示功能,结果显示的是一些乱码!加入初始化函数后,这种现象也随之消失。

(2)刚开始执行输入函数,按学号顺序输入十个学生的成绩,输完后执行显示功能,学生成绩记录是按学号的反顺序显示的,试着在其中增加一些语句,希望能把学号按正常顺序显示,但暂时没有成功,所以在输入成绩时只能按学号反顺序输入,最后就按学号正常顺序输出了。

(3)刚开始时,先把成绩按平均分排序,再插入一个学生的成绩,执行显示功能,虽然插入的学生的成绩能正常插入,但该学生的名次为0。后来,在插入成绩之后,调用排序函数,把所有成绩重新排序一次。

(4)在输入函数中设了一个无限循环,可以输入无数个学生的成绩信息,当学号为0的时候则停止输入。

(5)输入太多个学生的成绩时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,十七左右为最佳。

(6)在没有输入任何信息的情况下,去执行排序功能,最后显示有一个记录,学号、姓名为空白,成绩都为0,名次为1。

(7)在输入选项时不能输入字母,否则会死循环,建议不要乱输字母。

五、总结

经过一个多星期的C语言课程设计,感觉自己收获不少!

首先是:链表本来上课是没有上的,但这个课程设计里面主要都是用链表,因为要达到这样的功能,使用链表相当方便,但不容易理解,所以在这方面我很了很多的时间看课本和参考课外书,使C语言的知识强化了不少。

其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:返回值函数和不返回值函数两者在主函数中的调用是不同的…………

更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见识到了C语言的重要性。这个学生成绩管理系统都是在自己知识范围内完成的,所以界面清晰简单,可能不是很好看,但绝对实用!

从这里我也得到一个体会,做一个程序,或者开发一个软件,应该着重从它的后台制作入手,不能做出一个中看不中用的程序或者软件。

相信这次的课程设计为我以后继续从事计算机工作打了一个小小的开头。

由于这是第一次进行设计,写文档,难免会写得不好!

学生成绩管理系统

/*头文件*/

#include

#include

#include /*其它说明*/powered by https://www.doczj.com/doc/c115967656.html,

#include /*字符串函数*/

#include /*内存操作函数*/

#include /*字符操作函数*/

#include /*动态地址分配函数*/

#define LEN sizeof(STUDENT)

typedef struct stu /*定义结构体数组用于缓存数据*/

{char num[6];

char name[5];

int score[3];

int sum;

float average;

int order;

struct stu *next;

}STUDENT;

/*函数原型*/

STUDENT *init(); /*初始化函数by https://www.doczj.com/doc/c115967656.html,*/

int menu_select(); /*菜单函数*/

STUDENT *create(); /*创建链表*/

void print(STUDENT *head); /* 显示全部记录*/

void search(STUDENT *head); /*查找记录*/

STUDENT *delete(STUDENT *head); /*删除记录*/

STUDENT *sort(STUDENT *head); /*排序*/

STUDENT *insert(STUDENT *head,STUDENT *new); /*插入记录*/ void save(STUDENT *head); /*保存文件*/

STUDENT *load(); /*读文件*/

/*主函数界面*/

main()

{STUDENT *head,new;

head=init(); /*链表初始化,使head的值为NULL*/

for(;;) /*循环无限次*/

{switch(menu_select())

{

case 1:head=create();break;

case 2:print(head);break;

case 3:search(head);break;

case 4:head=delete(head);break;

case 5:head=sort(head);break;

case 6:head=insert(head,&new);break; /*&new表示返回地址*/ case 7:save(head);break;

case 8:head=load(); break;

case 9:exit(0); /*如菜单返回值为9则程序结束*/

}

}

}

/*初始化函数*/

STUDENT *init()

{

return NULL; /*返回空指针*/

}

/*菜单选择函数*/

menu_select()

{int n;

struct date d; /*定义时间结构体*/

getdate(&d); /*读取系统日期并把它放到结构体d中*/

printf("press any key to enter the menu......"); /*按任一键进入主菜单*/ getch(); /*从键盘读取一个字符,但不显示于屏幕*/

clrscr(); /*清屏*/

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. Enter the record\n"); /*输入学生成绩记录*/

printf("\t\t\t2. Print the record\n"); /*显示*/

printf("\t\t\t3. Search record on name\n"); /*寻找*/

printf("\t\t\t4. Delete a record\n"); /*删除*/

printf("\t\t\t5. Sort to make new a file\n"); /*排序*/

printf("\t\t\t6. Insert record to list\n"); /*插入*/

printf("\t\t\t7. Save the file\n"); /*保存*/

printf("\t\t\t8. Load the file\n"); /*读取*/

printf("\t\t\t9. Quit\n"); /*退出*/

printf("\n\t\t Made by Hu Haihong.\n");

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

printf("\t\t\t\t%d\\%d\\%d\n",d.da_year,d.da_mon,d.da_day); /*显示当前系统日期*/

do{

printf("\n\t\t\tEnter your choice(1~9):");

scanf("%d",&n);

}while(n<1||n>9); /*如果选择项不在1~9之间则重输*/

return(n); /*返回选择项,主函数根据该数调用相应的函数*/

}

/*输入函数*/

STUDENT *create()

{int i,s;

STUDENT *head=NULL,*p; /* 定义函数.此函数带回一个指向链表头的指针*/

clrscr();

for(;;)

{p=(STUDENT *)malloc(LEN); /*开辟一个新的单元*/

if(!p) /*如果指针p为空*/

{printf("\nOut of memory."); /*输出内存溢出*/

return (head); /*返回头指针,下同*/

}

printf("Enter the num(0:list end):");

scanf("%s",p->num);

if(p->num[0]=='0') break; /*如果学号首字符为0则结束输入*/

printf("Enter the name:");

scanf("%s",p->name);

printf("Please enter the %d scores\n",3); /*提示开始输入成绩*/

s=0; /*计算每个学生的总分,初值为0*/

for(i=0;i<3;i++) /*3门课程循环3次*/

{

do{

printf("score%d:",i+1);

scanf("%d",&p->score[i]);

if(p->score[i]<0 || p->score[i]>100) /*确保成绩在0~100之间*/

printf("Data error,please enter again.\n");

}while(p->score[i]<0 || p->score[i]>100);

s=s+p->score[i]; /*累加各门成绩*/

}

p->sum=s; /*将总分保存*/

p->average=(float)s/3; /*先用强制类型转换将s转换成float型,再求平均值*/

p->order=0; /*未排序前此值为0*/

p->next=head; /*将头结点做为新输入结点的后继结点*/

head=p; /*新输入结点为新的头结点*/

}

return(head);

}

/* 显示全部记录函数*/

void print(STUDENT *head)

{int i=0; /* 统计记录条数*/

STUDENT *p; /*移动指针*/

clrscr();

p=head; /*初值为头指针*/

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

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

| Num | Name | Sc1 | Sc2 | Sc3 | Sum | Ave | Order |\n");

printf("-------------------------------------------------------------------------------\n"); while(p!=NULL)

{

i++;

printf("| %3d

| %4s | %-4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|\n",

i,

p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average, p->order);

p=p->next;

}

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

}

/*查找记录函数*/

void search(STUDENT *head)

{STUDENT *p; /* 移动指针*/

char s[5]; /*存放姓名用的字符数组*/

clrscr();

printf("Please enter name for searching.\n");

scanf("%s",s);

p=head; /*将头指针赋给p*/

while(strcmp(p->name,s) && p != NULL) /*当记录的姓名不是要找的,或指针不为空时*/

p=p->next; /*移动指针,指向下一结点*/

if(p!=NULL) /*如果指针不为空*/

{printf("\n*************************************FOUND******** ****************************\n");

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

printf("| Num | Name | sc1 | sc2 | sc3 |

Sum | Ave | Order |\n");

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

printf("| %4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|\n",

p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->aver age,p->order);

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

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

}

else

printf("\nThere is no num %s student on the list.\n",s); /*显示没有该学生*/

}

/*删除记录函数*/

STUDENT *delete(STUDENT *head)

{int n;

STUDENT *p1,*p2; /*p1为查找到要删除的结点指针,p2为其前驱指针*/ char c,s[6]; /*s[6]用来存放学号,c用来输入字母*/

clrscr();

printf("Please enter the deleted num: ");

scanf("%s",s);

p1=p2=head; /*给p1和p2赋初值头指针*/

while(strcmp(p1->num,s) && p1 != NULL) /*当记录的学号不是要找的,或指针不为空时*/

{p2=p1; /*将p1指针值赋给p2作为p1的前驱指针*/

p1=p1->next; /*将p1指针指向下一条记录*/

}

if(strcmp(p1->num,s)==0) /*学号找到了*/

{printf("**************************************FOUND********* ***************************\n");

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

printf("| Num | Name | sc1 | sc2 | sc3 | Sum | Ave | Order |\n");

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

printf("| %4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|\n",

p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->sum, p1->average,p1->order);

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

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

printf("Are you sure to delete the student Y/N ?"); /*提示是否要删除,输入Y删除,N则退出*/

for(;;)

{scanf("%c",&c);

if(c=='n'||c=='N') break; /*如果不删除,则跳出本循环*/

if(c=='y'||c=='Y')

{

if(p1==head) /*若p1==head,说明被删结点是首结点*/

head=p1->next; /*把第二个结点地址赋予head*/

else

p2->next=p1->next; /*否则将一下结点地址赋给前一结点地址*/

n=n-1;

printf("\nNum %s student have been deleted.\n",s);

printf("Don't forget to save.\n");break; /*删除后就跳出循环*/

}

}

}

else

printf("\nThere is no num %s student on the list.\n",s); /*找不到该结点*/

return(head);

}

/*排序函数*/

STUDENT *sort(STUDENT *head)

{int i=0; /*保存名次*/

STUDENT *p1,*p2,*t,*temp; /*定义临时指针*/

temp=head->next; /*将原表的头指针所指的下一个结点作头指针*/

head->next=NULL; /*第一个结点为新表的头结点*/

while(temp!=NULL) /*当原表不为空时,进行排序*/ {

t=temp; /*取原表的头结点*/

temp=temp->next; /*原表头结点指针后移*/

p1=head; /*设定移动指针p1,从头指针开始*/

p2=head; /*设定移动指针p2做为p1的前驱,初值为头指针*/ while(t->averageaverage&&p1!=NULL) /*作成绩平均分比较*/ {

p2=p1; /*待排序点值小,则新表指针后移*/

p1=p1->next;

}

if(p1==p2) /*p1==p2,说明待排序点值大,应排在首位*/

{

t->next=p1; /*待排序点的后继为p*/

head=t; /*新头结点为待排序点*/

}

else /*待排序点应插入在中间某个位置p2和p1之间,如p为空则是尾部*/

{

t->next=p1; /*t的后继是p1*/

p2->next=t; /*p2的后继是t*/

}

}

p1=head; /*已排好序的头指针赋给p1,准备填写名次*/

while(p1!=NULL) /*当p1不为空时,进行下列操作*/

{

i++; /*结点序号*/

p1->order=i; /*将结点序号赋值给名次*/

p1=p1->next; /*指针后移*/

}

printf("Sorting is sucessful.\n"); /*排序成功*/

return (head);

}

/*插入记录函数*/

STUDENT *insert(STUDENT *head,STUDENT *new)

{STUDENT *p0,*p1,*p2;

int n,sum1,i;

p1=head; /*使p1指向第一个结点*/

p0=new; /*p0指向要插入的结点*/

printf("\nPlease enter a new record.\n"); /*提示输入记录信息*/

printf("Enter the num:");

scanf("%s",new->num);

printf("Enter the name:");

scanf("%s",new->name);

printf("Please enter the %d scores.\n",3);

sum1=0; /*保存新记录的总分,初值为0*/

for(i=0;i<3;i++)

{

do{

printf("score%d:",i+1);

scanf("%d",&new->score[i]);

if(new->score[i]>100||new->score[i]<0)

printf("Data error,please enter again.\n");

}while(new->score[i]>100||new->score[i]<0);

sum1=sum1+new->score[i]; /*累加各门成绩*/

}

new->sum=sum1; /*将总分存入新记录中*/

new->average=(float)sum1/3;

new->order=0;

if(head==NULL) /*原来的链表是空表*/

{head=p0;p0->next=NULL;} /*使p0指向的结点作为头结点*/

else

{while((p0->averageaverage)&&(p1->next!=NULL))

{p2=p1; /*使p2指向刚才p1指向的结点*/

p1=p1->next; /*p1后移一个结点*/

}

if(p0->average>=p1->average)

{if(head==p1)head=p0; /*插到原来第一个结点之前*/

else p2->next=p0; /*插到p2指向的结点之后*/

p0->next=p1;}

else

{p1->next=p0;p0->next=NULL;} /*插到最后的结点之后*/

}

n=n+1; /*结点数加1*/

head=sort(head); /*调用排序的函数,将学生成绩重新排序*/

printf("\nStudent %s have been inserted.\n",new->name);

printf("Don't forget to save the new file.\n");

return(head);

}

/*保存数据到文件函数*/

void save(STUDENT *head)

{FILE *fp; /*定义指向文件的指针*/

STUDENT *p; /* 定义移动指针*/

char outfile[10];

printf("Enter outfile name,for example c:\\score\n");

scanf("%s",outfile);

if((fp=fopen(outfile,"wb"))==NULL) /*为输出打开一个二进制文件,为只写方式*/

{

printf("Cannot open the file\n");

return; /*若打不开则返回菜单*/

}

printf("\nSaving the file......\n");

p=head; /*移动指针从头指针开始*/

while(p!=NULL) /*如p不为空*/

{

fwrite(p,LEN,1,fp); /*写入一条记录*/

p=p->next; /*指针后移*/

}

fclose(fp); /*关闭文件*/

printf("Save the file successfully!\n");

}

/* 从文件读数据函数*/

STUDENT *load()

{STUDENT *p1,*p2,*head=NULL; /*定义记录指针变量*/

FILE *fp; /* 定义指向文件的指针*/

char infile[10];

printf("Enter infile name,for example c:\\score\n");

scanf("%s",infile);

if((fp=fopen(infile,"rb"))==NULL) /*打开一个二进制文件,为只读方式*/ {

printf("Can not open the file.\n");

return(head);

}

printf("\nLoading the file!\n");

p1=(STUDENT *)malloc(LEN); /*开辟一个新单元*/

if(!p1)

{

printf("Out of memory!\n");

return(head);

}

head=p1; /*申请到空间,将其作为头指针*/

while(!feof(fp)) /*循环读数据直到文件尾结束*/

{

if(fread(p1,LEN,1,fp)!=1) break; /*如果没读到数据,跳出循环*/

p1->next=(STUDENT *)malloc(LEN); /*为下一个结点开辟空间*/

if(!p1->next)

{

printf("Out of memory!\n");

return (head);

}

p2=p1; /*使p2指向刚才p1指向的结点*/

p1=p1->next; /*指针后移,新读入数据链到当前表尾*/

}

p2->next=NULL; /*最后一个结点的后继指针为空*/

fclose(fp);

printf("You have success to read data from the file!\n");

return (head);

}

学生成绩管理系统详细操作过程

学生成绩管理系统 我将把我的实现步骤完整的写出来,我是在VC 6.0版本下用MFC实现的。 我创建的基于单文档的应用程序,过程不介绍,大家都会。下面的是我系统菜单: 思路: 刚进入系统时,只有“登录”菜单可用,其他三个菜单项都是灰色不可用的。当用户点“进入系统”菜单项时,用户输入用户名、密码和用户类型,系统将根据相应的用户权限使相应的菜单可用,并且“进入系统”菜单项变为不可用。如:如果用户类型是学生,那么只有学生权限菜单可用,而“教师权限”和“管理员权限”都不可用,同时“进入系统”变为不可用。 “学生权限”下只有“查询成绩”,因为学生只可以查询自己相应的成绩;“教师权限”下有“查询学生成绩”和“增改删学生成绩”两个菜单项,因为教师除了可以查询学生成绩还可以增加、修改和删除学生成绩;“管理员权限”下有“管理学生”和“管理教师”两个菜单项。 整体设计: 因为我们要设置系统菜单的状态,所以必须在CMainFrame中添加相应的函数和代码,具体步骤如下: 【步骤1】由于系统要使用ODBC类操作数据库,所以需要在stdafx.h中加入代码: #include 【步骤2】在CMainFrame中的OnCreat()中添加代码如下,实现菜单的初始化工作,当用户没进入系统之前,只有“登陆”菜单下的“进入系统”菜单项可用,而“退出系统”和其他3个权限菜单都不可用,即都是灰色的。 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { //使“退出系统”和其他3个权限菜单都不可用,即都是灰色的 GetMenu()->GetSubMenu(0)-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED); GetMenu()-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED); GetMenu()-> EnableMenuItem(2,MF_BYPOSITION | MF_DISABLED | MF_GRAYED); GetMenu()-> EnableMenuItem(3,MF_BYPOSITION | MF_DISABLED | MF_GRAYED); } 【步骤3】在CMainFrame中添加自己定义的函数void SetMenuSta(int type),此函数在登陆对话框的OnOK()中被调用,即当用户进入系统后使“进入系统”

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

c简单学生成绩管理系统 c课程设计 The document was prepared on January 2, 2021

C++学生成绩管理系统 要求用C++语言编写学生成绩管理系统,要求能进行添加删除修改输入输出等的操作,并能使用面相对像原理对此系统进行实现。 学生成绩管理系统分析: 学生成绩管理系统分为8个模块,分别是:添加学生信息,输出学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。 各个子函数功能及其流程:

1.首先定义一个学生类Class Student;并定义其各个私有变量和公有函数 2.Student();构造函数,用于初始化学生类中的各个变量并记录 3.Add();函数:用于添加学生信息的函数包括学号姓名成绩等的内容 4.Output();函数:用于输出学生信息,包括学号姓名各科及总分平均成绩 5.Find();函数:用于查找学生各项信息。

6.modify();函数:用于修改学生各项信息。 7.delete();函数:用于删除学生信息。

();函数:对学生各项信息进行排序操作。 8.save()和load();函数:将学生信息保存到文件中,并在需要的时候调用该文 件将其中的学生信息显示出来

9.“=”“<<”“>>”符号的重载:在各个函数处理数据过程中对这些的调用处理函数源代码: 此函数源代码在VisualC++环境下编译通过。具体如下: #include"" #include"" #include"" #include"" #include"" #include"" #include"" class student ame,n1)==0) { temp=stu[j]; f3=1; } } if(f3==0) cout<<"对不起,没有你要查找的学生成绩"<

学生信息管理系统

全国学前教育管理信息系统 培训上机指南 一、网址、用户名及密码 1、专题网址:https://www.doczj.com/doc/c115967656.html,/,系统由专题右上方《管理系统入口》进入。 2、用户名(另发)。 3、测试系统初始密码统一为xueqian@2014(仅在培训时为此密码),请勿在培训时修改此密码。在使用正式系统时请修改密码。 二、系统登录注意事项 1、建议电脑为XP系统的情况下使用火狐或谷歌浏览器登录系统。 2、登录系统前,须进行浏览器设置,设置方法如下:“工具”→“Internet选项”→“隐私”→“高级”→勾选“替代自动cookie处理”和“总是允许会话cookie”。 3、不要使用同一浏览器登录多个用户。 4、在输入用户名和密码时注意键盘大小写的切换。 5、登录系统时,如密码连续五次输入错误,系统会自动锁定该账号,锁定时间为15分钟,15分钟以后才能再登录系统,建议骨干学校和市州在登录时如输错4次密码时不要再进行第5次密码的输入,可用同级或上级的系统管理员账号(A开头的账号)重置密码,再进行系统登录。

三、需完成任务 各学校使用学校级系统,市州使用县、市级系统,骨干学校与市州配合完成各项流程(机构管理、幼儿管理、业务管理、一期数据管理、机构在园幼儿情况、系统管理),具体操作步骤如下(以县级学校为例): (一)机构管理 1、使用机构级账号(普通用户)登录系统,进入“机构管理”->“基本信息管理”,进行学校扩展信息的填写(基本信息由系统自动导入),此处应注意“提交”与“保存”两个按钮的区别。 2、使用区县级账号(审核用户)登录系统,进入“业务管理”->“机构数据管理” ->“基本信息审核”,审核学校提交的基本信息。 3、使用机构级账号(普通用户)登录系统,进入“机构管理”->“办学条件信息管理”,根据提示编辑办学条件基本信息与办学条件建筑信息(该页面有两个选项卡),并提交审核。 4、使用区县级账号(审核用户)登录系统,进入“业务管理”->“机构数据管理” ->“办学条件信息审核”,审核学校提交的基本信息。 5、使用机构级账号(普通用户)登录系统,进入“机构管理”->“班级信息管理”,至少创建5个以上的班级(最好有连续的年级)。

学生成绩管理信息系统1

1 学生成绩管理信息系统 学生成绩管理系统 一.系统分析

1.现状分析 随着计算机应用的普及和迅雷般的飞速发展,信息化必然成为世界发展的潮流和趋势。信息化正在以前所未有的速度影响着人类 的方方面面,同时对传统教育的改革也起到了推动作用。 在今天的中国,信息化迅速发展,信息化必然走进校园。在学校众多管理工作中,学生的成绩管理原来越重要。然而传统的工作方

式如手工修改和查询成绩是一项非常繁重 而枯燥的工作,经常耗费很大财力和人力。数据量大时,将不可避免的出现失误。因此,学生成绩管理工作的信息化是十分必要的。学生成绩管理系统是利用现代的信息技术,实现学生信息资源的共享,实现学生信息与社会其他信息的有机联系,促进学生成绩管理工作的科学化、现代化,提高学生管理工作的效率。 2.系统需求分析 通过调查,要求系统具有以下功能: 1) 任课教师可以录入所教课程的成绩 2) 成绩的上传和下载 3) 教务处即系导员能够统计成绩

4) 成绩的发布和查询 5) 用户权限的限定 3系统的可行性分析 1)技术可行性分析 该系统选择微软公司的Visual Basic 6.0作为系统开发工具,主要是因为它是一个快速可视化程序开发工具软件且功能强大,主要表现为:所见即所得的界

面设计,尤其是数据窗口能方便而间接操纵数据库的智能化对象,基于对象的设计方法,极短的软件开发周期,较易的代码维护,同时还有众多的Active控制,提高了软件的使用效率。 连接采用SQL Server数据库,SQL Server是一种关系数据库工具,关系数据库已开发的最通用的数据库之一。该数据库能汇集各种信息以供查询、存储和检索。它是一种使用广泛的数据库管理系统,具有许多优点:易用性、适合分布组织科伸缩性、用于决策支持的数据库功能等。. 2)经济可行性分析 从经济角度分析,学生成绩系统所耗费的资源非常的少。目前,计算机越来越普及,大部分

C语言课程设计-学生成绩管理系统-完整版

#include<> #include<> #include<> #include<> /* strcmp函数原型包含*/ #define N 100 /*定义最大学生人数为100*/ struct student /*学生结构体定义*/ { char no[11]; /*学号,10位*/ char name[10];/*姓名,3个汉字*/ char grade[10];/*班级*/ char pro[20];/*专业*/ float score[5];/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/ }stu[N]; int num; void panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/ void init(); /*系统初始化函数*/ void newfile(); /*建立新的数据文件*/ void read1(); /*从数据文件中读取数据*/ void weihu(); /*维护界面函数*/ void new1(); /*新增一个学生成绩函数*/ void xiugai(); /*修改学生成绩*/ void xgcj(int); /*修改成绩*/

void delete1(); /*删除学生信息函数*/ void tongji(); /*统计界面函数*/ void tongji1(); /*计算每个学生平均分*/ void tongji2(); /*计算每门课程的平均分*/ void paixu1(); /*排序函数*/ void paino(); /*按学号排序*/ void paiave(); /*按平均分排序*/ void paidkcj(); /*按单科成绩排序*/ void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩*/ void find1(); /*查找界面函数*/ int find(char sno[]); /*按学号查找*/ int findname(char cname[]);/*按姓名查找*/ void findyear(int cyear); /*按入学年查找*/ void save(); /*保存文件*/ void stop(); /*停顿函数*/ void stop() /*停顿函数(公共函数)*/ { printf("Press Any Key To Continue...\n"); getchar(); } void output() /*输出学生成绩函数(公共函数)*/ { int i,j;

学生成绩管理信息系统

学生成绩管理系统 一.系统分析 1.现状分析 随着计算机应用的普及和迅雷般的飞速发展,信息化必然成为世界发展的潮流和趋势。信息化正在以前所未有的速度影响着人类的方方面面,同时对传统教育的改革也起到了推动作用。 在今天的中国,信息化迅速发展,信息化必然走进校园。在学校众多管理工作中,学生的成绩管理原来越重要。然而传统的工作方式如手工修改和查询成绩是一项非常繁重而枯燥的工作,经常耗费很大财力和人力。数据量大时,将不可避免的出现失误。因此,学生成绩管理工作的信息化是十分必要的。学生成绩管理系统是利用现代的信息技术,实现学生信息资源的共享,实现学生信息与社会其他信息的有机联系,促进学生成绩管理工作的科学化、现代化,提高学生管理工作的效率。 2.系统需求分析 通过调查,要求系统具有以下功能: 1) 任课教师可以录入所教课程的成绩 2) 成绩的上传和下载 3) 教务处即系导员能够统计成绩 4) 成绩的发布和查询 5) 用户权限的限定 3系统的可行性分析 1)技术可行性分析 该系统选择微软公司的Visual Basic 作为系统开发工具,主要是因为它是一个快速可视化程序开发工具软件且功能强大,主要表现为:所见即所得的界面设计,尤其是数据窗口能方便而间接操纵数据库的智能化对象,基于对象的设计方法,极短的软件开发周期,较易的代码维护,同时还有众多的Active控制,提高了软件的使用效率。 连接采用SQL Server数据库,SQL Server是一种关系数据库工具,关系数据库已开发的最通用的数据库之一。该数据库能汇集各种信息以供查询、存储和检索。它是一种使用广泛的数据库管理系统,具有许多优点:易用性、适合分布组织科伸缩性、用于决策支持的数据库功能等。 2)经济可行性分析 从经济角度分析,学生成绩系统所耗费的资源非常的少。目前,计算机越来越普及,大部分学校都配有计算机,它使用的软件工具Visual Basic 和SQL Server,学校的机房几乎都有安装,而且由于这个系统较小,涉及人员较少,开发费用小,易于维护并具有可靠的安全性,该系统在投入使用后可以节省大量的人力、物力和财力。 3)社会可行性分析 现代科学信息技术的应用越来越普及,促进了社会的高速发展,也将社会带入了一个新的数字时代。学生成绩管理系统采用科学的,有效的手段,对信息加以分析,通过建立一个有效的学生成绩管理系统是学校的各项活动能够提高工作效率,最终提高经济效益和社会效益的目的。 该软件易于操作,实现的功能丰富,大大减少了工作量以及偶那个做人员的数量,便于对学生进行有效的管理,提高了部门信息化水平,同时能够与社会同类院校数据处理相融合,使此系统在时间上具备了可行性。 综上分析可知,学生管理信息系统在技术、经济、社会上具有可行性。 4.业务流程图 业务流程图如下: ①用户登录部分的业务流程

学生信息管理系统(完整)

学生信息管理系统(总体设计) 1、管理系统功能模块设计 本系统需要完成的功能主要有: (1)、输入学生基本信息、所在班级、所学课程和成绩等。 (2)、学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。(3)、学生信息的修改。 (4)、班级信息的输入,包括输入班级设置、年级信息等。 (5)、班级信息的查询。 (6)、班级信息的修改。 (7)、班级课程信息的输入。 (8)、班级课程信息的修改。 (9)、学生课程添加和修改。 (10)、学生成绩信息的输入。 (11)、学生成绩信息的修改。 (12)、学生成绩信息的查询。 (13)、学生成绩信息的统计。 2、功能模块设计:

3、数据库设计:

学生信息管理系统(需求分析)

1.系统开发背景分析 系统的功能取决开用户的需求。随着科技进步和信息时代的到来,教育的普及程度起来起高,学校的人数也在迅速的增长,怎样的管理好成千上万的学生,已经成为一个学校的管理者必须面对的问题。编写本报告的目的就是用最少的代价,尽可能短的时间内确定问题是否能够解决,通过对学校的一些管理软件的调研分析,发现了一些不足,所以拟做此系统,使学生信息的管理更加准确,安全和快捷。 在本次试验中包括的模块有学生信息管理、课程信息管理、成绩信息管理和班级信息管理等几项,各项管理工作涉及到的内容用下面的关系模式表示。a)学生(学号,姓名,性别,年龄,班级,电话,备注,出生日期,入学时间, 班级编号,家庭地址) b)课程(课程编号,课程名称,课程类别,学分,学时) c)班级(系,班级号,指导老师) 2.系统分析 1.抽象出当前系统的逻辑模型 画出反映当前系统工作的数据流程图。数据流程图是逻辑模型的图形表示,即使不是专业的计算机技术人员也能非常容易理解,它是一种很好的系统构造的表示方法。画数据流程图是应该从已获得的人工处理流程中去掉物理因素,只保留数据、信息处理部分。 2.系统功能分析 系统主要用于学校学生信息管理,主要任务是用计算机对学生各种信息进行日常管理,如:查询、修改、增加、删除。 3.系统目标设计 根据本校的实际情况,利用校园网而设计一套针对性和功能都比较强的学生信息管理系统,对学生信息管理系统进行科学的分类、录入、查询. 4.开发设计思想 尽量采用学校现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用资源,提高系统开发的水平和应用效果的目的。系统应该符合学校学生信息管理的规定,满足学校学生日常管理的需要,达到操作过程中的直观、方便、实用、安全等要求。强调多部门合作,学生工作设计面广泛,应该考虑各部门各

学生成绩管理系统基本C语言编写

//代码版权所有,不要 #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" copy,仅供参考学习。//标准输入输出函数库 //标准函数库 //字符串函数库 //屏幕操作函数库 #define p->data.num,p->https://www.doczj.com/doc/c115967656.html,,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.a ve,p->data.mingci int saveflag=0; //是否需要存盘的标志变量 //定义与学生有关的数据结构 typedef struct student { char num[12]; char name[15]; int cgrade; int mgrade; int egrade; int total; float ave; int mingci; }sqlist; //定义每条记录或结点的数据结构,标记为:node typedef struct node { struct student data;// 数据域 struct node *next; //指针域 }Node,*Link; //Node 为node 类型的结构变量,*Link 为node 类型的指针变量 void menu() //主菜单 { system("cls"); //调 用 DOS 命令,清屏.与clrscr() 功能相同 printf(" \n"); printf(" 学生成绩管理信息系统主菜单\n\n"); printf(" **************************************************\n"); printf(" $ 1 、添加记录6、统计记录$\n"); #define HEADER1 " ********************** ***** 学生成绩信息 ****************************** \n\n" #define HEADER2 " 学号姓名计算机数学英语总分平均分名次\n\n" #define FORMAT " %-10s %-10s %5d %5d %5d %5d %.3f %4d \n" DATA //标记为student //学号 //姓名//计 算机成绩// 数学成绩// 英语成绩 //总分 //平均分 //名次

学生成绩管理系统

程序设计课程设计报告 目录 一、课程设计题目及内容 二、程序中使用的数据及主要符号说明 三、带有详细注释的自己编写的源程序 四、程序运行时的效果图 五、实验结果分析,实验收获和体会。 1、实验结果分析: 2、实验收获和体会: 一、实验内容 实验1: (1)、设计一个学生类Student,包括数据成员:姓名、学号、二门课程(面向对象程序设计、高等数学)的成绩。 (2)、创建一个管理学生的类Management,包括实现学生的数据的增加、删除、修改、按课程成绩排序、保存学生数据到文件及加载文件中的数据等功能。 (3)、创建一个基于对话框的MFC应用程序,程序窗口的标题上有你姓名、学号和应用程序名称。使用(1)和(2)中的类,实现对学

生信息和成绩的输入和管理。 (4)、创建一个单文档的MFC应用程序,读取(3)中保存的文件中的学生成绩,分别用直方图和折线方式显示所有学生某课程的成绩分布图。 二、程序中使用的数据及主要符号说明 unsigned int mID;//学号 CString mName;//姓名 unsigned int mAge;//年龄 CString mAdd;//地址 float mCpp;//c++成绩 float mMath;//数学成绩

CListBox m_list;//列表名 afx_msg void OnClickedButtonAdd();//添加按钮afx_msg void OnClickedButtonDel();//删除按钮afx_msg void OnClickedButtonChange();//修改afx_msg void OnClickedButtonOk();//确定 afx_msg void OnClickedButtonCancle();//取消 afx_msg void OnSelchangeList1();//列表控件 virtual BOOL OnInitDialog();//初始化对话框 afx_msg void OnDestroy();//防止内存泄漏 afx_msg void OnClickedButton6(); int m_count;//记录人数 int mSex;//性别 三、带有详细注释的自己编写的源程序(1)、设计一个学生类Student //Student.h #pragma once #include //using namespace std; #include enum Sex { male, female }; class Student { public: Student();//构造函数 ~Student();//析构函数 unsigned int GetID()const { return m_num; } void SetID(unsigned int ID){ m_num = ID;}; std::string GetName()const { return m_name; }

学生成绩管理系统代码 (1)

C程序学生管理系统 /* Note:Your choice is C IDE */ #include"" #include"" #include"" typedef struct student示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n"); scanf("%d",&m); fflush(stdin); switch(m) { case 1:printf("\n=>该系统拥有%d名学生!\n\n",head->; p=head->next; printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n"); while(p) { printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->,p->,p->, p->,p->,p->; p=p->next; } break; case 2:printf("=>请输入查找姓名!\n"); gets(N); fflush(stdin); p=head->next; while(p) { if(strcmp(p->,N)==0) { printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t 综合\n"); printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->,p->,p->, p->,p->,p->; break; } else {

p=p->next; if(p==NULL) printf("=>你要查的学生不存在!"); } } break; case 3: printf("=>请输入查找学号!\n"); scanf("%d",&m); fflush(stdin); p=head->next; while(p) { if(p->==m) { printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t 综合\n"); printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->,p->,p->, p->,p->,p->; break; } else { p=p->next; if(p==NULL) printf("=>你要查的学生不存在!\n"); } } break; case 4:n=1;break; } } return 1; } int range(unit *head)学号\t2.按成绩\n\n"); printf("=>请选择操作!\n》"); scanf("%d",&n); fflush(stdin); if(q==NULL) { printf("=>无学生可排序!\n");

C语言学生成绩管理系统设计

航空航天大学 课程设计报告 大作业名称:C语言课程设计 大作业题目:学生成绩管理系统设计 院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:2016年12月24日

目录 第1章概要设计 (1) 1.1题目的容与要求 (1) 1.2总体结构 (1) 第2章详细设计 (2) 2.1主模块 (2) 2.2输入模块 (3) 2.3显示模块 (3) 2.4修改模块 (4) 2.5删除模块 (4) 2.6查询模块 (5) 2.7统计模块 (6) 第3章调试分析 (7) 第4章使用说明 (8) 参考文献 (12) 附录(程序清单) (14)

第1章概要设计 1.1题目的容与要求 容: 学生成绩信息包括:姓名、学号、语文、数学、英语。 实现的主要功能有: 1)信息维护。包括学生成绩的输入、按学号删除、按学号修改等。 2) 信息查询。输入学号或姓名,显示出该生三个科目的成绩,计算出三科总分 并显示,按总分将所有学生成绩排序,显示出该生的名次。 3)成绩统计。先输入任意一个科目,接着选择a或b来分别显示平均分或统计分数段学生,若选择a,则直接显示出该科目的平均分;若选择b,则提示用户输入一个分数段,显示所有该科目属于该分数段的学生信息,并给出学生总数。 要求: 1)系统以菜单方式工作。在不同的界面为用户给出具体提示。 2)系统利用C语言实现,源程序要有适当的注释。 3)采用VC环境进行运行调试。 1.2总体结构 本程序主要分为七个模块(功能模块图见图1.1):结构体模块,输入模块,显示模块,修改模块,删除模块,查询模块,统计模块。 结构体模块:建立一个结构体模块,为链表存信息用。输入模块:键盘输入

学生成绩管理系统详细设计

详细设计说明书1、引言 1.1编写目的 学生成绩管理系统的详细设计是设计的第二阶段,该阶段的根本目标是在概要设计的基础之上确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种设计语言书写的程序。本说明书提供出一个程序的“蓝图”,以便更好的完成编码任务。学校的现代化管理中,学生的成绩管理是必不可少的一部分。成绩管理的内容对于学校的管理是关重要的,所以,成绩管理系统必须要为用户提供必要的信息和快捷的查询功能。 1.2项目背景 该项目充分利用现代化技术来提高学生成绩查询的效率,使得原始的办公系统更加方便,工作效率也得到提高。 1.3使用工具 1)eclipse:开发工具 2)Mysql:数据库管理软件 3)Navicat Premium:第三方软件显示mysql数据库

4)Tomcat: 使用服务器 5)window7:硬件环境 6)JSP:软件开发语言 2、总体设计 2.1需求概述 学生成绩管理系统是对学校教务和教学活动进行综合管理的平台系统,是一个学校和地区教育信息化的基础信息平台。满足学校管理层、学生、教师的日常工作、学习、查询、管理等工作。目的是共享学校各种信息。提高学校的工作效率、规范学校的工作流程、便利学校与学生及教师的交流。 2.2项目任务范围 学生成绩管理系统共分为三个大的模块:学生成绩查询模块、教师成绩录入模块及管理员对各项信息管理模块。 学生:查询学生个人信息,包括个人成绩查询和修改密码。 教师:查询教师个人信息,包括学生成绩录入和修改密码。 管理员:学生管理(对学生进行增删改查);教师管理(对教师进行增删改查);班级管理(对班级进行增删改查);成绩管理(对学生成绩 的增删改查)所有人的密码管理;个人密码修改。

学生信息管理信息系统

管理信息系统 课程设计报告 专业:电子商务 学号: 姓名: 2011年12 月 29 日

实验内容和评分项目

学生信息管理信息系统的分析与设计 一. 总体规划: 1.系统开发的背景 学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依人工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力和物力。随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以计算机为物质基础的信息管理方法所取代。 作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要条件,更是各个高等院校与世界接轨的重要条件。 2.系统功能需求 学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管 理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。推行学校信息管理系统的应用是进一步推进学生管理规范化、电子化、控制辍学和提高义务教育水平的重要举措。 学生信息的内容包括: 1. 能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。 2. 能够将指定的信息从文件中删除。 3. 能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。 4. 可以统计全部学生的总成绩,及其在班上的排名。 5. 能够统计各科的平均成绩及及格率。 6. 要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。 7. 如果检索不到相应的信息应提示用户。

C学生成绩管理系统

C#课程设计 姓名: 班级: 学号: 指导老师: 简介 该系统是用VisuaStudio2010和Access2007,通过C#语言进行相关代码的编写,生成相关程序。学生成绩管理系统是构建于VisualC#.NET平台上的Windows应用程序。本文描述的是基于Windows环境的学生成绩管理系统,主要工具MicrosoftVisualStudio2010设计窗体,Access2007建立数据库,学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。 本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能和函数的实现思想。涉及到学生信息管理的基本功能在本报告中都有相应的描述。管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。 在这次的课程设计中,让我了解到Microsoft Visual Studio 2010,同时学

习了Access数据库的建立和连接与导入。能在Visual C#.NET平台上进行Access数据库的修改与控制,将C#语句与SQL语句混合使用,成功的完成了学生成绩管理系统的整体设计,加深巩固了选择的条件语句,还有曾经学习过的基本运算语句,同时也为以后的进一步学习垫下了了良好的基础。 目录 第一章绪论 (4) 设计目的 (4) 开发工具选择 (4) 开发环境 (4) 第二章需求分析 (5) 系统目标 (5) 功能需求分析 (6) 性能需求分析 (6) 第三章总体设计 (7) 设计概述 (7) 功能模块设计 (7) 第四章数据库设计 (8) 数据库需求分析 (8) 数据库表设计 (9) 第五章详细设计 (10) 系统程序流程图 (11) 系统主要功能模块 (13)

学生成绩管理系统分析报告

学生成绩管理系统分析报告 ■建立新系统的必要性 随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生各门课程的成绩的各种信息量也成倍增长,学生成绩管理操作重复工作较多,工作量大,因此,建立学生成绩管理系统来提高工作的效率。基于互联网的学生成绩管理系统,在学生成绩的规范管理、科学统计和快速查询方面具有较大的实用意义,提高了信息的开放性和快速性。使学生信息更加系统化,信息更加精确化。使管理人员管理更加方便,能够改动部分信息,最大化的满足工作的需求。 学生成绩管理系统的建立,在学生查询成绩的规范管理、科学统计和快速查询方面具有较大的实用意义,它提高了信息的开放性,大大改善了学生对其最新信息查询的准确性。成绩管理系统有查找方便、可靠性高、存储量大、易操作、保密性好、信息保存时间长等优点,它能极大的提高老师和学生成绩信息管理的效率。 ■业务流程分析 通过对学生成绩管理业务的调查分析,弄清了学生成绩管理系统的业务流程和管理功能,系统的业务流程如下图所示: 业务流程图部分:

管理功能部分: 从业务流程图可以看出,学生成绩管理系统中分为大的三个方面:系统管理员模块、教师模块、学生模块,其主要管理功能有: 1、系统管理员功能 系统管理员进入学生成绩管理系统的主要功能是:实现管理员用户的添加、修改和删除,以及对教师添加、教师修该、教师删除、教师查询、学生的添加、学生的修改、学生的查询等基本功能,并且参与开设课程、选择课程的管理,安排教师的任课和学生的选课工作,管理元为每门课程设置一个学分,没门课程可以是必修或选修,如果学生及格,学生将获得该课程学分。 2 、教师功能 教师进入学生成绩管理系统的主要功能是:各科教师登录系统后查询和修改个人信息、修改自己的账号密码,查询自己的授课课程,实现对选秀了自己课程的学生的成绩进行查询、录入和修改,各科老师可以对自己学生选修课程结束后给与分数,同时可以对自己所带课程的成绩优秀人数、及格人数和不及格人数的分布信息进行查询。 3 、学生功能 学生进入学生成绩管理系统的主要功能是:每个学生登录系统后可以查询和修改个人信息、修改自己的账号密码,以及自己所选课程任课老师的个人信息,同时在课程结束后可以查询在校期间各个时间段选修课程的成绩与学分,以及对单科成绩和总分的排名查询。

学生成绩管理系统1.0

本程序初始化学生人数为3人,请在header文件中将#define STU_NUM 3改为#define STU_NUM 你将输入的学生数目Function.c /* 学生成绩管理系统V1.0(使用数组) 功能要求: 1、输入学号和成绩(格式化输入) 2、计算平均成绩(求和统计) 3、按成绩从高到低排序(冒泡法、选择法) 4、按成绩从低到高排序(冒泡法、选择法) 5、按学号从小到大排序(冒泡法、选择法) 6、按学号查询成绩名次(顺序查找) 7、统计成绩分布(统计计数) 8、输出学号和成绩(格式化输出) 0、退出系统 */ #include #include #include"header.h" int menu() { int result;

while(1) { system("cls"); printf("学生成绩管理系统V1.0\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"); if(scanf("%d",&result)!=1) { fflush(stdin); continue; } if(result>=0&&result<=8) break; }

学生成绩管理系统

《数据库原理》课程设计报告 设计题目成绩管理系统 学生姓名马伟光 所在学院计算机与通信学院 专业及班级软件1202 指导教师龙巧云老师 完成日期2014年6月20日

目录 1.概述 (1) 1.1简介设计步骤 (1) 1.2开发环境简介 (1) 2.需求分析 (2) 2.1开发背景 (2) 2.2开发目的 (2) 2.3功能需求 (2) 2.4相关数据 (3) 数据流图 (4) 数据字典 (5) 3.系统设计 (7) 4.数据库设计 (8) 4.1概念设计(E-R) (8) 4.2逻辑设计 (8) 设计成员及分工情况 (9) 5.详细设计 (9) 6.系统总结 (13) 7.结束语 (16) 8.参考文献 (16)

1.概述 1.1 简介设计步骤 该学生成绩管理系统,实现简单的密码修改、成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。 此系统主要完成用户密码登录、用户密码的修改、成绩查询、课程查询、学生查询、具体成绩查询等基本功能。 (一)用户密码登录: 在登录程序之前会先弹出一个登录对话框,在正确的输入了数据库中存储的用户和密码后才能登录程序。 (二)用户密码的修改 在成功登录了程序之后用户可以根据自己的需要修改当前密码。 (三)成绩查询 1.成绩修改 前选中要修改的成绩信息,然后进行修改。 2.成绩添加 直接弹出添加对话框,然后进行添加。 3.成绩删除 前选中要删除的成绩信息,然后直接删除。 (四) 课程查询 1.课程修改 实现对课程名、学时、学分的修改。 2.课程添加 对一门新开设的课程进行录入,并存入数据库。 3.课程删除 对一门不再开设的课程进行删除,并从数据库中删除。 (五)学生查询 1.学生信息修改 修改选中当前学生的信息。 2.学生信息添加 增加新学生的信息。 3.学生信息删除 删除选中当前学生信息。 1.2 开发环境简介 1)Microsoft visual c++ 6.0 Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。 Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。

学生信息管理系统程序设计

学生信息管理系统程序设计 1、软件开发目的 该软件主要是实现对学生基本信息进行系统化的管理,首先可以对学生基本信息进行录入和存取,其次可以浏览学生的相关信息,然后可以删除和插入学生的相关信息,还有就是可按学号或按学生姓名查询此学生的相关信息。由此来系统化管理学生基本信息,并达到简易操作的目的。 2、功能分析说明图 3、各项功能说明 (1)学生基本信息的录入和保存: 在链表中的适当位置插入一个学生信息节点,一次添加一条学生信息(添加内容包含学号、姓名、年龄),如果添加的学号已经在文件中存在,则不能添加到文件中去,应显示错误提示语;如果添加成功,则显示成功提示语。添加操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。 (2)显示学生信息: 此功能是显示一个学生信息节点中的信息,并在屏幕上显示出来。 (3)删除学生信息: 进入该项功能界面后,删除学生信息,一次删除一条学生信息。 (4)按学号查找学生信息: 按学号查询学生信息,要求显示文件中与用户输入的学号相匹配的学生信息,要求显示学号、姓名、年龄等字段,如果文件中没有学生信息,则显示提示语。查询操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。 (5)按姓名查找学生信息: 按姓名查询学生信息,要求显示文件中与用户输入的学号相匹配的学生信息,要求显示学号、姓名、年龄等字段,如果文件中没有学生信息,则显示提示语。查询操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。 (6)修改学生信息 修改学生信息中的某一项信息,一次更新一条学生信息(更新内容包含学号、姓名、年龄等字段值),如果更新的学号在文件中不存在,则不能更新,应该显示错误提示语;如果更新成功,则显示成功提示语。更新操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。 (7)退出系统,结束任务。 4、软件功能的验收标准 1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。 2.有严密正确的数据验证功能和数据处理功能,能够查询、插入、修改和删除学生信息。

相关主题
文本预览
相关文档 最新文档