C语言银行管理系统设计
更新时间:2024-04-05 16:16:01 阅读量: 综合文库 文档下载
程序设计基础(C语言) 课程设计说明书
(20~ 20学年第_1_学期)
题目名称:银行存取款管理系统
姓名 学号 专业 班级 指导教师 提交日期
课程名称 设计题目 设计时间 学院 湖南应用技术学院课程设计任务书
程序设计(C语言)课程设计 银行存取款管理系统 课程代码 分组人数 专业 班级 一、 课程设计任务(条件)、具体技术参数(指标) 1. 我在指导书提供的课程设计题目中选择了21题,已经得老师认可 2. 我通过编写程序提供的主操作界面应该方便用户的操作。 3. 最后提交的课程设计成果包括: (1). 课程设计报告电子稿。 (2). 源程序文件。 (3). 可执行程序文件。 二、 对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求) 1. 2. 3. 4. 5. 分析课程设计题目的要求; 写出详细设计说明; 编写程序代码,调试程序使其能正确运行; 设计完成的软件要便于操作和使用,有整齐、美观的使用界面; 设计完成后提交课程设计报告和源代码文件的电子文档。 三、 课程设计工作进度计划: 2018/1/2 分析选题及解决方案的思考。 2018/1/3 确定解题的过程及系统所需的功能函数,进行代码编写。 2018/1/4 代码编写并开始写课程设计说明书。 2018/1/5 代码编写并调试运行,写课程设计说明书。 2018/1/6 完善程序和课程设计说明书、答辩,上交所有课程设。计资料 四、 主要参考资料 [1]柴田望洋 主编. 《明解C语言》[M].北京,人民邮电出版社 2015年12月。 [2] 克尼汉(美)主编. 《C程序设计语言》[M].美,机械工业出版社 2010年9月 [3]凯尼格(美)主编. 《C陷阱与缺陷》[M].北京,人民邮电出版社 2008年2月 指导教师(签名): 教研室主任(签名): 年 月 日
一、需求分析
1、银行存取款管理系统在于如何使用户更便于去进行存取款等一系列操作,是为了解决银行在存取款方面的不便之处。
2、通过此系统,能录用用户存款的信息,其中包括用户的编号、姓名、性别、
地址、年龄及账户总金额。 3、能够输入客户存款或取款记录。
4、能根据客户姓名查询存款和取款记录。
二、总体设计
1、总体思路:本系统分为七个主功能模块
(1)录入客户存取款信息模块; (2)修改客户存取款信息模块; (3)排序客户存取款信息模块 (4)删除客户存取款信息模块; (5)查找客户存取款信息模块; (6)显示客户存取款信息模块; (7)系统退出模块。
通过对七个功能模块的设计和操作,使银行拥有一系列的存取款系统。 用户根据系统的提示进行七个功能模块的操作就能十分便捷的完成自己 要进行银行存取款项目。
2、设计思想:银行存取款管理系统在于方便银行的存取款项目 ,因此对其
设计有六个主功能模块:录入、修改、排序、查找、删除、显示
和退出。
使用相应的 c语言函数去实现这个模块的设计,最后通过这七个功能模块来完成存取款的一系列实现。
3、设计功能结构图 银行存取款管理系统 录修排显退查删 入改序示出找除 客客客 客系客客 统 户户户户户户 信信信信信信 息 息 息 息 息 息
要求根据
客户姓名
4、问题和方法
(1)程序编码繁琐,难度较大 。
方法:上网查资料弄懂不认识的程序,并向老师和会的同学请教。 (2)程序错误较多,无法执行。
方法:耐心的纠错,仔细地检查。
(3)容易粗心打错函数符号、参数或标点符号。 方法:吸取教训,编程时更加细心。
三、详细设计
1、重要数据的数据结构设计
客户存取款信息的记录项用student表示,包括6个属性: num1,name,addr,sex,age,num2, 其分别是编号,客户姓名,客户地址,性别,年龄,账户总金额。
2、函数设计
银行存取款管理系统程序采用了结构化程序设计的思想,由4个h头文件和3个c源文件组成。程序中除了主函数外,共设计了以下七个函数,分别包含在3个c源文件中。以下是这些函数的函数原型及功能设计。
(1)void inputing(student *p);
函数功能:输入函数中的输数据部分并保存的函数。 (2)void input(student *p,int i);
函数功能:输入函数。输入客户的基本信息。 (3)void insert(student *p,int i);
函数功能:插入函数。插入要输入的客户信息。 (4)void output(student *p,int i);
函数功能:输出函数。将需要的客户信息以列表的形式显示在屏幕上。 (5)void sort(student *p,int n);
函数功能:排序函数。按要将客户 存取款信息以账号大小的顺序排列出来。 (6)void find(student *p,int n);
函数功能:查找函数。按要求通过输入客户姓名的方式查询客户存取款信息。 (7)int del(student *p,int n);
函数功能:删除函数。通过输入要删除的客户姓名,查询后删除该客户存取款信息。
3、函数关系调用图
main
find input insert sort del output printf
四、程序运行结果测试与分析 1、调试分析
本系统在VC6下编译调试通过,可顺利运行,各项功能达到设计要求。 本系统程序由4个h头文件和3个c源文件构成。系统调试主要在VC++6.0下进行,采用分模块调试的方法进行编译,即完成一个函数功能模块就编译一个功能模块,最后再进行整体编译并生成可执行文件Student.exe.
在调试的过程,主要碰到了以下问题:
1、清屏函数在TC中使用的clrsrc函数,但在VC6中没有该函数也没有相应的函数。查资料,发现在VC中可使用system()函数调用系统命令cls实现。
2、在使用C语言系统函数进行数据输入的时候,发现使用getchar()和gets()函数输入字符和字符串的时候,系统经常跳过相应的输入语句,无法输入数据。查资料,是C系统的输入处理的输入缓存问题,解决方法是在进行字符和字符串输入的时候,先使用fflush(stdin)函数清除输入缓存,即可正常输入字符和字符串。 2、运行结果 输入1得到图1
图1
输入2,得到图2
图2
输入3,得到图3
图3
输入4,得到图4
图4
输入5和6,得到图5
图5
输入7,得到图6
图6
五、结论与心得
1、本次是我们第一次接触到课程设计这一课题,在做这个课题的过程中我们遇到了许多的困难:比如对结构体函数的运用,七个功能函数的操作,参数的定义等等。虽然遇到了如此多的困难,但是在解决困难的途中我们没有放弃,最终我们解决了程序上的问题,也丰富了自己的知识。 2、通过本次的C语言程序设计,我发现自己在C语言方面还存在有较大的漏洞,
对于各种函数的认知还不够清晰,无论是在函数的调用方面还是在函数的嵌套或定义方面,都还有所欠缺。其次,对于C语言,细心是非常重要的。一个括号,一个分号,乃至一个逗号在C语言的程序中都是十分重要的,无论少了哪一个程序都无法运行。因此,在进行C语言程序的编程时要十分细心。
3、对于此次的题目银行存取款管理系统,我们觉得其实可以更加的简便,更加的智能化。或许可以将其与银行的其他管理系统进行智能整合,让用户在进行存取款业务时有更多的选项,并且也可以增加银行的业务。当然这些还只是我们的设想,但我们相信随着我们对专业的学习和知识技能的不断增长,我们总会学得如何去建立一个更好的管理系统。
六、附:源码
#include
char acad[10],name[20],sex;//客户账号,姓名,性别 int age;//客户年龄
char addr[30];//客户住址 long int num;//存取款数目 };
void inputing(student *p);//声明输入函数中的输数部分并保存函数 void input(student *p,int i);//声明输入函数 void insert(student *p,int i);//声明插入函数 void output(student *p,int i);//声明输出函数 void sort(student *p,int n);//声明排序函数 void find(student *p,int n);//声明查找函数 int del (student *p,int n);//声明删除函数
void main() {
system(\
student *q=NULL;//自定义类型指针 int i=0,j,k,b=0; do {
printf(\ printf(\银行存取款管理系统---------|\\n\ printf(\输入客户信息 2.添加客户信息 |\\n\
printf(\排序客户信息 4.查找客户信息 |\\n\ printf(\删除客户信息 6.显示客户信息 |\\n\ printf(\退出系统 |\\n\ printf(\请选择菜单:\ scanf(\ switch(j) {
case 1:
b++; if(b!=1) {
printf(\你已经输入过一次了,不能再选择,加入可以选择<2.添加客户信息>\\n\ break; } else {
printf(\请输入要输入的客户数量:\ scanf(\ while(b<=0); {
printf(\输入错误,请重新输入要输入的客户数量:\ scanf(\ }
q=(student *)malloc(i*sizeof(student)); insert(q,i-1);//调用输入函数 break;} case 2: i++;
q=(student *)realloc(q,i*sizeof(student)); insert(q,i-1);//调用插入函数 break; case 3:
sort(q,i);//调用排序函数 break; case 4:
find(q,i);//调用查找函数 break; case 5:
k=del(q,i);//调用删除函数 if(k==1) {
i--;
q=(student*)realloc(q,i*sizeof(student));
}
}
break; case 6:
output(q,i);//调用输出函数 break; case 7:
printf(\程序即将退出...\\n\ break; default:
printf(\菜单选择错误!\ }
}while(j!=7); free(q);
//输入函数中的输数据部分并保存的函数
void inputing(student *p) {
printf(\请输入客户账号:\ scanf(\ printf(\请输入客户姓名:\ scanf(\
printf(\请输入客户住址:\ scanf(\ do {
printf(\请输入客户性别
scanf(\
if(p->sex!='b'&&p->sex!='g') {
printf(\输入错误,重新输入\ }
}while(p->sex!='b'&&p->sex!='g'); do {
printf(\输入客户年龄:\ scanf(\ if(p->age<1||p->age>100) {
printf(\输入错误,重新\ }
}while(p->age<1||p->age>100);
do {
printf(\输入客户存款数目:\ scanf(\
if(p->num<0||p->num>1000000) {
printf(\输入错误,重新\ }
}while(p->num>1000000); }
//输入函数
void input(student *p,int i) {
int x;
for(x=0;x
printf(\请输入第&d号客户存取款信息:\\n\
inputing(p);//调用输入函数中的输数据部分并保存函数 printf(\ } }
void insert(student *p,int i) {
int x;
for(x=0;x
printf(\请输入第&d号客户存取款信息:\\n\
inputing(p);//调用输入函数中的输数据部分并保存函数 printf(\ } }
//输出函数
void outpt(student *p,int i) {
printf(\账号\\t姓名\\t性别\\t年龄\\t住址\\t存取款数目\ int x=0;
for(x=0;x
printf(\
p->addr,p->num); }
printf(\ }
//插入函数
void output(student *p,int i) {
p=p+i;
printf(\请输入要插入的存取款信息:\\n\
inputing(p);//调用输入函数中的输数据并保存函数 printf(\ }
//排序函数
void sort(student *p,int n) {
student t; int i,j; {
printf(\要求按账号从小到大排序:\\n\ for(i=0;i for(j=0;j if(strcmp((p+j)->acad,(p+j+1)->acad)==1) { t=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=t; } } } } output(p,n); } //查找函数 void find(student *p,int n) { student t; int i=0; printf(\要求按客户姓名查找:\ printf(\请输入要查找的姓名:\ scanf(\ for(i=0;i if(strcmp(t.name,(p+i)->name)==0) { break; } } if(i>=n) { printf(\查找的姓名是%d的客户,没有找到!\\n\ } else { printf (\查找的姓名是%d的客户,是所输入的客户中的%d个客户\\n\ printf(\账号\\t姓名\\t性别\\t年龄\\t住址\\t存取款数目\ printf(\ddr,p->num); } } //删除函数 int del(student *p,int n) { student t; int i=0,j; char ch; printf(\要求按客户姓名删除:\ { printf(\输入要删除的客户姓名:\ scanf(\ for(i=0;i if(strcmp(t.name,(p+i)->name)==0) { break; } } if(i>=n) { printf(\删除的姓名是%d的客户,没有找到\\n\ return 0; } else { printf(\删除的姓名是%s的客户,是所输入的客户中的%d个客户\\n\ printf(\要删除的客户存取款信息:\\n\ printf(\账号\\t姓名\\t性别\\t年龄\\t住址\\t存取款数目\ printf(\p->addr,p->num); printf(\是否一定删除 printf(\你选择了不删除%s客户存取款信息,没有删除\\n\ return 0; } else { printf(\你选择了删除%s客户存取款信息,已删除\\n\ for(j=i;j *(p+j)=*(p+j+1); } return 1; } } } }
正在阅读:
C语言银行管理系统设计04-05
油酸乙酯的用途及油酸乙酯杀螨剂08-06
2022年办公室工作计划07-31
室外管网施工方案最新版11-29
我眼中的雪作文450字07-07
Photoshop 中文教程 - 图文03-04
对平面连杆机构极位夹角定义的再思考10-31
教师节问候短信02-24
用奔腾不息造句,奔腾不息怎么造句02-21
现场总线技术 CH2-CAN技术规范介绍07-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 语言
- 银行
- 设计
- 系统
- 管理