C语言课程设计学生成绩管理系统说明书1Word文档格式.doc

上传人:wj 文档编号:3976916 上传时间:2023-05-02 格式:DOC 页数:30 大小:88.50KB
下载 相关 举报
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第1页
第1页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第2页
第2页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第3页
第3页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第4页
第4页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第5页
第5页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第6页
第6页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第7页
第7页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第8页
第8页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第9页
第9页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第10页
第10页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第11页
第11页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第12页
第12页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第13页
第13页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第14页
第14页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第15页
第15页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第16页
第16页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第17页
第17页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第18页
第18页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第19页
第19页 / 共30页
C语言课程设计学生成绩管理系统说明书1Word文档格式.doc_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计学生成绩管理系统说明书1Word文档格式.doc

《C语言课程设计学生成绩管理系统说明书1Word文档格式.doc》由会员分享,可在线阅读,更多相关《C语言课程设计学生成绩管理系统说明书1Word文档格式.doc(30页珍藏版)》请在冰点文库上搜索。

C语言课程设计学生成绩管理系统说明书1Word文档格式.doc

由于学生人数的增加,使得学生成绩管理工作繁重,而且手工管理效率极低,急需一个软件系统解决这些问题。

为了跟上时代潮流,规范管理,提高学生成绩的管理水平和管理效率,为全校职工和学生提供方便、快捷、准确的学生成绩服务,开发一个学生成绩管理系统”。

2.需求分析

本系统通过管学生成绩信息,可以进行学生成成绩信息的插入,修改,对学生的平均分进行排序,为学生成绩供准确的资料,提高了人员的工作效率。

3.系统总体设计

1:

整体结构流程图主菜单

输入记录

排序

显示

保存

读取

删除

退出

查询

按姓名

按平均成绩

按学号

插入

按平均成绩高低

3、添加学生成绩信息流程图

开始

结束

选择操作

输入数据

显示数据

输出界面

退出系统

统计成绩

按景平均成绩

选7

选6

选5

选4择4

选3

选2

选1

选8

读取数据吧

选0

三门成绩

学号

姓名

插入数据

按平均成绩高低i

2:

系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续处理直到

用户选择退出系统为止。

其间应对用户的选择做出判断和异常处理。

4.详细设计

对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:

信息输入模块:

打开学生信息文件;

while( 继续输入)

{

读入学生成绩信息;

 将读入信息添加到学生信息文件中;

 提示是否继续输入;

}

关闭学生成绩信息文件;

 

信息浏览模块:

while(不到文件结束)

从文件中顺序读出一个学生的信息;

 按指定格式输出该学生成绩的信息;

信息查询模块:

while(仍继续查询)

 if(按书名查询)

读入查询的学生的条件;

打开图书信息文件;

 while(不到文件结束)

{

 顺序读出一个学生成绩的信息;

  if(该学生成绩信息符合条件)输出该学生成绩的信息;

提示共有几条符合条件的记录;

else

if(按学号查询)

读入学生成绩的条件;

打开学生成绩信息文件;

  while(不到文件结束)

 {

  顺序读出一个学生成绩的信息;

   if(该学生成绩信息的学历符合条件)输出该学生成绩的信息;

关闭图书信息文件;

提示符合条件的记录数;

else提示输入不合适;

  提示是否继续查询;

5.系统测试

用以下的例子做测试,选择输入操作,依次输入,学号,姓名,C语言成绩,英语成绩。

数学成绩。

返回则选择浏览、查询、修改、删除,排序等功能。

C语言

英语

数学

平均分

001

小明

87

89

88

88.0

002

小雨

78

79

80

79.0

003

张启

66

67

68

67.0

004

周琦

60

61

63.0

6.软件使用说明书

(1)根据正确的提示安装软件。

(2)Intel486以上系列、AMDK6以上系列等PC台式机和便携式电脑都可运行。

(3)打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。

操作如下:

点击开始菜单,进入菜单选择。

输入:

将所需的信息输入。

输出:

学号,姓名,成绩,排名,。

根据不同的需要选择,当信息输入显示出错误时,进入浏览信息,找出错误。

当错误不能改正,则退出浏览信息。

进入查询信息:

则屏幕会出现两个对话框——按作学号和按姓名查找,查处相应的所需信息和书的状态(是否借出)。

当查询不能显示需要时进入修改程序,把所输入的信息进行修改,使之正确能够正常运行或进入删除信息中,重新输入自己所要的信息。

当信息输入正确,进入你所需要的菜单程序中:

学生信息:

显示学生的成绩,学号,姓名,班级,排名等

总结

该系统以学生成绩信息管理为背景,并且有一定的可行性和安全性,确保了各项指定功能得以运行。

本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯穿实现。

通过此次程序设计实践,是同学们对所学知识的综合运用,也是程序设计得以提高的表现。

通过此次编程培养了我们结构化程序设计的思想,加深了对高级语言基本语言要素和控制结构的理解,锻炼我们独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会。

经过设计和开发,学生成绩管理系统基本开发完毕以及各类相关报表的打印。

并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。

对于数据的一致性的问题也通过程序进行了有效的解决。

从而是我对c语言这门课程有了更好的了解。

但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。

这些都有待进一步改善。

参考文献

[1]c++程序设计教程,王连相,中国铁道出版社,2007

[2]C语言程序设计,谭浩强,清华大学出版社,1999

[3]C程序设计题解与上机指导,谭浩强,清华大学出版社,1999

[4]C语言的实际应用,安徽科学技术出版社,2000

[5]C语言函数手册,机械工业出版社,1999

[6]C语言实用程序荟萃,西安电子科技大学出版社,1993

致谢

在编写程序的过程中,我们得到了周小健、丁政建老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!

感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。

在课设即将完成之际,我的心情无法平静,从开始进入课题到课设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。

附件Ⅰ部分原程序代码

#include"

stdio.h"

stdlib.h"

string.h"

intshoudsave=0;

//

structstudent

{

charnum[10];

//学号

charname[20];

charsex[4];

intcgrade;

intmgrade;

integrade;

inttotle;

intave;

charneartime[10];

//最近更新时间

};

typedefstructnode

structstudentdata;

structnode*next;

}Node,*Link;

voidmenu()

printf("

********************************************************************************"

);

\t1输入学生资料\t\t\t\t\t2删除学生资料\n"

\t3查询学生资料\t\t\t\t\t4修改学生资料\n"

\t5显示学生资料\t\t\t\t\t6统计学生成绩\n"

\t7排序学生成绩\t\t\t\t\t8保存学生资料\n"

\t9获取帮助信息\t\t\t\t\t0退出系统\n"

********************************************************************************\n"

}

