1、&scanf(&%ld&,&p1-&number);n输入设备名称:%s&,p1-&name);n输入生产厂家:adr);n输入购置日期:date);n输入台数:taishu);n输入单价:price);money=(p1-&taishu)*(p1-&n输入备注:other);head=NULL;while(p1-&number!=0)n=n+1;if(n=1) head=p1;else p2-&next=p1;p2=p1;p1=(struct equipment*)malloc(LEN);n输入教学设备编号:if(p1-&number=0) break;elseprintf(&, &
2、p2-&next=NULL;return(head);void print()clrscr();gotoxy(33,0);16-80|1030,30=4(2)5*中南工业大学教学设备明细账*&gotoxy(3,5);设备编号 设备名称 生产厂家 购置日期 台数 单价 金额 备注n&void print1()int i,j;for(i=0;i&=8;i+)line(70*i+16,60,70*i+16,60+36*(n+1);for(j=0;j&=n+1;j+)line(16,60+36*j,70*8+16,60+36*j);/*显示函数*/void output(struct equipmen
3、t* head)struct equipment*p;p=head;print();if(head!=NULL)doprintf(&n%-9ld%-9s%-9s%-9ld%-9ld%-9ld%-9ld%-9s n&,p-&number,p-&name,p-&adr,p-&date,p-&taishu,p-&price,p-&money,p-&p=p-&next;while(p!=NULL);print1();getch();/*修改函数*/void change(struct equipment* head)struct equipment *p;long num;cleardevice();
4、for(;)printf(&n请输入要修改的设备编号:num);while(num!=p-&number&p-&next!=NULL)p=p-&if(num!number)printf(&n对不起,无此记录!按任意键返回!break;elseprintf(&n请输入新的设备记录:n输入教学设备名称: printf(&money=(p-&taishu)*(p-&n是否继续退出,Y/N?if(getch()!='y&) break;/*查找函数*/void search(struct equipment* head) struct equipment *p;char choice;long
5、 key;doclrscr();if(head=NULL)printf(&n 无此记录!n请输入要查找的设备编号:key);while(key!if(key=p-&number)print();n %-9ld%-9s%-9s%-9ld%-9ld%-9ld%-9ld%-9s&n无此编号,请按任意键返回!printf(&n您是否需要继续查找?(y/n)n&choice=getch();while(choice=&/*删除函数*/struct equipment *del(struct equipment *head) struct equipment *p1,*p2;long number;int
6、 b=0;if(head=NULL)printf(&n无此记录!elseb=0;if(del1=NULL) b=b+1;if(del2=NULL) b=b+1;if(del3=NULL) b=b+1;if(b!=0)printf(&n回收站还有%d的空间!,b);elseprintf(&n回收站已满,无法再删除!n请输入要删除的教学设备编号:p1=head;while(number!=p1-&=NULL)p2=p1;p1=p1-& if(number=p1-&n进行逻辑删除还是物理删除,Y/N?if(getch()=&)if(del1=NULL) del1=p1;else if(del2=NU
7、LL) del2=p1;else del3=p1;if(p1=head) head=p1-&next=p1-&n已删除设备编号%ld记录!,number);b=b-1;n无此设备记录!n是否继续删除/Y/N?while(getch()=&/*恢复函数*/struct equipment *recover(struct equipment* head) struct equipment *p0,*p1,*p2;long rec_num,a=0;gotoxy(1,3);doprintf(&n可恢复的设备编号:if(del1!=NULL)a=a+1;n%ld&,del1-& if(del2!,del
8、2-&if(del3!,del3-& if(a=0)printf(&n没有可恢复的数据,请按任意键退出! printf(&n请输入要恢复的教学设备编号:rec_num);if(rec_num=del1-&number)p0=del1; del1=NULL;else if(rec_num=del2-&number)p0=del2;del2=NULL;else if(rec_num=del3-&number)p0=del3;del3=NULL;else printf(&n输入错误,按任意键返回!p1=head;if(head=NULL)head=p0;p0-&elsewhile(p0-&numbe
9、r)&(p1-&=NULL)p2=p1;if(p0-&number)if(head=p1)head=p0;else p2-&next=p0; elsep1-&n=n+1;output(head);n恢复成功,请按任意键返回!n是否继续进行恢复Y/N?while(getch()=&/*添加函数*/struct equipment *insert(struct equipment* head,struct equipment *p)char choice;p=(struct equipment*)malloc(LEN);n请输入新的教学设备资料:n输入编号:n输入名称:n 输入单价:if(n=0)
10、 n=n+1;head=p; elsep-&next=head;n+;n您是否要继续添加?/*统计函数*/void count(struct equipment* head) int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0,sum7=0,sum8=0;struct equipment* p;while(p) for(p=head;p!=NULL;next) sum1+=p-&taishu;sum2+=p-&money;if(p-&money&200) sum3+=p-&sum4+=p-& elseif(p-&price&800) sum5+=p-&s
11、um6+=p-& else sum7+=p-&sum8+=p-& output(head);n 合计 %d %dn&,sum1,sum2);n=n+1;n=n-1;n 200元以下的设备总台数及总金额: %d %d&,sum3,sum4);n 200-800元之间的设备总台数及总金额:,sum5,sum6);n 800元以上的设备总台数及总金额:,sum7,sum8);/*保存函数*/void save(struct equipment *head) FILE *fp;struct equipment *p;n请输入要保存的文件名:,name);if(fp=fopen(name,&wb&)=N
12、ULL)printf(&n对不起!不能 建立新文件!return;while(p-&=NULL)fwrite(p,LEN,1,fp);n保存结束,请按任意键返回!fclose(fp);/*打开函数*/struct equipment *dakai(void) struct equipment *head, *p1,*p2 ;FILE *fp=NULL;p1=p2=(struct equipment *)malloc(LEN);n请输入要打开的文件名:head=p1;rb&n对不起,没有该文件!请按任意键返回!fread(p1,LEN,1,fp);while(!feof(fp)p2-&fread
13、(p1,LEN,1,fp);p2-&n文件已输出,请按任意键返回!main()char i;long key ,a;int drive=DETECT,mode;initgraph(&drive,&mode,&setbkcolor(9);16co4st8e320,130,0,360,300,70,2,4&16-3|348,24=2(14)9*大学&16-90|10060,60=11(13)9教学设备管理系统&16-400|40017,17=8(12)9设计者:自动化0411 xxx&16-250|25020,20=8(4)9请按Enter键进入&)cleardevice();16-80|145,
14、36=4(2)6* * * * * *菜单* * * * * *&16-100|5048,48=3(7)6a输入&16-400|5048,48=3(7)6b显示&16-100|11048,48=3(7)6c修改&16-400|11048,48=3(7)6d查找&16-100|17048,48=3(7)6e删除&16-400|17048,48=3(7)6f恢复&16-100|23048,48=3(7)6g添加&16-400|23048,48=3(7)6h统计&16-100|29048,48=3(7)6i保存&16-400|29048,48=3(7)6j打开&16-100|35048,48=3(7)6k退出&16-350|40024,24=3(7)4请选择a至j&i=getch();if(i=&k&)break;else switch(i)case&a&: creat();case&b& output(head);c& change(head);d& search(head);e& head=del(head);#
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1