实验任务 三 内容和模版
|
课 程 |
班 级 |
学 号 |
姓 名 |
实验时间 |
|
软件工程导论 |
12广电3 |
120701247 |
王漪铭 |
2013.11.19 |
软件工程实验报告 三
一、实验名称
系统详细设计
二、实验目的
根据需求分析、概要设计,完成系统的详细设计
三、实验主要内容
详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
四、实验原理
1、模块说明。说明该模块需要实现什么功能,还有设计要点。
2、流程逻辑。用流程图说明该模块的处理过程。
3、算法。不一定有,如果涉及一些比较特殊的算法或关键模块,就写一下算法的伪代码或用流程图说明。
4、限制条件。该模块的功能有哪些限制,比如用户ID不能重复,只能查询自己权限范围内的用户。
5、输入项。每个子模块可以看做一个”方法“,我传给你什么,你给我输出什么。比如删除用户,输入项就是用户ID。
6、输出项。删除用户的输出项,就是不能在查询模块里查询到已删除的用户
7、界面设计。用visio或者其他工具画一些界面图
8、需要操作的数据表。
五、实验结果
详细设计
目录
一、数据管理设计
二、控制台界面设计
三、系统实现.
3.1通用功能类的实现
3.2修改查询模块的实现
四、总结和展望
4.1总结
4.2展望
一、数据管理设计
数据管理是利用计算机硬件和软件技术对数据进行有效的收集、存储、处理和应用的过程。其目的在于充分有效地发挥数据的作用。实现数据有效管理的关键是数据组织。主要有系统信息、系统相关和系统帮助三类。系统信息主要提供系统的功能,比如:信息录入、信息显示、信息保存、信息删除、信息修改和信息删除;系统相关主要介绍系统的相关信息;系统帮助主要提供系统的简单操作流程。以下详细说明主要功能的基本情况。
1、学生通讯录信息录入
学生学号:num[10]
学生姓名:name[10]
学生班级:banji[10]
学生电话:tel[11]
学生QQ:QQ[11]
学生宿舍:dorm[10]
2、学生通讯录信息显示
该功能可以显示所有上述所录入的学生通讯录信息。
3、学生通讯录信息修改
该功能通过学生学号选择要修改的学生,随后进行所有学生通讯录信息的修改。
4、学生通讯录信息查询
该功能通过学生学号、学生姓名和学生宿舍选择要查询的学生,可以显示所选学生通讯录信息。
二、控制台界面设计
本系统的设计思路主要是实用、简便、灵活、稳定。整个系统由于涉及平台的局限,所以最后控制台界面只能在dos命令窗口下运行,但为了使软件更具有可看性,所以也进行了一定的排版,使界面更加整洁、直观。
我们下面主要从菜单和关于、帮助开始进行介绍,菜单界面如图所示。
菜单界面
本系统中菜单界面是核心界面,和本系统其他界面有很密切的关联,本系统所有功能的实现都依赖于这个界面,同时最频繁使用的也是菜单界面。


