c++设计报告最终成品.docx
《c++设计报告最终成品.docx》由会员分享,可在线阅读,更多相关《c++设计报告最终成品.docx(47页珍藏版)》请在冰豆网上搜索。
![c++设计报告最终成品.docx](https://file1.bdocx.com/fileroot1/2023-1/21/01c04da1-3715-4bbe-a52f-af05659aa85a/01c04da1-3715-4bbe-a52f-af05659aa85a1.gif)
c++设计报告最终成品
1设计内容、任务及基本要求
1、1设计内容
1、2设计任务
1、3设计基本要求
2总体设计思路
2、1系统功能
2、2各个模块之间的主要关系
2、3总体程序框图
2、4系统的总体流程图
3功能模块的具体设计
3、1main()函数模块
3、2银行账户与密码信息函数模块
3、3储户身份证验证
3、4进入服务主页函数
3、5选择服务种类
3、6退出服务程序,结束
4功能模块的调试与测试
4、1主菜单运行界面
4、2查询服务项目选择模块运行界面
4、3查找用户信息模块运行界面
4、4开户信息模块运行界面
4、5销户信息模块运行界面
4、6结束服务模块信息运行界面
5总结
6程序清单
1、设计内容、任务以及基本要求
1、1设计内容
主要利用c语言的文件操作能力设计开发一个小型的银行储蓄模拟系统,至少具有如下功能:
查询所有储户的信息,通过输入账号、密码来完成查询某一位储户的信息,开户信息、挂失信息、注销信息以及利用储户账号密码实现存取款、转账等一系列的银行业务。
操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。
1.2设计任务
要求:
明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作与绘图应用的编程技术水平;初步了解软件开发的一般方法与步骤;提高撰写技术文档的能力。
掌握模块化编程的基本方法与步骤;巩固与加深学生对C语言课程基本知识的理解与掌握,培养学生利用C语言进行软件操作的能力与技巧。
帮助学生更好地理解与学习C语言。
1、3基本要求
(1)通过提示菜单选择可以进行的操作。
(2)将储户个人的信息存入文件中,并命名为stdio、h。
(3)将存储情况的信息存入文件中,并命名为stdlib、h。
(4)将查询业务的信息存入文件中,并命名为string、h。
(5)在本系统中可以进行管理系统包含的基本操作,其中包括
a)显示所有账户,查询所有储户的基本信息。
b)查询余额,输入账号密码即可显示出该储户的账户余额。
c)存取款管理。
输入储户正确的账号密码即可办理存款或取款业务,如果取款额大于账户余额,则提示该账户余额不足。
d)注销一位用户的基本信息,通过输入该用户的账号密码,首先查找就是否存在该用户的账户信息,如果存在则将该用户信息删除,否则给出提示信息,提示重新输入或者退出此程序,回到主页面。
e)转账。
首先必须输入该储户的账号密码,输入正确后方可输入对方账号与转账金额,才能完成转账,如果余额不足,系统会给出相应的提示。
(6)储户个人信息包括账号、密码、姓名、身份证号、储种、电话、地址、开户日期。
(7)储户个人信息文件中每一行存放一位储户的信息。
(8)将显示存储信息文件中的每一位储户的账户余额。
2总体设计思路
2、1系统功能
银行储蓄管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。
此程序包含了开户人信息的录入、储户信息的浏览、储户的的注销与挂失、余款查询、存取款、转账等。
通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。
1、开户:
根据系统提示依次正确的填写账号、密码、本人正确的信息等。
2、显示所有账户:
将所有账户信息包括账号、姓名、储种、余额、开户日期、等显示在屏幕上
3、存款:
通过输入账号密码来确认账户就是否存在,然后输入存款金额,如果显示账户与密码不匹配,请选择继续输入或者退出,如果三次都未正确的输入账号密码,则强制退出。
4、查询余额:
通过输入储户的账户密码,查瞧该储户的账户余额。
5、取款:
通过输入账号密码判断账户就是否存在,然后再输入所需金额,所取金额必须小于等于该账户现余额。
6、转账:
通过输入账号密码判断账户就是否存在,然后再输入对方的账号,完成后方可输入转账金额,次金额必须小于等于该账户现余额。
7、修改密码:
通过输入旧账号密码,判断此账户就是否存在,存在即可输入新密码,若不存在则提示用户重新输入。
8、挂失:
如若银行卡丢失,通过输入账号密码挂失,锁定该账户。
9、销户:
通过输入账号密码撤销账户。
10、撤销挂失:
通过输入账号密码撤销因损坏、丢失等原因所挂失的账户。
11、查瞧储户个人信息:
通过输入账号密码完成个人账户信息的查找,并在屏幕上显示。
12、查瞧利率表:
通过输入相应的序号查询相关的利息。
13、储户须知:
通过输入相应的序号查询相关的信息
14、帮助:
通过输入相应的序号查询相关信息
1、退出程序:
返回主页面。
注:
账号密码的输入只有三次机会,否则强制返回到主菜单。
2、2各个模块之间的主要关系
银行储蓄管理系统可划分为8个模块:
开户模块、存款模块、取款模块、转账模块、余额查询模块、挂失模块、销户模块、储户个人信息模块、储户须知模块。
各模块之间均有着或多或少的联系,比如:
通过查询余额可以知道存入金额的数目,然后再进行其它操作。
理解了各模块之间的主要关系有利于程序的设计与完成,使程序的层次结构清晰,便于程序的编写、阅读与调试。
2、3总体程序框图
2、4系统的总体流程图
3功能模块的具体设计
3、1main()函数模块
根据图银行信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。
在主函数中定义全局变量,即就是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。
通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。
运用scanf语句在主函数中将文件中的内容赋给结构体变量,便于在自定义函数中对结构体的调用。
具体如下:
在structchuhu//储户结构信息
{
charidnum[11];//帐号
charpassword[7];//密码
charname[11];//储户姓名
charidnumber[19];//储户身份证号码
doublecunkuan;//存款金额
doublelixi;//利息
doubleyu;//余额intlei;//储种
charaddress[51];//储户地址
charTel[15];//储户的联系电话
charkhdate[40];//开户日期
intg;//就是否挂失(0为未,1为已)
}hu[N];
//储户结构数组
voidwang();//显示“※物联网25小组制作※”的函数
intyanzheng();//验证帐号与密码并核查该帐号就是否挂失的函数
voidli();//计算利息的函数
voiddate();//显示当前日期与时间
voidinsert();//开户函数
voiddisplay();//显示所有帐户信息的函数
voidin(int);//存款函数
voidfind(int);//查询余额函数
voidout(int);//取款函数
voidzhuan(int);//转帐函数
voidchangepwd(int);//修改密码的函数
voidguashi(int);//挂失函数
voiddel(int);//销户函数
voidlilvbiao();//查瞧利率表
voidcxgs();//撤消挂失的函数
voidgrxx(int);//查瞧个人信息的函数
voidhelp();//储户须知函数
voidbangzhu();//帮助
inti,j,k,A=0,B=0;//i,j控制循环,id为帐号,A、B分别为开户数与销户数
doublejin;//存款、取款或转帐金额
charch='y';//控制就是否继续的变量
charid[11],password[7];
voidmain()//输出主菜单
{
主函数中定义一个用户存储的结构体通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。
switch(a)
{
case1:
insert();
break;
case2:
display();
break;
case3:
b=yanzheng();
in(b);
break;
case4:
b=yanzheng();
find(b);
break;
case5:
b=yanzheng();
out(b);
break;
case6:
b=yanzheng();
zhuan(b);
break;
case7:
b=yanzheng();
changepwd(b);
break;
case8:
b=yanzheng();
guashi(b);
break;
case9:
b=yanzheng();
del(b);
break;
case10:
cxgs();
break;
case11:
b=yanzheng();
grxx(b);
break;
case12:
lilvbiao();
break;
case13:
help();
break;
case14:
bangzhu();
break;
case0:
system("cls");
system("colorf1");
date();
3、2银行账户与密码信息函数模块
viodinsert()
通过if语句将所有的储户服务选项显示在桌面上。
运用for语句、do…while与printf()实现银行系统的输出显示。
3.3储户身份验证函数模块
charidnum[11];//帐号
charpassword[7];//密码
charname[11];//储户姓名
charidnumber[19];//储户身份证号码
doublecunkuan;//存款金额
doublelixi;//利息
doubleyu;//余额
intlei;//储种
charaddress[51];//储户地址
charTel[15];//储户的联系电话
charkhdate[40];//开户日期
intg;
关键代码:
strcmp(比较字符串)case…、break(判断)printf(输出信息)switch(实现选择功能分支)
3、4进入服务主页函数
system("cls");
system("color57");
date();
输入账号密码方可进入主菜单,由于所需的信息必须通过相应的序号才能了解,所以需要运用case语句与switch()函数选出所需要的办理的业务。
其主要流程图如下:
关键代码:
printf(输出信息)
scanf(输入信息)
switch(实现多分支结构程序设计)
case-break(实现功能的选择)
3、5选择服务种类函数模块
printf("请选择功能(0-14):
→");
fflush(stdin);
scanf("%d",&a);
switch(a)//选择功能
{
用户输入所需要服务项目的编号,服务完成后将提示谢谢使用。
输入服务项目
进入服务系统
谢谢使用
完成
给出相应的提示就是否继续
结束
开始
关键代码:
strcmp(比较两个字符串的大小)
switch(实现多分支结构程序设计)
case(条件选择)
3、6退出服务程序模块
printf("您真的要退出不(y/n)?
");
fflush(stdin);
scanf("%c",&ch);
system("cls");
break;
default:
system("cls");
printf("\n\n\t您的输入有误,请正确选择功能!
!
!
……");
break;
用户先进行身份验证,调用函数查找服务项目主页,完成一项服务后,若继续其它服务种类,则返回服务页面选择服务种类继续进行新的服务。
关键代码:
if-else(实现分支选择)
getchar(从键盘上输入一个字符)
strcmp(比较两个字符串的大小)
4功能模块的调试及测试
4、1主菜单运行界面
图4、1主页面运行界面图
4、2查询服务项目模块运行界面
输入登录账户与用户密码,然后回车键进入服务主页面
4、3查找用户信息模块运行界面
输入序号2然后回车键进入显示所有账户界面
4、3显示所有用户运行界面图
4、3-1查瞧储户个人信息运行界面图
4、4开户信息模块运行界面
4、4开户运行界面图
4、5销户信息模块运行界面
4、5销户运行界面图
4、6结束服务模块信息运行界面
4、6结束运行界面图
总结
在为期近两周的C++课程设计中,我体会颇多,学到了很多东西。
我加强了对C++程序设计这门课程的认识,并且复习了自己以前学习到的知识。
这些都使得我对计算机语言的学习有了更深入的认识!
总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习与工作带来很大的好处。
锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的能力,进一步培养了独立思考问题与解决问题的能力。
特别就是学会了在Visual C++中如何调试程序的方法。
当然,两位老师的指导帮助也就是不可忽视的,她们给了我许多提示与帮助,教会了我编译复杂程序的方法。
在老师帮助下,通过自己的努力,终于完成了这次课程设计。
我经过这段时间的编程,对其中的艰辛,我就是深有体会。
从刚开始的选择程序、理解程序到后来的调试程序以及改进程序这个过程中,我遇到了各种各样的困难与挫折。
但就是我坚定信念,对自己充满了信心,想尽一切办法克服重重困难。
通过课程设计的训练,我进一步学习与掌握了对程序的设计与编写,从中体会到了面向对象程序设计的方便与巧妙。
懂得了在进行编写一个程序之前,要有明确的目标与整体的设计思想。
另外某些具体的细节内容也就是相当的重要。
这些宝贵的编程思想与从中摸索到的经验都就是在编程的过程中获得的宝贵财富。
这些经验对我以后的编程会有很大的帮助的,我要好好利用。
虽然这次课程设计就是在参考程序的基础之上进行的,但就是我觉得对自己就是一个挑战与锻炼。
我很欣慰自己能在程序中加入自己的想法与有关程序内容,也就就是对它的程序改进了一番改进,并有创新。
但就是我感觉自己的创新还不够典型,总之还不就是很满意。
另外由于时间的紧迫与对知识的了解不够广泛,造成了系统中还存在许多不足,功能上还不够完善。
以后我会继续努力,大胆创新,争取能编写出透射着自己思想的程序。
这次课程设计让我充分认识到了自己的不足,认识到了动手能力的重要性。
我会在以后的学习中更加努力锻炼自己,提高自己,让自己写出更好更完善的程序,为以后的编程打好基础!
总而言之,这次C++程序设计实践让我收获很大。
程序清单:
#include
#include
#include
#include
#defineN10000
structchuhu//储户结构信息
{
charidnum[11];//帐号
charpassword[7];//密码
charname[11];//储户姓名
charidnumber[19];//储户身份证号码
doublecunkuan;//存款金额
doublelixi;//利息
doubleyu;//余额
intlei;//储种
charaddress[51];//储户地址
charTel[15];//储户的联系电话
charkhdate[40];//开户日期
intg;//就是否挂失(0为未,1为已)
}hu[N];
//储户结构数组
voidwang();//显示“※物联网25小组制作※”的函数
intyanzheng();//验证帐号与密码并核查该帐号就是否挂失的函数
voidli();//计算利息的函数
voiddate();//显示当前日期与时间
voidinsert();//开户函数
voiddisplay();//显示所有帐户信息的函数
voidin(int);//存款函数
voidfind(int);//查询余额函数
voidout(int);//取款函数
voidzhuan(int);//转帐函数
voidchangepwd(int);//修改密码的函数
voidguashi(int);//挂失函数
voiddel(int);//销户函数
voidlilvbiao();//查瞧利率表
voidcxgs();//撤消挂失的函数
voidgrxx(int);//查瞧个人信息的函数
voidhelp();//储户须知函数
voidbangzhu();//帮助
inti,j,k,A=0,B=0;//i,j控制循环,id为帐号,A、B分别为开户数与销户数
doublejin;//存款、取款或转帐金额
charch='y';//控制就是否继续的变量
charid[11],password[7];
voidmain()//输出主菜单
{
inta,b;//选择功能的变量
chardlzh[11],pword[7];
system("color79");
date();
printf("\n\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("\t\t※※\n");//界面1
printf("\t\t※※\n");
printf("\t\t※银行储蓄管理模拟系统※\n");
printf("\t\t※※\n");
printf("\t\t※※\n");
printf("\t\t※物联网25小组制作※\n");
printf("\t\t※※\n");
printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n\n");
wang();
printf("按ENTER键进入下一界面。
。
。
→");
fflush(stdin);
scanf("%c",&ch);
do{
system("cls");
system("colorf3");
date();
printf("\n\n\n\t\t\t");
for(i=0;i<10000000;i++)
{
if(i%340000==0)
printf(">");
}
printf("\t\t\n");//界面2
printf("\t\t欢迎使用本系统!
!
!
\n");
printf("\n\n\t\t请输入您的登陆帐号:
");
fflush(stdin);
gets(dlzh);
printf("\n\n\t\t请输入您的密码:
");
for(i=0;i<6;i++)
{
fflush(stdin);
pword[i]=getch();
printf("*");
}
pword[6]='\0';
fflush(stdin);
scanf("%c",&ch);
printf("\t\t\n");
printf("\t\t※物联网25小组※\n");
printf("\n\t\t\t");
for(i=0;i<10000000;i++)
{
if(i%340000==0)
printf(">");
}
if(strcmp(dlzh,"wulianwang")!
=0||strcmp("123456",pword)!
=0)
{
printf("\n\n\t\t您输入的登陆帐号或密码不正确,请重新输入:
\n\n");
printf("\t\t按ENTER键进入重新输入界面。
。
。
→");
fflush(stdin);
scanf("%c",&ch);
}
}while(strcmp(dlzh,"wulianwang")!
=0||strcmp("123456",pword)!
=0);
do{
wang();
printf("\n\n按ENTER键进入/返回主菜单→:
");
fflush(stdin);
scanf("%c",&ch);
system("cls");//清屏
system("color57");
date();
printf("\t\t\t主菜单\n\n");
printf("\t\t★★★★★★★★★★★★★★★★★★★★★★\n");//主菜单界面(界面3)
printf("\t\t● ●\n");
printf("\t\t● ◆1、开户●\n");
printf("\t\t● ◆2、显示所有帐户●\n");
printf("\t\t● ◆3、存款●\n");
printf("\t\t● ◆4、查询余额●\n");
printf("\t\t● ◆5、取款●\n");
printf("\t\t● ◆6、转帐●\n");
printf("\t\t● ◆7、修改密码●\n");
printf("\t\t● ◆8、挂失●\n");
printf("\t\t● ◆9、销户●\n");
printf("\t\t● ◆10、撤消挂失●\n");
printf("\t\t● ◆11、查瞧储户个人信息●\n");
printf("\t\t● ◆12、查瞧利率表●\n");
printf("\t\t● ◆13、储户须知●\n");
printf("\t\t● ◆14、帮助●\n");
printf("\t\t● ◆0、退出程序●\n");
printf("\t\t● ●\n");
printf("\t\t★★★★★★★★★★★★★★★★★★★★★★");
wang();
printf("请选择功能(0-14):
→");
fflush(stdin);
scanf("%d",&a);
switch(a)//选择功能
{
case1:
//选择功能后调用相应的函数
insert();
break;
case2:
display();
break;
case3: