报关员题目.docx
《报关员题目.docx》由会员分享,可在线阅读,更多相关《报关员题目.docx(14页珍藏版)》请在冰豆网上搜索。
报关员题目
得分:
信电工程学院
《高级语言程序设计课程设计》报告
题目:
银行存取款管理系统
班级:
10电信
(1)班
学号:
20100504143
姓名:
夏宏杰
指导教师:
黄为勇
2013年1月15日
目录
1程序目标及功能----------------------------------------------------------3
1.1课题背景----------------------------------------------------------------3
1.2系统功能---------------------------------------------------------------3
1.3设计要求----------------------------------------------------------------3
2程序功能模块组成及流程图--------------------------------------------4
2.1系统功能模块----------------------------------------------------------4
2.2各模块流程图----------------------------------------------------------4
3程序主要数据结构及函数列表---------------------------------------5
3.1程序中使用的数据结构----------------------------------------------5
3.2函数列表----------------------------------------------------------------5
4程序代码及运行结果----------------------------------------------------6
5总结与体会----------------------------------------------------------------12
1.程序目标及功能:
银行存取款管理系统
1.1银行存取款管理系统简介
银行存取款管理系统用于模拟银行里的客户信息管理和存取款信息管理。
该系统能够输入客户信息,模拟存款与取款,按客户编号查询客户存款取款记录。
1.2系统结构及模块要求
(1)客户节点数至少10个。
(2)程序主界面包括程序名称及编程者学号、姓名、班级;同时要求输入功能号码,选择进入功能模块程序。
(3)各模块功能:
A.创建客户信息表。
动态创建客户信息表,同时输入客户信息。
客户信息表用链表实现。
链表节点个数不少于10个。
B.追加客户。
在客户信息表中新增一个节点,从键盘输入客户信息。
C.存款。
输入客户编号和存款金额,改变客户信息表中的余额信息,并将存款记录写入存取款文件。
D.取款。
输入客户编号和取款金额,改变客户信息表中的余额信息,并将存款记录写入存取款文件。
E.输入客户编号,查询存取款信息。
F.保存客户信息到磁盘文件。
建立一个磁盘文件,把所建立的客户表信息写入文件。
F.从磁盘文件中读出客户信息。
1.3基本要求
(1)在客户文件中,每个客户是一条记录,包括客户编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;
(2)每个客户对应一个存取款文件。
(3)在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。
类别分为取款和存款两种。
(4)用函数分别实现动态链表的建立、动态链表输出等功能。
(5)界面友好,对程序加必要的注释;
(6)函数功能要划分好(结构化程序设计);函数要求使用指针作形参。
(7)要特别注意模拟存取款时,客户信息表和存取款文件中的信息要同时更新。
2程序功能模块组成及流程图
2.1系统功能模块
1.创建客户信息表。
2.追加客户。
3.存款。
4.取款。
5.输入客户编号,查询存取款信息。
6.保存客户信息到磁盘文件。
7.从磁盘文件中读出客户信息。
8.退出系统。
2.2各模块流程图
创建客户信息表
取款
追加客户
存款
保存客户信息磁盘文件
输入客户编号,查询存取款信息
从磁盘文件中读出客户信息
退出
3程序主要数据结构及函数列表
3.1用户信息数据结构:
typedefstruct{
charnum[10];
charname[10];
charsecret[10];
charaddress[10];
chartele[10];
intmoney;
structxhj_*next;}xhj_,*xhj;
用户记录数据结构:
typedefstruct{
charnum[10];
charday[10];
chartype[10];
ints;
charman[10];
}jie;
3.2函数列表
1.creat(xhjB);//创建客户信息表。
2.PLUX(xhjB);//追加客户。
3.print(xhjB);//打印客户信息表。
4.income(xhjB);//存款。
5.outcome(xhjB);//取款。
6.putout();//输入客户编号,查询存取款信息。
7.uersprotect(xhjB);//保存客户信息到磁盘文件。
8.uersputout();//从磁盘文件中读出客户信息。
4程序代码及运行结果
/*Note:
YourchoiceisCIDE*/
#include"stdio.h"
#include"string.h"
typedefstruct{
charnum[10];
charname[10];
charsecret[10];
charaddress[10];
chartele[10];
intmoney;
structxhj*next;
}xhj,*xia;
typedefstruct{
charnum[10];
charday[10];
chartype[10];
charY[10];
charman[8];
}fa;
typedefstruct{
charnum[10];
charday[20];
chartype[10];
ints;
charman[20];
}jie;
xiacreat(xiaB){
inti,n;xiaA,p;FILE*fp;fafa1={"编号","日期","类别","存取数目","经办人"};chars4[]={".txt"},ch[10];
printf("请输入要建立用户的个数:
");
scanf("%d",&n);
B=(xia)malloc(sizeof(xhj));
B->next=NULL;p=B;
for(i=0;iA=(xia)malloc(sizeof(xhj));
printf("请输入第%d个用户的编号:
",i+1);
scanf("%s",A->num);
printf("请输入第%d个用户的姓名:
",i+1);
scanf("%s",A->name);
printf("请输入第%d个用户的密码:
",i+1);
scanf("%s",A->secret);
printf("请输入第%d个用户的地址:
",i+1);
scanf("%s",A->address);
printf("请输入第%d个用户的电话:
",i+1);
scanf("%s",A->tele);
printf("请输入第%d个用户的金额:
",i+1);
scanf("%d",&A->money);
strcpy(ch,A->num);strcat(ch,s4);
p->next=A;A->next=NULL;p=p->next;
if((fp=fopen(ch,"w"))==NULL){printf("打不开文件");exit(0);}
fwrite(&fa1,sizeof(fa),1,fp);
fclose(fp);
}
returnB;
}
PLUX(xiaB){
xiaA,p;FILE*fp;fafa1={"编号","日期","类别","存取数目","经办人"};chars4[]={".txt"},ch[10];
A=B;
while(A->next!
=NULL){
A=A->next;}
p=(xia)malloc(sizeof(xhj));
printf("请输入添加用户的编号:
");
scanf("%s",p->num);
printf("请输入添加用户的姓名:
");
scanf("%s",p->name);
printf("请输入添加用户的密码:
");
scanf("%s",p->secret);
printf("请输入添加用户的地址:
");
scanf("%s",p->address);
printf("请输入添加用户的电话:
");
scanf("%s",p->tele);
printf("请输入添加用户的金额:
");
scanf("%d",&p->money);
A->next=p;p->next=NULL;
strcpy(ch,A->num);strcat(ch,s4);
if((fp=fopen(ch,"w"))==NULL){printf("打不开文件");exit(0);}
fwrite(&fa1,sizeof(fa),1,fp);
fclose(fp);
}
print(xiaB){
xiap;
p=B->next;
while(p!
=NULL){
printf("%s%s%s\n",p->num,p->name,p->secret);
printf("%s%s%d\n",p->address,p->tele,p->money);
p=p->next;
}
}
income(xiaB){
xiaA;charp[10],ch[10],s1[]={"2013.1.4"},s2[]={"存款"},s3[]={"夏宏杰"},s4[]={".txt"};ints;FILE*fp;jiefa1;
A=B->next;
printf("请输入存款编号:
");scanf("%s",p);printf("请输入存款金额:
");scanf("%d",&s);strcpy(ch,p);strcat(ch,s4);
strcpy(fa1.num,p);fa1.s=s;strcpy(fa1.day,s1);strcpy(fa1.type,s2);strcpy(fa1.man,s3);
while(strcmp(A->num,p)&&A!
=NULL){A=A->next;}
if(A==NULL){printf("用户不存在");exit(0);}
else{A->money=A->money+s;
if((fp=fopen(ch,"a"))==NULL){printf("打不开文件");exit(0);}
fwrite(&fa1,sizeof(jie),1,fp);
fclose(fp);
}
}
outcome(xiaB){
xiaA;charnum[10],s1[]={"2010.12.29"},s2[]={"取款"},s3[]={"夏宏杰"};ints;FILE*fp;jiefa1;chars4[]={".txt"},ch[10];
A=B->next;
printf("请输入取款编号:
");scanf("%s",num);printf("请输入取款金额:
");scanf("%d",&s);
strcpy(fa1.num,num);fa1.s=s;strcpy(fa1.day,s1);strcpy(fa1.type,s2);strcpy(fa1.man,s3);strcpy(ch,num);strcat(ch,s4);
while(strcmp(A->num,num)&&A!
=NULL){A=A->next;}
if(A==NULL){printf("用户不存在");exit(0);}
else{A->money=A->money-s;
if((fp=fopen(ch,"a"))==NULL){printf("打不开文件");exit(0);}
fwrite(&fa1,sizeof(jie),1,fp);
fclose(fp);
}
}
putout(){
FILE*fp;jiefa1;fak;chars4[]={".txt"},num[10];
printf("请输入查看编号:
");scanf("%s",num);strcat(num,s4);
if((fp=fopen(num,"r"))==NULL){printf("打不开文件");exit(0);}
fread(&k,sizeof(fa),1,fp);
printf("%s%s%s%s%s\n",k.num,k.day,k.type,k.Y,k.man);
while(fread(&fa1,sizeof(jie),1,fp)){
printf("%s%s",fa1.num,fa1.day);
printf("%s%d%s\n",fa1.type,fa1.s,fa1.man);
}
fclose(fp);
}
uersprotect(xiaB){
xiaA;FILE*fp;
A=B->next;
if((fp=fopen("B","w"))==NULL){printf("打不开文件");exit(0);}
while(A!
=NULL){
fwrite(A,sizeof(xhj),1,fp);A=A->next;
}
fclose(fp);printf("已保存");
}
uersputout(){
FILE*fp;xhjA;
if((fp=fopen("B","r"))==NULL){printf("打不开文件");exit(0);}
while(fread(&A,sizeof(xhj),1,fp)){
printf("%s%s%s%s%s%d\n",A.num,A.name,A.secret,A.address,A.tele,A.money);
}
fclose(fp);
}
voidqingchu()
{
printf("按任意键继续");
getch();
system("CLS");
}
voidmain()
{xiaB;charchoice;
printf("银行存取款管理系统\n");
printf("***************************************\n");
printf("请按提示完成相应操作\n");
printf("A、*建立客户信息表\n");
printf("B、*追加客户\n");
printf("C、*存款\n");
printf("D、*取款\n");
printf("E、*查询存取信息\n");
printf("F、*保存客户信息\n");
printf("G、*读出客户信息\n");
printf("H、*退出系统\n");
printf("****************************************\n");
printf("10电信
(1)班姓名:
夏宏杰学号:
20100504143\n");
while((choice=getchar())&&choice!
='H'){
switch(choice){
case'A':
{B=creat(B);break;}
case'B':
{PLUX(B);break;}
case'C':
{income(B);break;}
case'D':
{outcome(B);break;}
case'E':
{putout();break;}
case'F':
{uersprotect(B);break;}
case'G':
{uersputout();break;}
default:
printf("【请输入正确的选择】:
\n");}
}
}
运行结果:
5总结与体会
这次是设计一个银行存取款管理系统,通过选择功能键,从而实现各种操作。
我在写程序的过程中,曾出现各种错误,以致程序一直不能运行。
通过一次次的修改、运行,最终运行成功!
从这次试验中,我也学到了不少。
做事要仔细认真,不能马虎,要不然一切将付之东流!