第一篇:简易水电费管理系统源程序代码
简易水电费管理系统源程序代码
法一:
#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; } } } > analytical.grad function(a, A, B, R, u, model = “diagonal”){ invR <-solve(R) nobs <-dim(u)[1] ndim <-dim(u)[2] npar.h <-ndim *(2 * ndim + 1) npar.r <-ndim *(ndim1)* npar.h + 1):(i * npar.h)] <-sq.invh[,i] * dhw[,((i(K + t(K))) W <-W[vecIn == 1] D[, i] <-d %*% W Q[, i] <--0.5 * vecdR %*% as.vector(invR1)/2 In <-diag(ndim) vecIn <-as.vector(In) invR <-solve(R) h <-vector.garch(u, a, A, B) sq.h <-sqrt(h) sq.invh <-1/sq.h dhw <-vec.garch.derivative(u, B, h) for(i in 1:ndim){ dhw[,((i1)* npar.h + 1):(i * npar.h)] } dhw <-t(0.5 * dhw) if(model == “diagonal”){ ind <-c(rep(1, ndim), as.vector(In), as.vector(In)) dhw <-dhw[ind == 1, ] npar.h <-3 * ndim } vecdR <-vdR(ndim) H11 <-matrix(0, npar.h, npar.h) H21 <-matrix(0, npar.r, npar.h) for(i in 1:nobs){ D <-diag(sq.h[i, ]) invD <-diag(sq.invh[i, ]) invH <-invD %*% invR %*% invD dh <-matrix(dhw[, i], npar.h, ndim) H11.temp <-2 *(invD %x% invD)+ invH %x% R + R %x% invH H11.temp <-H11.temp[vecIn == 1, vecIn == 1] H11 <-H11 + dh %*% H11.temp %*% t(dh) RD <-invR %*% invD H21.temp <-vecdR %*%(RD %x% In + In %x% RD) H21.temp <-H21.temp[, vecIn == 1] H21 <-H21 + H21.temp %*% t(dh) } H22 <-nobs * vecdR %*%(invR %x% invR)%*% t(vecdR) 0.5 * cbind(rbind(H11, H21), rbind(t(H21), H22))} nobs <-dim(u)[1] ndim <-dim(u)[2] In <-diag(ndim) ind <-as.vector(rbind(1, In, In)) dhw <-vec.garch.derivative(u, B, h) inv.h.sq <-1/h^2 if(model == “diagonal”){ npar.h <-3 * ndim } else { npar.h <-ndim *(2 * ndim + 1) } dlv2 <-matrix(0, nobs, npar.h^2) for(i in 1:nobs){ dhwt <-matrix(dhw[i, ], ncol = ndim) if(model == “diagonal”){ dhwt <-dhwt[ind == 1, ] } tmp.dlv2 <-matrix(0, npar.h, npar.h) for(j in 1:ndim){ tmp.dlv2 <-tmp.dlv2 + inv.h.sq[i, j] * outer(dhwt[,j], dhwt[, j]) } dlv2[i, ] <-as.vector(tmp.dlv2) } 0.5 * dlv2 } > dcc.est function(dvar, param){ uncR <-cov(dvar) out <-.Call(“dcc_est”, dvar, uncR, param[1], param[2]) list(DCC = out[[1]], Q = out[[2]])} > dcc.estimation function(inia, iniA, iniB, ini.dcc, dvar, model, method = “BFGS”,gradient = 1, message = 1){ dvar <-as.matrix(dvar) nobs <-dim(dvar)[1] ndim <-dim(dvar)[2] In <-diag(ndim) if(!is.matrix(iniA)||!is.matrix(iniB)){ stop(“iniA or iniB or both must be matrices”) } if(length(inia)!= ndim || dim(iniA)[2]!= ndim || dim(iniB)[2]!= ndim){ stop(“the dimension is incorrect in inia, iniA or iniB.”) } first.stage <-dcc.estimation1(dvar = dvar, a = inia, A = iniA,B = iniB, model = model, method = method) if(first.stage$convergence!= 0){ cat(“***********************************************n”) cat(“* The first stage optimization has failed.*n”) cat(“* See the list variable 'second' for details.*n”) cat(“***********************************************n”) } tmp.para <-c(first.stage$par, In[lower.tri(In)]) estimates <-p.mat(tmp.para, model = model, ndim = ndim) esta <-estimates$a estA <-estimates$A estB <-estimates$B h <-vector.garch(dvar, esta, estA, estB) std.resid <-dvar/sqrt(h) second.stage <-dcc.estimation2(std.resid, ini.dcc, gradient = gradient) if(second.stage$convergence!= 0){ cat(“***********************************************n”) cat(“* The second stage optimization has failed.*n”) cat(“* See the list variable 'second' for details.*n”) cat(“***********************************************n”) } else if(message!= 0){ cat(“****************************************************************n”) cat(“* Estimation has been completed.*n”) cat(“* The outputs are saved in a list with components: *n”) cat(“* out : the estimates and their standard errors *n”) cat(“* loglik : the value of the log-likelihood at the estimates *n”) cat(“* h : a matrix of estimated conditional variances *n”) cat(“* DCC : a matrix of DCC estimates *n”) cat(“* std.resid : a matrix of the standardised residuals *n”) cat(“* first : the results of the first stage estimation *n”) cat(“* second : the results of the second stage estimation *n”) cat(“****************************************************************n”) } dcc <-dcc.est(std.resid, second.stage$par)$DCC lf1 <--0.5 * ndim * log(2 * pi)A0.5 * diag(as.vector(invQtilde))%*% (Z + tZ) dvecPt <-dvecQt %*% QPQ dvecPt[, as.vector(In)== 1] <-0 dvecP[i, ] <-as.vector(dvecPt) zz <-outer(z[i, ], z[i, ]) dlc[i, ] <--0.5 * as.vector(dvecPt %*% as.vector(invPtndim *(ndimndim *(ndimAlf)/d } > grad.dcc2 function(param, dvar, d = 1e-05){ nobs <-dim(dvar)[1] ndim <-dim(dvar)[2] npara <-length(param) Id <-d * diag(npara) param1 <-param + Id[, 1] param2 <-param + Id[, 2] DCC <-dcc.est(dvar, param)$DCC DCC1 <-dcc.est(dvar, param1)$DCC DCC2 <-dcc.est(dvar, param2)$DCC lf <-numeric(ndim) lf1 <-numeric(ndim) lf2 <-numeric(ndim) for(i in 1:nobs){ R <-matrix(DCC[i, ], ndim, ndim) R1 <-matrix(DCC1[i, ], ndim, ndim) R2 <-matrix(DCC2[i, ], ndim, ndim) invR <-solve(R) invR1 <-solve(R1) invR2 <-solve(R2) lf[i] <-0.5 *(log(det(R))+ sum(dvar[i, ] * crossprod(invR,dvar[i, ]))) lf1[i] <-0.5 *(log(det(R1))+ sum(dvar[i, ] * crossprod(invR1,dvar[i, ]))) lf2[i] <-0.5 *(log(det(R2))+ sum(dvar[i, ] * crossprod(invR2,dvar[i, ]))) } c(sum((lf1lf)/d))} > hh.test function(dvar){ dvar <-as.matrix(dvar) nobs <-dim(dvar)[1] ndim <-dim(dvar)[2] ind <-1:ndim sqy <-dvar^2 sqy.mean <-colMeans(sqy) if(ndim == 1){ stop(“the argument must be a matrix”) } uni.garch <-function(dvar){ nobs <-dim(dvar)[1] ndim <-dim(dvar)[2] uni.garch.est <-function(dvar, ini.par = c(0.01, 0.1,0.85)){ garch.ll <-function(para, dvar){ para <-para^2 h <-uni.vola(para, dvar) lf <-dnorm(dvar, mean = 0, sd = sqrt(h), log = T) sum(-lf) } est <-optim(sqrt(ini.par), garch.ll, dvar = dvar,method = “BFGS”, control = list(reltol = 1e-15,maxit = 10000)) cond.var <-uni.vola(est$par^2, dvar) std.resid <-dvar/sqrt(cond.var) list(par.est = est$par^2, cond.var = cond.var, std.resid = std.resid) } std.resid <-matrix(0, nobs, ndim) cond.var <-std.resid param <-matrix(0, 3, ndim) for(i in 1:ndim){ tmp.garch <-uni.garch.est(dvar[, i]) std.resid[, i] <-tmp.garch$std.resid cond.var[, i] <-tmp.garch$cond.var param[, i] <-tmp.garch$par.est } list(std.resid = std.resid, cond.var = cond.var, param = param) } tmp.garch <-uni.garch(dvar) h <-tmp.garch$cond.var para <-tmp.garch$param zeta <-sqy/h1), ] x.it <-dhdw/h[, j] z.k <-cbind(sqy[, ind[ind!= j]], h[, ind[ind!= j]]) z.k <-rbind(c(sqy.mean[ind[ind!= j]], sqy.mean[ind[ind!= j]]), z.k) z.k <-z.k[1:nobs, ] reg <-summary(lm(zeta[, j] ~ x.it + z.k1), lower.tail = F) out <-c(LM.HH, p.HH) names(out)<-c(“Test Stat”, “p-Value”) out } > jb.test function(x){ if(!is.vector(x)){ nobs <-dim(x)[1] ndim <-dim(x)[2] m <-colMeans(x) jb <-numeric(ndim) for(i in 1:ndim){ x.<-x[, i]3 jb[i] <-nobs/6 *(sk^2 + 0.25 * kr^2) } } else { nobs <-length(x) ndim <-1 x.<-x3 jb <-nobs/6 *(sk^2 + 0.25 * kr^2) } p.val <-pchisq(jb, 2, lower.tail = FALSE) out <-rbind(jb, p.val) rownames(out)<-c(“test stat”, “p-value”) colnames(out)<-paste(“series”, 1:ndim) out } > ljung.box.test function(x){ if(!is.vector(x)){ cat(“Error: The argument must be a vector.n”) } else { nobs <-length(x) nlag <-seq(1, 50, 1) y <-x nlag[i])])/denom } rho <-nobs *(nobs + 2)*(rho^2/(nobs1):npar] if(model == “diagonal”){ a <-param[1:ndim] A <-diag(param[(ndim + 1):(2 * ndim)]) B <-diag(param[(2 * ndim + 1):(3 * ndim)]) } else if(model == “extended”){ a <-param[1:ndim] A <-matrix(param[(ndim + 1):(ndim^2 + ndim)], ndim,ndim) B <-matrix(param[(ndim^2 + ndim + 1):(2 * ndim^2 + ndim)],ndim, ndim) } h <-vector.garch(dvar, a, A, B) z <-dvar/sqrt(h) DCC <-dcc.est(z, dcc.param)$DCC lf1 <--0.5 * ndim * log(2 * pi)0.5 * sum(log(h))0.5 * sum(log(h))0.5 * sum((z %*% invR)* z) -lf } > nt.test function(dvar){ dvar <-as.matrix(dvar) nobs <-dim(dvar)[1] ndim <-dim(dvar)[2] sqy <-dvar^2 sqy.mean <-colMeans(sqy) if(ndim == 1){ stop(“the argument must be a matrix”) } uni.garch <-function(dvar){ nobs <-dim(dvar)[1] ndim <-dim(dvar)[2] uni.garch.est <-function(dvar, ini.par = c(0.01, 0.1,0.85)){ garch.ll <-function(para, dvar){ para <-para^2 h <-uni.vola(para, dvar) lf <-dnorm(dvar, mean = 0, sd = sqrt(h), log = T) sum(-lf) } est <-optim(sqrt(ini.par), garch.ll, dvar = dvar,method = “BFGS”, control = list(reltol = 1e-15,maxit = 10000)) cond.var <-uni.vola(est$par^2, dvar) std.resid <-dvar/sqrt(cond.var) list(par.est = est$par^2, cond.var = cond.var, std.resid = std.resid) } std.resid <-matrix(0, nobs, ndim) cond.var <-std.resid param <-matrix(0, 3, ndim) for(i in 1:ndim){ tmp.garch <-uni.garch.est(dvar[, i]) std.resid[, i] <-tmp.garch$std.resid cond.var[, i] <-tmp.garch$cond.var param[, i] <-tmp.garch$par.est } list(std.resid = std.resid, cond.var = cond.var, param = param) } tmp.garch <-uni.garch(dvar) h <-tmp.garch$cond.var para <-tmp.garch$param v <-cbind(1, sqy, h) v <-rbind(c(1, sqy.mean, sqy.mean), v) v <-v[1:nobs, ] LM <-numeric(ndim) LMrob <-numeric(ndim) one <-rep(1, nobs) zeta <-sqy/h1),] } dhdw <-dhdw/h[, j] reg <-summary(lm(zeta[, j] ~ dhdw1) nd <-zeta[, j] * reg1$residuals reg2 <-lm(one ~ ndsum(reg2$residuals^2) } out <-c(sum(LM), sum(LMrob)) out <-cbind(out, pchisq(out, 2 * ndim *(ndimm[i] v <-mean(x.^2) std.x <-x./sqrt(v) kr1[i] <-mean(std.x^4)quant[5] + quant[3] quant[2])m v <-mean(x.^2) std.x <-x./sqrt(v) kr1 <-mean(std.x^4)quant[5] + quant[3] quant[2])m[i] v <-mean(x.^2) std.x <-x./sqrt(v) sk1[i] <-mean(std.x^3) quant <-quantile(x[, i], prob = seq(0.25, 0.75,0.25)) sk2[i] <-(quant[3] + quant[1] quant[1]) } } else { x <-as.vector(x) nobs <-length(x) m <-mean(x) ndim <-1 x.<-x2 * quant[2])/(quant[3]st)* matrix(R1, nobs, ndim^2, byrow = TRUE)+ st * matrix(R2, nobs, ndim^2, byrow = TRUE) Id <-diag(length(a)) inih <-solve(IdB)%*% a sim <-.Call(“stcc_sim”, nobs, a, A, B, vecR, inih, d.f) list(h = sim[[1]][(cut + 1):nobs, ], eps = sim[[2]][(cut + 1):nobs, ], tr.var = tr.var, st = st, vecR = vecR)} > tr.func function(tr.par, tr.var){ g <-tr.par[1] cons <-tr.par[2] (1 + exp(-g *(tr.var1)/2 vecdR <-matrix(0, n1, n^2) M <-diag(-1, n) M[lower.tri(M)] <-1:n1 M <-M + t(M) for(i in 1:n1){ m <-as.vector(M) m[m!= i] <-0 vecdR[i, ] <-m } vecdR[vecdR!= 0] <-1 vecdR } > vec.garch.derivative function(dvar, B, h){ nobs <-dim(h)[1] ndim <-dim(B)[1] npar.h <-ndim *(2 * ndim + 1) In <-diag(ndim) Iw <-diag(npar.h) s2 <-colMeans(dvar^2) v <-cbind(rep(1, nobs), dvar^2, h) vecIn <-as.vector(In) BIw = B %x% Iw dhw <-matrix(0, ndim * npar.h, nobs) dhw[, 1] <-vecIn %x% c(1, rep(s2, 2)) for(i in 2:nobs){ dhw[, i] <-vecIn %x% v[(i1)]) } t(dhw)} > vector.garch function(dvar, a, A, B){ dvar <-dvar^2 .Call(“vector_garch”, dvar, a, A, B)} 演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 仓库库存管理系统源程序 #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 /*头文件*/ #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.teniu.cc)提出您的问题,我们将为您解答.n”);printf(“我们的软件有不足之处,欢迎到官网(www.teniu.cc)反映,我们将努力改正!”);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;第二篇:ccgarch源程序代码
第三篇:仓库库存管理系统源程序
第四篇:病房管理源程序
第五篇:个人通讯录管理系统源程序(绝对无错)