数据结构和c语言课程设计报告
活期储蓄账目管理
数据结构和c语言课程
设计报告
设计题目:活期储蓄账目管理
专业:计算机科学与技术 班级:
学生:
学号:
2009—1010年 第二学期
活期储蓄账目管理
目录
活期储蓄账目管理
设计任务书
能比较迅速地找到储户的账户,以实现存款,取款记账;能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
活期储蓄账目管理
本组课题及本人任务
本组课题:活期储蓄账目管理
本人任务:
活期储蓄账目管理
程序功能简介
实现对活期储蓄账户及其交易信息的管理,基本功能如下:
1) 储户开户
2) 储户销户
3) 某账户存钱
4) 某账户取钱
5) 显示所有账户信息
6) 查询某账户余额
7) 查询某账户交易记录
8) 所有账户及其交易信息能够保存至文件中,并且可以从文件中读出
活期储蓄账目管理
主体内容
1. 设计分析
在这里,要针对可能用到的函数进行有效的分析,在编程的过程中,根据事先想好的思路和材料进行。分析可能用到的数据结构。首先,对于同一用户的操作有:储户开户,储户销户,某账户存钱,某账户取钱,查询某账户余额。我们如何将这些信息存储在一些是第一个问题,这里容易选择的数据结构情况有2种:1、结构体。2、数组。对于此次课程设计来说,那么将用户以数组存储就成为一种较好的简单的方法。更深一步考虑,为了方便寻找用户是否需要创建一个链表来存储用户的信息。其次,该程序还要求显示所有账户信息(至少包括账号、姓名、余额),查询某账户交易记录(至少包括是存还是取、金额两项信息,学有余力者可包含时间信息),所有账户及其交易信息能够保存至文件中,并且可以从文件中读出。所以,该程序还要涉及到文件读写的内容。再次,采用交互工作方式。所以,将要用到switch()语句来执行每一个功能
活期储蓄账目管理
2程序说明
活期储蓄账目管理
2. 操作方法(流程)
活期储蓄账目管理
3. 设计体会
活期储蓄账目管理
附录
1.程序中的主要变量、函数:
变量:id,name,person_num,money,numbe,temp
函数:add() //添加用户资料
count() //计算文件中的记录总数
del() //销户
display() //显示用户资料
get money() //用户取款
getname(char*name) //读取用户姓名(字符数<20)
getperson_num(char*person_num) //读取用户身份证号码(15位 或者 18位 ) getuser()
print() //输出界面
save_money() //按账号存款
select_id() //按照账号查询账户余额
select_name() //按照姓名查询账户余额
2.源程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#define file "temp.txt" //数据存储的文件名
struct user //用户类型定义(账号,姓名,身份证号,余额) {
int id;
char name[20];
char person_num[19];
double money;
};
void add() //添加用户资料
{
printf("%30s\n","***添加用户***");
printf("---------------------------------------------\n\n");
活期储蓄账目管理
struct user getuser();
int count(); //函数目的:计算文件中的记录数目 以生成自动账号
FILE *fp;
int number;
struct user temp;
if((fp=fopen(file,"ab"))==NULL)
{
printf("cannot open file!\n");
exit(1);
}
temp=getuser(); //读取用户名
number=count();
temp.id=number+1; //生成自动账号
fwrite(&temp,sizeof(struct user),1,fp);
printf("添加用户成功!\n");
fclose(fp);
}
int count() //函数目的:计算文件中的记录总数
{
FILE *fp;
int num;
struct user temp;
num=0;
if((fp=fopen(file,"rb"))==NULL)
{
printf("cannot open file!\n");
exit(1);
}
while(fread(&temp,sizeof(struct user),1,fp))
{
num++;
}
fclose(fp);
活期储蓄账目管理
return num;
}
struct user getuser()
{
void getname(char *name);
void getperson_num(char *person_num);
struct user temp;
printf("请输入用户姓名(字符数<20): "); //读取相关开户信息
getname();
printf("请输入用户身份证号码: ");
getperson_num(temp.person_num);
printf("输入开户金额:");
do{ //判断开户金额(>=100)
scanf("%lf",&temp.money);
fflush(stdin);
if((temp.money)<100.0)
printf("开户金额不能小于100\n");
else
break;
printf("重新输入开户金额:");
}while(1);
return temp;
}
void getname(char *name) //函数功能:读取用户姓名(字符数<20) {
do{
scanf("%s",name);
fflush(stdin);
if(strlen(name)==0)
printf("姓名不能为空!\n");
else
if(strlen(name)>=20)
printf("姓名不能超过20个字符!\n");
活期储蓄账目管理
else
break;
printf("重新输入姓名: ");
}while(1); //循环以保证读入数据有效
}
void getperson_num(char *person_num) //函数功能:读取用户身份证号码(15位 或者 18位 )
{
do{
int i,mark;
char ch;
for(i=0,mark=0;;i++) //输入有效性判断(只能是数字) if((ch=getchar())!='\n')
{
if(ch<='9'&&ch>='0')
person_num[i]=ch;
else
{
printf("身份证号码只能是数字!\n");
mark=1;
break;
}
}
else
break;
person_num[i]='\0';
if(mark==1)
continue;
if(strlen(person_num)!=15&&strlen(person_num)!=18)
printf(&qu …… 此处隐藏:2506字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




