资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
程序设计课程设计程 序设 计 课 程 设 计 报 告( 2012- 2013年度第 2 学期) 个人账簿管理系统的设计专业软件工程学生姓名班级软件 121 学号指导教师完成日期2013.7.4 个人账簿管理系统目录1 概述. 11.1课程设计目的 . 11.2 课程设计内容 1 2 系统需求分析 . 12.1 系统目标 12.2 主体功能 12.3 开发环境 DEVC+ 2 3 系统概要设计 . 23.1 系统的功能模块划分 23.2 系统流程图 2 4 系统详细设计 . 44.1 个人账簿管理系统主函数前常变量定义和函数声明 44.2 个人账簿管理系统主函数 44.3 个人账簿管理系统注册函数、登陆函数和正常退出函数(Quit) . 54.4 个人账簿管理系统主菜单函数和查找子菜单函数 54.5 个人账簿管理系统录入收支模块 64.6 个人账簿管理系统查询模块 64.7 个人账簿管理系统修改数据模块 74.8 个人账簿管理系统排序模块 74.9 个人账簿管理系统帮助说明 7 5 测试. 75.1 测试方案 75.2 测试结果 7 6 小结 . 13 参考文献 14 附录 15 附录 1 源程序清单 15附录 1.1 个人账簿管理系统主函数前声明 15附录 1.2 个人账簿管理系统注册、登陆和退出 16附录 1.3 个人账簿管理系统菜单和子菜单函数 19附录 1.4 个人账簿管理系统收支录入和写入文件 25附录 1.5 个人账簿管理系统查找函数. 26附录 1.6 个人账簿管理系统移除记录函数. 29附录 1.7 个人账簿管理系统排序函数. 29附录 1.8 个人账簿管理系统说明函数. 301 个人账簿管理系统的设计1 概述1.1 课程设计目的1).加深对 C语言程序设计课程知识的理解,掌握C语言应用程序的开发方法和步骤;2).进一步掌握和利用C语言进行设计的能力;3).进一步理解和运用结构化程序设计的思想和方法;4).初步掌握开发一个小型实用系统的基本方法;5).学会调试一个较长程序的基本方法;6).学会利用流程图或N-S图表示算法;7).掌握书写程序设计开发文档的能力(书写课程设计报告)。1.2 课程设计内容(1) 根据分组情况单独完成规定的设计内容;(2) 源程序要有适当的注释,使程序容易阅读;(3) 至少采用文本菜单界面(如果能采用图形菜单界面更好);(4) 学生可自动增加新功能模块(视情况可另外加分);(5) 写出课程设计报告,具体要求见相关说明文档。2 系统需求分析2.1 系统目标1) 实现个人账簿管理系统的基本功能。包括: 记录某人每月全部收入和开支情况。进入系统后可以增加、删除修改记录,可以提供查询和支出排序功能2) 对系统进行扩充,实现多人账户,通过输入用户名和密码形式登陆之后才进行系统操作3) 对系统进一步扩充,细化各功能模块。3) 美化界面,使使用界面更加人性化,使用更方便。2.2 主体功能1) 增加一条收支记录,记录某人某月收支情况2) 查询本系统所有用户的全部收支信息3) 修改某人某月的收支记录4) 删除某人某月的收支记录个人账簿管理系统5) 输入条件进行查找收支记录6) 删除一条收支记录7) 系统说明可查看功能结构以及制作者2.3 开发环境 DEVC+ 3 系统概要设计3.1 系统的功能模块划分1) 注册用户和登陆用户:a 注册:输入正确管理员指令才可注册,否则警告并返回原界面。b 登陆:输入正确的用户名和密码进入个人账簿管理系统主功能界面。2) 主功能界面 (登陆后才可进入 ):a 录入账目:录入后写数据进“alluserinfo.dat” 文件b 查看所有 (需要先输入管理员权限 ) c 修改数据:输入月份,修改该月收支记录d 查找数据:分为精确查找和按用户查找两类e 排序收支:先输入月份,对某月全部开支进行排序f 删除记录:先确定要删除的月份再删除g 系统说明3.2 系统流程图关于本系统流程图的简要说明:1) 首先定义了三个结构体变量, 分别是 US用户密码信息结构体, Bill 开支记录结构体和 Sort 不同类型开支的结构体, 在宏定义中设置了管理员权限指令和最大用户名,最大密码长度以及三个文件路径以供本系统存储、查找、调用2) 主函数包括了登陆函数 (Loadin)、注册函数 (Register)和正常退出函数 (Quit)。注册函数:如果输入正确指令将注册。注册成功后进入登陆函数,指令错误警告并返回最初界面3) 登陆函数:如果登陆失败警告并返回原界面;登陆成功则进入菜单函数(Menu) 菜单函数主要包括录入账目(Input 函数和 IriteFile 函数)、查看所有( FindAll函数)、修改数据(SearchSingle函数,Remove函数,Input 函数,WriteFile 函数)、精确查找 (SearchSingle函数) 、 按用户查找(SearchUser函数) 、 单月排序 (SearchSingle函数,Sort 函数)、删除数据( SearchSingle函数,Remove函数)、系统说明( Help函数)、正常退出( Quit 函数)3 1 注册2.登陆N Y 图 3-2 系统流程图1 录 入 数 据2 查 看 所 有3 修 改 数 据4 查 找 数 据5 排 序 数 据6 删 除 数 据7 系 统 说 明0 返 回 菜 单0.退出正确指 令个人账簿管理系统主函数结束个人账簿管理系统4 系统详细设计4.1 个人账簿管理系统主函数前常变量定义和函数声明1)定义三个结构体变量结构体Typedef struct US Typedef struct Sort Typedef struct Bill 2)定义常变量常变量声明#define MAXNAME 10 #define MAXPASSWORD 10 #define SECRET “个人账簿管理系统 “ #define Fpath1 “alluserinfo.dat“ #define Fpath2 “usersecret.txt“ #define Fpath3 “peruserinfo.dat“ 3)函数声明void Quit(); void Register(); void Loadin(); void Menu(Bill *q); void Input(Bill* q); void FindAll(); void WriteFile(Bill *q); int SearchSingle(Bill *q); void Remove(Bill *q); int SearchMenu(Bill *q); void sort(Bill *q); / 排序单个用户每月开支,需要参数传递用户名void Help(); void SearchUser(Bill *q); 4.2 个人账簿管理系统主函数主函数包含在 while(1)循环中,每次子函数结束返回都继续执行循环。主函数中包含 switch 结构,根据用户选择的1,2或者 0 执行下面相应函数。如果用户输入错误则显示输入错误,并提示重新选择。详见源程序清单5 4.3 个人账簿管理系统注册函数、登陆函数和正常退出函数(Quit) Register函数中,如果输入正确指令就显示可以注册,等待用户输入用户名和密码,将用户名和密码写入“usersecret.txt”文件中,然后关闭文件,显示注册成功,返回原来的“注册登陆退出界面”;若用户未输入正确的指令,就警告没有注册权限,警告,然后等待Sleep(2000) 后自动跳转到的登陆函数。Loadin 函数:函数主功能从这里开始, 如果用户根据提示输入的用户名和密码跟“usersecret.txt”文件中某一个US结构体长度的内容完全一样,就显示登陆成功,并进入 Menu菜单函数。如果不能与usersecret.txt中的某一个 US结构体匹配,则警告并返回原“登陆注册退出界面”。Quit 函数:显示正在退出本系统然后退出4.4 个人账簿管理系统主菜单函数和查找子菜单函数Menu函数是本系统的主功能菜单函数,首先在屏幕上列出各子功能, 然后提示用户选择。根据用户选择执行相应的函数。其中,选择2 查看所有,将要求先输入正确管理员指令才能查看所有用户信息,否则返回主功能菜单;选择4 将进入查找子菜单函数,子菜单函数也提供了两种不同的查询方式,分别是精确查找和按用户查找。由于 Menu函数在上层的 Loadin 函数中以 while(1)形式构建,所以无论选了哪个选择,执行完相应选择的函数后都将重新执行Menu函数,即清屏(system( “cls ”) ), 然后屏幕显示 8 个功能选项。下面是主功能模块的流程图。个人账簿管理系统4-4 主功能流程图4.5 个人账簿管理系统录入收支模块首先,用 Input 输入函数来输入一条月收支记录,按EXIT输入结束然后,用 WriteFile 写入数据进 Fpath1,即“alluserinfo.dat”文件。写入后屏幕显示数据已经成功写入写入数据后清屏,跳转界面到原来的主功能菜单界面4.6 个人账簿管理系统查询模块查询功能分三个子功能,分别是查询所有用户信息功能、已登陆用户输入月精确查找和查询该用户全部收支记录。查询所有用户信息需要输入正确的管理员指令才可以查询(指令在宏定义中定义了,为 “ 个人账簿管理系统 ” )主功能菜 单录 入 数 据查 找 数 据修 改 数 据查 看 所 有删 除 记 录单 月 排 序系 统 说 明精 确 查 找按 用 户 查返回主菜 单7 输入月份精确查找,用SearchSingle函数返回整型数据到原来位置,再根据返回值确定是否找到,找到就输出,找不到就警告并跳转界面。之所以带回返回值是因为要先在 SearchSingle 函数中关闭因查找而打开的二进制“alluserinfo.dat”文件查询该用户所有信息,用SearchUser函数4.7 个人账簿管理系统修改数据模块用到四个函数:先精确查找(SearchSingle函数),再移除( Remove函数),再输入( Input 函数),再写入数据保存(WriteFile 函数)4.8 个人账簿管理系统排序模块先用精确查找函数确定要排序的月份(SearchSingle函数),再用 sort 函数排序4.9 个人账簿管理系统帮助说明Help 函数,主要功能是介绍本系统功能以及制作者5 测试5.1 测试方案测试分为黑盒测试和白盒测试,本课程设计将对本系统进行黑盒测试中的功能测试。5.2 测试结果a) 注册界面注册界面如图 5-1 所示:图 5-1 注册界面个人账簿管理系统b) 登陆界面登陆时,用户名和密码正确,如图5-2-1 图 5-2-1 登陆界面 a 登陆时,用户名和密码错误,如图5-2-2 图 5-2-2 登陆界面9 c) 主菜单主菜单界面如图 5-3:图 5-3 主菜单界面d) 录入数据录入数据界面如图5-4 图 5-4 录入账单界面个人账簿管理系统e) 修改数据:修改用户月收支记录如图5-6 图 5-6 修改收支记录11 f) 查看所有用户信息查看所有用户收支信息如图5-7 所示图 5-7 查看所有用户信息个人账簿管理系统g) 帮助文件: 系统说明、帮助文件如图5-8 所示图 5-8 系统说明文件13 6 小结这两周的课程设计,我收获了很多,再一次深刻意识到,实践对于我们软件工程专业的重要性。书本知识背的再多,会应用才是真的有效。虽然我们要学很多程序设计语言,会面临很多语法混淆的状况,这些都很重要。但最最重要的还是面对现实问题时果断清晰地思维。软件设计必须要在所有工作开始之前构思框架,然后慢慢的戏份,最后优化界面等。因此我明白了到在今后的学习中,重视思维,多考虑方向,重视解决方案;同时要不断尝试之前构思的想法,试错然后改错,这样才有更多设计经验。所有意外的错误都是我个人本身的错误,出现任何error 和警告都可以通过我自己改代
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号