| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 525 人关注过本帖
标题:简易帐户管理程序
取消只看楼主 加入收藏
贪恋东
Rank: 1
等 级:新手上路
帖 子:19
专家分:2
注 册:2010-9-24
结帖率:80%
收藏
已结贴  问题点数:50 回复次数:3 
简易帐户管理程序
有兴趣的大虾们一起来讨论下,怎样设计一个简易的帐户管理程序,以期交流、提高。
基本需求:
1.帐户信息应包括:姓名、交易类型(支出、收入)、交易序列号、交易时间、备注信息
2.能对帐户信息进行维护(添加、删除、修改)
3.能将帐户信息存储到指定文件中
4.能对帐户信息进行统计(月/年支出总额、月/年收入总额、合计)
5.能将统计信息输出

扩展功能:
1.登陆密码设置
2.可供多人使用
3.将交易类型细分(交通、购物、旅游、餐饮等)

先讨论实现基本需求吧。
搜索更多相关主题的帖子: 管理程序 帐户 
2010-11-02 11:20
贪恋东
Rank: 1
等 级:新手上路
帖 子:19
专家分:2
注 册:2010-9-24
收藏
得分:0 
回复 楼主 贪恋东
自己先说说基本构思:
1.用链表实现。链表的节点定义为结构体,  2.定义一个creat函数:
struct account                             struct account *creat(void)
char name[5]; //用于存放姓名              {                                          
int num;    //用于存放交易序列号           struct account *head;//节点头指针
float money; //用于存放交易金额            struct account *p1,*p2;
char type;  //用于存放交易类型             n=0;           
char bz[20];//用于存放备注信息             p1=p2=(struct account *)malloc(sizeof(struct account));//开辟新的单元
struct DATE //用于存放交易日期             scanf(“%d %s %d %d %d %c %.2f %s \n”,&p1->num,&p1->name,&p1->date.y,&p1->date.m,&p1->date.d,
{                                          &p1->type,&p1->money,&p1->bz);
int y;//年                                 head=NULL;
int m;//月                                    while(p1->num!=0)
int d;//日                                    { num+=1; if(num==1) head=p1;}date;
};                                            else p2->next=p1;p1=p2;p1=(struct account *)malloc(sizeof(struct account));
                                               scanf(“%d %s %d %d %d %c %.2f %s \n”,&p1->num,&p1->name,&p1->date.y,&p1->date.m,
                                                &p1->date.d,&p1->type,&p1->money,&p1->bz);
                                                }
                                           p2->next=NULL;
                                           return(head);
                                          }
3.新建一个txt文件用于存放输入的数据(文件打开类型设为“a+”)
4.分别设计一个函数用于统计收入和支出情况(以输入的日期始末作为统计区间)

以上是小弟,设计的一个初步轮廓。还请各位大虾们指导指导~~~

完美就是Perfect!
2010-11-02 12:16
贪恋东
Rank: 1
等 级:新手上路
帖 子:19
专家分:2
注 册:2010-9-24
收藏
得分:0 
回复 2楼 vandychan
即使是作业贴又怎么了,我水平就这么高,你水平高可以不来这种初级论坛。
免得开您金口去指着别人的所谓“龌龊”!
我发帖是交流、学习人家的知识。你小气可以不给,我也不需要你那没有文化承载的“知识”。
你不妨问问自己:“我能编出来么?”
你说别人龌龊,我只好说你“丑陋”

完美就是Perfect!
2010-11-02 12:21
贪恋东
Rank: 1
等 级:新手上路
帖 子:19
专家分:2
注 册:2010-9-24
收藏
得分:0 
#include "stdio.h"
#include "malloc.h"
#define LEN sizeof(chainedlist)
typedef struct  //用于存放交易日期            
{                                          
int y;//年                                 
int m;//月                                    
int d;//日                                    
}DATE;

typedef struct
{
int num;    //用于存放交易序列号                                                               
float money; //用于存放交易金额            
char type;  //用于存放交易类型                     
char bz[20];//用于存放备注信息  
}DATA;

typedef struct node                           
{         
DATE date;
DATA data;
struct node *next;
}chainedlist;
void main()
{
int n;//全局变量
chainedlist *creat(void);//定义函数,它带回一个指向链表头的指针
{
    chainedlist *head;
    chainedlist *p1,*p2;
    n=0;
    p1=p2=(chainedlist *)malloc(LEN);//开辟一个新单元
    scanf("%d %d %d %c %f %s \n",&p1->date.y,&p1->date.m,&p1->date.d,
          &p1->data.type,&p1->data.money,&p1->data.bz);
    head=NULL;
    data.num=1;
    while(p1->data.num!=0)
    {
        n+=1;        
        if(n==1)head=p1;
        else p2->next=p1;
        p2=p1;
        p1=(chainedlist *)malloc(LEN);
        scanf("%d %d %d %c %f %s \n",&p1->date.y,&p1->date.m,&p1->date.d,
              &p1->data.type,&p1->data.money,&p1->data.bz);
        data.num+=1;
    }
p2->next=NULL;
return(head);
}
}   
调试该段程序:运行提示 data.num+=1; 这段出错。
想法是,while循环一次,交易序列号num自加一。
这个创建链表的函数creat()算法是让p1指向新开辟的结点,p2指向链表中最后一个结点,把p1所指的结点连接在p2所指的结点后面。
大虾们,帮着看看~~~

完美就是Perfect!
2010-11-02 20:25
快速回复:简易帐户管理程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030883 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved