您的位置:

c语言评分系统的功能结构图,数据结构 C语言描述

本文目录一览:

C语言什么叫系统模块图?

系统模块(功能)结构图

结构化设计方法,采用类似于结构化分析的“由大到小”、“自顶向下,逐层分解”的基本思想描述(分解)系统。结构化设计方法,首先以数据流图为基础导出系统模块(功能)结构图。在导出系统模块(功能)结构图的过程中,以独立性、低耦合性、高内聚性、公共模块作为模块划分的原则。先将系统数据流图中的加工转换成模块,再将各大模块继续划分为较小的模块,直到每一模块都是功能单一的模块。

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("1Enter Record\t"); /*输入数据*/

printf("2Display\t"); /*显示*/

printf("3Insert\t"); /*插入数据*/

printf("4Quest\t"); /*访问数据*/

printf("5Update\t"); /*以前数据*/

printf("6Save\t"); /*保留数据*/

printf("7Fresh\t"); /*更新数据*/

printf("8Chinese Average\t"); /*语文平均成绩*/

printf("9Math Average\t"); /*数学平均成绩*/

printf("10English Average\t"); /*英语平均成绩*/

printf("11Computer Average\t"); /*计算机平均成绩*/

printf("12Quit\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-nump3-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(maxp1-chinese)

max=p1-chinese;

}

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

if(minp1-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(maxp1-mathematic)

max=p1-mathematic;

}

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

if(minp1-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(maxp1-english)

max=p1-english;

}

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

if(minp1-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(maxp1-computer)

max=p1-computer;

}

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

if(minp1-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(n0);

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(i1||i13)

{

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

}

}

c语言编程:歌唱比赛评委评分系统

#include stdio.h

#includestring.h

void main()

{

int i,j,m,n;

float num,xgrade[100],max,min,pgrade[100],pdis[100];

char str[10],xname[100][10],pname[100][10];

printf("请输入评委人数:");

scanf("%d",m);

printf("\n请分别输入评委姓名:\n");

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

{

scanf("%s",pname[i]);//评委姓名

pgrade[i]=0;//评委给的分

pdis[i]=0;//评委给分和最后结果的差距

}

printf("\n请输入选手人数:");

scanf("%d",n);

printf("\n请分别输入选手姓名:\n");

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

{

scanf("%s",xname[i]);//选手姓名

xgrade[i]=0;//选手成绩

}

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

{

max=0;min=10;//评委给选手的最大最小成绩

printf("\n请给选手%s打分!",xname[i]);

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

{

printf("\n%s老师给的分数为:",pname[j]);

scanf("%f",pgrade[j]);

xgrade[i]+=pgrade[j];//加到该选手的总分数中

if(maxpgrade[j])

max=pgrade[j];

if(minpgrade[j])

min=pgrade[j];

}

xgrade[i]=(xgrade[i]-max-min)/(m-2);//最后成绩为总成绩-最高分-最低分,然后平均

for(j=0;jm;j++)//算出每个评委本次评分和最终成绩的差,加到pdis中保存起来

{

pdis[j]+=pgrade[j]xgrade[i]?(pgrade[j]-xgrade[i]):(xgrade[i]-pgrade[j]);

}

}

for(i=0;in-1;i++)

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

if(xgrade[j]xgrade[j+1])

{

strcpy(str,xname[j]);

strcpy(xname[j],xname[j+1]);

strcpy(xname[j+1],str);

num=xgrade[j];

xgrade[j]=xgrade[j+1];

xgrade[j+1]=num;

}

printf("\n选手按名次排名为:\n");

printf("选手名\t得分\n");

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

printf("%s\t%f\n",xname[i],xgrade[i]);

for(i=0;im-1;i++)

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

if(pdis[j]pdis[j+1])

{

strcpy(str,pname[j]);

strcpy(pname[j],pname[j+1]);

strcpy(pname[j+1],str);

num=pdis[j];

pdis[j]=pdis[j+1];

pdis[j+1]=num;

}

printf("\n评委按名次排名为:\n");

printf("评委名\t差分\n");

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

printf("%s\t%f\n",pname[i],pdis[i]);

}

vae.la

