《软件技术基础》课程设计中南民族大学计算机科学学院专业:自动化类仅限个人参考使用,更多文档请认准:朦胧星8881活期储蓄账目管理一目的满足活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求。①能比较迅速地找到储户的帐户进而显示储户信息,以实现存款、取款记账;②能比较简单,迅速地实现插入和删除,以实现开户和销户的需要;③熟练使用C语言编写程序,解决实际问题;学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。二需求分析1、数据需求1.需先进行储户开户才可进行之后的所有的操作。2.开户时需要的数据有姓名、身份证号码、联系电话、密码、账号会自动生成。3.销户时,需用输入账号与密码(两者都正确后)方可销户;存取款时,也需进行账号及密码验证后方可进行交易。2、基本功能需求基本的功能有新建储户(开户)、删除储户(销户)、存取款、查询储户信息(此步也可看见交易后的信息)、显示所有储户信息。3、非功能性需求系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。三概要设计1、数据结构设计用结构体来定义其数据类型,然后将数据按照该数据结构存储,之后运用文件的相关知识将更改的数据写入文件中,采用数组类型的存储结构。2、储存结构体设计本系统主要用线性表表结构类型来存储在“活期储蓄账目管理系统”中的信息。其中,结构体由5个分量构成:用户账号、用户姓名、用户身份证号码、用户密码、开户金额。3、模块设计《软件技术基础》课程设计中南民族大学计算机科学学院专业:自动化类仅限个人参考使用,更多文档请认准:朦胧星8882voidadd()函数实现新建储户功能voidselect_id()函数实现查询储户信息功能voiddisplay()函数实现显示所有储户信息功能voiddel()函数实现删除储户功能voidsave_money()函数实现存款功能voidget_money()函数实现取款功能voidprint()函数用于显示菜单voidmain()函数用于实现菜单中的功能四详细设计1、结构体的详细定义structuser//用户类型(账号,姓名,身份证号,存款){intid;charname[20];活期储蓄账目管理显示菜单选择功能1.新建储户2.查询储户信息3.显示所有储户信息4.删除储户5.存款6.取款7.退出账目管理。《软件技术基础》课程设计中南民族大学计算机科学学院专业:自动化类仅限个人参考使用,更多文档请认准:朦胧星8883charperson_num[19];charpassword[6];doublemoney;};2、系统函数详细介绍voidadd()函数实现新建储户功能voidadd()//添加用户{printf(%45s\n,***新建储户***);printf(--------------------------------------------------------------------------------\n\n);structusergetuser();structusertemp;intcount();//函数目的:计算文件中的记录数目以生成自动账号FILE*fp;intnumber;if((fp=fopen(file,ab))==NULL){printf(Cannotopenfile!\n);exit(1);}temp=getuser();//读取用户名number=count();temp.id=number+1;//生成自动账号fwrite(&temp,sizeof(structuser),1,fp);printf(添加用户成功!\n);fclose(fp);}voidselect_id()函数实现查询储户信息功能voidselect_id()//查询储户信息《软件技术基础》课程设计中南民族大学计算机科学学院专业:自动化类仅限个人参考使用,更多文档请认准:朦胧星8884{intcount();voidgetpassword(char*password);printf(%45s\n,***查询储户信息***);printf(--------------------------------------------------------------------------------\n);printf(%s%15s%15s%15s\n,编号,用户姓名,身份证号码,存款余额);printf(--------------------------------------------------------------------------------\n\n);FILE*fp;structusertemp;inti,maxnum;charpassword[8];boolflag=false;if((fp=fopen(file,rb))==NULL){printf(cannotopenfile!\n);exit(1);}maxnum=count();printf(输入要查询账号:);scanf(%d,&i);if(ii||imaxnum){printf(你要查询的账号不存在!);return;}《软件技术基础》课程设计中南民族大学计算机科学学院专业:自动化类仅限个人参考使用,更多文档请认准:朦胧星8885printf(输入账号密码:);scanf(%s,&password);while(fread(&temp,sizeof(structuser),1,fp))//循环读取每一条记录判断是否为要查看的记录{if(temp.id==i&&strcmp(temp.password,password)==0){printf(NO.%d%8s%25s%.2f\n,temp.id,temp.name,temp.person_num,temp.money);flag=true;break;}}if(flag==false)//判断密码是否正确{printf(您输入的密码不正确!\n);return;}fclose(fp);}voiddisplay()函数实现显示所有储户信息功能voiddisplay()//显示所有储户信息{printf(%45s\n,***显示所有储户信息***);printf(--------------------------------------------------------------------------------\n);printf(%s%15s%15s%15s\n,账号,用户姓名,身份证号码,存款余额);printf(--------------------------------------------------------------------------------\n);《软件技术基础》课程设计中南民族大学计算机科学学院专业:自动化类仅限个人参考使用,更多文档请认准:朦胧星8886FILE*fp;structusertemp;if((fp=fopen(file,rb))==NULL){printf(cannotopenfile!\n);exit(1);}while(fread(&temp,sizeof(structuser),1,fp)){printf(NO.%d%10s%23s%.2f\n,temp.id,temp.name,temp.person_num,temp.money);}fclose(fp);}voiddel()函数实现删除储户功能voiddel()//删除储户{printf(%45s\n,***删除储户***);printf(--------------------------------------------------------------------------------\n);printf(%s%15s%15s%10s\n,账号,用户姓名,身份证号码,存款余额);printf(--------------------------------------------------------------------------------\n);intcount();voidgetname(char*name);voidgetperson_num(char*person_num);voidgetpassword(char*password);《软件技术基础》课程设计中南民族大学计算机科学学院专业:自动化类仅限个人参考使用,更多文档请认准:朦胧星8887FILE*fp;inti,num,mark;charpassword[6];boolflag=false;structuser*temp;num=count();//根据记录数申请空间temp=(structuser*)malloc(num*sizeof(structuser));if((fp=fopen(file,rb))==NULL){printf(cannotopenfile!\n);exit(1);}for(i=0;inum;i++)//读取文件内容fread(&temp[i],sizeof(structuser),1,fp);fclose(fp);printf(输入要需要注销的账号:);scanf(%d,&mark);if(imark||marknum){printf(你要注销的账号不存在!);return;}printf(输入账号密码:);scanf(%s,&password);《软件技术基础》课程设计中南民族大学计算机科学学院专业:自动化类仅限个人参考使用,更多文档请认准:朦胧星8888if((fp=fopen(file,wb))==NULL)//写方式打开文件,覆盖原文件中的内容{printf(cannotopenfile!\n);exit(1);}for(i=0;inum;i++)//无效账户信息全部置为0{if(temp[i].id==mark&&strcmp(temp[i].password,password)==0&&temp[i].money==0.00){strcpy(temp[i].person_num,0);strcpy(temp[i].name,0);strcpy(temp[i].password,0);flag=true;}fwrite(&temp[i],sizeof(structuser),1,fp);}fclose(fp);free(temp);if(flag==false){printf(您输入的密码不正确或是余额不为零!\n);}elseprintf(储户注销成功!\n);}《软件技术基础》课程设计中南民族大学计算机科学学院专业:自动化类仅限个人参考使用,更多文档请认准:朦胧星8889voidsave_money()函数实现存款功能voidsave_money()//函数功能:存款{printf(%45s\n,***用户存款业务***);printf(--------------------------------------------------------------------------------\n\n);intcount();voidgetpassword(char*password);FILE*fp;inti,num,mark;boolflag=false;structuser*temp;charpassword[6];num=count();temp=(structuser*)malloc(num*sizeof(structuser));//根据记录数申请空间if((fp=fopen(file,rb))==NULL){printf(cannotopenfile!\n);exit(1);}for(i=0;inum;i++)//将文件内容存入数组fread(&temp[i],sizeof(structuser),1,fp);fc