C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx

上传人:b****2 文档编号:361720 上传时间:2023-04-28 格式:DOCX 页数:26 大小:395.58KB
下载 相关 举报
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第1页
第1页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第2页
第2页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第3页
第3页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第4页
第4页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第5页
第5页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第6页
第6页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第7页
第7页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第8页
第8页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第9页
第9页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第10页
第10页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第11页
第11页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第12页
第12页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第13页
第13页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第14页
第14页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第15页
第15页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第16页
第16页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第17页
第17页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第18页
第18页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第19页
第19页 / 共26页
C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx

《C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx(26页珍藏版)》请在冰点文库上搜索。

C语言课程设计报告银行账户信息管理系统更正版Word文件下载.docx

设计一程序,完成以下功能。

存、取款时间必须通过调用系统时间获得。

1)存款:

输入客户编号、存款金额、存款日期,完成存款功能,需要判断客户编号是否存在,存款金额是否大于0,存款日期格式是否合法(格式为:

YYYY-MM-DD,如2009-01-02))。

2)取款:

输入客户编号、存款金额、取款日期,完成取款功能,需要判断客户编号是否存在,取款金额是否大于0,取款金额是否小于客户的账户总金额,取款日期格式是否合法(格式为:

3)查询指定客户的余额

4)查询指定客户的存款记录

5)查询指定客户的取款记录

6)所有数据符合实际应用要求

运行环境

1)Windows7系统

2)VC++编译环境

开发工具

C语言

3.总体设计

系统流设计

程序整体功能结构如图一所示:

系统模块设计

1)系统初始化模块函数voidstartvalue();

实现初始化欢迎信息,并实现值得初始化。

2)菜单模块函数intmenu();

和intmenu2();

分别实现一级二级菜单显示,一级菜单是主菜单,二级菜单是输入菜单,并返回相应的选项值。

3)存取款模块函数voidDeposit_Withdraw();

实现存取款的功能,其中会使用相关其他函数共同实现。

4)信息查询模块函数intInfoFind();

实现信息的查询功能,包括账户余额查询,存取款历史记录查询。

5)日期审查模块函数intisDataRight();

实现对日期的审查,其中同样会调用其他函数辅助实现。

4.详细设计

数据结构设计

根据系统要求,用户信息包括:

数据项名称

数据项系统表示

数据类型

数据长度

备注

客户编号

P1->

id

整型

8

客户姓名

name

字符串

10

客户地址

address

1024

客户电话

telnum

账户余额

account

双精度

16

账户密码

password

根据系统要求,日期信息包括:

year

month

day

hour

系统自动添加

min

sec

根据系统要求,存取款记录包括:

日期信息

InOutData

结构体

48

存取款类型

ActionClass

存取款金额

ActionNum

为了能实现系统的优越性和c语言的精华采用链表的建立取款记录表,示意图如下。

模块接口设计

1)所有函数声明

行结果

欢迎界面

主菜单

次菜单-信息输入界面

信息查询界面

记录查询界面

退出界面

6.程序调试与测试

测试数据:

1

唐僧

东土大唐

1000000

8888888

2

孙悟空

花果山

100000

3

猪八戒

高老庄

10000

4

沙和尚

流沙河

1000

5

佛祖

西天

主菜单选择测试

若用户输入错误选项,则如图显示:

次菜单选择测试

客户信息的输入测试

1)若输入了不存在的客户编号:

2)若输入了不存在的客户姓名:

3)若输入了不存在的客户地址:

4)若输入了不存在的客户电话:

客户密码测试

1)密码输入错误:

2)密码错误三次:

存取款金额测试

1)金额为负值:

2)取款金额大于账户余额:

存取款日期测试

1)若输入错误格式的日期:

2)若输入正确格式的日期,但是日期不符合实际:

7.问题与不足

1、需求分析中存在的为题

题目中说只有5个用户,而且没有对账户信息进行修改等操作,如果对账户信息的增删改三个功能,程序会更加完美。

