#include "stdio.h" #include "stdlib.h" /*常用子程序*/ #include "dos.h" /*Ms-dos和8086调用的一些常量和函数*/ #include "string.h" typedef struct student xiaofei /*定义消费情况*/ { int year; /*消费年份*/ int month; /*消费月份*/ int day; /*消费日*/ char xfproject[20]; /*消费项目*/ int money; /*消费金额*/ int danjia; /*消费单价*/ }; typedef struct student Information /*定义纪录类型 */ { char name; /*姓名*/ char number /*学号*/ char sex; /*性别*/ int telephone numer; /*电话号码*/ char address; /*住址*/ char email; /*电子邮件*/ struct xiaofei xf[20]; /*消费记录*/ }; typedef struct node /*定义链表的节点结构*/ { struct Informationdata; struct node *next; } Node, *link; /*主函数*/ void main() { int stringinput; /*自定义字符串检测函数*/ void enter(); /*函数输入*/ void save(); /*函数保存*/ void zhuangzai(); /*函数的装载*/ void search(); /*函数搜索*/ void add(); /*函数添加*/ void change(); /*函数修改*/ void del(); /*函数删除*/ int tongji; /*函数统计*/ int tuichu /*退出函数*/ /*主体*/ link l; l=(Node *)malloc(sizeof(Node)); if(!l) { printf("\n没有申请到内存!"); return; } l->next=NULL; system("cls"); /*清屏*/ while(1) { system("cls"); switch(menu_select()) { case 1: enter(l); break; case 2: save(l); break; case 3: zhuangzai(l); break; case 4: search(l); break; case 5: add(l); break; case 6: change(l); break; case 7: del(l); break; case 8: tongji(l); break; case 0: exit(0); break; } } int meunslect(); int i; { printf("\n\n******************我的管家婆财务处理系统*******************\n\n"); printf("\t\t********************0退出系统******************************\t\t"); printf("\t\t*******************1信息的录入*****************************\t\t"); printf("\t\t******************2信息的保存******************************\t\t"); printf("\t\t******************3信息的装载******************************\t\t"); printf("\t\t******************4信息的查询******************************\t\t"); printf("\t\t******************5信息的添加******************************\t\t"); printf("\t\t******************6信息的修改******************************\t\t"); printf("\t\t******************7信息的删除******************************\t\t"); printf("\t\t******************8信息的统计******************************\t\t"); printf("\t\t*******************9其他功能******************************\t\t"); printnf("\t\t**********************************************************\t\t"); printf("\t\t 设计人员: 型号:v1.0 日期:2014.06.23 \t\t"); printf("\t\t************************************************************\t\t"); } do{ printf("\n选择菜单:"); scanf("%d",&i); } { while(i>=0 || i<10) return i; } /*退出系统*/ void tuichu() { printf("退出系统!欢迎下次登入"); exit(0); } /*录入学生的消费信息*/ void enter(link l){ int i; Node *p,*q; q=1; while(1) { p=(Node *)malloc(sizeof(Noid)); if(!p) {printf("\n没有申请到内存:"); return 0; } stringinput(p->data .number,2,"请输入学号:"); /*输入学号*/ { if(stringinput(p->number,2,0)==o) /*检测输入的学号*/ break; stringinput(p->.name,1,"输入姓名:"); /*输入姓名*/ stringinput(p->.sex,3,"男m,女f"); /*输入性别*/ { if(stringinput(p->.sex[0]!=m || stringinput(p->.sex[o]!=f) break; } stringinput(p->telephonenumer,4,"输入电话号码"); /*输入电话号码*/ stringinput(p->address,5,"输入地址”); stringinput(p->email,6,"输入电子邮件"); /*输入电子邮件*/ } /*输入消费纪录*/ printf("请你输入消费纪录,每笔纪录年份为0时退出\n"); for(i=0,i<=20,i++) printf("\t年份: "); scanf("%d,&(p->date.xf[i].year)); if(p->date.xf[i].year==0) break; printf("\t月份: "); scanf("%d",&(p->date.xf[i].month)); printf("\t日: "); scanf("%d",&(p->data .xf[i].day)); if(p->date.xf[i]month==2 && p->date.xf[i].day>30) break; printf("\t: "); stringinput(p->xfproject,20,"消费项目"); printf("\t金额:必须为整数 "); scanf("%d",&(p->data .xf[i].money)); printf("\t单价: "); scanf("%d",&(p->data .xf[i].danjia)); /*检查输入的字符串是否符合要求*/ void stringinput(char *t,int lens,char *notice) { char n[50]; do { printf("notice"); scanf("%s",n); if(strlen(n)>lens) printf("\n输入的字符串超长,请重新输入\n"); } while(strlen(n)<lens) strcpy(t,n); }