限的时间里,完成任务。本次课设,不仅深化了我对课本内容的理解,而且拓宽了我的知识面。
我的程序按照指导任务书的要求顺利地完成了任务,实现了所有的功能,整个程序采用模块化设计方法,在程序界面,以菜单的形式调用各功能函数;程序可读性强,界面友好;输出形式美观。
五、参考文献
1 谭浩强.C程序设计.北京:清华大学出版社,2005 2 刘成等.C语言程序设计实验指导与习题集.北京:中国铁道出版社,2006
六、源程序
#include
9
};
void menu();
int reads(struct depositor dep[N]); void save(struct depositor dep[N],int n); void add(); void del(); void change(); void show(); void main() { int n; while(1) { menu();
printf(\请输入您要选择的操作序号,按回车键确认:\ scanf(\ switch(n) { case 1: add();break;
case 2: show();break; case 3: del();break; case 4: change();break; case 5: exit(0);
default: printf(\输入错误,请输入列表中存在的序号!\\n \ } } }
void menu() {
printf(\ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \
printf(\ ************************* 银行个人账户管理系统*************************** \
printf(\ 1 储户开户\
10
printf(\ 2 余额查询\ printf(\ 3 储户销户\ printf(\ 4 密码修改\ printf(\ 5 退出\ printf(\
************************************************************************** \
printf(\ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \}
int reads(struct depositor dep[N]) // 读取储户内容 { FILE *fp; int i=0;
if((fp=fopen(\ { printf(\文件打开失败!\\n\ return 0; } else {
for(i=0;!feof(fp);i++)
fscanf(fp,\n); }
fclose(fp); return i; }
void save(struct depositor dep[N],int n) // 储户保存后信息 { FILE *fp; int i=0;
if((fp=fopen(\ {
11
printf(\文件打开失败!\\n\ return ; } else {
for(i=0;i fprintf(fp,\%s %s %f %f\\n\on ); } fclose(fp); } void add()/*储户开户*/ { FILE *fp; struct depositor dep; if((fp=fopen(\ //如果文件已经存在,可以追加储户信息 { if((fp=fopen(\// 文件不存在时,创建新文件,输入储户信息 { printf(\用户不存在!\\n\ return ; } } printf(\请输入储户帐号,并按回车键确认:\\n\ scanf(\ fprintf(fp,\ printf(\请输入储户姓名,并用回车键确认: \\n\ scanf(\ fprintf(fp,\ printf(\请输入储户身份证号,并用回车键确认: \\n\ scanf(\ fprintf(fp,\ 12 printf(\请输入储户密码,并用回车键确认: \\n\ scanf(\ fprintf(fp,\ printf(\请输入储户金额,并按回车键确认: \\n\ scanf(\ fprintf(fp,\ printf(\**********************开户成功*************************\\n\ fclose(fp); } void show() //余额查询 { struct depositor dep[N]; int i,n ; char s[20]; float t ; n=reads(dep); printf(\请用户输入账号,密码,用空格隔开,按回车键确认:\\n\ scanf(\ for(i=0;i if (strcmp(s,dep[i].num)==0 && t==dep[i].sec) break; if (i>=n || t!=dep[i].sec) { printf(\输入错误 \\n\ return ; } else { printf(\储户的余额如下**********************\\n\ printf(\ 余额 \\n\ printf(\ printf(\ } 13