关于、帮助界面
关于、帮助界面虽然是本系统中最容易实现的两个界面,而且对于系统的主要功能并没有具体的影响,但关于、帮助界面的存在体现了系统功能的完整性,使系统更形象化,更具有可看性。
三、系统实现
本项目在开发过程中,针对所有用户可能使用的功能,进行了考虑和设计,但因为开发平台与开发人员综合实力的局限性,依然存在许多漏洞。
由于本系统包含内容很多,不能展现全部实现过程,这里仅拿学生通讯录系统管理中代表性较强的通用功能类信息录入、信息显示、信息保存……和功能相对独立的关于、帮助展开介绍。
3.1通用功能类的实现
通用功能类主要由信息录入、信息显示、信息保存、信息删除、信息修改和信息删除组成,下面就以部分代码为例展示如何进行代码实现。
void GetInfo(struct student* arr,int n) /*录入函数*/
{
system("cls");
{
for(int i=0;i<n;i++)
{
puts("*************************************************");
printf("请输入学号:");
scanf("%s",&arr[i].num);
printf("请输入学生姓名:");
scanf("%s",&arr[i].name);
printf("请输入班级:");
scanf("%s",&arr[i].banji);
printf("请输入电话号码:");
scanf("%s",&arr[i].tel);
printf("请输入QQ:");
scanf("%s",&arr[i].QQ);
printf("请输入学生宿舍号:");
scanf("%s",&arr[i].dorm);
puts("*************************************************");
}
}
}
void Display(struct student* arr,int n) /*显示函数*/
{
puts("________________________________________________________________________");
puts("* 学号 姓名 班级 电话 QQ 宿舍 *");
for(int i=0;i<n;i++)
{
printf("* %-8s%-15s%-8s%-15s%-15s%-5s *\n",arr[i].num,arr[i].name,arr[i].banji,arr[i].tel,arr[i].QQ,arr[i].dorm);
}
puts("________________________________________________________________________");
puts("返回主菜单请按【9】");
if(getche()=='9') menu();
}
void Save(struct student* arr,int n) /*保存函数*/
{
FILE * fp;
if((fp=fopen("student.txt","a+"))==NULL)
{
puts("文件不存在!");
return;
}
fwrite(arr,sizeof(struct student),N,fp);
fclose(fp);
puts("文件保存成功!");
puts("返回主菜单请按【9】");
if(getche()=='9') menu();
}
3.2关于、帮助类的实现
void About() /*关于函数*/
{
system("cls");
puts("\n ************************** ");
puts(" *** 版权所有,翻版必究! ***");
puts("**** copyright◎王漪铭! ****");
puts(" *** 2012~2013 ***");
puts(" **************************");
puts("\n返回主菜单请按【9】");
if(getche()=='9') menu();
}
void Help() /*帮助函数*/
{
system("cls");
puts("\n1、请按提示操作,第一次进入本系统时请按 1 录入学生信息,");
puts(" 否则有可能造成程序运行错误!");
puts("2、排序功能本系统暂不提供,还有待以后完善,谢谢合作!");
puts("3、请注意查看 Num Lock 是否打开,如果没有打开,则按数字\n 键可能导致程序错误!");
puts("4、版权所有,翻版必究!请按 7 键查看关于。");
puts("\n返回主菜单请按【9】");
if(getche()=='9') menu();
}
四、总结和展望
4.1总结
分析方法与设计模式因需求的不同而多种多样。不同的方法,有的可能带来非常明显的优点,而有的可能带来不利的因素。在本次项目的开发过程中,分析与设计的全阶段均完全采用了UML面向对象的先进建模方法,使系统在遵循面向对象原理与软件工程学的基础上,还具有一些使用其它面向对象方法时所不具备的优点。
本次项目的开发过程分成分析与设计两大部分。前一部分以功能为导向,着重于系统要达到的功能。而后一部分以结构为导向,着重于将业务逻辑抽象为类及其之间的关系,这些业务逻辑所要达到的功能,也正是前一部分分析的结果。分析与设计的各阶段均采用了UML面向对象的建模方法,使整体设计更具系统化、标准化、模块化。使用UML设计出来的管理系统,有很多基于业务逻辑抽象出来的类,具有广泛性的、重用性。采用UML进行设计,结合PowerDesigner进行数据库设计,为车船使用税征管系统开发设计提供了较合理的模式。
车船使用税征管系统的成功上线,解决了目前急需解决的车船税业务覆盖面低,流程不规范的问题,提高了运行效率,加强了监督管理,达到了预期设计目标。但是其C/S架构和市级集中的模式限制了其功能的扩展余地,很多网上业务的开展不得不使用独立的外挂系统进行,造成数据资源无法整合利用;由于力求功能覆盖,各模块之间相对独立,各模块关联不够完善,数据挖掘利用程度不高,所以形成了只有报表没有数据分析的局面。
4.2展望
通讯录软件发展方向多元化
1.工具通讯录
最初的通讯录软件都是工具形态,让用户迫切需要一款通讯录软件的是“来电归属地”功能。在塞班时代开始,塞班系统并未有自带来电归属地功能,随着通讯骗子、骚扰电话越来越多,用户对来电归属地的知悉需求越来越强烈。最初的成功产品应当属于来电通,当时的功能主要是来电归属地和黑白名单。到了安卓时代,安卓系统得到了广泛的应用,智能终端也开始飞速发展。通讯录软件开始发挥更多的通信作用,而不仅仅是来电归属地和黑白名单,其中新增的主要功能有智能拨号、短信管理、通讯录备份等功能,这些都还是工具。但仅仅这样就够了吗?
2.社交通讯录
MG Siegler曾在《你真正的社交网络:手机通讯录 <http://www.36kr.com/p/56318.html>》一文中这样说道,“从你开始带着手机的那一天,你就在口袋里带了一个社交网络。并且它是你最重要的社交网络。但是你可能没有意识到,它就是你的手机通讯录。”可以想见,随着人们越来越注重社交,手机通讯录在未来可能会扮演越来越重要的角色。
随时微信的成功与火爆,社交关系开始被国内企业所重视。通讯录的关系是强关系,而且作为用户通信的基础对象,具有很强的社交性。国内部分通讯录软件开始向社交化转变。友录通讯录于2012年1月开始暂停友录通讯录的开发转而研发出了友联系,但从目前的结果来看,友联系并不成功。目前用户的通讯录关系比较繁杂,上面可能会关系很亲密的人,但也有弱联系的人,比如陌生客户、推销、临时合作商等,用户并没有跟这部分人建立SNS社交圈的欲望,熟人之间的社交又涉及到用户的隐私问题。
目前的社交通讯录,都是基于原有的熟人关系,而且这个关系还会受到其他环境的影响而导致不完整。平台分散、终端差异导致社交关系难以统一,加上国内人文环境、用户习惯,这些都是目前社交通讯录的最大难题。
参考文献
[1] 《电子商务系统分析与设计》清华大学出版社出版
[2] 《UML基础教程》张瑜 清华大学出版社
[3] 《信息系统开发方法教程》 陈佳著 清华大学出版社
[4] 《UML和模式应用》姚淑珍 机械工业出版社
[5] 《UML系统分析设计与应用案例》冀振燕 人民邮电出版社

浙公网安备 33010602011771号