C语言程序设计 学生成绩管理信息系统

我还有代码呢,要的话,马上帖出来..给个红棋吧,呵呵

一、 课题设计名称

学生成绩管理信息系统分析设计

二、 课题设计目的

通过本次课程的设计,加深对信息系统基础理论和基本知识的理解,掌握使用信息系统分析、设计的基本方法,提高解决实际管理问题、开发信息系统的实践能力。

三、 任务要求:

用信息系统开发工具(例如Visual Foxpro、Visual Basic、Delphi等)开发一个实用的中小型管理信息系统。

1、根据课程设计时间选择适当规模大小的设计课题。

2、根据合理的进度安排,按照系统开发的流程及方法,踏实地开展课程设计活动。

3、课程设计过程中,根据选题的具体需求,在开发各环节中撰写相关的技术文档(小组各成员可分别完成某阶段的技术文档),最后要求提交详细的课程设计报告。

4、开发出可以运行的管理信息系统,通过上机检查。

四、 课题设计报告书要求:

1、 课题设计报告书第一页为封面,封面上写清楚标题、班级、姓名、指导老师、完成日期,格式自己设计。

2、 课题设计报告书第二页为本任务书。

3、 课题设计报告书第三页为教师评语。

4、 课题设计报告书第四页为目录。

5、 课题设计报告书第五页开始为具体内容:

(1)可行性分析

(2)系统分析部分

1)业务流程图

2)数据流程图

3)功能分析图

4)数据字典

5)数据加工处理的描述

6)管理信息系统流程设想图(新系统模型)

(3)系统设计部分

1)功能结构图设计

2)新系统信息处理流程设计

3)输出设计(主要指打印输出设计)

4)存储文件格式设计(数据库结构设计)

5)输入设计(主要指数据录入卡设计)

6)代码设计(职工证号和部门代号等)

7)程序设计说明书

(4)附录或参考资料

6、课题设计报告书最后一页是本次课程设计的小节和参考文献。

7、字数要求不少于4000字。

8、打印纸张使用B5纸,页边距设为上、下、左2厘米,右1.5厘米,

五、 如有雷同,将作不及格处理。

六、 完成时间:2007.1.5

计算机二系

尚晋

2007.10.28

教师评语

评分模块 评分标准及分值 得分

平时成绩(20分) 1. 态度(10分)

2. 考勤(10分)

分析与设计部分

(65分) 3. 需求分析(5分)

4. 系统复杂度(5分)

系统分析部分(20分) 5. 业务流程图(5分)

6. 数据流程图(5分)

7. 功能分析图(3分)

8. 数据字典(7分)

系统设计部分

(35分) 9. 系统配置方案设计(5分)

10. 用户界面导航图(5分)

11. 界面设计(5分)

12. 有效性验证(5分)

13. 错误处理(5分)

14. 编码设计(5分)

15. 数据库设计(5分)

报告部分(10分) 16. 条理清晰、语言精练准确(5分)

17. 描述图形工具使用恰当(5分)

组长加分(5分) 18. 组织得力,合作完成情况好(5分)

总分(100分)

成绩:

学生成绩管理信息系统

1. 系统规划

1.1项目开发的背景

伴随着信息社会的到来,信息的极大丰富必然要求人们适应信息社会,信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用,其中最重要的前提就是充分利用人们的才智和学习能力。传统的教学只教会了学生相关的知识,没有教会学生如何利用这些知识,以及再学习的能力。特别对于“管理信息系统”这类实用性比较强的课程,更需要培养学生的实际动手能力。.教与学互动与结合,强调应用,不仅让学生了解课程上讲授的管理信息系统方法和原理,而且让学生们利用这些知识解决实际问题。这对学生的实际工作能力是一个很好的锻炼。密切结合学生独立完成的系统开发作业,通过指导教师的点评,使学生能够在较短的时间内,通过实践,真正掌所学的知识。同时人们对信息和数据的利用与处理也已经进入了自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对于成绩管理员的劳动强度、提高工作质量和效率;方便管理人员对信息的查询、提高信息资源的利用效率和管理水平都具有重要意义。

1.2 可行性分析