2、程序设计中的缺陷

存取款的时候,给系统添加记录的时候,会同时进行排序,排序方法用的是排序,排序方法比较简陋,数据量较大的时候会比较耗时间。

8.建议

课程设计的题目涉及范围应该更广。

对于课设的时间按排,可以提前把题目给学生,这样可以提前做课设以及复习考试。

程序设计的功能应相对更加复杂一点,这样有利培养同学们的分析问题,解决问题的能力,同时也能提高同学们对代码的掌握能力。

再者,就是题目,尽量少给一些提示,这样同学们可以更大程度的自己动脑子考虑怎解决问题。

9.编程体会

经历了编c语言课程设计后,我弄懂了在前几周课堂上没搞明白的东西,例如,链表的建立,排序,遍历等等。

也提高了自己对指针的熟练度。

以前就听说对指针的掌握程度决定了一个人的编程水平。

所以,虽然写程序的过程中,遇到各种问题,调试的时候也是遇到各种令人头大的问题,但能借助课程设计提高自己对指针的熟练度,提高自己对c语言编程的熟练度,我还是觉得很开心的,也希望学校可以多开设一些这样的课程,既是让我们对自己所学知识的一个综合理解与使用,也可以提高我们的动手实践能力、对知识的运用能力。

10.程序源代码

/*

*************************************

*简易银行信息管理系统*

*作者:

朱鹏*

*指导老师:

张吴波田漫柳*

*/

/**************************************头文件**************************************/

#include<

>

#defineLENsizeof(structrecords)

/**************************************记录修改标记************************************/

intRecorsChanged=0;

FILE*fp;

/**************************************日期结构体**************************************/

typedefstructdata

{

intyear;

intmonth;

intday;

inthour;

intmin;

intsec;

}USEDATA;

USEDATARightData;

/**************************************客户信息结构体**************************************/

typedefstructcustom

intid;

charname[10];

charaddress[1024];

inttelnum;

doubleaccount;

intpassword;

}CUSTOM;

CUSTOMcustomer[5];

/**************************************存取款记录链表**************************************/

typedefstructrecords

USEDATAInOutData;

intActionClass;

doubleActionNum;

structrecords*next;

}RECORDS;

;

}

system("

cls"

);

gotostart;

}

printf("

\t\t\t亲~恭喜哦!

初始化成功了哦~\n"

\t\t\t按任意键进入系统了哦~~"

getch();

fflush(stdin);

return;

}

/**************************************头部信息**************************************/

/*

功能:

显示程序头部信息

输入:

返回:

voidSysTitle()

system("

title简易银行信息管理系统By朱鹏"

\n\n"

\t\t▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n"

\t\t▉※※※※※※※※欢迎使用※※※※※※※※▉\n"

\t\t▉※※※※※简易银行信息管理系统※※※※※▉\n"

\t\t▉※※※※※※※※※※※※※※※※※※※※▉\n"

/**************************************一级菜单**************************************/

显示主菜单,并完成菜单的选择

选择的菜单序号[整型]

intmenu()

intx;

SysTitle();

\t\t▉▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▉\n"

\t\t▉主菜单▉\n"

\t\t▉▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▉\n"

\t\t▉▉\n"

\t\t▉1、存款▉\n"

\t\t▉2、取款▉\n"

\t\t▉3、查询余额▉\n"

\t\t▉4、查询存款记录▉\n"

\t\t▉5、查询取款记录▉\n"

\t\t▉6、退出▉\n"

\t\t亲~输入数字1~6就能使用对应的功能了哦:

"

