实验任务 三 内容和模版

课 程

班 级

学 号

姓 名

实验时间

软件工程导论

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系统分析设计与应用案例》冀振燕 人民邮电出版社

posted @ 2013-12-15 15:37  王漪铭  阅读(324)  评论(0)    收藏  举报