基于以上对问题的调查和分析,利用计算机给我们提供的信息,及时地了解学生的信息,并且形成一整套动态的管理就十分必要了。本系统开发的主要目的是对学生信息和成绩的实现计算机管理。学生管理系统的建立,是在进行对大量用户需求与调查分析得到的。

(1)技术可行性

成绩管理系统主要是用于计算机教育部关于教学计划、课程、教师信息、成绩的查询和管理。通过使用Microsoft公司提供的Visual FoxPro 6.0工具以及SQL Server数据库可以实现对有关课的教学计划、课程等的网上查询和管理,主要目的是对学生成绩实现计算机管理。

(2)经济可行性

开发学生成绩管理系统费用较底,可利用现有的微机设备,经济上是可行的,非常适合于成绩管理,因为该系统实现了将管理和查询网络

化,极大地方便了管理员、教师、学生。

(3)操作可行性

本系统的界面设计简单直观,易于理解。它使用的控件都是用户常用的或常见的,操作起来很容易上手。不需要特别的培训和讲解,用户便能使用该系统。

(4)组织与管理可行性

成绩管理员是对学生的成绩进行管理的,但过去由于采用人工方法进行管理,工作效率低,劳动强度大,所以他们希望采用计算机管理,将已有的管理经验转化到管理软件中。这就使得系统调查、需求分析能够得到有关人员的大力支持和积极配合。

1.3 制定系统开发计划

开发学生成绩管理系统的计划见表1-1

表1-1 实验小学学生成绩管理系统开发简略计划表

序号 项目内容 时间进度 项目负责人

1 系统规划和可行性分析 2007年12月 向万秀

2 系统分析 2007年12月 张春先、向万秀、刁胜

3 系统设计 2007年12月 向万秀、张春先

4 系统实施与测试 2007年12月 向万秀

5 系统评价与维护 2007年12月 张春先

6 安全保障措施 2007年12月 向万秀、张春先

2系统分析

1现行系统业务流程的调查

对某学校进行实地调查,其现行的成绩管理工作都是采用传统的手工管理,经过对成绩管理员、学生和教师的全面的调查研究,手工工作效率低,工作质量差,不适合现在学校成绩管理系统的需求,所以需要改进传统的成绩管理模式。实现科学化管理。

对现行系统的调查业务流程图如下图1-1所示:

学生

1-1 业务流程图

2 需求分析

(1) 功能描述

本系统包括用户管理、学生注册、班级信息录入、学生信息录入、班级课程录入、学校专业信息录入、课程信息录入、学生成绩录入、教师信息录入、各方面的查询等等。

1.教学管理功能

① 新本学期所开设课程的录入与查询:例如在2006年上学期开设课程:C语言与经济数学。

说明:所有的课程成绩均由三部分组成:平时成绩,上机成绩, 笔试成绩。所占的比重分别为:30%,10%,60%,在该系统中这三部分及其比重是固定不变的。

② 对各系科的课程安排的录入与查询,课程安排即是该学期每个学科

的选课课程、任课教师以及上课时间和上课地点。

说明:每一个院系中所有的不同专业所选的课程都是一样的。但是同一院系的学生不一定有同一个教师授课。

(2).成绩管理的功能(教师使用)如下:

① 录入成绩:既可以单个录入也可以批量录入,其中批量录入以成绩单单位,每次从系统中调出一张成绩单,编辑完成后一次性提交。

成绩单:成绩单包括学期、院系、专业、课程、任课教师、学生成绩。

② 查询成绩:单个查询(学生可使用),根据学生的学号或姓名查询出该学生的所有课程的成绩信息。批量查询以成绩单为单位,每次查询出一张成绩单。

③ 打印成绩:可以一次打印一张成绩单,也可以按要求批量打印。

④ 统计调整:对成绩单中的成绩进行统计,指出各个分数段的人数分布情况。因为有时学生的成绩整体上偏低,需要进行调整,一次系统可以按照用户设置的规则对成绩单中的成绩进行调整。

成绩调整规则:将成绩单中总分在某一分数段的学生成绩调整到另外一个分数段。例如将50到60分的学生成绩全部调整到60到65分之间。为了使调整过程尽可能合理,还可以对待调整分数段的学生成绩进行限制,例如设置其笔试成绩必须在50分以上,而平时成绩则可以适当放宽。

