#include "stdio.h"
#include "stdlib.h" /*常用子程序*/
#include "dos.h" /*Ms-dos和8086调用的一些常量和函数*/
#include "string.h"
#include "conio.h"
typedef struct xiaofei /*定义消费情况*/
{
int year; /*消费年份*/
int month; /*消费月份*/
int day; /*消费日*/
char xfproject[20]; /*消费项目名称*/
int money; /*消费金额*/
}xiaofei;
typedef struct Info /*定义记录类型*/
{
char no[6]; /*学号*/
char name[15]; /*姓名*/
char sex[2]; /*性别*/
char tel[15]; /*电话*/
struct xiaofei xf[20]; /*消费记录,最多20笔 */
}Info;
typedef struct node /*定义链表的节点结构*/
{
struct Info data;
struct node *next;
} Node, *link;
int main()
{
void stringinput(); /*自定义字符串检测函数*/
void enter(link l); /*录入函数*/
void del(link l); /*信息删除函数*/
void search(link l); /*查询函数*/
void list(link l); /*列表函数*/
void save(link l); /*保存函数*/
void load(link l); /*读取函数*/
void count(link l); /*统计函数*/
void add(link l); /*添加函数*/
void others(link l); /*其他功能*/
int menu_select(); /*菜单函数*/
/*主体*/
link l;
l=(Node *)malloc(sizeof(Node));
l->data.xf->year=0;
if(!l)
{
printf("\n没有申请到内存!");
return -1;
}
l->next=NULL;
system("cls"); /*清屏*/
while(1)
{
system("cls");
switch(menu_select())
{
case 1: enter(l); break;
case 5: add(l); break;
case 6: list(l); break;
case 4: search(l); break;
case 2: save(l); break;
case 3: load(l); break;
case 7: del(l); break;
case 8: count(l); break;
case 9: others(l); break;
case 0: exit(0);
}
}
}
/*菜单函数*/
int menu_select()
{
int i;
printf("\n\n\n\t ****************我的管家婆财务管理系统****************\n");
printf("\t |* *|\n");
printf("\t |* *|\n");
printf("\t |* 0 退出系统 *|\n");
printf("\t |* 1 基本信息录入 *|\n");
printf("\t |* 2 保存信息 *|\n");
printf("\t |* 3 装载 *|\n");
printf("\t |* 4 查询 *|\n");
printf("\t |* 5 添加信息 *|\n");
printf("\t |* 6 显示 *|\n");
printf("\t |* 7 删除 *|\n");
printf("\t |* 8 统计 *|\n");
printf("\t |* 9 其他功能 *|\n");
printf("\t |* *|\n");
printf("\t |* *|\n");
printf("\t ******************************************************\n");
printf("\t |* 设计者:CWL 版本:v1.0 2015-07-29 *|\n");
printf("\t ******************************************************\n");
printf("\n\t 请选择菜单:");
scanf("%d",&i);
return i;
}
/*录入函数*/
void enter(link l)
{
int i=0;
int judge=1;
link curr;
if(l->data.xf->year!=0)
{
printf("信息表内已有信息,请使用添加删除操作对信息表进行修改或将信息表清空后再进行输入!\n");
printf("按回车返回");
getchar();
getchar();
return;
}
curr=l;
if(l==NULL)
{
l=(Node*)malloc(sizeof(Node));
l->data.xf->year=0;
}
while(judge==1)
{
printf("请输入学号:");
scanf("%s",curr->data.no);
printf("请输入姓名:");
scanf("%s",curr->data.name);
printf("请输入性别(f/m):");
scanf("%s",curr->data.sex);
while(*(curr->data.sex)!='f'&&*(curr->data.sex)!='m')
{
printf("输入错误,请输入f代表女性,m代表男性:");
scanf("%s",curr->data.sex);
}
printf("请输入电话号码:");
scanf("%s",curr->data.tel);
printf("请输入您的消费记录,每笔消费记录中当年份输入0时退出!\n");
i=0;
while(i<20)
{
printf("第%d笔: 年份:",i+1);
scanf("%d",&(curr->data.xf[i].year));
if(curr->data.xf[i].year==0)break;
printf("月份:");
scanf("%d",&(curr->data.xf[i].month));
printf("日:");
scanf("%d",&(curr->data.xf[i].day));
printf("消费项目名称:");
scanf("%s",&(curr->data.xf[i].xfproject));
printf("消费金额(必须为整数):");
scanf("%d",&(curr->data.xf[i].money));
i++;
}
printf("该学生的消费信息输入完毕,是否输入下一个学生的消费信息(输入1代表是,输入2代表否):\n");
scanf("%d",&judge);
if(judge==1)
{
curr->next=(Node *)malloc(sizeof(Node));
curr=curr->next;
curr->next=NULL;
}
}
}
/*删除函数*/
void del(link l) /*信息删除函数*/
{
int judge=1;
link curr=l;
link temp;
char tname[15];
printf("请输入需要删除的学生姓名:");
scanf("%s",tname);
if(l->data.name==tname)
{
judge=0;
l=l->next;
free(curr);
}
if(l==NULL)
{
l=(Node*)malloc(sizeof(Node));
l->data.xf->year=0;
}
while(curr!=NULL)
{
if(strcmp(curr->next->data.name,tname)==0)
{
judge=0;
temp=curr->next;
curr->next=curr->next->next;
free(temp);
}
curr=curr->next;
}
if(judge==1)
{
printf("未找到相关记录.\n");
}
else
{
printf("删除完毕.\n");
}
printf("按回车返回");
getchar();
getchar();
}
/*查询函数*/
void search(link l) /*查询函数*/
{
char tname[15];
link curr=l;
int i=0,total=0;
printf("输入要查询的姓名:");
scanf("%s",tname);
while(curr!=NULL&&strcmp(curr->data.name,tname)!=0)
{
curr=curr->next;
}
if(curr==NULL)
{
printf("未找到相关记录.\n");
getchar();
getchar();
return;
}
printf("|学号:%-18s姓名:%-11s 性别:",curr->data.no,curr->data.name);
if(curr->data.sex=="f")printf("女 ");
else printf("男 ");
printf("电话:%-20s|\n",curr->data.tel);
printf("|-----------------------------------------------------------------------------|\n");
for(i=0;curr->data.xf[i].year!=0&&i<20;i++)
{
printf("|日期:%d-%d -%-5d 消费项目名称:%-16s金额:%-8d\t |\n",curr->data.xf[i].year,curr->data.xf[i].month,curr->data.xf[i].day,curr->data.xf[i].xfproject,curr->data.xf[i].money);
total=total+(curr->data.xf[i].money);
}
printf("|-----------------------------合计:%6d.000000\t----------------------|\n",total);
printf("按回车返回");
getchar();
getchar();
}
/*列表函数*/
void list(link l)
{
int i=0;
link curr=l;
int total=0;
if(l->data.xf->year==0)
{
printf("空表!\n");
getchar();
getchar();
return;
}
printf("*******************************您的消费记录信息********************************\n");
printf("|-----------------------------------------------------------------------------|\n");
while(curr!=NULL)
{
total=0;
printf("|学号:%-18s姓名:%-11s 性别:",curr->data.no,curr->data.name);
if(curr->data.sex=="f")printf("女 ");
else printf("男 ");
printf("电话:%-20s|\n",curr->data.tel);
printf("|-----------------------------------------------------------------------------|\n");
for(i=0;curr->data.xf[i].year!=0&&i<20;i++)
{
printf("|日期:%d-%d -%-5d 消费项目名称:%-16s金额:%-8d\t |\n",curr->data.xf[i].year,curr->data.xf[i].month,curr->data.xf[i].day,curr->data.xf[i].xfproject,curr->data.xf[i].money);
total=total+(curr->data.xf[i].money);
}
printf("|-----------------------------合计:%6d.000000\t----------------------|\n",total);
curr=curr->next;
}
printf("|-----------------------------------------------------------------------------|\n");
getchar();
getchar();
}
/*保存函数*/
void save(link l)
{
link curr=l;
int i=0;
FILE *p=fopen("D:\\save.txt","w");
if(!p)
{
printf("打开文件失败!\n");
getchar();
getchar();
}
if(curr->data.xf->year==0)
{
printf("空表!");
getchar();
getchar();
return;
}
while(curr!=NULL)
{
fprintf(p,"%s\n%s\n%s\n%s\n",curr->data.no,curr->data.name,curr->data.sex,curr->data.tel);
i=0;
while(i!=20&&curr->data.xf[i].year!=0)
{
fprintf(p,"%d\n%d\n%d\n%s\n%d\n",curr->data.xf[i].year,curr->data.xf[i].month,curr->data.xf[i].day,curr->data.xf[i].xfproject,curr->data.xf[i].money);
i++;
}
if(i!=20)fprintf(p,"%d\n",-1);
curr=curr->next;
}
fprintf(p,"%s\n","*");
fclose(p);
printf("保存文件完毕!");
printf("按回车返回");
getchar();
getchar();
}
/*读取函数*/
void load(link l)
{
int i=0;
link curr=l;
link temp;
FILE *p1=fopen("D:\\save.txt","r");
if(!p1)
{
printf("没有找到该文件.\n");
getchar();
getchar();
return;
}
while(1)
{
i=0;
fscanf(p1,"%s",curr->data.no);
if(strcmp(curr->data.no,"*")==0)
{
temp=curr;
curr=l;
while(curr->next!=temp)
{
curr=curr->next;
}
temp=curr->next;
free(temp);
curr->next=NULL;
curr=NULL;
printf("读取文件完毕!\n");
fclose(p1);
printf("按回车返回");
getchar();
getchar();
return;
}
fscanf(p1,"%s",curr->data.name);
fscanf(p1,"%s",curr->data.sex);
fscanf(p1,"%s",curr->data.tel);
while(i!=20)
{
fscanf(p1,"%d",&(curr->data.xf[i].year));
if(curr->data.xf[i].year==-1)
{
curr->data.xf[i].year=0;
break;
}
fscanf(p1,"%d",&(curr->data.xf[i].month));
fscanf(p1,"%d",&(curr->data.xf[i].day));
fscanf(p1,"%s",curr->data.xf[i].xfproject);
fscanf(p1,"%d",&(curr->data.xf[i].money));
i++;
}
curr->next=(Node*)malloc(sizeof(Node));
curr=curr->next;
}
printf("按回车返回");
getchar();
getchar();
}
/*统计函数ok*/
void count(link l)
{
int i,c=0,tyear,tmonth;
link curr=l;
int total=0;
printf("请输入需要统计消费的年份:");
scanf("%d",&tyear);
printf("请输入需要统计消费的月份:");
scanf("%d",&tmonth);
while(curr!=NULL)
{
for(i=0;curr->data.xf[i].year!=0&&i<20;i++)
{
if(curr->data.xf[i].year==tyear&&curr->data.xf[i].month==tmonth)
{
total=total+(curr->data.xf[i].money);
}
}
printf("%d年%d月所有学生一共消费了%d元",tyear,tmonth,total);
curr=curr->next;
}
printf("按回车返回");
getchar();
getchar();
}
/*添加函数ok*/
void add(link l)
{
int i=0;
link curr=l;
int c=0;
if(l->data.xf->year==0)
{
printf("空信息库请选用功能1或3进行信息录入\n");
return;
}
while(curr->next!=NULL)
{
curr=curr->next;
}
curr->next=(Node*)malloc(sizeof(Node));
curr=curr->next;
curr->next=NULL;
printf("请输入学号:");
scanf("%s",curr->data.no);
printf("请输入姓名:");
scanf("%s",curr->data.name);
printf("请输入性别(f/m):");
scanf("%s",curr->data.sex);
while(*(curr->data.sex)!='f'&&*(curr->data.sex)!='m')
{
printf("输入错误,请输入f代表女性,m代表男性:");
scanf("%s",curr->data.sex);
}
printf("请输入电话号码:");
scanf("%s",curr->data.tel);
printf("请输入您的消费记录,每笔消费记录中当年份输入0时退出!\n");
while(i<20)
{
printf("第%d笔: 年份:",i+1);
scanf("%d",&(curr->data.xf[i].year));
if(curr->data.xf[i].year==0)break;
printf("月份:");
scanf("%d",&(curr->data.xf[i].month));
printf("日:");
scanf("%d",&(curr->data.xf[i].day));
printf("消费项目名称:");
scanf("%s",curr->data.xf[i].xfproject);
printf("消费金额(必须为整数):");
scanf("%d",&(curr->data.xf[i].money));
i++;
}
printf("添加信息完毕\n");
curr=l;
while(curr!=NULL)
{
c++;
curr=curr->next;
}
printf("添加后总共有%d名学生.\n",c);
printf("按回车返回");
getchar();
getchar();
}
void others(link l)
{
int i,j;
system("cls");
printf("\n\n\n\t\t\t\t大班早日脱单!\n");
printf("\n\t\t\t ****** ******\n");
printf("\t\t\t ********** **********\n");
printf("\t\t\t ************* *************\n");
for(i=0;i<3;i++)
{
printf("\t\t\t");
for(j=0;j<29;j++)
printf("*");
printf("\n");
}
for(i=0;i<7;i++)
{
printf("\t\t\t");
for(j=0;j<2*(i+1)-1;j++)
printf(" ");
for(j=0;j<27-i*4;j++)
printf("*");
printf("\n");
}
for(i=0;i<14;i++)
printf(" ");
printf("\t\t\t *\n");
getchar();
getchar();
}
#include "stdlib.h" /*常用子程序*/
#include "dos.h" /*Ms-dos和8086调用的一些常量和函数*/
#include "string.h"
#include "conio.h"
typedef struct xiaofei /*定义消费情况*/
{
int year; /*消费年份*/
int month; /*消费月份*/
int day; /*消费日*/
char xfproject[20]; /*消费项目名称*/
int money; /*消费金额*/
}xiaofei;
typedef struct Info /*定义记录类型*/
{
char no[6]; /*学号*/
char name[15]; /*姓名*/
char sex[2]; /*性别*/
char tel[15]; /*电话*/
struct xiaofei xf[20]; /*消费记录,最多20笔 */
}Info;
typedef struct node /*定义链表的节点结构*/
{
struct Info data;
struct node *next;
} Node, *link;
int main()
{
void stringinput(); /*自定义字符串检测函数*/
void enter(link l); /*录入函数*/
void del(link l); /*信息删除函数*/
void search(link l); /*查询函数*/
void list(link l); /*列表函数*/
void save(link l); /*保存函数*/
void load(link l); /*读取函数*/
void count(link l); /*统计函数*/
void add(link l); /*添加函数*/
void others(link l); /*其他功能*/
int menu_select(); /*菜单函数*/
/*主体*/
link l;
l=(Node *)malloc(sizeof(Node));
l->data.xf->year=0;
if(!l)
{
printf("\n没有申请到内存!");
return -1;
}
l->next=NULL;
system("cls"); /*清屏*/
while(1)
{
system("cls");
switch(menu_select())
{
case 1: enter(l); break;
case 5: add(l); break;
case 6: list(l); break;
case 4: search(l); break;
case 2: save(l); break;
case 3: load(l); break;
case 7: del(l); break;
case 8: count(l); break;
case 9: others(l); break;
case 0: exit(0);
}
}
}
/*菜单函数*/
int menu_select()
{
int i;
printf("\n\n\n\t ****************我的管家婆财务管理系统****************\n");
printf("\t |* *|\n");
printf("\t |* *|\n");
printf("\t |* 0 退出系统 *|\n");
printf("\t |* 1 基本信息录入 *|\n");
printf("\t |* 2 保存信息 *|\n");
printf("\t |* 3 装载 *|\n");
printf("\t |* 4 查询 *|\n");
printf("\t |* 5 添加信息 *|\n");
printf("\t |* 6 显示 *|\n");
printf("\t |* 7 删除 *|\n");
printf("\t |* 8 统计 *|\n");
printf("\t |* 9 其他功能 *|\n");
printf("\t |* *|\n");
printf("\t |* *|\n");
printf("\t ******************************************************\n");
printf("\t |* 设计者:CWL 版本:v1.0 2015-07-29 *|\n");
printf("\t ******************************************************\n");
printf("\n\t 请选择菜单:");
scanf("%d",&i);
return i;
}
/*录入函数*/
void enter(link l)
{
int i=0;
int judge=1;
link curr;
if(l->data.xf->year!=0)
{
printf("信息表内已有信息,请使用添加删除操作对信息表进行修改或将信息表清空后再进行输入!\n");
printf("按回车返回");
getchar();
getchar();
return;
}
curr=l;
if(l==NULL)
{
l=(Node*)malloc(sizeof(Node));
l->data.xf->year=0;
}
while(judge==1)
{
printf("请输入学号:");
scanf("%s",curr->data.no);
printf("请输入姓名:");
scanf("%s",curr->data.name);
printf("请输入性别(f/m):");
scanf("%s",curr->data.sex);
while(*(curr->data.sex)!='f'&&*(curr->data.sex)!='m')
{
printf("输入错误,请输入f代表女性,m代表男性:");
scanf("%s",curr->data.sex);
}
printf("请输入电话号码:");
scanf("%s",curr->data.tel);
printf("请输入您的消费记录,每笔消费记录中当年份输入0时退出!\n");
i=0;
while(i<20)
{
printf("第%d笔: 年份:",i+1);
scanf("%d",&(curr->data.xf[i].year));
if(curr->data.xf[i].year==0)break;
printf("月份:");
scanf("%d",&(curr->data.xf[i].month));
printf("日:");
scanf("%d",&(curr->data.xf[i].day));
printf("消费项目名称:");
scanf("%s",&(curr->data.xf[i].xfproject));
printf("消费金额(必须为整数):");
scanf("%d",&(curr->data.xf[i].money));
i++;
}
printf("该学生的消费信息输入完毕,是否输入下一个学生的消费信息(输入1代表是,输入2代表否):\n");
scanf("%d",&judge);
if(judge==1)
{
curr->next=(Node *)malloc(sizeof(Node));
curr=curr->next;
curr->next=NULL;
}
}
}
/*删除函数*/
void del(link l) /*信息删除函数*/
{
int judge=1;
link curr=l;
link temp;
char tname[15];
printf("请输入需要删除的学生姓名:");
scanf("%s",tname);
if(l->data.name==tname)
{
judge=0;
l=l->next;
free(curr);
}
if(l==NULL)
{
l=(Node*)malloc(sizeof(Node));
l->data.xf->year=0;
}
while(curr!=NULL)
{
if(strcmp(curr->next->data.name,tname)==0)
{
judge=0;
temp=curr->next;
curr->next=curr->next->next;
free(temp);
}
curr=curr->next;
}
if(judge==1)
{
printf("未找到相关记录.\n");
}
else
{
printf("删除完毕.\n");
}
printf("按回车返回");
getchar();
getchar();
}
/*查询函数*/
void search(link l) /*查询函数*/
{
char tname[15];
link curr=l;
int i=0,total=0;
printf("输入要查询的姓名:");
scanf("%s",tname);
while(curr!=NULL&&strcmp(curr->data.name,tname)!=0)
{
curr=curr->next;
}
if(curr==NULL)
{
printf("未找到相关记录.\n");
getchar();
getchar();
return;
}
printf("|学号:%-18s姓名:%-11s 性别:",curr->data.no,curr->data.name);
if(curr->data.sex=="f")printf("女 ");
else printf("男 ");
printf("电话:%-20s|\n",curr->data.tel);
printf("|-----------------------------------------------------------------------------|\n");
for(i=0;curr->data.xf[i].year!=0&&i<20;i++)
{
printf("|日期:%d-%d -%-5d 消费项目名称:%-16s金额:%-8d\t |\n",curr->data.xf[i].year,curr->data.xf[i].month,curr->data.xf[i].day,curr->data.xf[i].xfproject,curr->data.xf[i].money);
total=total+(curr->data.xf[i].money);
}
printf("|-----------------------------合计:%6d.000000\t----------------------|\n",total);
printf("按回车返回");
getchar();
getchar();
}
/*列表函数*/
void list(link l)
{
int i=0;
link curr=l;
int total=0;
if(l->data.xf->year==0)
{
printf("空表!\n");
getchar();
getchar();
return;
}
printf("*******************************您的消费记录信息********************************\n");
printf("|-----------------------------------------------------------------------------|\n");
while(curr!=NULL)
{
total=0;
printf("|学号:%-18s姓名:%-11s 性别:",curr->data.no,curr->data.name);
if(curr->data.sex=="f")printf("女 ");
else printf("男 ");
printf("电话:%-20s|\n",curr->data.tel);
printf("|-----------------------------------------------------------------------------|\n");
for(i=0;curr->data.xf[i].year!=0&&i<20;i++)
{
printf("|日期:%d-%d -%-5d 消费项目名称:%-16s金额:%-8d\t |\n",curr->data.xf[i].year,curr->data.xf[i].month,curr->data.xf[i].day,curr->data.xf[i].xfproject,curr->data.xf[i].money);
total=total+(curr->data.xf[i].money);
}
printf("|-----------------------------合计:%6d.000000\t----------------------|\n",total);
curr=curr->next;
}
printf("|-----------------------------------------------------------------------------|\n");
getchar();
getchar();
}
/*保存函数*/
void save(link l)
{
link curr=l;
int i=0;
FILE *p=fopen("D:\\save.txt","w");
if(!p)
{
printf("打开文件失败!\n");
getchar();
getchar();
}
if(curr->data.xf->year==0)
{
printf("空表!");
getchar();
getchar();
return;
}
while(curr!=NULL)
{
fprintf(p,"%s\n%s\n%s\n%s\n",curr->data.no,curr->data.name,curr->data.sex,curr->data.tel);
i=0;
while(i!=20&&curr->data.xf[i].year!=0)
{
fprintf(p,"%d\n%d\n%d\n%s\n%d\n",curr->data.xf[i].year,curr->data.xf[i].month,curr->data.xf[i].day,curr->data.xf[i].xfproject,curr->data.xf[i].money);
i++;
}
if(i!=20)fprintf(p,"%d\n",-1);
curr=curr->next;
}
fprintf(p,"%s\n","*");
fclose(p);
printf("保存文件完毕!");
printf("按回车返回");
getchar();
getchar();
}
/*读取函数*/
void load(link l)
{
int i=0;
link curr=l;
link temp;
FILE *p1=fopen("D:\\save.txt","r");
if(!p1)
{
printf("没有找到该文件.\n");
getchar();
getchar();
return;
}
while(1)
{
i=0;
fscanf(p1,"%s",curr->data.no);
if(strcmp(curr->data.no,"*")==0)
{
temp=curr;
curr=l;
while(curr->next!=temp)
{
curr=curr->next;
}
temp=curr->next;
free(temp);
curr->next=NULL;
curr=NULL;
printf("读取文件完毕!\n");
fclose(p1);
printf("按回车返回");
getchar();
getchar();
return;
}
fscanf(p1,"%s",curr->data.name);
fscanf(p1,"%s",curr->data.sex);
fscanf(p1,"%s",curr->data.tel);
while(i!=20)
{
fscanf(p1,"%d",&(curr->data.xf[i].year));
if(curr->data.xf[i].year==-1)
{
curr->data.xf[i].year=0;
break;
}
fscanf(p1,"%d",&(curr->data.xf[i].month));
fscanf(p1,"%d",&(curr->data.xf[i].day));
fscanf(p1,"%s",curr->data.xf[i].xfproject);
fscanf(p1,"%d",&(curr->data.xf[i].money));
i++;
}
curr->next=(Node*)malloc(sizeof(Node));
curr=curr->next;
}
printf("按回车返回");
getchar();
getchar();
}
/*统计函数ok*/
void count(link l)
{
int i,c=0,tyear,tmonth;
link curr=l;
int total=0;
printf("请输入需要统计消费的年份:");
scanf("%d",&tyear);
printf("请输入需要统计消费的月份:");
scanf("%d",&tmonth);
while(curr!=NULL)
{
for(i=0;curr->data.xf[i].year!=0&&i<20;i++)
{
if(curr->data.xf[i].year==tyear&&curr->data.xf[i].month==tmonth)
{
total=total+(curr->data.xf[i].money);
}
}
printf("%d年%d月所有学生一共消费了%d元",tyear,tmonth,total);
curr=curr->next;
}
printf("按回车返回");
getchar();
getchar();
}
/*添加函数ok*/
void add(link l)
{
int i=0;
link curr=l;
int c=0;
if(l->data.xf->year==0)
{
printf("空信息库请选用功能1或3进行信息录入\n");
return;
}
while(curr->next!=NULL)
{
curr=curr->next;
}
curr->next=(Node*)malloc(sizeof(Node));
curr=curr->next;
curr->next=NULL;
printf("请输入学号:");
scanf("%s",curr->data.no);
printf("请输入姓名:");
scanf("%s",curr->data.name);
printf("请输入性别(f/m):");
scanf("%s",curr->data.sex);
while(*(curr->data.sex)!='f'&&*(curr->data.sex)!='m')
{
printf("输入错误,请输入f代表女性,m代表男性:");
scanf("%s",curr->data.sex);
}
printf("请输入电话号码:");
scanf("%s",curr->data.tel);
printf("请输入您的消费记录,每笔消费记录中当年份输入0时退出!\n");
while(i<20)
{
printf("第%d笔: 年份:",i+1);
scanf("%d",&(curr->data.xf[i].year));
if(curr->data.xf[i].year==0)break;
printf("月份:");
scanf("%d",&(curr->data.xf[i].month));
printf("日:");
scanf("%d",&(curr->data.xf[i].day));
printf("消费项目名称:");
scanf("%s",curr->data.xf[i].xfproject);
printf("消费金额(必须为整数):");
scanf("%d",&(curr->data.xf[i].money));
i++;
}
printf("添加信息完毕\n");
curr=l;
while(curr!=NULL)
{
c++;
curr=curr->next;
}
printf("添加后总共有%d名学生.\n",c);
printf("按回车返回");
getchar();
getchar();
}
void others(link l)
{
int i,j;
system("cls");
printf("\n\n\n\t\t\t\t大班早日脱单!\n");
printf("\n\t\t\t ****** ******\n");
printf("\t\t\t ********** **********\n");
printf("\t\t\t ************* *************\n");
for(i=0;i<3;i++)
{
printf("\t\t\t");
for(j=0;j<29;j++)
printf("*");
printf("\n");
}
for(i=0;i<7;i++)
{
printf("\t\t\t");
for(j=0;j<2*(i+1)-1;j++)
printf(" ");
for(j=0;j<27-i*4;j++)
printf("*");
printf("\n");
}
for(i=0;i<14;i++)
printf(" ");
printf("\t\t\t *\n");
getchar();
getchar();
}