voidprintstart()

-----------------------------------------------------------------------\n"

voidWrong()

\n=====>

提示:

输入错误!

\n"

voidNofind()

没有找到该学生!

voidprintc()//本函数用于输出中文

学号\t姓名性别英语成绩数学成绩C语言成绩总分平均分\n"

voidprinte(Node*p)//本函数用于输出英文

%-12s%s\t%s\t%d\t%d\t%d\t%d\t%d\n"

p->

data.num,p->

data.name,p->

data.sex,p->

data.egrade,p->

data.mgrade,p->

data.cgrade,p->

data.totle,p->

data.ave);

Node*Locate(Linkl,charfindmess[],charnameornum[])//该函数用于定位连表中符合要求的接点,并返回该指针

Node*r;

if(strcmp(nameornum,"

num"

)==0)//按学号查询

r=l->

next;

while(r!

=NULL)

if(strcmp(r->

data.num,findmess)==0)

returnr;

r=r->

elseif(strcmp(nameornum,"

name"

)==0)//按姓名查询

data.name,findmess)==0)

return0;

voidAdd(Linkl)//增加学生

Node*p,*r,*s;

r=l;

s=l->

while(r->

next!

//将指针置于最末尾

while

(1)

请你输入学号(以'

0'

返回上一级菜单:

)"

scanf("

%s"

num);

if(strcmp(num,"

0"

)==0)

break;

while(s)

if(strcmp(s->

data.num,num)==0)

=====>

学号为'

%s'

的学生已经存在,若要修改请你选择'

4修改'

!

printstart();

printc();

printe(s);

return;

s=s->

p=(Node*)malloc(sizeof(Node));

strcpy(p->

data.num,num);

请你输入姓名:

"

data.name);

getchar();

请你输入性别:

data.sex);

请你输入c语言成绩:

%d"

&

p->

data.cgrade);

请你输入数学成绩:

data.mgrade);

请你输入英语成绩:

data.egrade);

data.totle=p->

data.egrade+p->

data.cgrade+p->

data.mgrade;

data.ave=p->

data.totle/3;

//信息输入已经完成

next=NULL;

r->

next=p;

r=p;

shoudsave=1;

voidQur(Linkl)//查询学生

intsel;

charfindmess[20];

Node*p;

if(!

l->

next)

没有资料可以查询!

1按学号查找\n=====>

2按姓名查找\n"

sel);

if(sel==1)//学号

请你输入要查找的学号:

findmess);

p=Locate(l,findmess,"

if(p)

\t\t\t\t查找结果\n"

printe(p);

else

Nofind();

elseif(sel==2)//姓名

请你输入要查找的姓名:

Wrong();

voidDel(Linkl)//删除

Node*p,*r;

没有资料可以删除!

1按学号删除\n=====>

2按姓名删除\n"

if(sel==1)

请你输入要删除的学号:

=p)

next=p->

free(p);

该学生已经成功删除!

elseif(sel==2)

请你输入要删除的姓名:

voidModify(Linkl)

没有资料可以修改!

请你输入要修改的学生学号:

请你输入新学号(原来是%s):

data.num);

请你输入新姓名(原来是%s):

请你输入新性别(原来是%s):

请你输入新的c语言成绩(原来是%d分):

请你输入新的数学成绩(原来是%d分):

请你输入新的英语成绩(原来是%d分):

data.totle/3;

资料修改成功!

voidDisp(Linkl)

intcount=0;

p=l->

p)

没有资料可以显示!

\t\t\t\t显示结果\n"

while(p)

p=p->

voidTongji(Linkl)

Node*pm,*pe,*pc,*pt,*pa;

//用于指向分数最高的接点

Node*r=l->

r)

没有资料可以统计!

return;

pm=pe=pc=pt=pa=r;

if(r->

data.cgrade>

=pc->

data.cgrade)

pc=r;

data.mgrade>

=pm->

data.mgrade)

pm=r;

data.egrade>

=pe->

data.egrade)

pe=r;

data.totle>

=pt->

data.totle)

pt=r;

data.ave>

=pa->

data.ave)

pa=r;

------------------------------统计结果--------------------------------\n"

总分最高者:

\t%s%d分\n"

pt->

data.name,pt->

data.totle);

平均分最高者:

pa->

data.name,pa->

英语最高者:

pe->

data.name,pe->

数学最高者:

pm->

data.name,pm->

c语言最高者:

pc->

data.name,pc->

voidSort(Linkl)

Linkll;

Node*p,*rr,*s;

ll=(Link)malloc(sizeof(Node));

//用于做新的连表

ll->

if(l->

next==NULL)

没有资料可以排序!

s=(Node*)malloc(sizeof(Node));

//新建接点用于保存信息

s->

data=p->

data;

rr=ll;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2