⑤ 每学期考试不及各的学生自动纳入新学期的跟考或辅修教学计划中。

(3).权限说明:

① 管理员可使用功能:教师信息管理、系科显示、课程管理、教学计划管理、学生成绩查询;

② 教师可使用成绩管理各项功能:对学生成绩的添、删除、修改、查询、分析、调整;

③ 学生可使用的功能:查询单个学生所有成绩,班级成绩,学生平均成绩,最高分,最低分等。

为学校教师和学生提供快捷的查询手段,让老师和学生能够及时查询学生成绩信息,更快而又方便的进行查询。

(4).性能要求

本系统采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。如果本系统能被学校所采用,将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率。由于现在实行九年义务教育,学校学生不断增加,该系统可高效的进行大规模的查询。系统的安全保密性高,能防止非法访问。

3新系统的逻辑模型的建立

(1) 新开发的学生成绩管理系统的功能分析

在学生成绩管理信息系统中,主要有三类外部实体:学生、教师、教务处工作人员。学生成绩管理信息系统的大部分功能是为教务处工作人员设置的。经调查分析,新开发飞的学生成绩管理信息系统应具有以下的功能。

(1.1) 查询学生的基本信息和成绩信息,包括学生信息的添加、修改、删除等。

(1.2) 管理学生成绩,包括考试管理,成绩管理等。

(1.3) 成绩的处理,即统计成绩、分析成绩等。

(2) 绘制数据流图

绘制数据流图时,只考虑学生和教务处两个外部实体,顶层数据流图如图1-2所示。

学生成绩录入 教师课程信息

学生成绩单

学生登录信息

学生选课信息 辅修/跟考通知单

用户名、密码 部门信息

课程类型 学生成绩信息

课程信息 学生考试信息

图1-2 顶层数据流图

0层数据流如图1-3所示。由于1层图没有完整绘制,0层图中只属于一个加工的文件(例如权限表)也在0层图上出现。

0层数据流图通过反应整个系统中不同数据流向,来揭示系统的组成结构以及各组成部门之间的关系,这种关系主要体现在对数据的操作和处理上。

用户名、密码

学生信息

部门信息

学生成绩

学生信息

学生成绩单

成绩类型 辅修/跟考通知

学生成绩 不及格成绩

缺考

图1-3 0层数据流图

学生信息数据流程图如图1-4、1-5所示。

学生信息 审查1.1 合格单 是否新生1.2 新生信息

学生纪录

学生成绩

总学生纪录表及成绩

图1-4 1层数据流图

(3) 数据字典

数据字典是进行数据收集和数据分析所获得的主要成果,是系统中各类数据描述的集合。数据字典通常包括数据项、数据流、数据存储、处理逻辑。

数据项

名称:学生信息

别名:学生信息

说明:学生信息=学生基本信息+学生记录+学生成绩记录

类型:字符型

长度:12

取值范围:0000000000001~99999999999

数据流条目:

合格单=姓名+系别+班级+专业

新生信息=入学时间+姓名+性别+年龄+专业+系别+班级

加工条目:

加工名:审查

编号:1.1

输入:学生信息

输出:合格单

加工逻辑:根据学生信息判断是否是新生

加工逻辑

加工逻辑

加工名:是否是新生

编号:1.2

输入:合格单

输出:新生信息

加工逻辑:根据合格单建立新生信息

加工名:录入、存储学生信息、各科成绩

编号:1。3

输入:新生信息、考试成绩

输出:本次考试成绩

2层数据流图

学号、课程号 有效查询 成绩

考试成绩 成绩单

学生纪录 班级 统计成绩

各科

本次成绩 升留级名单 学生纪录

成绩标准

图1-5 2 层数据流图

数据字典:

数据项

名称:学号、课程号

别名:编号

说明:惟一标识一个学生编号

类型:字符型

长度:12

取值范围:0000000000001~9999999999999

数据存储文件

数据存储条目:

数据存储名称:考试成绩

组成:姓名+班级+专业+系别+成绩+学号

