学生通讯录文档格式.docx
- 文档编号:4988560
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:12
- 大小:64.91KB
学生通讯录文档格式.docx
《学生通讯录文档格式.docx》由会员分享,可在线阅读,更多相关《学生通讯录文档格式.docx(12页珍藏版)》请在冰点文库上搜索。
通过系统的实现,可为同学或老师们提供查询查询功能以获得学生的信息。
4.系统平台需求
操作系统:
Windows系列
开发工具:
VisualC++6.0
VisualC++6.0是Microsoft公司推出的功能最强大、最复杂的语言产品之一,它是目前为止在Windows环境下进行大型软件开发的首选。
其具有如下特点:
(1)VisualC++的语法符合ANSLC++标准,并在此基础上针对Windows操作系统增加了一些语句;
(2)集成了MFC(MicrosoftFoundationClass)类库,MFC封装了WindowsAPI函数和消息,使程序员可以使用MFC高效率地开发各种应用程序;
(3)提供了MFCAppWizard,可方便地生成程序框架;
(4)提供了基于MFC的ClassWizard,通过它可以轻松地完成对各种MFC类的使用与维护。
VisualC++6.0作为VisualStudio家族中的一员,是Microsoft公司以C++语言为基础开发的可视化集成开发工具,与其他编程语言VisualBasic6.0、VisualForPro等一起,成为广大程序员喜爱的开发平台。
5.系统主界面需求
要求提供一个界面供管理员来选择以实现对学生基本信息的添加、删除、查询、修改等功能,也就是说提供一个菜单供管理员或用户选择,菜单要求尽量简洁、直观、美观。
本系统最终主界面如下:
6.数据流图
由用户选择选择输入学号查询学生信息,通过查询系统,进入处理,最终输出用户想要的信息。
该数据流图如下图所示:
系统管理员根据权限成功登录,根据需要对数据进行添加和修改或删除。
成功修改后,可对数据保存。
管理员模块数据流图如下图所示:
数据
三.系统设计
经过分析,对学生通讯录系统流程整理,得出其使用过程如下:
进入系统之后,来访者根据主界面菜单进行选择来实现其相应功能,输入相应的数字选项将会出现其进一步的界面菜单和对话框。
1.程序流程图
程序流程图如图3-1所示。
首先登录系统,如果是管理员的话要进行身份验证,验证成功后进入管理员模块。
管理员可以对系统内部数据进行修改、添加,并且可以控制整个系统的运行状态决定是否退出本系统。
如果你是一般用户,则不需要进行身份验证,直接进入一般用户模块。
选择输入,通过学生学号查询,你将得到你所需要查询的相关信息。
一般用户只能进行查询,不能对数据进行添加、删除、修改。
2.系统结构图
根据功能描述,学生通讯录系统可以分为2个主要功能模块,用户模块和管理员模块,此系统结构图如图3-2所示。
管理员模块的实际主要功能是对际情况有所改变的数据进行修改和添加新数据,并保证其及时性和准确性。
用户查询模块的主要功能是用户输入要查询学生信息的学号,则提供对应学生的相应信息,包括学生的学号,姓名,性别,年龄,电话号码。
用户还可以选择要不要打印出所查询的所有信息功能。
图3-1程序流程图
图3-2程序结构图
四.重要算法描述及部分代码
1.用结构体描述学生信息,结构体是由若干成员组成,各成员可有不同的类型。
本系统学生信息可用结构体描述为:
typedefstructStudent//学生信息
{
signedshortid;
//学号
charname[11];
//姓名
charsex[7];
//性别
signedshortage;
//年龄
chartelNum[16];
//电话号码
}Student;
2.主要函数和数据的声明,其中对学生信息的查询,添加,修改,删除用链表实现,链表是最简单也是最常见的一种动态数据结构,链表中每一个元素称为结点,每个结点都应包括两部分:
一是用户需要用的实际数据,二是下一个结点的地址。
voidprintMenu();
//打印菜单
voidprintBye();
//打印结束语
voidprintList();
//打印所有学生信息
voidprintStudent(Studentst);
//打印学生信息
Node*lookupNode(signedshortstid);
//根据学号查询学生信息。
intaddNode(Studentst);
//添加学生信息。
成功返回链表长度。
内存分配失败-1;
//信息重复0
intdeleteNode(signedshortstid);
//根据学号删除学生信息。
成功返回链表长度;
//未找到-1
intupdateNode(Studentst);
//根据学号修改学生信息成功返回链表长度;
未找到0
3.主要模块函数的定义,以实现系统的功能和对数据的操作。
//查询功能的实现
Node*lookupNode(signedshortstid)
Node*temp=begin->
next;
while(temp)
if(temp->
data.id==stid)
returntemp;
temp=temp->
}
returnNULL;
//添加学生信息功能的实现
intaddNode(Studentst)
if(lookupNode(st.id))
return0;
Node*temp=(Node*)malloc(sizeof(Node));
if(!
temp)
return-1;
temp->
data=st;
next=begin->
begin->
next=temp;
return++len;
//删除功能的实现
intdeleteNode(signedshortstid)
Node*temp=begin;
Node*pos=NULL;
while(temp->
next)
next->
pos=temp->
next=pos->
free(pos);
return--len;
//修改功能的实现
intupdateNode(Studentst)
Node*temp=lookupNode(st.id);
returnlen;
}
4.主程序也就是main()函数的实现,是系统的核心部分,其中用到大量C语基本语句,如循环语句、switch语句、break语句以及输入、输出等语句。
最主要的是它可以实现对各单独模块函数的调用以实现系统具体的功能,它首先调用系统菜单以供用户选择,然后main()函数将根据用户对菜单的选择继续调用其他函数,main()函数实现到以下代码部分就可以输出主界面菜单了。
voidmain()
//初始化链表。
begin=(Node*)malloc(sizeof(Node));
next=NULL;
printf("
----------------------------------------------------------------------------\n"
);
---信A0611班级信息管理系统---\n"
---2008-11-20---\n"
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"
printMenu();
//调用printMenu()函数,显示菜单
……
主界面菜单图如下:
用户根据菜单选择,例如选择1.增加学生信息,将会出现以下界面:
输入一个学生信息后,又提示你输入下一个新学号,这时用户如果不想在输入新学号,而想实现其他选择,则输入0即可,输入0将会回到主菜单(系统有提示),用户在再输入对应选择项目号,main()函数就调用对应的函数模块来实现其功能。
五.系统测试
1.系统测试概述
系统测试是软件的一个重要的组成部分。
软件测试在软件生命周期里横跨两个阶段。
通常在编写出每个模块之后就对它做必要的测试。
软件测试的目的与其它阶段的目的相反。
软件测试的目的是发现错误。
一般说来,测试不是由编写程序本人进行,它由专门的人员对它进行测试。
软件一般有两种方法:
黑盒测试和白盒测试。
黑盒测试把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。
白盒测试是把程序看成一个透明的盒子里,也就是完全了解程序的结果和处理过程。
软件测试过程一般分成以下几个步骤:
模块测试:
保证每个模块作为一个单元能正确运行,所以模块测试通常称为单元测试。
在这个测试步骤中所发现的往往是编码和详细设计的错误。
子系统测试:
把经过单元测试的模块放在一起形成一个子系统来测试。
模块相互间的协调和通信是这个测试过程中的主要问题,因此这个步骤着重测试模块的接口。
系统测试:
把经过测试的子系统装配成一个完整的系统来测试。
验收测试:
把软件系统作为单一的实体进行测试,要用户参与。
目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。
平行测试:
同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。
本系统使用黑盒子法进行测试。
下面就输入一些信息,看能不能输出相应正确的结果。
2.系统测试
根据上一页提供的菜单界面输入相应信息进行测试,通过对测试结果的分析,测试数据与理论数据一致,能达到预期效果,说明该系统运行正常。
六.总结
通过这次程序实习这门课的学习,第一次自己做系统,感觉受益匪浅,现将学习心得体会总结为以下几点:
1.进一步学习、复习和巩固了以前所学的C语言的一些知识,并让我对C语言有了更深刻的认识,学会了更多算法的设计和用法。
2.通过做这个简单的系统,对我的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。
3.提高了的自己的动手能力和独立思考的能力,能运用所学的知识去解决一些实际的问题,这是在以前的学习过程没有体会到过的。
4.在开发一个系统时,前期的分析准备工作非常的重要。
对于系统的需求要明确,这样才能做到有的放矢。
特别是对于系统中数据的存储和重要算法的设计,设计的不好会出现大量的冗余,不仅浪费存储空间,还影响到系统的整体效率。
5.在对具体实现功能模块进行编程时,要养成良好的加注释的习惯,这样的话不仅能理清思路,而且可以为以后的调试程序带来很大的方便。
6.独立思考的同时,要虚心向别人请教,可以达到事半功倍的效果。
在具体编程实现系统功能的过程中,我遇到了不少的问题,我曾通过不同渠道向同学、老师以及上相关网站、到bbs论坛寻求答案,收到了很好的效果。
以上几点是自己这次程序设计实习和做系统过程中的一些体会,感觉学校开设这门课程很有必要,它不仅可以检验我们对课程和知识技能的掌握程度,而且对将来我们做毕业设计起到充分的指导作用,同时提高了我对这学期软件工程这门课程学习的兴趣,因为这次做系统始终都用到了软件工程的思想。
由于是第一次自己做系统,该系统里面必然存在一些缺陷和不足,如:
用户界面不够美观,出错处理不够等多方面问题,希望老师今后在我们学习的过程中能够提出更多宝贵性的意见和建议,好让我在后面的学习过程中加强。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 通讯录