教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

数据结构和c语言课程设计报告

来源:网络收集 时间:2026-07-24
导读: 活期储蓄账目管理 数据结构和c语言课程 设计报告 设计题目:活期储蓄账目管理 专业:计算机科学与技术 班级: 学生: 学号: 2009—1010年 第二学期 活期储蓄账目管理 目录 活期储蓄账目管理 设计任务书 能比较迅速地找到储户的账户,以实现存款,取款记账;

活期储蓄账目管理

数据结构和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字,全部文档内容请下载后查看。喜欢就下载吧 ……

数据结构和c语言课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/133903.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)