do{

fflush(stdin);

scanf("

%d"

&

x);

if(x<

1||x>

6)

printf("

\t\t亲~您的输入有误哟~请重新输入:

}while(x<

6);

returnx;

/**************************************二级菜单**************************************/

显示二级菜单,并完成菜单的选择

操作类型[整型]

intmenu2(intInfoClass)

charInfoName[20]={0};

switch(InfoClass)

{

case1:

strcpy(InfoName,"

存款"

);

break;

case-1:

取款"

case3:

余额"

case4:

存款记录"

case5:

取款记录"

\t\t▉%s--用户信息查询\t▉\n"

InfoName);

\t\t▉1、输入客户编号查询(1~5)▉\n"

\t\t▉2、输入客户姓名查询▉\n"

\t\t▉3、输入客户地址查询▉\n"

\t\t▉4、输入客户电话查询▉\n"

\t\t▉0、返回▉\n"

\t\t亲~输入数字0~4就能使用对应的功能了哦:

0||x>

4)

4);

/**************************************输入函数**************************************/

显示需要输入的内容,并在给定的地址中赋值

输入对应功能

char*cbox存放字符串输入内容

int*ibox存放整型数据

double*money[金额]存放双精度数据[金额]

char*boxname输入信息的名字

voidInPut(char*cbox,int*ibox,double*money,intInPutClass,char*boxname)

\t\t请输入%s:

boxname);

if(InPutClass==1)d)

{

return1;

d;

if(IDNum==-1&

&

isIDexist(curID)==0)

{

printf("

\t\t亲~你输入的用户不存在哦\n"

\t\t按任意键继续"

getch();

}

}while(IDNum==-1&

isIDexist(curID)==0);

assword)

\t\t密码错误了哦亲~\n"

if(count>

=2)

\t\t密码错误了三次了哦亲~\n"

\t\t按任意键返回系统吧~"

return-1;

count++;

}while(curPassword!

=customer[IDNum].password);

FindOutPut(curID,curName,curAddress,curTel,ActClass);

returncurID;

}

*功能:

寻找插入点

*输入:

*返回:

插入点地址

RECORDS*InPoint()

RECORDS*Point=NULL;

if(head==NULL)ccount<

0)

free(p1);

return0;

customer[IDin].account+=ActClass*ActNum;

d==IDin)

||(NameIn!

=NULL&

strcmp(NameIn,customer[i].name)==0)

||(AddressIn!

strcmp(AddressIn,customer[i].address)==0)

||(TelNumIn==customer[i].telnum))

returni;

break;

if(i>

=5)

return-1;

/**************************************存取款记录和余额查询并输出**************************************/

存取款记录和余额查询并输出

*输入对应功能

*intIDin客户编号

*char*NameIn客户姓名

*char*AddressIn客户地址

*intTelNumIn客户电话

*intactclass操作类型0余额-1取款记录1存款记录

查询失败0/成功1[整型]

intFindOutPut(intIDin,char*NameIn,char*AddressIn,intTelNumIn,intactclass)/*查询*/

lf\t\t%s\t\t%d-%d-%d%d:

%d:

%d\n"

p1->

id,customer[IDNum].name,p1->

ActionNum,(actclass==1)"

:

p1->

}

elseif(actclass==0)

\t客户编号姓名\t家庭住址\t联系号码\t账户余额\n\n"

\t%d\t%s\t\t%4s\t%d\t%.2lf\n\n"

IDin,customer[IDNum].name,customer[IDNum].address,customer[IDNum].telnum,customer[IDNum].account);

return1;

/**************************************退出**************************************/

释放链表,保存信息,退出

voidexit0()

charx;

\n\n\n"

\t\t▉▉\n"

if(RecorsChanged==1)

do

\t\t存取款记录已经修改过,但还没有保存!

\n"

\t\t是否先保存(Y/N)"

scanf("

%c"

fflush(stdin);

if(!

(x=='

Y'

||x=='

N'

y'

n'

))

\t\t输入有误!

}while(!

));

if(x=='

if((fp=fopen("

"

w"

))==NULL)

\t\t文件打开错误!

else

for(p1=head;

p1->

next!

=NULL;

p1=p1->

next)

fprintf(fp,"

%d\t%lf\t%d\t%d\t%d\t%d\t%d\t

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2