组织方式:索引文件,以学号为关键字

加工处理

加工逻辑

加工名:有效性检查

编号:2。1

输入信息:学号、课程号

输出信息:有效查询

加工逻辑:根据所输入的信息来检查有效性

加工名:查询成绩

编号:2。2

输入信息:考试成绩

输出信息:成绩

加工逻辑:根据考试成绩查询成绩

加工条目:

加工名:统计选择

编号:3。1

输入信息:学生记录

输出信息:按规定统计成绩

加工逻辑:根据所输入学生记录,按班级、单科统计成绩

数据存储条目:

文件名:成绩标准 组成:成绩

加工条目:

加工名:是否升级

编号:4。1

输入信息:本次成绩、成绩标准

输出信息:升留级名单

加工逻辑:根据本次成绩

IF 大于等于标准成绩 ELSE 降级

ENDLF THEN 升级

加工名:更新记录

编号:4。2

输入信息:升留级名单

输出信息:学生记录

加工逻辑:根据升留级名单修学生记录

3.系统设计

1. 系统总体结构设计与功能模块划分及系统功能描述

本系统的主要任务是实现对学校教导处的学生信息管理、成绩管理、课程管理及相关查询。其主要功能包括:

学生成绩管理模块,学生信息管理模块、系统模块等等。

学生信息管理功能

(1)班级管理。提供给班主任进行本班学生的信息更新、删除。

(2)添加学生。以班级为单位,进行学生入库。其中分为单个添加和成批添加。单个添加学生供数量较少的学生信息入库;成批添加可以从现存的学生信息EXCEL文件中成批录入到数据库中。

(3)删除学生。当学生毕业后,学生信息转移备份数据库中,系统的基本数据库中需要删除学生信息。该功能主要进行成批地删除学生信息,如连续学号区段的多位学生信息删除,整个班级的删除,所有学生信息的删除。

(4)新生管理。本部分的功能主要有新生导入、分班、及设置学号。新生导入实现从现存的EXCEL新生名单中录入学生信息。分班功能实现按新生的报考专业、成绩及性别进行分班。设置学号实现自动为各班学生编发学号。

学生信息备份。在学生信息删除前,将其按班级为单位保存到备份数据库。

(5)学生信息模块主要包括对学生信息的存储,审查记录以及学生对学生整个信息的调查进行分类和查找。可以实现添加、修改、删除、查询学生信息管理的调查。

(6)学生基本信息管理功能包括:学生信息、学生记录、学生成绩、总学生记录表和成绩。

(7)学生基本信息包括:学生学号、学生班级号、课程号、学生联系方式等等

(8)课程管理。提供本学期各年级各专业所开课程名称的录入、修改、删除。它是学生成绩管理的基础。用以保证数据库中一致性原则。

2.系统功能分析

系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。

学生基本信息所需要完成的功能主要有:

●学生信息的输入,包括输入学生基本信息、所在班级、所学课和 成 绩等。

● 学生信息的查询,包括输入学生基本信息、所在班级、已学课程和成绩 等。

● 学生信息的修改。

● 班级管理信息的输入、查询、修改,包括输入班级设置,年级信息等。

● 基本课程信息的输入、查询、修改。

● 学生成绩信息的输入、查询、修改。

对上述各功能进行集中、分块、按照结构化程序设计的要求。

2.绘制学生信息管理模块功能结构图如图

图1-6 学生信息系统管理的功能结构图

3.系统配置方案设计

鉴于本系统的业务性质,必须选择具有较高的可靠性、稳定性和必要的容错能力的计算机硬件和软件系统,以保证任何情况下都不至于丢失、损坏数据。

必须具有较高的响应速度,以保证各项具体业务的顺利进行。

应考虑具有良好的可维护性,可操作性和可扩充性,以保证将来系统规模的扩展和升级的需要。

4.开发与运行环境的使用

开发前台工具:Visual FoxPro 6.0

操作系统对整个网络起着重要的作用,Windows 2000作为一种强健的、多用途的操作系统,不仅能够运行强有力的客户/服务器应用软件,还可以提供可靠的文件与打印服务,再加其内置的通信与Internet/Internet服务功能,以及安装、使用、管理和维护的方便性,因此,本系统采用Microsoft Windows 2000Server作为操作系统。

