《家庭财务管理系统设计与实现(32页).docx》由会员分享,可在线阅读,更多相关《家庭财务管理系统设计与实现(32页).docx(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-家庭财务管理系统设计与实现-第 27 页湖 南 第 一 师 范 学 院毕业论文(设计)题 目 家庭财务管理系统设计与实现 学生姓名 学 号 系(部) 专业班级 指导教师 湖南第一师范学院毕业论文(设计)指导教师评语主要对学生毕业论文(设计)的工作态度,研究内容与方法,工作量,文献应用,创新性,实用性,科学性,文本(图纸)规范程度,存在的不足等进行综合评价指导教师: (签名)年 月 日指导教师评定成绩:目录摘 要1绪论1第1章 系统需求分析21.1 系统目标21.2 系统可行性分析21.2.1 技术可行性21.2.2 经济可行性21.3 系统需求分析方法31.3.1系统需求分析概述31.3.2
2、系统需求分析方法31.4 系统功能需求分析4第2章 系统总体设计52.1 系统设计方法52.2 系统架构52.3 系统功能模块细分6第3章 系统实现73.1 系统主界面73.2 系统管理模块83.3 基础数据管理模块10第4章 系统的测试与维护144.1系统运行环境144.2系统测试144.2.1 系统登录测试144.2.2 数据保存测试144.2.3 系统功能测试144.3系统运行情况15结束语17参考文献18致谢18附录19摘 要家庭财务管理系统的设计采用EditPlus作为编辑器,linux下GCC 编译器,版本为4.1.220070626(Red Hat 4.1.2-14)作为开发环境
3、。采用了两个文本文件来保存用户使用过程中产生的数据进行测试运行。具有:添加,查询,删除,修改,修改密码,更换家长等的功能。实现创建编号链接各功能列表,输入家庭成员收入信息情况,以及增加,删除,修改,还具有按具体时间指定姓名查找个人财务情况,按总计排序浏览所有用户财务信息等。同时还设计了家长管理权限,实现用户的密码登陆功能,更加保密家庭财务信息等。本系统为家庭的管理者提供充足的财务信息添加和查询手段,大大的方便家庭的管理者的合理理财。是一个较具实用价值的推广软件。关键词:家庭财务;管理系统;linux操作系统绪论家庭财务管理系统是专门为一般家庭的财务管理所设计服务的,是每个家庭都该拥有的一款软件
4、。本系统具有界面清晰、操作简易、等特点,考虑到人们的一些操作习惯,提高了其的可操作性,完全能够满足你的需求。作为计算机应用的一部分,使用计算机对家庭的各项事务进行管理,具有手工管理所无法比拟的优点,其优势已非常明显。例如:查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大的节省浪费在处理家庭事务上的时间,也是标志着一个家庭现代化,能够更好的融入社会。本系统本着实用的原则,完成家庭财务管理系统中包括家庭成员信息的添加和删除、收支信息的添加、删除及帐户的管理,及相关数据的统计、查询、修改等全过程的工作。总之,该系统对家庭财务的管理实现了规范化,非常适合于大部分家庭的的日常财
5、务管理。本系统编制过程中充分考虑了计算机的优越性,对于不是计算机专业的人员来说,只要阅读了操作说明,也可以很方便的进入系统和使用本系统提供的功能。遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,任何一个系统都是在不断的发展中完善的,本系统也不例外,通过学习C程序设计后,采用linux环境下的GCC编译器作为编译环境,使程序编译和运行的。本应用程序设计过程中使用基本控制结构,如循环和选择,着重实现管理系统的增、查、删、改等典型的管理功能。程序设计是一门实践性很强的课程,既要掌握概念,又要动手编译,还要上机调试运行,通过这一次的毕业论文编撰使我从实践中更进一步的学习和熟练了C语
6、言的编写。本家庭财务管理系统在设计完成后进行了试运行,运行结果获得了大家的认可。第1章 系统需求分析1.1 系统目标本系统要达到的目标有以下几点:1.验证用户和密码的正确性再登入,以及修改密码和退出系统;2.保存每次输入的收支记录,并提供两种查询方式:按姓名和按年份;3.家庭现金的收入/支出进行管理,实现收支记录的增加,修改,查询,删除;4.整个收支记录保存为文本文件。1.2 系统可行性分析可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。从现在应用的技术方面、管理者和用户的操作方式方面研究家庭理财系统的可行性和必要性。家庭理财系统的实施,将很大程度上提高现代家庭的理财效率
7、,使得现代家庭能够更加方便的对自己的财务进行个性化的管理。1.2.1 技术可行性技术可行性研究的任务,是从总体上鉴别和选择技术系统,是研究现有的技术条件能否顺利完成开发工作,硬、软件配置能否满足开发的需求等等。本系统的开发使用Linux操作系统中得红帽企业版五作为系统开发的开发环境,linux系统有如下的特性:自由与开放,配置要求低廉,功能强大而稳定,独立工作1等。运用C 语言程序设计语言,C是一种融合了控制特性的现代化语言,其设计使得用户可以自然地采用自顶向下的规划,同时C还具有高效性,可移植性,强大的功能和灵活性,面向编程人员等特点2。非常有利于以后对新系统的扩展与修改。综上所述,本系统为
8、一个小型的家庭理财系统,所耗费的资源非常的小,现行的电脑无论是硬件还是软件都能够满足条件,因此,本系统在技术上是可行的。1.2.2 经济可行性 进行软件开发项目成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发,这些即为经济可行性。如今,随着计算机的大量普及,各种软件的开发成本越来越低,价格也越来越底。本系统也是这样,开发成本较低,只是需要一台配置一般的计算机,该系统运行时占计算机的资源也不多,但并不会因为开发成本低而造成系统功能性能的下降。相反,随着计算机技术的发展,各种实用软件的性能日渐提高。家庭理财管理系统廉价的开发成本,却能够为居民带来相当大的实惠和方便。主要表现在:(
9、1)本系统是一个拥有多种实用功能的家庭理财管理信息系统,它集成了家庭成员管理、收入管理、支出管理、密码管理等多种功能,具有较强的实用性和方便性。(2)本系统的运行可以大大提高居民管理财务的效率,减少不必要的人力和物力。(3)本系统具有查询和统计功能,能够查询到用户在一段特定时间内收入和支出的情况。(4)本系统的运行可以大大的提高家庭的工作效率。由此可以得出,本系统在经济上是具有可行性的。1.3 系统需求分析方法1.3.1系统需求分析概述在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时,为描写新系统的目的、范围和定义所要做的所有的工作3。需求分析是软件工程中的一个关键过程。在
10、这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能。需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。它是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师必须确定顾客的需要。只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。如果在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。1.3.2系统需求分析方法在管理信息系统开发实
11、践中,系统分析人员使用了多种系统分析方法,三种非常普通的系统分析方法是:结构化方法、信息工程方法以及面向对象的方法等。其中,结构化分析方法自从20世纪70年代末提出以后,由于其简单、清晰、易于学习、掌握和使用的特点,成为长期以来被广泛使用的分析方法4。结构化系统分析是指用一组标准的准则和工具从事分析工作,即有组织、有计划、有规律地进行分析。它是一种利用系统工程的思想和有关结构的概念、自顶向下划分模块、逐步求精的分析方法。该方法把研究对象看成一个系统,用分解和抽象这两个基本策略来控制系统的复杂性。它有三个要点:(1)分解和抽象;(2)图表描述;(3)模型转换。1.4 系统功能需求分析家庭理财管理
12、系统是典型的信息管理系统,其开发功能主要包括:通过计算机管理个人财务,实现无纸化理财;通过查询分析,统计出各项数据,分析出生活中的浪费和节约的地方,通过强大的查询和索检高效的索检出数据,提高办事效率。本系统主要有以下功能:(1)对家庭成员的管理。相关信息存在“peoplelist.txt”中,普通成员可以对自己的密码进行修改,家长在密码修改功能上的基础上可以添加或删除成员。(2)日常财务管理,包括日常收入和日常支出,即记下日常的收入和日常的支出。相关信息存入“thinglist.txt”中,均可以实现查询、添加、删除、修改功能。(3)理财分析,实现分类查询,即按类别查询收支明细。第2章 系统总
13、体设计 2.1 系统设计方法系统设计是对整个管理系统功能进行分析,并划分和构建系统功能模块。模块化程序设计就是把一个大程序按一个人能理解的规模进行分解的一种方法。模块化指的是把一个程序按功能分解成若干彼此具有一定独立性同时也具有一定联系的组成部分,这些组成部分称为模块。系统设计是本系统开发的重要阶段,它直接影响到目标系统的质量,是整个开发工作的核心。系统设计阶段的主要任务是:在系统分析提出的逻辑模型的基础上,科学合理地进行物理模型设计。本系统在设计过程中,充分考虑了系统的适应性和效率性,符合系统设计的原则。2.2 系统架构通过对家庭理财功能的分析,本系统分为系统登录界面,浏览成员财务信息,增加
14、新的家庭成员,查询成员收支信息,添加成员收支信息,修改成员收支信息,删除成员收支信息,收入支出项目管理界面,查询收支信息管理界面,查询明细界面,成员收支排行,更换家长,删除家庭成员信息,修改密码。系统结构设计如图1。家庭理财管理系统登录系统主界面浏览成员财务信息查询成员收支信息增加新的家庭成员删除家庭成员信息添加成员收支信息修改成员收支信息删除成员收支信息成员收支排行更换家长修改密码Peoplelist.txt Thinglist.txt图 1 系统结构设计2.3 系统功能模块细分根据上述系统总体架构思想的分析,可将系统分为以下三大部分,系统功能模块如图2。(1) 系统管理模块:负责对家长和成
15、员密码等进行管理;(2) 基础数据管理模块:负责对家庭成员和财务信息进行管理;(3)日常收支管理模块:负责对日常收入和支出进行管理。家庭理财管理系统系统管理基础数据管理收支管理更换家长退出查询、排序浏览收/支添加、修改、删除成员信息添加、修改、删除收入添加、修改、删除支出修改密码图 2 系统功能模块第3章 系统实现3.1 系统主界面用户进入系统时要输入正确的用户名和密码,系统从后台peoplelist.txt文件中检索是否有相对应的数据信息,若输入正确则进入主界面,否则提示错误,需重新输入。选择取消退出登陆系统。模块流程图如图3所示。开始退出失败用户登录进入系统图 3 模块流程图登录界面如图4
16、所示。图4 登录界面输入正确的用户名和密码登录,进入系统主界面,如图5示。图5 系统主界面3.2 系统管理模块进入系统主界面“增加新的家庭成员”、“更换家长”和“退出本菜单”四个选项,各选项界面如图6,7,8,9所示。图6 增加新成员界面相关代码:Carry_Data();printf(n 添加新成员nn);printf(n请输入新成员姓名:);scanf(%s,peopn.username);for(i = 0; i n; i+)/先判断将要添加的成员是否系统中已经存在了的成员if(strcmp(peopi.username, peopn.username) = 0)j = 0;break;
17、if(j = 0)printf(n该成员已存在。n);图7 更换家长界面图8 删除家庭成员界面if(k = 1)/k标记是指要删除的成员存在系统中 for(i = 0; i n; i+)if(strcmp(peopi.username, name) = 0) g = i;/ 用g保存序号p = 1; /当找到该成员的具体位置时用p标记break;if(p = 1)/由于我采用的结构体存储用户信息所以删除其中某个成员后,其后的成员要依次前移一位n = h-1;fp = fopen(peoplelist.txt, w); fprintf(fp, %dn, n); for(i = 0; i g; i
18、+)fprintf(fp, %s %s %sn, peopi.username, peopi.code, peopi.flag);for(i = g+1; i 请按以下顺序录入成员收支信息:n);printf(n请输入姓名:);scanf(%s,name);for(i = 0; i 请输入年份:);scanf(%d, &thim.year);printf(n请输入月份:);scanf(%d, &thim.month);for(i = 0; i m; i+)if(strcmp(peopi.username, name) = 0 & thii.year = thim.year & thii.mon
19、th = thim.month)printf(n已存在%d年%d月的收支信息。n录入失败。n, thim.year, thim.month); p = 0;break;图12 修改收支信息界面printf(n请输入需要修改的收支信息的具体时间:n年份 月份n);scanf(%d%d, &year, &month);for(i = 0; i m; i+)/如果时间信息不匹配则不能修改收支信息,防止无意修改信息 if(thii.year = year & thii.month = month)p = 1; break;if(p = 0)printf(n没有该时间的收支信息。nn修改失败。n);图1
20、3 删除收支信息界面第4章 系统的测试与维护4.1系统运行环境硬件:建议采用奔腾133以上的个人电脑,1G以上内存,40G以上的硬盘。软件:运行环境Red Hat Enterprise Linux 5操作系统。4.2系统测试4.2.1 系统登录测试输入错误的密码看系统能否进入本系统,重复多次。在口令中输入一些不规范的符号,看系统的处理方式。按正确的用户名和密码检查登录是否成功。4.2.2 数据保存测试根据程序的输入项输入,然后执行一次,如果成功,查看系统的状态。根据恢复的限制条件,测试其他用户正在使用时,数据库能否正常恢复,关闭其他正在使用的用户,数据库的恢复是否成功。4.2.3 系统功能测试
21、根据限制条件添加成员时,看系统的判断是否有效;增加和修改时,看是否能够更新成功;修改成员信息时,看成员编号及标记(Flag)是否被无意修改。新增加的成员分配家长权限后,查看该新家长成员是否具有家长应该有的操作权限,比如再新增用户,添加收支,修改,删除收支信息等。按照菜单提示,选择相应操作的数字,添加收支信息数据,查看有无错误;进行查看收支信息,修改收支信息,删除收支信息操作,看是否成功,收支信息数据添加后的结果是否准确。家长身份:修改密码,尝试更新后的密码是否可以再次登录,更换一下家长身份等普通成员身份:具有查询年度收支信息,查询其他成员收支信息,家庭成员收支排行,修改密码等。本程序中,添加的
22、收支信息或成员名字时不允许重复,输入信息格式必须与我们定义格式相符,不相符时提示输入错误操作不成功,完成每一个添加、修改、删除动作保存后文本文件”peoplelist.txt”及”thinglist.txt”文本文件中的数据会相应更新。4.3系统运行情况进入系统操作登陆界面后,输入正确的姓名,密码登陆系统。 如果是家长身份的成员登陆后,则出现如图14所示菜单:图14 家长身份登录界面选择功能简介 1.浏览成员财务信息根据系统提示,输入浏览信息的年份。系统会显示相应信息,如无则提示无该年的收支信息。 2.增加新的家庭成员根据系统提示,增加新的家庭成员。按照格式依次输入(姓名,密码,以及是否作为家
23、长) 3.查询成员收支信息根据系统提示,查询指定成员的收支信息。即显示相应信息。 4.添加成员收支信息根据系统提示,添加指定家庭成员收支信息。按照格式依次输入(姓名,年份,月份,收入,支出),如果指定时间的信息已经存在则提示录入失败。 5.修改成员收支信息根据系统提示,输入修改收支信息的成员姓名,以及要修改的年份,月份,更新后的数据。 6.删除成员收支信息根据系统提示,删除指定成员指定时间的收支信息。 7.成员收支排行榜根据系统提示,输入指定年份,月份,系统将自动显示所有家庭成员该时间段的收支信息,并按照总计由大到小排序。 8.更换家长根据系统提示,输入登录系统的家长姓名,以及用户想要更改为现
24、任家长的新成员姓名。 9.删除家庭成员系统自动显示当前系统中存在所有家庭成员姓名,家长按照需求输入要删除的成员姓名。 10.修改密码根据系统提示,输入需要修改密码的用户名,先判断是不是该用户知道的情况下,所以要先验证性的输入旧密码,待验证成功后则可以输入新的密码。 11.退出本菜单系统自动显示退出家长操作界面,并反馈给用户是否返回,或者退出系统如果是普通成员身份的成员登陆后,则出现如图15所示菜单: 图15 普通成员身份登录界面功能简介: 1.浏览成员财务信息根据系统提示,输入浏览信息的年份。系统会显示相应信息,如无则提示无该年的收支信息。 2.查询成员收支信息根据系统提示,查询指定成员的收支
25、信息。即显示相应信息。 3.家庭成员收支信息根据系统提示,查询指定年份,月份的收入支出信息。即显示按收入由大到小排序和按支出由大到小排序的两张表。 4.修改密码根据系统提示,输入需要修改密码的用户名,先判断是不是该用户知道的情况下,所以要先验证性的输入旧密码,待验证成功后则可以输入新的密码。 5.退出本菜单系统自动显示退出家长操作界面,并反馈给用户是否返回,或者退出系统。结束语经过近一个多月的系统分析和设计,我深刻体会到要做好一个完整的事情,需要有系统的思维方式和方法,对待一个新的问题,要耐心、要善于运用已有的资源来充实自己。同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步
26、之后再作下一步,这样对于系统而言才能更加有效。通过此次毕业论文的编撰,我不但对linux下GCC编译环境有了深刻的认识,积累了使用软件工程的思想来开发软件的经验,同时最重要的是摸索出了一套考虑问题和解决问题的方法,这对于我将来走上工作岗位受益匪浅。另外,在整个开发的过程中,本人一直都在坚持着。尽管本管理系统存在着一些瑕疵,但其功能全面、易于日后程序更新、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本家庭财务管理系统是家庭用户进行财务管理中必不可少的管理软件,通过开发这个系统,我掌握了C语言编程的各种应用技巧,大大增加了我对C 语言的熟悉程度,巩固了之前我对C 语言程序设
27、计的学习,但在这次毕业论文中的最大收获并不是掌握这些开发工具及语言的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。总之,家庭财务管理系统的设计为我提供了一个良好的学习的平台,提供了坏境和基础,因为毕业论文的编写,使我更加全身心投入到了整合所学各种知识,更能学以致用,这对我来说意义是非凡的。在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足,我将会一如既往的努力。参考文献 1鸟哥编著 鸟哥的Linux私房菜基础学习篇M .第二版.北京:人民邮电出版社,2007 162 Stephen Prata 云巅工作室译 .C Primer PlusM .北京:
28、人民邮电出版社,20053 2012.4.14John W.Satzinger 朱群雄 汪晓男等译 系统分析与设计M 北京:机械工程出版社,2002 905李春葆等著 .数据结构与算法M .北京:清华大学出版社, 20056 谭浩强著.C程序设计教程M.北京:清华大学出版社,2007.7.致谢非常感谢赵晋琴老师一直以来对我们的悉心指导,本文是在我的指导师赵晋琴老师的精心指导下完成的。无论在选题、确定研究内容,还是在研究过程中都凝聚了赵老师的辛勤与汗水。导师渊博的知识、活跃的学术思想、严谨求实的治学态度、丰富的教学经验、敏锐的科学前瞻性使我受益很多,赵老师的谆谆教海和精心指导将使我永生难忘。赵晋
29、琴老师教导我们学习的同时还指导我们正确的工作态度和方法,从他身上我们每个组员都可以感受到一个真正科学工作者的一丝不苟,这对我们一生都受益匪浅。在此我要向赵晋琴老师表示最诚挚的敬意和谢意。附录*家庭财务管理系统*作者: DaHai 时间:2012/4/2#include #include #define MAXSIZE 100 /定义家庭成员人数#define MAXINFOR 10000 /定义收支信息容量struct people /家庭成员登录信息结构char username200; /用户名(也是姓名) char code200; /密码char flag200; /标志 0为普通成员
30、,1为家长 peopMAXSIZE;struct thing /成员收支信息结构char name30; /姓名int year; /年份int month; /月份int income; /收入int output; /支出thiMAXINFOR;int Write_Save();/将数据写进文件中int Carry_Data();/将数据从文件中读出int Init_Master();/初始化家长int Add_People();/增加新的家庭成员int Add_Thing();/录入成员收支信息int Dele_People();/删除家庭成员int Dele_Thing();/删除家庭
31、成员收支信息int Change_Thing();/修改收支信息int Change_Host();/更换家长int Browse_Peop();/浏览家庭成员信息int Find_Info();/查询某个成员收支信息int Change_Code();/修改密码int Month_Rank();/月度收支排行榜int Over();/系统退出界面int Parent_Choose(); /家长选择功能int Rank_Choose(); /普通成员选择功能void Parent_Menu(); /家长登陆菜单void Rank_Menu(); /普通成员登陆菜单void Parent_Log
32、in_Init();/家长登录初始化void Rank_Login_Init(); /普通成员登陆初始化void Login();/成员登录并判断是家长或者是普通成员/*全局变量 n为文件中家庭成员实际容量 m为文件中收支信息实际容量*/int n = 0 ,m = 0; /*主函数*/int main() Login();/*保存信息到文件*/int Write_Save() FILE *fp;int i;fp = fopen(peoplelist.txt,w+);fprintf(fp,%dn,n);for(i = 0;i n; i+)fprintf(fp,%s %s %sn,peopi.u
33、sername, peopi.code, peopi.flag);fclose(fp);fp = fopen(thinglist.txt,w+);fprintf(fp, %dn, m);for(i = 0;i m; i+)fprintf(fp, %s %d %d %d %dn, thii.name,thii.year, thii.month, thii.income,thii.output);fclose(fp);return 0;/*将数据从文件中读出*/int Carry_Data() /将数据从文件中读出FILE *fp;int i;if(fp = fopen(peoplelist.tx
34、t,r) != NULL)fscanf(fp,%dn, &n);for(i = 0;i n;i+)fscanf(fp,%s%s%sn,peopi.username, peopi.code, peopi.flag);fclose(fp);if(fp = fopen(thinglist.txt,r) != NULL)fscanf(fp, %dn, &m);for(i = 0; i 请输入新成员姓名:);scanf(%s,peopn.username);for(i = 0; i 请输入新成员密码:);scanf(%s, peopn.code);printf(nn新成员是否作为家长(是输入1,否输入0
35、):);scanf(%s, peopn.flag); if(strcmp(peopn.flag,1) != 0 & strcmp(peopn.flag,0) != 0) printf(n输入格式错误,请重新输入1或者0 !);for(i = 0; strcmp(peopn.flag,1) != 0 & strcmp(peopn.flag,0) != 0; i+)if(i != 0)printf(n输入格式错误,请重新输入1或者0 !);printf(nn新成员是否作为家长(是请输入1,否输入0):);scanf(%s,peopn.flag);if(strcmp(peopn.flag,1) =
36、0) printf(n添加新家长成功!n);elseprintf(n添加新普通成员成功!n);n+;Write_Save(); return 0;/*录入成员收支信息*/int Add_Thing()int k = 3, i, p = 1;char name200, ch;Carry_Data(); printf(n 录入收支信息nn请按以下顺序录入成员收支信息:n);printf(n请输入姓名:);scanf(%s,name);for(i = 0; i 请输入年份:);scanf(%d, &thim.year);printf(n请输入月份:);scanf(%d, &thim.month);f
37、or(i = 0; i 请输入收入(元):);scanf(%d, &thim.income);printf(n请输入支出(元):);scanf(%d, &thim.output);m+;printf(n录入成功!n);Write_Save();return 0;/*删除家庭成员*/int Dele_People()FILE *fp;char name20;int i, k, g, h, p = 0;printf(n 删除家庭成员nn);printf(下面是目前系统中存在的所有用户:n);for(i = 0; i 请输入要删除的家庭成员姓名:);scanf(%s, name);Carry_Data();h = n;for(i = 0; i n; i+) if(strcmp(peopi.username, name) = 0) k = 1; break; if(i = n)k = 0;if(k = 0)printf(n不存在该成员。n);if(k = 1) for(i = 0; i n; i+)if(strcmp(peopi.username, name) = 0) g = i;p = 1;break;if(p = 1)n = h-1;
限制150内