c语言。结构体已经获得了数据,怎么调用自定义函数来处理这个结构体的数据?就是自定义函数要怎么写

#include <stdio.h>#include <conio.h>#include <string.h>#include <windows.h>#include <process.h>struct mesinfo{ char id[20]; //帐号 char password[10];//密码 char name[10];//名字 int money;//余额 int tz;//可透支额};void yecx(); // 查询账户余额和透支额函数int zz(int *b); // 转账函数 int tqxj(int *a); // 提取现金函数 int crxj(int *c); // 存入现金函数 int dy();// 打印凭条函数void tc();// 退出函数
void main(){ mesinfo mes[4]; mesinfo tem; int times; int select;//---------------------------------------------------------------------------------------------------------打开文件读取数据 FILE *fp; if((fp=fopen("123.txt","r"))==NULL)/*打开文件读取数据*/ {printf("无法读取数据\n"); system("pause"); return; } else for(int i=0;i<4;i++) fscanf(fp,"%15s%10s%10s%10d%10d\n",mes[i].id,mes[i].password,mes[i].name,&mes[i].money,&mes[i].tz); fclose(fp);
yecx(); zz(); tqxj();
crxj();dy();tc(); }
void yecx() //定义余额查询函数未完成、、 { system("cls"); printf("\n\n\n"); printf("\t\t 欢 迎 使 用 中 国 银 行 ATM 取 款 机 管 理 系 统\n\n\n"); printf("\n\n"); printf("\t\t\t欢 迎 使 用 余 额 查 询 功能 \n\n"); printf("\t* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *\n\n"); printf("\t* ID 姓名 余额 可透支 *\n\n"); printf("\t* %15s%10s%10d\t%10d *\n\n",mes[k].id,mes[k].name,mes[k].money,mes[k].tz) printf("\t* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *\n\n"); system("pause"); system("cls"); }

我写了个程序,你可以看一下,代码放附件里了,下面是运行的部分截图。基本你说的功能都有,如果有其他需要可以自行补充,方法都差不多。希望能帮到你。

int login(struct mesinfo *); //登入账户函数

void check(struct mesinfo *);  //  查询账户余额和透支额函数

void transfer(struct mesinfo *); //  转账函数                    

void draw(struct mesinfo *); //      提取现金函数                 

void store(struct mesinfo *);    //    存入现金函数                  

void printList(char *id,int type,int money,char *time);//     打印凭条函数

void quit(struct mesinfo *);//    退出函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-19
你的意思要单独操作某个数据吧,就是调用结构体中的数据,比如计算money;//余额什么的,这样,你可以使用结构体指针来实现,我看你程序中没有定义结构体类型的指针,在具体的函数中定义结构体指针,比如tqxj(int a)中,
void tqxj(int a )
{
struct mesinfo *p;
p->money=p->money-a;//提取之后的余额
再根据帐号保存到txt中,或者回显到屏幕;
其他数据调用类似!
}
如果对结构体指针不熟的话,找本C语言书看看,或者上网查一下!追问

确实是不熟。你帮我写一下这个给我做参考吧?在主函数里我通过输入id和密码然后循环比较获得mes(k).name等等,k=3.现在要利用这个自定义函数void yecx();输出第三个账户的资料。

本回答被网友采纳
第2个回答  2013-06-19
在printf("\t* %15s%10s%10d\t%10d *\n\n",mes[k].id,mes[k].name,mes[k].money,mes[k].tz)之前加上循环,这样才能遍历mes数组,列出相关成员的值。追问

这个我知道,printf列出给我们看,但是fscanf(fp,"%15s%10s%10s%10d%10d\n",mes[i].id,mes[i].password,mes[i].name,&mes[i].money,&mes[i].tz); 已经把123.txt的数据都赋给结构体mes了,但是就是要选择性的对存款之间相互算选呀。。。

相似回答