实验设备管理系统|c语言程序代码编程小程序设计|c语言课程设计报告课程案例
#include
#include
struct instrument{char p_num[12];char name[12];char spec[12];int amount;int price;int s_price;struct instrument *next;};struct instrument *head;
struct in_instrument{char num[12];char p_num[12];char name[12];int amount;int price;int t_price;struct in_instrument *next;};struct in_instrument *ihead;
struct out_instrument{char num[12];char p_num[12];char name[12];int amount;int price;int t_price;struct out_instrument *next;};struct out_instrument *ohead;
struct quit_instrument{char num[12];char p_num[12];char name[12];int amount;int price;int t_price;struct quit_instrument *next;};struct quit_instrument *qhead;
int init(){head=ihead=ohead=qhead=NULL;printf("0: Quit\n");printf("1: Enter the information of in instrument\n");printf("2: Enter the information of out instrument\n");printf("3: Enter the information of quit instrument\n");printf("4: Total the information of instrument\n");}
int menu(){printf("1:insert data\n");printf("2:delete data\n");printf("3:modify data\n");printf("4:select data\n");printf("Other to quit\n");}
int menu2(){printf("0: Quit\n");printf("1: Enter the information of in instrument\n");printf("2: Enter the information of out instrument\n");printf("3: Enter the information of quit instrument\n");printf("4: Total the information of instrument\n");}
int insert_instrument(){struct instrument * p1,* p;p1=(struct instrument *)malloc(sizeof(struct instrument));p=head;if (p==NULL)/*开始没有数据*/{printf("Enter the data of instrument\n");printf("Include the spbh,name,style,num,price,sale_price of instrument\n");scanf("%s%s%s%d%d%d",&p1->p_num,&p1->name,&p1->spec,&p1->amount,&p1->price,&p1->s_price);head=p1;head->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price);p1->next=NULL;}int in_insert(){struct in_instrument * p1,* p;p1=(struct in_instrument *)malloc(sizeof(struct in_instrument));p=ihead;if (p==NULL)/*开始没有数据*/{printf("Enter the data of in instrument\n");printf("Include the rkbh,spbh,name,number,price,total_price\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price);ihead=p1;ihead->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price);p1->next=NULL;}
int in_modify(){char m_num[12];struct in_instrument * p;p=ihead;printf("Enter the modify num\n");scanf("%s",&m_num);if (p==NULL)/*开始没有数据*/{printf("Sorry! No data can be found\n");return 0;}while(p!=NULL){if (strcmp(p->num,m_num)==0){printf("Enter the new data without num\n");scanf("%s%s%d%d%d",&p->p_num,&p->name,&p->amount,&p->price,&p->t_price);printf("One data had modified\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}
int in_select(){char s_num[12];struct in_instrument * p;p=ihead;printf("Enter the select num\n");scanf("%s",&s_num);while(p!=NULL){if (strcmp(p->num,s_num)==0){printf("The data you want is:\n");printf(" %s %s %s %d %d %d\n",p->num,p->p_num,p->name,p->amount,p->price,p->t_price);return 0;}p=p->next;}printf("Sorry! No num has found\n");}
int in_delete(){char d_num[12];struct in_instrument * p1,* p;p=ihead;printf("Enter the delete num\n");scanf("%s",&d_num);if (p==NULL)/*开始没有数据*/{printf("No data can be found\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next==NULL)/*链表只有一个数据,且是要删除的*/{ihead=NULL;printf("One data has been deleted\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next!=NULL)/*要删除的数据在链表的头上*/{ihead=ihead->next;printf("One data has been deleted\n");return 0;}while(p->next!=NULL){p1=p->next;if (strcmp(p1->num,d_num)==0){p->next=p1->next;printf("One data has been deleted\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}
int out_insert(){struct out_instrument * p1,* p;p1=(struct out_instrument *)malloc(sizeof(struct out_instrument));p=ohead;if (p==NULL)/*开始没有数据*/{printf("Enter the data of out instrument\n");printf("Include the ckbh,spbh,name,number,price,total_price\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price);ohead=p1;ohead->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price);p1->next=NULL;}
int out_modify(){char m_num[12];struct out_instrument * p;p=ohead;printf("Enter the modify num\n");scanf("%s",&m_num);if (p==NULL)/*开始没有数据*/{printf("Sorry! No data can be found\n");return 0;}while(p!=NULL){if (strcmp(p->num,m_num)==0){printf("Enter the new data without num\n");scanf("%s%s%d%d%d",&p->p_num,&p->name,&p->amount,&p->price,&p->t_price);printf("One data had modified\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}
int out_select(){char s_num[12];struct out_instrument * p;p=ohead;printf("Enter the select num\n");scanf("%s",&s_num);while(p!=NULL){if (strcmp(s_num,p->num)==0){printf("The data you want is:\n");printf(" %s %s %s %d %d %d\n",p->num,p->p_num,p->name,p->amount,p->price,p->t_price);return 0;}p=p->next;}printf("Sorry! No num has found\n");}
int out_delete(){char d_num[12];struct out_instrument * p1,* p;p=ohead;printf("Enter the delete num\n");scanf("%s",&d_num);if (p==NULL)/*开始没有数据*/{printf("No data can be found\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next==NULL)/*链表只有一个数据,且是要删除的*/{ohead=NULL;printf("One data has been deleted\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next!=NULL)/*要删除的数据在链表的头上*/{ohead=ohead->next;printf("One data has been deleted\n");return 0;}while(p->next!=NULL){p1=p->next;if (strcmp(p1->num,d_num)==0){p->next=p1->next;printf("One data has been deleted\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}
int quit_insert(){struct quit_instrument * p1,* p;p1=(struct quit_instrument *)malloc(sizeof(struct quit_instrument));p=qhead;if (p==NULL)/*开始没有数据*/{printf("Enter the data of quit instrument\n");printf("Include the thbh,spbh,name,number,price,total_price\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price);qhead=p1;qhead->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price);p1->next=NULL;}
int quit_modify(){char m_num[12];struct quit_instrument * p;p=qhead;printf("Enter the modify num\n");scanf("%s",&m_num);if (p==NULL)/*开始没有数据*/{printf("Sorry! No data can be found\n");return 0;}while(p!=NULL){if (strcmp(p->num,m_num)==0){printf("Enter the new data without num\n");scanf("%s%s%d%d%d",&p->p_num,&p->name,&p->amount,&p->price,&p->t_price);printf("One data had modified\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}
int quit_select(){char s_num[12];struct quit_instrument * p;p=qhead;printf("Enter the select num\n");scanf("%s",&s_num);while(p!=NULL){if (strcmp(s_num,p->num)==0){printf("The data you want is:\n");printf(" %s %s %s %d %d %d\n",p->num,p->p_num,p->name,p->amount,p->price,p->t_price);return 0;}p=p->next;}printf("Sorry! No num has found\n");}
int quit_delete(){char d_num[12];struct quit_instrument * p1,* p;p=qhead;printf("Enter the delete num\n");scanf("%s",&d_num);if (p==NULL)/*开始没有数据*/{printf("No data can be found\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next==NULL)/*链表只有一个数据,且是要删除的*/{qhead=NULL;printf("One data has been deleted\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next!=NULL)/*要删除的数据在链表的头上*/{qhead=qhead->next;printf("One data has been deleted\n");return 0;}while(p->next!=NULL){p1=p->next;if (strcmp(p1->num,d_num)==0){p->next=p1->next;printf("One data has been deleted\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}
int total(){int in_num=0,in_price=0;int out_num=0,out_price=0;int num=0,price=0;struct in_instrument *ip;struct out_instrument *op;struct instrument *p;ip=ihead;while(ip!=NULL){in_num+=ip->amount;in_price+=ip->t_price;ip=ip->next;}op=ohead;while(op!=NULL){out_num+=op->amount;out_price+=op->t_price;op=op->next;}p=head;while(p!=NULL){num+=p->amount;price+=p->s_price;p=p->next;}printf("The in instrument's total number and total price is:\n");printf("%d %d\n",in_num,in_price);printf("The out instrument's total number and total price is:\n");printf("%d %d\n",out_num,out_price);printf("The instrument's total number and total price is:\n");printf("%d %d\n",num,price);}
int in_case(){int choice;printf("The information of in instrument:\n");while(1){printf("Enter the choice\n");scanf("%d",&choice);switch(choice){case 1: in_insert();insert_instrument();break;case 2: in_delete();break;case 3: in_modify();break;case 4: in_select();break;default: return 0;}menu();}}
int out_case(){int choice;printf("The information of out instrument:\n");while(1){printf("Enter the choice\n");scanf("%d",&choice);switch(choice){case 1: out_insert();break;case 2: out_delete();break;case 3: out_modify();break;case 4: out_select();break;default:return 0;}menu();}}
int quit_case(){int choice;printf("The information of quit instrument:\n");while(1){printf("Enter the choice\n");scanf("%d",&choice);switch(choice){case 1: quit_insert();break;case 2: quit_delete();break;case 3: quit_modify();break;case 4: quit_select();break;default: return 0;}menu();}}
int main(){int choice;init();while(1){scanf("%d",&choice);switch(choice){case 0: return 0;case 1: menu();in_case(); break;case 2: menu();out_case();break;case 3: menu();quit_case();break;case 4:total();break;}menu2();}}