第一篇:简易水电费管理系统源程序代码
简易水电费管理系统源程序代码
法一:
#include
{ fread(&memb,sizeof(struct member),1,fp);if(feof(fp)||memb.no==a)break;i++;} if(!feof(fp)){ printf(“>>卡号:”);printf(“%sn”,memb.no);printf(“>>姓名:”);printf(“%sn”,memb.name“);printf(”>>水费:“);printf(”%fn“,memb.wfee);printf(”>>电费:“);printf(”%fn“,memb.efee);
} else
printf(”>>查无此人n“);};void delete(int n){ char c[100];printf(”>>删除的卡号:“);scanf(”%s,“ c);if((fp1=fopen(”temp.bin“,”wb“))==NULL){
printf(”>>不能建立临时文件,无法删除n“);} rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp))break;if(memb.no!=c)fwrite(&memb,sizeof(struct member),1,fp1);} fclose(fp1);fclose(fp);remove(”member.bin“);rename(”temp.bin“,”member.bin“);fp=fopen(”member.bin“,”rb++“);};main(){ char a[100];char b[20];FILE *fp;printf(”欢迎进入水电费管理系统n“)int i=0,sel=1;if((fp=fopen(”member.bin“,”wb++“))==NULL){ printf(”>>不能建立member.bin文件n“);return(0);} while(sel!=0){ printf(”| 1 | 2 | 3 | 4 |n“);printf(”|-----------------------------|n“);printf(”|新添成员
|查找个人信息
|删除成员
|退出
|n);fseek(fp,0,SEEK_END);scanf(“%d”,&sel);switch(sel){ case 1: newadd(sel);break;clscr();exit(0);case 2: printf(“请输入您的卡号:”);
printf(“%s”,a);printf(“请输入您的密码:”);puts(b);while(strcmp(a,memb.no)==0&&strcmp(b,memb.password)==0)look(sel);printf(“您的输入有误n”);break;clscr();exit(0);
case 3: delete(sel);break;clscr();exit(0);}
法二:
#include if(fp==NULL)printf(“****”);printf(“>>输入卡号:”);scanf(“%s”,a);i=0;rewind(fp);while(1) { fread(&memb,sizeof(struct member),1,fp);if(feof(fp)||strcmp(memb.no,a)==0)break;i++;} if(!feof(fp)){ printf(“>>卡号:”);printf(“%sn”,memb.no);printf(“>>姓名:”);printf(“%sn”,memb.name);printf(“>>水费:”);printf(“%fn”,memb.wfee);printf(“>>电费:”);printf(“%fn”,memb.efee);} else printf(“>>查无此人n”);getch();fclose(fp);} void dele(int n){ char c[100];FILE *fp,*fp1;fp=fopen(“e:member.bin”,“rb”);printf(“>>删除的卡号:”);scanf(“%s” ,c); if((fp1=fopen(“temp.bin”,“wb”))==NULL){ printf(“>>不能建立临时文件,无法删除n”);} rewind(fp);while(1){ fread(&memb,sizeof(struct member),1,fp);if(feof(fp))break;if(strcmp(memb.no,c)!=0)fwrite(&memb,sizeof(struct member),1,fp1);} fclose(fp1);fclose(fp);remove(“member.bin”);rename(“temp.bin”,“member.bin”); fp=fopen(“member.bin”,“rb+”);} main(){ char a[100];char b[20];int i=0,sel=1;FILE *fp;printf(“欢迎进入水电费管理系统n”);if((fp=fopen(“e:member.bin”,“wb”))==NULL){ printf(“>>不能建立member.bin文件n”);return(0);} while(sel!=0){ printf(“| 1 | 2 | 3 | 4 |n”);printf(“|-----------------------------|n”);printf(“|新添成员 |查找个人信息 |删除成员 |退出 |n”);fseek(fp,0,SEEK_END);scanf(“%d”,&sel);printf(“sel=%dn”,sel);switch(sel){ case 1: newadd(sel); system(“cls”);break;case 2: look(sel);system(“cls”);break; case 3: dele(sel);system(“cls”); break; } } } 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 仓库库存管理系统源程序 #include char name[20];//物品名称 int num; //商品数量 int level;//物品等级 }item;typedef struct node { struct item data;struct node * next;}Node,*Link;//定义为链表 void menu()//页面显示函数 { 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 system(“cls”);//清屏函数 printf(“***********************************《物品库存管理》*****************************n”);printf(“ n”); printf(“n <1> 物品入库管理ntn <2> 物品出库管理n”);printf(“n <3> 浏览库内物品信息ntn <4> 修改物品信息n”);printf(“n <5> 保存物品信息ntn <0> 退出库存管理n”);printf(“ n”);cout<<“********************************************************************************”< void printstart(){ printf(“-----------n”);printf(“n 请选择操作:”); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 } void Wrong()//错误处理函数 { printf(“输入错误!n”);getchar();getchar();menu(); return;} void Nofind(){ printf(“没有找到该物品!n”);} void printc()//本函数用于输出中文 { printf(“ 物品编码 物品名称 物品数量 n”);} void printe(Node *p)//输出物品信息函数 { cout< ”< data.code<<“ ”< data.name<<“ ”< data.num<<“ 精心收集 精心编辑 精致阅读 如需请下载!物品等级 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 ”< data.level;} Node *Locate(Link l,char findmess[],char nameorcode[])//用于定位连接中,符合要求的结点,并返回该指针 { Node *r;if(strcmp(nameorcode,“code”)==0)// { } else if(strcmp(nameorcode,“name”)==0)//按名称查询 { r=l->next;while(r!=NULL){ r=l->next;while(r!=NULL){ } if(strcmp(r->data.code,findmess)==0)return r;r=r->next; 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 } } } if(strcmp(r->data.name,findmess)==0)return r;r=r->next;return 0;void Add(Link l)//增加物品函数 { Node *p,*r,*s;char code[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;while(l){ system(“cls”);//清屏函数 cout<<“请输入商品编码(输入'0'返回上一级菜单):”< 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 while(s){ if(strcmp(s->data.code,code)==0){ printf(“物品编码为'%s'的物品已经存在,如果要修改请选择'4 修改'!n”,code); printstart(); printc(); printe(s); printstart(); printf(“n”); return; } s=s->next; } p=(Node *)malloc(sizeof(Node)); strcpy(p->data.code,code); printf(“请输入物品名称:”); scanf(“%s”,p->data.name);getchar(); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 printf(“请输入物品数量:”); scanf(“%d”,&p->data.num); printf(“请输入物品等级:”); scanf(“%d”,&p->data.level); p->next=NULL; r->next=p; r=p; shoudsave=1;} menu();} void Qur(Link l)//查询物品信息函数 { int sel;char findmess[20];Node *p;if(!l->next){ printf(“n没有信息可查询!n”); getchar(); getchar();menu(); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 return; } system(“cls”);//清屏函数 printf(“n 1按物品编码查询n 2按物品名称查询n”);scanf(“%d”,&sel);if(sel==1)// { printf(“请输入要查询的编码:n”);scanf(“%s”,findmess);p=Locate(l,findmess,“code”);if(p){ printf(“tttt查询结果n”); printstart(); cout< printc(); cout< printe(p); cout< printstart(); getchar();getchar(); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 } } menu();return;else Nofind();else if(sel==2)// { printf(“请输入要查找的物品名称:”);scanf(“%s”,findmess);p=Locate(l,findmess,“name”);if(p){ printf(“ttt查询结果n”); printstart();cout< printc();cout< printe(p);cout< printstart(); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 getchar(); getchar(); menu(); return; } else Nofind(); } else Wrong();getchar(); system(“cls”);//清屏函数 menu();} void Del(Link l)//删除 { int sel;Node *p,*r;char findmess[20];if(!l->next){ system(“cls”);//清屏函数 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 } printf(“n您的仓库为空!n”);getchar();getchar();menu();return;system(“cls”);//清屏函数 printf(“n 1按物品编码出仓n 2按物品名称出仓n”);scanf(“%d”,&sel);if(sel==1){ printf(“请输入要出仓的物品编码:”);scanf(“%s”,findmess);p=Locate(l,findmess,“code”);if(p){ r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf(“n该物品已经成功出仓n”); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 } } shoudsave=1;getchar();getchar();menu();return;else Nofind();else if(sel==2){ system(“cls”);//清屏函数 printf(“请输入要出仓的物品名:”);scanf(“%s”,findmess);p=Locate(l,findmess,“name”);if(p){ r=l;while(r->next!=p)r=r->next;r->next=p->next; 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 } } } free(p);printf(“n该物品已经成功出仓!n”);shoudsave=1;getchar();getchar();menu();return;else Nofind();else Wrong();void Modify(Link l)//物品信息修改 { Node *p;char findmess[20];if(!l->next){ system(“cls”);//清屏函数 printf(“n您的库存为空,无需修改!n”); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 } getchar();getchar();menu();return;printf(“请输入要修改的物品编码:”);scanf(“%s”,findmess);p=Locate(l,findmess,“code”);if(p){ system(“cls”);//清屏函数 printf(“请输入新编码(原来的是%s):”,p->data.code);scanf(“%s”,p->data.code);printf(“请输入新名称(原来的是%s):”,p->data.name);scanf(“%s”,p->data.name);getchar();printf(“请输入新的物品数量(原来的是%d):”,p->data.num);scanf(“%d”,&p->data.num);getchar();printf(“请输入新的物品等级(原来的是%d):”,p->data.level);scanf(“%d”,&p->data.level); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 getchar(); printf(“n修改资料成功!n”); shoudsave=1; getchar();menu(); return;} else Nofind();getchar();menu();} void Disp(Link l){ int count=0;Node *p;p=l->next;if(!p){ printf(“n 没有资料可以显示!n”); getchar();getchar(); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 menu(); return;} printf(“tttt显示结果n”);printstart();printc();printf(“n”);while(p){ printe(p); p=p->next;} printstart();printf(“n”);} void Save(Link l)//物品信息保存 { FILE *fp;Node *p;int flag=1,count=0;fp=fopen(“c:student”,“wb”); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 if(fp==NULL){ printf(“n重新打开文件时错误!n”);exit(1);} p=l->next;while(p){ if(fwrite(p,sizeof(Node),1,fp)==1){ p=p->next; count++;} else { flag=0; break;} } if(flag){ system(“cls”);//清屏函数 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 printf(“n 文件保存成功.(有%d条记录保存成功.)n”,count); shoudsave=0; getchar(); getchar(); menu();} fclose(fp);} void main()//主函数 { menu();Link l;//链表 Node *r;int sel;char ch;int count=0;l=(Node *)malloc(sizeof(Node));l->next=NULL;r=l;while(l){ scanf(“%d”,&sel); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 if(sel==0){ if(shoudsave==1){ getchar();printf(“n 资料已改动,是否将改动的文件保存到文件中(y or n)?n”); } switch(sel){ case 1:Add(l);break;//物品进库 case 2:Del(l);break;//物品出库 case 3:Qur(l);break;//查询物品 case 4:Modify(l);break;//修改物品信息 case 5:Save(l);break;//保存物品信息 } printf(“n 已退出系统!n”);break;scanf(“%c”,&ch);if(ch=='y' || ch=='Y')Save(l); 精心收集 精心编辑 精致阅读 如需请下载! 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 default:Wrong();getchar();break;} 精心收集 精心编辑 精致阅读 如需请下载! } } 附件:病房管理源程序 #include typedef struct bed{ int number; /*床位号*/ int live; /*是否有人*/ unsigned char name[max_name]; /*人名最长长度*/ struct bed *next; /*下一个床铺*/ }bed; typedef struct sickroom { int number; /*病房号*/ int bednum; /*房内床位数*/ int livenum; /*已住人数*/ struct sickroom *next; /*指向下一个病房*/ struct bed *firstbed; /*指向第一个床位*/ }sickroom; int roomnum(sickroom *q)/*返回医院中的房间的个数*/ { int i; for(i=0;q!=NULL;i++)q=q->next;return i;} int Initialization(sickroom *H)/*初始化操作*/ { int i,n,k;sickroom *q,*sq;bed *p,*bp;printf(“----------------------请输入病房个数:”);scanf(“%d”,&n);getchar(); int i,x,n,m,y;sickroom *q;bed *p;q=H->next;n=roomnum(q); printf(“请输入您要入住的病房号(目前共有%d个病房):”,n);scanf(“%d”,&x);getchar();printf(“n”);while(x>n||x<1){ printf(“您输入的病房号错误,请重新输入:”); scanf(“%d”,&x); getchar(); printf(“n”);} for(i=1;i /*q指向选择的病房*/ m=q->bednum-q->livenum;if(m==0){ printf(“-------------------------此病房已满。。(回车继续)-----------n”); getchar(); printf(“n”); return 0;} p=q->firstbed;printf(“空床铺有:”);for(i=1;i<=q->bednum;i++){ if(p->live==0)printf(“ %d号床铺”,i); p=p->next;} printf(“n输入您要选择的床铺号:”);scanf(“%d”,&y);getchar();p=q->firstbed;for(i=1;i /*指向所选床铺*/ if(p->live==1){ printf(“-------------------------输入错误!(回车继续)----------------------------n”); getchar(); return 0;} p->live=1; { printf(“-------------------------查无此床(回车继续)-----------n”); getchar(); return 0; } } if(q->live==0){ printf(“-------------------------此床铺为空!(回车继续)-------------n”); getchar(); return 0;} q->live=0;p->livenum--;H->livenum--;printf(“-------------------------”);printf(“%s”,q->name);printf(“已成功出院!n”);printf(“------------------------(回车继续)----------------n”);getchar();for(i=1;i<=21;i++)q->name[i-1]=0;return 1;} int searchsickroom(sickroom *H)/*查找出医院内病房空床位*/ { int i,m,z=0; sickroom *q; q=H->next; for(i=1;q;i++) { m=q->bednum-q->livenum; if(m>0)printf(“ %d号病房有%d个床位n”,i,m); else printf(“ %d号病房已满n”,i); q=q->next; z+=m; } printf(“ 院中还剩%d个床位(回车继续)。。n”,z); getchar(); return 1;} int n=0,m=0; sickroom *q; bed *p; char a[max_name]; printf(“n请输入您要查找的人名(二十个字符以内,以空格结束):”); scanf(“%s”,a); getchar(); for(q=H->next;q;q=q->next) { for(p=q->firstbed;p;p=p->next) { if(p->live==1) if(strcmp(a,p->name)==0) { n=q->number; m=p->number; } } } if(m==0&&n==0) { printf(“-------------------------查无此人(回车继续)------------n”); getchar(); } else { printf(“ 此人目前住在%d号房%d号床。。n”,n,m); printf(“---------------------(回车继续)-----------------n”); getchar(); } return 1;} int nowhospital(sickroom *H)/*显示目前医院的住院情况*/ { int i; sickroom *q; bed *p; i=0; for(q=H->next;q;q=q->next) { printf(“n病房%d —>t”,q->number); for(p=q->firstbed;p;p=p->next) if(i==2)searchbed(H); else if(i==3) searchpeople(H); else if(i==4) nowhospital(H); else if(i==0); else { printf(“输入错误!(回车继续)n”); getchar(); } }while(i!=0); return ok;} void main()/*主程序*/ { int i; sickroom H; system(“CLS”); printf(“********12**************14************12************14********12*********12 n”); printf(“ _______________________________________________________ n”); printf(“ n”); printf(“ 欢迎进入医院管理程序!! n”); printf(“ n”); printf(“ 请先对医院进行初始化。。(回车键继续) n”); printf(“ 1_____________________________________________________ 2 n”); getchar(); Initialization(&H); printf(“n”); do { system(“CLS”); printf(“********12**************14************12************14********12******12********n”); printf(“ _____________________________________ n”); printf(“ n”); printf(“ 选择菜单: n”); printf(“ [1] 入院操作 n”); printf(“ [2] 出院操作 n”); printf(“ [3] 查询医院信息 n”); printf(“ [0] 退出医院 n”); 源程序: # include #define MAX 60 //下列字符数组的大小 struct Date{//日期 char year[MAX];//年 char month[MAX];//月 char day[MAX];//日 };struct Goods{//药品信息 char name[MAX];//药品名称 char price[MAX];//药品价格 char number[MAX];//药品数量 char cost[MAX];//药品总价 char kind[MAX];//药品的种类 Date indate;//入库日期 Date xiaoqi;//到期时间 Goods * next;//下一个结点 }; class Cangkuguanli { //类定义与实现 private: int length;//客户数量 Goods * head;//列表的头结点 Goods * current;//当前结点 public: Cangkuguanli()//构造函数 { head=new Goods;//创建头结点 current=head; current->next=NULL; length=0;//长度为0 } void Creatlist()//创建新的列表 { char g='Y'; int s=0; length=0;//初始长度为0; current=head; do { Goods * temp=new Goods;//构建新结点信息 length++;//每加一个结点 链表长度增1 temp->next=NULL; cout<<“ 请输入药品名称: ”; cin>>temp->name; cout<<“ 请输入单价 : ”; cin>>temp->price; cout<<“ 请输入药品数量: ”; cin>>temp->number; cout<<“ 请输入总费用 : ”; cin>>temp->cost; cout<<“ 请输入日期(**** ** **): ”; cin>>temp->indate.year>>temp->indate.month>>temp->indate.day; cout<<“ 请输入药品有效期(**** ** **):”; cin>>temp->xiaoqi.year>>temp->xiaoqi.month>>temp->xiaoqi.day; cout<<“ 请输入药品种类: ”; cin>>temp->kind; if(head==NULL){head=temp;current=temp;} //head头指针,current尾指针 else {current->next=temp,current=temp;} do{ cout<<“ next ?(Y N)”;//是否继续存入新产品 cin>>g; if(g!='Y'&&g!='N') { cout<<“n error!!n ”; } }while(g!='Y'&&g!='N'); }while(g=='Y');//判断是否继续插入新结点 } void Open()//打开一个数据文件,并建立链表关联 和文件中的记录对应 { char fname[20];//文件名称 cout<<“ input the name of the file n”; cin>>fname;//输入要打开的文件名 ifstream infile(fname);//创建输入文件流 infile>>length; cout<<“n length is: ”< //if(length==0)cout<<“ 数据为空n”; for(int i=0;i { Goods * t=new Goods; t->next=NULL; infile>>t->name>>t->price>>t->number>>t->cost>>t->kind>> t->indate.year>>t->indate.month>>t->indate.day; if(head==NULL){head=t;current=t;}//跟上面的链表创建相似 else {current->next=t,current=t;} } infile.close();//关闭文件流 }//open void Save()//保存链表信息到文件 { if(length==0) { cout<<“ 列表为空 不需存盘 n”; return; } char fname[20];//文件名称 cout<<“ input the name of the file you want to put data in n”; cin>>fname; ofstream outfile(fname);//创建输出文件流 Goods * temp=head->next; outfile< while(temp!=NULL)//把所有结点写入到文件fname { outfile< << “ ”< //写入每个结点信息 temp=temp->next; } outfile.close();//关闭文件流 } void printinfor(Goods * current)//输出一个结点的信息到字符界面 { if(current==NULL) { cout<<“n元素为空!!n ”;return; } cout.fill(' ');cout< cout.width(8); cout.width(8);cout< cout< cout.width(10);cout< void Show()//输出所有结点信息到字符界面 { current=head->next;if(current==NULL){ cout<<“列表为空 n”;return;} cout.fill(' ');cout.width(2);cout<<“名称”; cout.width(8);cout<<“价格”;cout.width(8);cout<<“数量”;cout.width(8);cout<<“总费用”;cout.width(10);cout<<“药品的种类”;cout.width(15);cout<<“购进时间”;cout.width(15);cout<<“有效期”;cout< //循环输出所有结点 printinfor(current); current=current->next;} }//show Goods *Searchindate(Date t){ //按购入日期搜索 返回结点指针temp //结构体t含有t.year t.month t.day三个信息块 Date d;bool f=false;Goods * temp;current=head->next; while(current!=NULL) { d=current->indate; if(!strcmp(d.year,t.year)&&!strcmp(d.month,t.month)&&!strcmp(d.day,t.day)) { temp=current; f=true; break; } current=current->next; } if(f==false) { cout<<“n 没有满足要求的信息 n”; return NULL; } return temp;} void Queryindate()//按入库日期查询 { Date t;cout<<“ input the date(**** ** **): ”;cin>>t.year>>t.month>>t.day; printinfor(Searchindate(t));}//Queryindate()Goods * Searchname(char r[])//搜索药品名 返回结点指针temp { Goods * temp; current=head->next;bool f=false; while(current!=NULL) { if(strcmp(current->name,r)==0) { temp=current; f=true; break; } current=current->next; } if(f==false) { cout<<“n 商品名为 : ”< return NULL; } return temp;} void Queryname()//按药品名查询 { char r[MAX];cout<<“ input the name: ”;cin>>r;printinfor(Searchname(r));} void Query()//查询函数 一个次级菜单 { char m;do{ cout<<“ ********************************************************** ”< cout<<“******* 按入库的时间查询 ***********”< cout<<“******* 按药品的名称查询 ***********”< cout<<“******* ***********”< case 'a': Queryindate();break;case 'b': Queryname();break; case 'c': return;default: cout<<“error!”;} }while(m!='h');}//Query void Removebynumber()//按总量删除某个结点 { char t[MAX];//需要删除的总量值 bool f=false;//表示是否找到满足要求的结点 Goods * temp;//指向找到的结点,并删除 cout<<“ 请输入药品的数量: ”; cin>>t; current=head; while(current->next!=NULL) { if(strcmp(current->next->number,t)==0)//判断是否满足条件 { temp=current->next; current->next=temp->next; length--;//没删除一个结点,链表长度减1 f=true; delete temp;//释放结点 cout<<“已删除此药品n”; //break; 此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继续删除 } else{ current=current->next; } } if(f==false)//false没有改动,表示没有满足条件的结点 { cout<<“此药品不存在 ,无须删除 n”; } }//Removebynumber void Removebyname()//按名称删除某个结点 { char t[20]; bool f=false;; Goods * temp; cout<<“ 请输入药品的名称:”; cin>>t; current=head; while(current->next!=NULL) { if(strcmp(current->next->name,t)==0) { temp=current->next; current->next=temp->next; length--; f=true; delete temp;cout<<“已删除此药品n”;//break;此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继 续删除 } else{ current=current->next; } } if(f==false) { cout<<“此药品不存在 ,无须删除 n”; } }//Removebyname void Removebyindate()//按购进时间删除某个结点 { Date t,d; bool f=false; Goods * temp; cout<<“ 请输入查找药品的日期: ”; cin>>t.year>>t.month>>t.day; current=head; while(current->next!=NULL) { d=current->next->indate; if(d.year==t.year&&d.month==t.month&&d.day==t.day) { temp=current->next; current->next=temp->next; length--; f=true; delete temp;cout<<“已删除此药品n”; } else{ current=current->next; } } if(f==false) { cout<<“此元素不存在 ,无须删除 n”; } }//Removebyindate void Remove()//删除函数 { char g='Y'; do{ cout<<“ ********************************************************** ”< ***********”< ***********”< ***********”< ***********”< case 'a': Removebynumber();break;case 'b': Removebyname();break;case 'c': Removebyindate();break;case 'd': return;default: cout<<“error!”;} } while(g!='d');} void Add(){ Goods * temp;current=head;while(current->next!=NULL)//找到尾指针 { current=current->next;} temp=new Goods;temp->next=NULL;length++;//链表长加1 cout<<“ 请输入药品名称: ”; cin>>temp->name; cout<<“ 请输入单价 : ”; cin>>temp->price; cout<<“ 请输入药品数量 : ”; cin>>temp->number; cout<<“ 请输入总费用 : ”; cin>>temp->cost; cout<<“ 请输入入购日期(**** ** **)”; cin>>temp->indate.year>>temp->indate.month>>temp->indate.day; cout<<“请输入有效期(**** ** **)”; cin>>temp->xiaoqi.year>>temp->xiaoqi.month>>temp->xiaoqi.day; cout<<“ 请输入药品的种类:”< cin>>temp->kind; current->next=temp;//这时current指向尾指针,将要插入的结点接到current后面 current=temp;}//add void Modify(){//通过药品名找到要修改的数据项 char n[MAX];cout<<“请输入您要修改的药品名:”< Goods * temp=Searchname(n);//按商品名查找 cout<<“ 请输入单价:”; cin>>temp->price; cout<<“ 请输入药品的总费用:n”; cin>>temp->cost; cout<<“ 请输入日期(**** ** **):n”; cin>>temp->indate.year>>temp->indate.month>>temp->indate.day; cout<<“ 请输入药品的数量:n”; cin>>temp->number; cout<<“ 请输入药品的种类:n”; cin>>temp->kind;} void operation(){ char g='Y';do{ cout<<“t”;cout.fill('*');cout.width(21);cout<<'*';cout<<“医院药房管理系统”;cout.fill('*');cout.width(19);cout<<'*'; cout<<“n”; cout<<“t********************************************************n”; cout<<“t MWDICINE STORE MANAGEMENT SYSTERMn”; cout<<“t********************************************************n”;cout<<“t && && &&&&&&&&&&&&&&& cout<<”t && && &&&&&&&&&&&&&&& n“;n”; cout<<“t && && &&& n”; cout<<“t && && &&& n”; cout<<“t && && &&&&&&&&&&&&&&& n”; cout<<“t && && &&&&&&&&&&&&&&& n”; cout<<“t &&& &&& n”; cout<<“t &&& &&& n”; cout<<“t &&& &&& n”; cout<<“t &&& 退出 &&& n”; cout<<“t********************************************************n”; cout<<“t********************************************************n”;cout<<“t”;cout.fill('*');cout.width(18);cout<<'*';cout<<“医院药房管理系统”;cout.fill('*');cout.width(22);cout<<'*';cout< cin>>g;switch(g){ case 'C': Creatlist();break;case 'A': Add();break;case 'M': Modify();break;case 'D': Show();break;case 'Q': Query();break;case 'R': Remove();break;case 'O': Open();break;case 'S': Save();break;case 'N': system(“cls”);break;case 'E': return;default: cout<<“ error! input the right character!!!n”;}//switch }while(g!='E');}//operation };//Cangkuguanli int main(){ Cangkuguanli A; A.operation();return 0;} #include /*头文件*/ #include #include #include //定义结构体 struct tongxunlu /*定义通讯录结构体变量*/ { char name[20]; /*定义输入名字的数组*/ char phone[20];/*定义输入电话号码的数组*/ char adress[40];/*定义输入地址的数组*/ } txl[100];//默认100个数据 int n=0;//记录数据联系人数量 FILE *fp; /*定义文件*/ //程序用到的所有函数 void menu(); /*主菜单函数*/ void addnew(); /*增加联系人函数*/ void readfile();/*文件中读入函数*/ void writefile();/*文件中写入函数*/ void modify(); /*修改联系人函数*/ void modifyname();/*姓名修改*/ void modifyphone();/*电话号码修改*/ void search(); /*查找联系人函数*/ void searchname();/*按姓名查找*/ void searchphone();/*按号码查找*/ void deletecd(); /*删除联系人函数*/ void deleteall();/*全部删除*/ void deleteone();/*单个删除*/ void showall(); /*号码显示*/ //程序主函数 模块六 void main() /*主函数main*/ { readfile(); /*二进制读入文件*/ while(1) /* 循环(永远进行)*/ { menu(); /*调用主菜单函数*/ } } //读取文件函数部分开始 模块七 void readfile(){ if((fp=fopen(“c: xl.txt”,“r”))==NULL)/*以只读方式打开判定文件是否为空*/ { printf(“nttt 通讯录文件不存在”); /*判断结论*/ if((fp=fopen(“txl.txt”,“w”))==NULL)/*只写方式判断*/ { printf(“ntt建立失败”); /*为空结论*/ exit(0); /*退出*/ } else /*不为空则执行else*/ { printf(“nt-----------------欢迎使用通讯录管理系统------------------”); printf(“nt 通讯录文件已建立 ”); printf(“nt 按任意键进入主菜单 ”); printf(“nt--------------------------”); getch(); return; } exit(0); } fseek(fp,0,2);/*文件位置指针移动到文件末尾*/ if(ftell(fp)>0)/*文件不为空*/ { rewind(fp);/*文件位置指针移动到文件开始位置*/ for(n=0;!feof(fp)&& fread(&txl[n],sizeof(struct tongxunlu),1,fp);n++); printf(“nt----------欢迎使用通讯录管理系统1.0beat版----------------”); printf(“nt 文件导入成功 printf(”nt 按任意键返回主菜单 printf(“nt--------------------------”); getch(); return; } printf(“nt------------欢迎使用通讯录管理系统1.0beat版--------------”); printf(“nt 文件导入成功 printf(”nt 通讯录文件中无任何纪录 printf(“nt 按任意键返回主菜单 printf(”nt--------------------------“); getch(); return;} //读取文件函数结束 //文件主菜单函数开始 模块六 void menu(){ char choic; system(”cls“); printf(”ntt|-------欢迎您使用通讯录管理系统1.0beat版-----|“); printf(”ntt| 1-添加联系人 2-查询和显示联系人 |“); printf(”ntt| 3-删除联系人 4-修改联系人 |“); ”);“);”);“);”); printf(“ntt| 5-保存退出 0-不保存退出 |”); printf(“ntt|-----------------|”); printf(“ntt请选择您所所要的服务:”); choic=getch(); switch(choic)/*对于上边的选择项目*/ { case '1':addnew();break; case '2':search();break; case '3':deletecd();break;case '4':modify();break;case '5':writefile();break; case '0':exit(0); default:menu();/*如果没有则返回主菜单等待输入*/ } } //文件主菜单函数结束 //添加新联系人函数开始 模块一 void addnew(){ printf(“ntt------------------请输入联系人信息--------------------n”); printf(“ntt输入联系人姓名:”); scanf(“%s”,txl[n].name); /*键盘输入*/ printf(“ntt输入联系人电话号码:”); scanf(“%s”,txl[n].phone); printf(“ntt输入联系人地址:”); scanf(“%s”,txl[n].adress); n++; /*统计个数*/ printf(“ntt是否继续添加联系人?(Y/N):”);/*是否继续输入联系人.*/ if(getch()=='y') addnew(); return;} //添加新联系人结束 //写入文件函数开始 模块七 void writefile() /*联系人写入文件*/ { int i; if((fp=fopen(“c: xl.txt”,“w”))==NULL) { printf(“ntt文件打开失败”); } for(i=0;i { if(fwrite(&txl[i],sizeof(struct tongxunlu),1,fp)!=1) { printf(“ntt写入文件错误!n”); } } fclose(fp);/*关闭文件*/ printf(“nt-----------------------”);/*输出提示信息*/ printf(“ntt通讯录文件已保存”); printf(“ntt谢谢使用,欢迎再次使用!n”);printf(“如果对本软件有疑问,请到我们官网(www.xiexiebang.com)提出您的问题,我们将为您解答.n”);printf(“我们的软件有不足之处,欢迎到官网(www.xiexiebang.com)反映,我们将努力改正!”);printf(“ntt按任意键退出程序ntt”); /*输出完毕*/ exit(0); printf(“nt-----------------------”);} //写入文件函数结束 ///查询联系人函数开始 模块四---------------------void search(){ char choic; system(“cls”); printf(“ntt-------------------显示和查询联系人------------------”); printf(“ntt| 1-逐个显示所有 2-按姓名查询 |”); printf(“ntt| 3-按电话查询 4-返回主菜单 |”); printf(“ntt|-----------------------”); printf(“ntt请选择您所所要的服务:”); choic=getch(); switch(choic) { case '1':showall();break; /*显示所有号码*/ case '2':searchname();break;/*调用按姓名查询函数*/ case '3':searchphone();break;/*调用按号码查询函数*/ case '4':menu();break; /*主菜单*/ } } void showall()//显示所有联系人函数 { int i; system(“cls”);//清楚屏幕 if(n!=0) { printf(“ntt----------欢迎您查询通讯录所有联系人信息-------------”); for(i=0;i /*依次序显示*/ { printf(“ntt姓名: %s”,txl[i].name); printf(“ntt电话: %s”,txl[i].phone); printf(“ntt地址: %s”,txl[i].adress); printf(“ntt-------------------”); if(i+1 { printf(“ntt-----------------------”); system(“pause”);//返回错误信息 } } printf(“ntt--------------”); } else /*无联系人*/ printf(“ntt通讯录中无任何纪录”); printf(“ntt按任意键返回主菜单:”); getch(); return;} //按手机号码查询函数 void searchphone(){ int mark=0; int i; char phone[15]; printf(“ntt-------------------按电话查找-------------------------”);printf(“ntt请输入电话号码:”); scanf(“%s”,phone); for(i=0;i { if(strcmp(txl[i].phone,phone)==0)//对比查找函数 { printf(“ntt------------以下是您查找的学生信息------------”); printf(“ntt姓名: %s”,txl[i].name); printf(“ntt电话: %s”,txl[i].phone); printf(“ntt地址: %s”,txl[i].adress); printf(“ntt-----------------”); printf(“ntt按任意键返回主菜单:”); mark++; getch(); return; } } if(mark==0) { printf(“ntt没有找到联系人的信息”); printf(“ntt按任意键返回主菜单”); getch(); return; } } void searchname()//按姓名查询 { int mark=0; int i; char name[20]; printf(“ntt----------------按姓名查找--------------------”);printf(“ntt请输入您要查找的姓名:”); scanf(“%s”,name); for(i=0;i { if(strcmp(txl[i].name,name)==0) { printf(“ntt------------以下是您查找的联系人信息---------------”); printf(“ntt姓名: %s”,txl[i].name); printf(“ntt电话: %s”,txl[i].phone); printf(“ntt地址: %s”,txl[i].adress); printf(“ntt--------------------”); mark++; getch(); return; } } if(mark==0) { printf(“ntt没有找到联系人的信息”); printf(“ntt按任意键返回主菜单”); getch(); return; } } ////查询联系人函数结束---------------------- ////删除联系人函数部分开始------------------void deletecd(){ char choic; if(n==0) /*如果通讯录中没有一个记录输出以下部分*/ { printf(“ntt对不起,文件中无任何纪录”); printf(“ntt按任意键返回主菜单”); getch(); return; } system(“cls”); /*清屏*/ printf(“ntt-----------------删除菜单----------------------”); printf(“ntt| 1-删除所有 2-删除单个 |”); printf(“ntt| 3-返回主菜单 printf(”ntt|------------------“); printf(”ntt请选择您所所要的服务:“); choic=getch(); /*输入的赋予choice*/ switch(choic) { case '1':deleteall();break; case '2':deleteone();break; case '3':menu();break; default:menu();break; } } void deleteall()//删除所有联系人 { printf(”ntt确认删除?(y/n)“); if(getch()=='y') { fclose(fp); if((fp=fopen(”txl.txt“,”w“))==NULL) /*文件空输出*/ { printf(”ntt不能打开文件,删除失败“); readfile(); } n=0; printf(”ntt纪录已删除,按任意键返回主菜单“); getch(); return; } else return;} void deletename()//按姓名删除联系人 { int i,j,deletemark=0,a=0; char name[20]; |”); printf(“ntt请输入要删除联系人姓名:”); scanf(“%s”,name); /*键盘输入姓名*/ for(i=a;i { if(strcmp(txl[i].name,name)== 0)//对比字符串查找到要删除的联系人 { printf(“ntt以下是您要删除的联系人纪录:”); printf(“ntt-”); printf(“ntt姓名: %s”,txl[i].name); printf(“ntt电话: %s”,txl[i].phone); printf(“ntt地址: %s”,txl[i].adress); printf(“ntt-”); printf(“ntt是否删除?(y/n)”); if(getch()=='y')// 实现删除功能 { for(j=i;j txl[j]=txl[j+1]; /*将通讯录的想前移*/ n--; deletemark++; printf(“ntt删除成功”); printf(“ntt是否继续删除?(y/n)”); if(getch()=='y') deletename(); /*继续调用删除函数*/ return; } else return; } continue; } if(deletemark==0) { printf(“ntt没有该联系人的纪录”); printf(“ntt是否继续删除?(y/n)”); if(getch()=='y') deletename(); return; } } void deletephone()//按电话号码删除联系人 { int i,j,deletemark=0; /*变量定义*/ char phone[20]; printf(“ntt请输入要删除联系人电话号码:”); scanf(“%s”,phone); if(n==0) { printf(“ntt对不起,文件中无任何纪录”); printf(“ntt按任意键返回主菜单”); getch(); return; } for(i=0;i { if(strcmp(txl[i].phone,phone)==0) { printf(“ntt以下是您要删除的联系人纪录:”); printf(“ntt姓名: %s”,txl[i].name); printf(“ntt电话: %s”,txl[i].phone); printf(“ntt地址: %s”,txl[i].adress); printf(“ntt是否删除?(y/n)”); if(getch()=='y') { for(j=i;j txl[j]=txl[j+1]; n--; deletemark++;//记录删除次数 printf(“ntt删除成功”); printf(“ntt是否继续删除?(y/n)”); if(getch()=='y') deletephone(); return; } else return; } continue; } if(deletemark==0) { printf(“ntt没有该联系人的纪录”); printf(“ntt是否继续删除?(y/n)”); if(getch()=='y') return; } } void deleteone()//删除单个联系人 { char choic; printf(“nt---------------------------”); printf(“ntt 1-按姓名删除 2-按电话删除”); printf(“ntt请选择您所所要的服务:”); printf(“nt---------------------------”);choic=getch(); switch(choic) { case '1':deletename();break;case '2':deletephone();break;} } ///删除函数部分结束------------------------- ///修改联系人函数开始-------------------void modify() /*修改函数*/ { char choic; if(n==0) { printf(“ntt对不起,文件中无任何纪录”); printf(“ntt按任意键返回主菜单”); getch(); return; } system(“cls”); printf(“ntt-----------------修改联系人菜单-----------------------”);printf(“ntt| 1-按姓名修改 2-按电话修改 printf(”ntt| 任意键-按返回主菜单 printf(“ntt-----------------------”); choic=getch(); switch(choic) { case '1':modifyname();break; case '2':modifyphone();break; default:menu();break;} } void modifyname(){ char choic; int i,mark=0; |“);|”); char name[20];printf(“ntt请输入修改要联系人的姓名:”); scanf(“%s”,name);if(n==0){ printf(“ntt文件中无任何联系人”);printf(“ntt按任意键返回主菜单”);getch();mark++;return; } for(i=0;i printf(“ntt以下是您要修改的联系人信息”); printf(“ntt姓名: %s”,txl[i].name); printf(“ntt电话: %s”,txl[i].phone); printf(“ntt地址: %s”,txl[i].adress); printf(“ntt是否修改(y/n)”); if(getch()=='y') { printf(“nt------------请选择修改信息---------------”); printf(“nt 1-修改姓名 2-修改电话 printf(”nt 3-修改地址 printf(“nt----------”); printf(“nt请选择您所所要的服务:”); scanf(“%s”,&choic); switch(choic) { case '1': printf(“nt请输入新姓名: ”); scanf(“%s”,txl[i].name);break; case'2':printf(“nt请输入新电话: %s”); scanf(“%s”,txl[i].phone);break; case'3':printf(“nt请输入新地址: ”); scanf(“%s”,txl[i].adress);break; } } } } if(mark==0){ printf(“ntt没有找到联系人信息”);printf(“nt是否继续修改?(Y/N):”);if(getch()=='y') “);”); modifyname();return; } } void modifyphone(){ char choic,phone[15]; int i,mark=0; printf(“ntt请输入修改联系人的号码:”); scanf(“%s”,phone); if(n==0) { printf(“ntt文件中无任何联系人”); printf(“ntt按任意键返回主菜单”); getch();mark++; return; } for(i=0;i if(strcmp(txl[i].phone,phone)==0) { printf(“ntt以下是您要修改的联系人信息”); printf(“ntt姓名: %s”,txl[i].name); printf(“ntt电话: %s”,txl[i].phone); printf(“ntt地址: %s”,txl[i].adress); printf(“ntt是否修改(y/n)”); if(getch()=='y') { printf(“nt------------请选择修改信息---------------”); printf(“nt 1-修改姓名 2-修改电话 printf(”nt 3-修改地址 printf(“nt----------”); printf(“nt请选择您所所要的服务:”); scanf(“%s”,&choic); switch(choic) { case'1': printf(“nt请输入新姓名: ”); scanf(“%s”,txl[i].name);break; case'2':printf(“nt请输入新电话: ”); scanf(“%s”,txl[i].phone);break; case'3':printf(“nt请输入新地址: ”); scanf(“%s”,txl[i].adress);break; } } “);”); } } } } if(mark==0){ printf(“nt没有该联系人信息”);printf(“nt是否继续修改?(Y/N):”);if(getch()=='y')modifyphone();return;第二篇:仓库库存管理系统源程序
第三篇:病房管理源程序
第四篇:源程序(医院药房药品管理系统C++)
保存文件 药品查询
第五篇:个人通讯录管理系统源程序(绝对无错)