本系统准备采用客户机/服务器(C/S)结构模式。C/S结构的最大优势在于广泛采用了网络技术,将系统中的各部分任务分配给分布在网络上的担任不同角色的计算机。把较复杂的计算机管理任务交给服务器完成。再把一些频繁与用户打交道的任务交给客户机完成。通过这种结构完全实现了网络上信息资源的共享。

开发基于C/S结构的管理系统所用到的开发工具包括前台开发工具和后台数据库管理系统,主要根据开发者对开发工具的熟悉程度而定。本系统的前端开发工具采用Visual FoxPro 6.0。

5.编码(Code)设计

6.数据库设计

(1) 概念结构设计

经过本次实验,概念结构设计的主要工作是根据用户需求设计概论性数据模型。概念模型是一个面向问题的模型,它独立于具体的数据库管理系统,从用户的角度看待数据库,反映用户的现实环境,与将来数据库如何实现无关。概念模型设计的典型方法是E-R方法,即用实体—联系模型表示。

E-R方法使用E-R图来描述现实世界,E-R图包含三个基本成分:实体、联系、属性。E-R图直观易懂,能够比较准备地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。

实体:是指客观世界存在的事物,可以是人或物,也可以是抽象概念。E-R图中各实体的关系说明如下。

学号记载学生成绩管理系统中所登记的一类编号,而所有的学生姓名是所代表的是学生的代码。中两个实体之间为一对多关系。

学生可以选择多门课程,一门课程可以有多个学生选择。其中本系统中E-R图包括学生性别、出生日期等等。课程中包括课程号、课程名、教师姓名等等。

M N

学生与课程之间的关系

课程名是惟一的,而选课的学生是多个的,这两个实体之间为一对一关系。

一个学校有多位老师,这两个实体之间为一对多关系。

学生与课程表中的同一课程对应多个不同的老师与学生,这两个实体间为一对多关系。

c语言评分系统的功能结构图,数据结构 C语言描述

2023-01-06
数据结构java,数据结构java语言描述

2022-12-01
算法与数据结构c语言描下载,数据结构与算法分析C++语言描述

2022-12-01
数据结构c语言版,数据结构c语言版电子书

2022-11-26
c语言基础数据结构,数据结构C语言

2022-12-01
数据结构c语言版,数据结构c语言版第三版课后答案

2022-11-25
数据结构版c语言视频教程30课时,c++数据结构视频

2022-11-27
c语言元素结构,c语言的语言结构

2023-01-04
c语言控制结构知识点,c语言程序控制结构

2023-01-06
c语言笔记讲解,c语言程序笔记

2022-11-23
c语言算法和数据结构关系,数据结构与算法C语言

2022-11-30
c语言语言结构,C语言中的结构

2023-01-05
c语言分支结构和选择结构,c语言的选择结构

2022-11-27
c语言结构体,c语言结构体typedef

2022-11-22
c语言结构测试,C语言判断结构

2023-01-06
c语言系统技术架构,c语言 架构

2022-11-27
数据结构与c语言设计,数据结构与c语言设计是两本书吗

本文目录一览: 1、数据结构C语言程序设计编程题,请问这个程序怎么编? 2、c语言的数据结构和程序设计 3、c语言程序设计与数据结构有什么联系? 4、数据结构和C语言有什么区别? 数据结构C语言程序设

2023-12-08
数据结构与c语言设计,数据结构与c语言设计是两本书吗

本文目录一览: 1、数据结构C语言程序设计编程题,请问这个程序怎么编? 2、c语言的数据结构和程序设计 3、c语言程序设计与数据结构有什么联系? 4、数据结构和C语言有什么区别? 数据结构C语言程序设

2023-12-08
c语言结构体体,c语言结构体包含结构体

本文目录一览: 1、c语言结构体是什么? 2、结构体c语言是什么? 3、c语言里面的结构体是什么意思 4、结构体c语言是什么? 5、c语言结构体有哪些? c语言结构体是什么? c语言结构体是:C语言结

2023-12-08
基础c语言笔记,C语言笔记

2023-01-06