《小型管理系统》实训报告汇编.docx
- 文档编号:16497515
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:40
- 大小:239.36KB
《小型管理系统》实训报告汇编.docx
《《小型管理系统》实训报告汇编.docx》由会员分享,可在线阅读,更多相关《《小型管理系统》实训报告汇编.docx(40页珍藏版)》请在冰点文库上搜索。
《小型管理系统》实训报告汇编
《学生管理系统》
班级:
系统1211班
组别:
第3组
小组成员:
韩一硕、黄鹏程、皇甫治亚、姜文杰
课程名称:
《小型管理系统实训》
指导教师:
崔群姜沐
提交日期:
2013年03月08日
摘要
本文主要讲述本次实训的内容,即完成班级成绩管理系统的设计程序,开发此软件的流程主要有需求获取,需求分析,概要设计,详细设计,测试,以及代码的完善的过程与方法。
该系统采用C语言开发的,开发工具:
MicrosoftVisualC++6.0,该项目历时2周,由我们组4名组员共同完成,其中包括了成绩录入类、查询和删除信息管理类。
但通过查阅相关的资料,向老师寻求帮助等办法,终于在规定的时间内完成了实训要求的全部内容。
第一章系统需求分析3
1.1系统开发环境3
1.2功能需求5
1.3性能需求6
第二章方案论证7
2.1所实现系统的目标7
第三章系统总体设计9
第四章系统详细设计10
4.1模块功能设计10
第五章系统联调24
结论29
致谢31
参考文献32
附录33
前言
本实训项目:
成绩管理系统。
信息技术高度发达的今天,利用信息技术对大量复杂的信息进行有效的管理成为一种普遍而实用的手段。
一方面,这极大的减少了簿记和人力的开销,另一方面,现代计算机强大的计算能力和网络的普遍部署,大大简化了大量信息的处理和流动。
学生成绩管理系统是专门为学生和老师设计服务的,是班级管理学生不可缺少的一部分。
本系统具有界面清晰、操作简易、存储数据安全性高等特点,考虑到人们的一些操作习惯,提高了其的可操作性,完全能够满足你的需求。
这是一款针对不同同学设计的程序。
有了它,您可以轻松查看你的成绩,以及班级的成绩,灵活的搜索和查询功能使您完全摆脱传统管理模式。
随着科学技术的不断提高,计算机科学的日渐成熟,计算机的强大功能已被人们深刻地认识,它已经和现代社会的发展隔离不开了。
越来越多的人用计算机来处理日常事务,使计算机的应用得到普及,这样就创造出以计算机为基础的一系列生活方式。
作为计算机应用的一部分,使用计算机对班级成绩等各项操作进行管理,具有手工管理所无法比拟的优点,其优势已非常明显。
例如:
查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大的提高买卖操作的效率,节省了很大一部分时间,大大增强了企业的竞争能力,也是标志着一个企业的科学化、正规化管理,与世界接轨的重要条件.
“管理信息系统”一词在中国出现于20世纪70年代末80年代初,根据中国的特点,许多从事管理信息系统工作最早的学者给管理信息系统也下了一个定义,登载于《中国企业管理百科全书》上。
该定义为:
管理信息系统是“一个由人、计算机等组成的能进行信息的收集、传递、储存、加工、维护和使用的系统。
管理信息系统能实测企业的各种运行情况;利用过去的数据预测未来;从企业全局出发辅助企业进行决策;利用信息控制企业的行为;帮助企业实现规划目标。
管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法等。
管理信息系统的开发是一个开发周期长、技术要求高、影响因素多的复杂系统工程,因此制定一个完善、可行、合理的开发计划,不仅是系统开发成功的保证,而且可以提高效率、节省时间、降低成本。
随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。
本系统具有安全的数据库备份方案,简单易用,可以使您很快上手,根据需要自行设置宠物类别和相应的、。
本系统界面美观,操作简单。
以前对于MICROSOFTVISUALC++6.0这门课程学的也不是很好,了解的也不多,但经过两周的小型管理系统的实训,让我们对面向对象设计的方法有了一定的认识:
从最开始的需求分析,到类图说明、类的具体设计清单,再到类的实现代码、测试代码,最后再测试代码及完善代码。
通过应用MICROSOFTVISUALC++6.0面向对象的封装、继承和多态技术,数据存储技术等,通过同学之间的相互合作,最后完成了实训任务,也增加了我们的实训经验,更重要的是让我们对于MICROSOFTVISUALC++6.0有了更深入的了解,同时也学会了怎样运用,感受到了MICROSOFTVISUALC++6.0的好处,也学到了知识。
第一章系统需求分析
1.1系统开发环境
随着电子计算机和通信技术的发展,人类已经逐渐地进入信息化社会。
信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。
同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看,可以提高工作效率;对外来看,获得竞争优势。
班级学生成绩的管理是一个常见的问题,其特点是数据之间的关系简单,但数据量较大。
大多数管理者管理班级成绩都是采用人工的方式。
随着的学习科目的增多,记录量也不断增加,管理成绩的同学不得不利用更多的时间来管理这些事务,这样作的代价毫无疑问是时间的浪费,这也是作为当代大学生最不愿意看到的情况。
若用人工进行管理,不便于数据的汇总统计及各种数据分析。
例如,若每天有不同的事情要记录,则要进行不同的登记,假如每天都会有同学查看成绩,这对于管理成绩的同学就有烦了。
例如,要查看各个同学的成绩,平均分,运用起来就比较烦,所以本软件就是为了解决这个问题而开发的,它能方便地进行各种管理事务,可修改成绩、学号、姓名,甚至是删除学生成绩。
传统的人工进行管理,存在低效、易出错等缺点,不便于数据的汇总统计及各种数据分析。
之后又出现了EXCEL作为数据库的管理系统,但其缺点很快就显示出来,那就是数据管理的不便与灵活性较差。
成绩管理系统的程序设计主要根据程序需要实现哪些功能来分析,根据班级需求成绩管理系统要实现的主要功能是查询、信息管理。
在查询的类下,可以查询三门成绩,平均分。
各种功能函数:
成绩信息管理、修改记录和保存信息等一系列功能模块;在成绩信息管理的类下,又分了各种功能函数:
信息录入、信息删除和信息修改等一系列功能模块。
通过这些函数基本上实现了班级成绩管理系统的需求。
在信息技术突飞猛进的今天,用简单的成绩管理系统来实现对学生成绩的管理(录入、修改、查询等)这是非常必要的,因此充分证明了这个系统设计的必要性。
1.2功能需求
1.2.1功能划分
一个班级的成绩的管理系统要能够记录其学号、姓名、性别、三门成绩、平均分,则该系统要能够执行下列操作:
基本功能:
1. 录入学生基本信息;
2. 删除学生信息;
3. 查询学生信息;
4. 修改学生信息;
5. 保存学生信息;
6. 退出系统;
1.2.2管理功能描述
系统主要完成对班级学生成绩管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。
并最终实现一个能够满足宠物店宠物信息的管理信息系统。
此系统的开发具有很强的实用性。
具体包括以下功能描述:
1、学生成绩管理
主要是针对学生信息的基本操作,如:
①录入
②删除
③查询
④修改
⑤保存
⑥退出
1.3性能需求
1.3.1数据精确度
数据要求必须精确,可靠,真实。
进行操作请求时,如:
查找、删除、修改、添加应保证输入数据与数据库数据的相匹配性。
而在满足用户请求时,系统应保证所响应数据的查全率与查准率。
1.3.1适用性
操作系统平台:
本系统可在微软的多种软件平台上运行。
开发语言:
C语言面向对象的设计语言
开发工具:
MicrosoftVisualC++6.0
第二章方案论证
2.1所实现系统的目标
在运用MicrosoftVisualC++6.0的软件编写下,能够成功实现以下基本功能,首先进入主界面:
密码验证;
之后进入主界面可实现以下操作基本功能:
1. 录入学生基本信息;
2. 删除学生信息;
3. 查询学生信息;
4. 修改学生信息;
5. 保存学生信息;
6. 退出系统;
2.2可行性分析
2.2.1技术可行性分析
技术是决定成本的基础,技术的变动可以影响到产品的需求和生产的成本,更是班级在年级里竞争的有效手段,所以采用一个先进的技术可以在利竞争力、班级形象等方面都带来好处,目前对于班级管理来说,也需要一个先进的技术来给班级带来更多的荣誉。
过去的Excel已经不能更好的为人们服务了,它有很多方面都不能跟上时代的发展了,所以在以前的基础上设计出一套更完备的技术来为人们使用。
随着社会的发展,学校对于班级的要求也越来越高,而我们设计的程序便可以更好地为同学们服务,他不仅可以实现班级同学信息的查询、删除、更改等基本的操作,还可以实现老师对同学们的参考评价,实现老师的查询、删除、更改。
但由于所做的程序中密码有所难度,并且一些知识还不会,所以密码的问题经小组讨论暂且不加入此功能。
2.2.2管理可行性分析
随着科学技术的飞速发展,计算机科学日臻成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
班级成绩管理系统是学校快速发展条件下,一些快速查看班级成绩软件是不可缺少的部分,它的内容不论对于同学还是老师的管理者,还是对于用户来说都至关重要。
第三章系统总体设计
3.1系统功能框图
第四章系统详细设计
4.1模块功能设计
(1)查询同学信息模块
该模块完成的主要功能是查询班级同学的基本信息。
(2)查询学生成绩
该模块完成的主要功能是查询已经保存的同学相应的信息
(3)查询各门成绩
该模块的主要功能是查看学生已保存的三门成绩,以及平均分。
(4)信息录入
该模块完成的主要操作是用于添加学生基本信息,使用while语句、for语句和其它函数等实现其功能。
(5)信息删除
该模块完成的主要操作是用于删除添加的同学的信息,通过voidDel促使程序的完整性。
(6)信息修改
该模块完成的主要操作是修改学生的具体信息,比如学生的学号、姓名、性别、成绩
4.2各模块代码设计
我们根据需求分析总结出了我们这个系统需要的代码,主要是以下一些:
//增加学生信息(Add)
voidAdd(Linkl)
{
Node*p,*r,*s;
charnum[10];
r=l;
s=l->next;
while(r->next!
=NULL)
r=r->next;
while
(1)
{
printf("请你输入学号(以'0'返回上一级菜单:
)");
scanf("%s",num);
if(strcmp(num,"0")==0)
break;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====>提示:
学号为'%s'的学生已经存在,若要修改请你选择'4修改'!
\n",num);
printstart();
printc();
printe(s);
printstart();
printf("\n");
return;
}
s=s->next;
}
p=(Node*)malloc(sizeof(Node));
strcpy(p->data.num,num);
printf("请你输入姓名:
");
scanf("%s",p->data.name);
getchar();
printf("请你输入性别:
");
scanf("%s",p->data.sex);
getchar();
printf("请你输入c语言成绩:
");
scanf("%d",&p->data.cgrade);
getchar();
printf("请你输入数学成绩:
");
scanf("%d",&p->data.mgrade);
getchar();
printf("请你输入英语成绩:
");
scanf("%d",&p->data.egrade);
getchar();
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle/3;
p->next=NULL;
r->next=p;
r=p;
shoudsave=1;
}
}
//查询学生信息(Qur)
voidQur(Linkl)
{
intsel;
charfindmess[20];
Node*p;
if(!
l->next)
{
printf("\n=====>提示:
没有资料可以查询!
\n");
return;
}
printf("\n=====>1按学号查找\n");
scanf("%d",&sel);
if(sel==1)
{
printf("请你输入要查找的学号:
");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("\t\t\t\t查找结果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else
Wrong();
}
//删除学生信息(Del)
voidDel(Linkl)
{
intsel;
Node*p,*r;
charfindmess[20];
if(!
l->next)
{
printf("\n=====>提示:
没有资料可以删除!
\n");
return;
}
printf("\n=====>1按学号删除\n");
scanf("%d",&sel);
if(sel==1)
{
printf("请你输入要删除的学号:
");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
r=l;
while(r->next!
=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:
该学生已经成功删除!
\n");
shoudsave=1;
}
else
Nofind();
}
else
Wrong();
}
//修改学生资料(Modify)
voidModify(Linkl)
{
Node*p;
charfindmess[20];
if(!
l->next)
{
printf("\n=====>提示:
没有资料可以修改!
\n");
return;
}
printf("请你输入要修改的学生学号:
");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("请你输入新学号(原来是%s):
",p->data.num);
scanf("%s",p->data.num);
printf("请你输入新姓名(原来是%s):
",p->data.name);
scanf("%s",p->data.name);
getchar();
printf("请你输入新性别(原来是%s):
",p->data.sex);
scanf("%s",p->data.sex);
printf("请你输入新的c语言成绩(原来是%d分):
",p->data.cgrade);
scanf("%d",&p->data.cgrade);
getchar();
printf("请你输入新的数学成绩(原来是%d分):
",p->data.mgrade);
scanf("%d",&p->data.mgrade);
getchar();
printf("请你输入新的英语成绩(原来是%d分):
",p->data.egrade);
scanf("%d",&p->data.egrade);
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle/3;
printf("\n=====>提示:
资料修改成功!
\n");
shoudsave=1;
}
else
Nofind();
}
//显示结果(Disp)
voidDisp(Linkl)
{
intcount=0;
Node*p;
p=l->next;
if(!
p)
{
printf("\n=====>提示:
没有资料可以显示!
\n");
return;
}
printf("\t\t\t\t显示结果\n");
printstart();
printc();
printf("\n");
while(p)
{
printe(p);
p=p->next;
}
printstart();
printf("\n");
}
//统计学生信息(Tongji)
voidTongji(Linkl)
{
Node*pm,*pe,*pc,*pt,*pa;
Node*r=l->next;
if(!
r)
{
printf("\n=====>提示:
没有资料可以统计!
\n");
return;
}
pm=pe=pc=pt=pa=r;
while(r!
=NULL)
{
if(r->data.cgrade>=pc->data.cgrade)
pc=r;
if(r->data.mgrade>=pm->data.mgrade)
pm=r;
if(r->data.egrade>=pe->data.egrade)
pe=r;
if(r->data.totle>=pt->data.totle)
pt=r;
if(r->data.ave>=pa->data.ave)
pa=r;
r=r->next;
}
printf("------------------------------统计结果--------------------------------\n");
printf("总分最高者:
\t%s%d分\n",pt->data.name,pt->data.totle);
printf("平均分最高者:
\t%s%d分\n",pa->data.name,pa->data.ave);
printf("英语最高者:
\t%s%d分\n",pe->data.name,pe->data.egrade);
printf("数学最高者:
\t%s%d分\n",pm->data.name,pm->data.mgrade);
printf("c语言最高者:
\t%s%d分\n",pc->data.name,pc->data.cgrade);
printstart();
}
//排序学生信息(Sort)
voidSort(Linkl)
{
Linkll;
Node*p,*rr,*s;
ll=(Link)malloc(sizeof(Node));
ll->next=NULL;
if(l->next==NULL)
{
printf("\n=====>提示:
没有资料可以排序!
\n");
return;
}
p=l->next;
while(p)
{
s=(Node*)malloc(sizeof(Node));
s->data=p->data;
s->next=NULL;
rr=ll;
while(rr->next!
=NULL&&rr->next->data.totle>=p->data.totle)
rr=rr->next;
if(rr->next==NULL)
rr->next=s;
else
{
s->next=rr->next;
rr->next=s;
}
p=p->next;
}
free(l);
l->next=ll->next;
printf("\n=====>提示:
排序已经完成!
\n");
}
//保存学生信息(Save)
voidSave(Linkl)
{
FILE*fp;
Node*p;
intflag=1,count=0;
fp=fopen("c:
\\student","wb");
if(fp==NULL)
{
printf("\n=====>提示:
重新打开文件时发生错误!
\n");
exit
(1);
}
p=l->next;
while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next;
count++;
}
else
{
flag=0;
break;
}
}
if(flag)
{
printf("\n=====>提示:
文件保存成功.(有%d条记录已经保存.)\n",count);
shoudsave=0;
}
fclose(fp);
}
第五章系统联调
5.1各个界面显示效果
5.11登陆界面的显示
因为这台电脑上没有截图工具,所以用了之前所截好的图片,虽然显示不是太一样不过做出来的效果是一模一样的。
5.12录入界面的显示
这里是随便录入的几个同学的成绩,以便老师同学的观看
5.13按学号查找界面的显示
5.14保存信息界面的显示
5.15修改信息界面的显示
5.16删除信息界面的显示
5.16退出系统信息界面的显示
结论
二周的实训很快的过去了,在这二周的学习中,我们学会了很多,感觉自己学到的东西有了更好的补充和完善,终于可以学以致用了,也更好地提高了团队合作的能力。
实训刚开始的时候我们分好组在老师的指导下讨论分析问题,开始真的是挺迷茫的,刚接到这个实训题目的时候我特别的没有头绪,到底应该实现哪些功能。
慢慢地深入分析之后了解了主要界面的设计流程,以及辅助界面的嵌套,经过小组讨论我们确定好最后的方案并分工来做实训任务。
在讨论的过程中我深深的感触到团队合作的重要性,这一过程中每个团队成员都提出了自己的建议,每个小组成员都得到了充分的尊重,这样提高了整小组人员的参与积极性。
实训期间我主要是负责代码的编写,起初真的是不知道从何下手,也不清楚管理系统到底是什么,在网上也找了几个管理系统的例子来看了看,但是由于我们学过的东西实在是太少,能力欠缺实在做不出那种效果。
所以只能把要做的东西来简化一下,再来实现宠物管理系统的各个功能。
令我很高兴的一点是带我们试训的老师挺人性化的,考虑到我们知识的欠缺,老师同意我们把系统功能简化来实现,并且抽了几天的时间给我们讲代码编写的规范,知道我们代码应该怎么编写,主函数应该怎么写,分散的功能应该怎么添加到函数等等。
所以有了老师的指导,我们的代码编写起来也比以前容易了好多,而且我也从老师的讲解中学到了好多以前不会的东西,感觉实在是受益匪浅呀!
在编写代码的过程中我遇到了好多困难,总是编写一点就编译一点,生怕出错之后又要撤销,一个最大的问题就是这个系统我们需要一个输入和输出文件来保存相关的数据,以便退出系统之后数据不被初始化,可以保存上次退出时的数据值,所以就要用到输入输出流来实现这个功能。
由于输入输出流还没学过,只好自己找资料看,研究了好长时间才明白具体应该怎么应用的。
不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型管理系统 小型 管理 系统 报告 汇编
![提示](https://static.bingdoc.com/images/bang_tan.gif)