课程 | 班级 | 学 号 | 姓 名 | 实验时间 |
软件工程导论 | 12信管2 | 120806228 | 闻士军 | 2013.12.10 |
软件工程实验报告三
一、实验名称
系统详细设计
二、实验目的
根据需求分析、概要设计,完成系统的详细设计
三、实验主要内容
详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
四、实验原理
1、模块说明。说明该模块需要实现什么功能,还有设计要点。
2、流程逻辑。用流程图说明该模块的处理过程。
3、算法。不一定有,如果涉及一些比较特殊的算法或关键模块,就写一下算法的伪代码或用流程图说明。
4、限制条件。该模块的功能有哪些限制,比如用户ID不能重复,只能查询自己权限范围内的用户。
5、输入项。每个子模块可以看做一个”方法“,我传给你什么,你给我输出什么。比如删除用户,输入项就是用户ID。
6、输出项。删除用户的输出项,就是不能在查询模块里查询到已删除的用户
7、界面设计。
五、实验结果
详细设计
目录
一、系统功能函数设计
二、用户界面设计
三、系统实现.
四、总结和展望
4.1总结
一、系统功能函数设计
为了实现系统的正常运作,需要大量的函数作为基础,结合相应的函数,才能使得系统准确无误的运行相对应的系统功能,以下是所有功能函数的设计及其功能简介:
1、函数声明及结构体的构造:
首先是构造了一个struct people的结构体,结构体内部包括了客户的姓名、ID、电话、房间类型、入住天数及客户应付的钱(包含了100元的押金)。之后,该部分同时声明了
int Checkin();//登记函数、int Search();//查询函数、int Delete();//删除函数、int Save();//保存函数、void Exit();//退出函数、void cls();//清屏函数、int name();//姓名查询函数、int ID();//ID查询函数、char del_name();//按姓名删除函数、char del_ID();//按ID删除函数,为之后的程序编译机运行提供了一定的铺垫辅助作用。
2、主函数:
首先打开D盘寻找是否处在file.txt文件,若存在,打开该文件,若不存在,怎创建一个file.txt文件,并打开。显示函数中的图形于系统界面(包括特定的颜色等)。并且改主函数中有一个switch函数,switch函数中特定的数字对应着特定的函数:1对应Checkin()函数,2对应Search()函数,3对应Save()函数,4对应Delete()函数,5对应Exit()函数。
3、登记函数:
首先是清屏,再根据函数的提示,输入入住的人数,之后再根据函数中的循环结构,依次输入姓名、电话、ID、房间类型及入住的天数,直至输入的人数的个数与输入的想入住的人数的个数相同。同时该函数还能自动结算出客户应付的金额,并显示。输入完成后按回车键则可清屏回到主函数界面。
4、查询函数:
首先清屏,之后提供不同的选项,按照自己的意愿输入特定的数字,转而进入switch函数中的特定的查询函数(按姓名或按ID),或直接退回主函数界面。
4.1 按姓名函数查询:
首先清屏,按要求输入想查询客户的姓名,然后将输入的客户的姓名与file.txt文件中原有的客户的姓名进行逐个字的对比,看是否完全一致,若一致则将
file.txt文件中的该客户的信息显示出来,并询问是否继续按姓名以同样的方法查询;若不一致,则返回查询界面。
4.2按ID函数查询:
首先清屏,按要求输入想查询客户的ID,然后将输入的客户的ID与file.txt文件中原有的客户的ID进行逐个字的对比,看是否完全一致,若一致则将file.txt文件中的该客户的信息显示出来,并询问是否继续按ID以同样的方法查询;若不一致,则返回查询界面。
5、删除函数:
首先清屏,之后提供不同的选项,按照自己的意愿输入特定的数字,转而进入switch函数中的特定的删除函数(按姓名或按ID),或直接退回主函数界面。
5.1按姓名删除函数:
首先清屏,按要求输入想查询客户的姓名,然后将输入的客户的姓名与file.txt文件中原有的客户的姓名进行逐个字的对比,看是否完全一致,若一致则将file.txt文件中的该客户的信息删除(既将后一个客户的信息代替将要删除的客户的信息),并显示出函数中的相关文字内容,并询问是否继续按姓名以同样的方法删除;若不一致,则清屏并返回删除界面。
5.2按ID删除函数:
首先清屏,按要求输入想查询客户的ID,然后将输入的客户的ID与file.txt文件中原有的客户的ID进行逐个字的对比,看是否完全一致,若一致则将file.txt文件中的该客户的信息删除(既将后一个客户的信息代替将要删除的客户的信息),并显示出函数中的相关文字内容,并询问是否继续按ID以同样的方法删除;若不一致,则清屏并返回删除界面。
6.保存函数:
首先打开D盘寻找是否处在file.txt文件,若存在,打开该文件,若不存在,创建一个file.txt文件,并打开。将累计总和的总人数顶格显示在该文件的第一行,然后将客户的姓名,电话,ID等信息显示在文件的之后几行,保存并关闭该文件,且输出相应的文字于界面。按回车键返回主界面。
7、清屏函数:
将屏幕上的内容清除。
8、退出函数:
首先清屏,然后显示含有byebye字样的图形。
二、用户界面设计
本系统的设计思路主要是实用、简便、灵活、稳定。整个系统有完整的组织框架和模块分工,对于界面设计我们遵循以下几个原则:
一、控件的位置拖放安排
在绝大多数的程序界面设计中,并不是所有的元素都具有相同的重要性,所以应抓住重点,将较重要的元素定位在对用户来说处在一目了然的位置是非常重要的,可以尝试根据“功能”和“关系”来组成一个逻辑信息组。按照控件在功能上的联系,将它们放在一起,在视觉效果上也要比将它们分散在屏幕的各处要好得多。
二、控件的大小与一致性编排
控件的大小设置是程序设计时经常遇到的问题,虽然操作非常简单,却很难决定控件的大小。合理设置控件的大小以达成一致性是界面设计中的重要问题之一,一致性的外观将体现应用程序的协调性。如果缺乏一致性就会使界面混乱无序,会对用户的使用带来不便。
三、合理利用空间,保持界面的简洁
界面设计最重要的原则就是简洁与明了。对于应用程序而言,如果界面看上去很难,则可能程序使用本身也比较复杂,而在设计时稍稍深入考虑一下,便有助于创建看上去和用起来都很简单的界面。
四、合理利用颜色、图像和显示效果来达成内容与形式的统一
依据许多程序设计人员的经验,应当尽量限制应用程序所用颜色的种类,而且色调也应该保持一致。
以下即为我们设计的主界面、查询界面、输入界面、删除界面及退出界面等界面:
三、系统实现
该系统的从各个角度讲,都是一个简单易懂的系统,它的实现,主要是运用的C语言中的函数调用,通过调用各种功能函数,能够简单快捷的实现系统的正常快速运行。
四、总结和展望
4.1总结
在设计制作该程序的这段期间,是我对c语言及其实验有了更深入的了解。我认识到,c语言实验是非常注意书写的正确性和逻辑的严密性,实验过程本身就在考验一个人细心与耐心程度,还有对所学知识的熟练程度。
这对我来说是非常重要的方面。这次试验也让我知道在c语言中,条理清晰的流程是很重要的,它包含你编写程序的大致方向,是你在编程过程中不会走错路,也不会太盲目。严谨认真的态度也不可或缺。实验中常常会遇到许多问题,c语言有自己解决问题的方法:找语法错误,找逻辑错误,调试等等,有时需要从整个程序方面考虑,这就需要调试经验。 在实验中,遇到问题要想方设法将它解决,并且是靠自己,不管是看书找资料,还是请教同学,与同学讨论,都是很好的途径。这段时间,我获益匪浅,相信这些收获会对我以后的学习有很大帮助。
参考文献
[1] 江宝钏《C语言程序设计》清华大学出版社,2010年