医药管理系统实验报告.docx

上传人:b****5 文档编号:8844259 上传时间:2023-05-15 格式:DOCX 页数:30 大小:68.68KB
下载 相关 举报
医药管理系统实验报告.docx_第1页
第1页 / 共30页
医药管理系统实验报告.docx_第2页
第2页 / 共30页
医药管理系统实验报告.docx_第3页
第3页 / 共30页
医药管理系统实验报告.docx_第4页
第4页 / 共30页
医药管理系统实验报告.docx_第5页
第5页 / 共30页
医药管理系统实验报告.docx_第6页
第6页 / 共30页
医药管理系统实验报告.docx_第7页
第7页 / 共30页
医药管理系统实验报告.docx_第8页
第8页 / 共30页
医药管理系统实验报告.docx_第9页
第9页 / 共30页
医药管理系统实验报告.docx_第10页
第10页 / 共30页
医药管理系统实验报告.docx_第11页
第11页 / 共30页
医药管理系统实验报告.docx_第12页
第12页 / 共30页
医药管理系统实验报告.docx_第13页
第13页 / 共30页
医药管理系统实验报告.docx_第14页
第14页 / 共30页
医药管理系统实验报告.docx_第15页
第15页 / 共30页
医药管理系统实验报告.docx_第16页
第16页 / 共30页
医药管理系统实验报告.docx_第17页
第17页 / 共30页
医药管理系统实验报告.docx_第18页
第18页 / 共30页
医药管理系统实验报告.docx_第19页
第19页 / 共30页
医药管理系统实验报告.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

医药管理系统实验报告.docx

《医药管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《医药管理系统实验报告.docx(30页珍藏版)》请在冰点文库上搜索。

医药管理系统实验报告.docx

医药管理系统实验报告

成绩评定表

学生姓名

班级学号

专业

计算机科学与技术

课程设计题目

医药管理系统

组长签字:

成绩

日期

2015年月日

课程设计任务书

学院

信息科学与工程学院

专业

计算机科学与技术

学生姓名

班级学号

课程设计题目

医药管理系统

实践教学要求与任务:

任务:

制作一个医药管理系统,能够查看药品列表,显示药品相关信息,能够修改药品信息,能够添加没有的药品,能够根据不同条件查询药品信息。

要求:

1.设计数据结构,存储结构;

2.在c兼容环境完成上述题目的代码编写与调试;

3.程序运行界面交互性好;

4.软件运行,给出测试数据。

工作计划与进度安排:

数据结构课程设计时间安排在教学第14周、第15周内完成,按上述题目要求完成查阅资料、程序设计、调试、运行等工作。

时间安排如下:

1、查阅资料、与初步设计;1-2天

2、整体功能设计、代码编码与初步调试。

1-3天

3、调试和软件功能的测试和验收。

1-3天

4、答辩与论文撰写。

1-2天

指导教师:

2015年12月12日

专业负责人:

2015年12月12日

学院教学副院长:

2015年12月12日

一、题目概述(内容及要求)4

二、功能分析4

三、设计6

四、运行与测试7

五、总结8

参考文献8

一、题目概述(内容及要求)

1.内容:

制作一个医药管理系统,能够查看药品列表,显示药品相关信息,能够修改药品信息,能够添加没有的药品,能够根据不同条件查询药品信息。

2.要求:

1.程序代码完成,编译运行成功。

2.数据输入首选采用文件的方式,其次键盘输入。

3.分析采用哪种合适的存储结构来储存数据

4.设计一定的用户界面,简洁。

二、功能分析

1.

功能模块图

2.程序流程图

查看

添加返回删除修改

返回返回

N

Y

Y

N

返回

N

Y

NN

返回

Y

N返回

三、设计

相关代码:

#include

#include

#include

#include

#include

typedefstructDrug

{charDrug_id[30];//编号

charDrug_name[50];//药品名称

charDrug_type[10];//类型

floatDrug_price;//价格

intamount;//库存数量

charDrug_time[30];//入库时间

charremark[30];//备注

structDrug*next;

}Drug,*DrugPtr;

#defineMENU"欢迎进入药品管理系统\n"\

"1:

查看已有药品列表\n"\

"2:

添加新的药品\n"\

"3:

删除药品信息\n"\

"4:

修改药品信息\n"\

"5:

分类查询\n"\

"0:

退出\n"\

"请您选择:

"

#defineMENU41"请选择要修改的选项\n"\

"1:

修改药品名称\n"\

"2:

修改药品价格\n"\

"3:

修改药品数量\n"\

"4:

修改药品类型\n"\

"5:

修改药品备注\n"\

"0:

返回主菜单\n"\

"请您选择:

"

#defineMENU5"欢迎进入分类查询页面\n"\

"1:

按编号查询\n"\

"2:

按名称查询\n"\

"3:

按类型查询\n"\

"4:

按价格查询\n"\

"5:

按库存数量查询\n"\

"6:

按入库时间查询\n"\

"0:

返回主菜单\n"\

"请您选择:

"

#defineMENU50"按药品编号查询\n"\

"请输入要查询的药品编号:

"

#defineMENU51"按药品名称查询\n"\

"请输入要查询的药品名称:

"

#defineMENU52"按药品类型查询\n"\

"请输入要查询的药品类型:

\n"\

"1:

中药\n"\

"2:

中成药\n"\

"3:

西药\n"\

"0:

返回查询菜单\n"\

"请您选择:

"

#defineMENU53"按药品价格查询\n"\

"请输入要查询的药品价格:

"

#defineMENU54"按药品库存数量查询\n"\

"请输入要查询的药品的库存数量:

"

#defineMENU55"按药品入库时间查询\n"\

"请输入要查询的药品入库时间:

"

#defineSTRCMP(NAME,STR)strcmp((char*)GetStdin("请输入药品的编号(按0结束):

","%s",STR),"0")

DrugPtrinsert(DrugPtrhead,intid,char*name);//添加药品

voidsave_to_file(DrugPtr&yaolist);//将更新后的链表保存到文件中

voidread_to_list(DrugPtr&yaolist);//将文件读入链表

void*GetStdin(constchar*numstr,char*control,void*ret);

DrugPtrgetvalue();//取值

voiddruginsert(DrugPtr&yaolist,DrugPtryao);//插入操作

intisdrugin(DrugPtryaolist,DrugPtryao);//判断

voiddrugmodify(DrugPtr&yaolist,DrugPtryao);//修改操作

voiddeletenode(DrugPtr&yaolist,chardrug_id[]);//删除操作

voiddeletedrug(DrugPtr&yaolist);

voidupdatedrug(DrugPtr&yaolist);

voidlistshow(DrugPtryaolist);//显示操作

voiddrug_find_name(DrugPtrhead,char*name);//以名称查询

voiddrug_find_id(DrugPtrhead,char*id);//以编号查询

voiddrug_find_type_z(DrugPtrhead);//查询中药

voiddrug_find_type_zc(DrugPtrhead);//查询中成药

voiddrug_find_type_x(DrugPtrhead);//查询西药

voiddrug_find_price(DrugPtrhead,floatprice);//以价格查询

voiddrug_find_amout(DrugPtrhead,intamout);//以库存数量查询

voiddrug_find_time(DrugPtrhead,char*time);//以入库时间查询

voiddrug_type_choose(DrugPtrhead);//查询主菜单

voidchoose_type(DrugPtrhead);//类型查询

intmain()

{intchoice;

DrugPtrhead=NULL;

DrugPtryao;

read_to_list(head);

while(*(int*)GetStdin(MENU,"%d",&choice))

{switch(choice){

case1:

listshow(head);//显示药品列表

break;

case2:

{

yao=getvalue();

druginsert(head,yao);//添加药品

printf("药品添加成功\n");

break;

}

case3:

deletedrug(head);//删除药品

break;

case4:

updatedrug(head);//修改药品信息

break;

case5:

//分类查询

drug_type_choose(head);

break;

case0:

//退出

break;

}

}

save_to_file(head);

return0;

}

void*GetStdin(constchar*numstr,char*control,void*ret)

{cputs(numstr);

while(!

scanf(control,ret)){

fflush(stdin);

system("cls");

cputs(numstr);

}

system("cls");

returnret;

}//显示列表

voidlistshow(DrugPtryaolist)

{

printf("%5s%8s%16s%10s%14s%13s%7s\n","药品编号","名称","价格","类型","入库时间","库存数量","备注");

DrugPtrp=yaolist;

if(!

p)

printf("kong");

while(p)

{printf("%-10s%-18s%-10.2f%-10s%-13s%-10d%-10s\n",p->Drug_id,p->Drug_name,p->Drug_price,p->Drug_type,p->Drug_time,p->amount,p->remark);

p=p->next;

}

}

DrugPtrgetvalue()

{DrugPtryao=(DrugPtr)malloc(sizeof(Drug));

printf("请输入药品编号:

");

scanf("%s",&yao->Drug_id);

printf("\n");

printf("请输入药品名称:

");

scanf("%s",&yao->Drug_name);

printf("\n");

printf("请输入药品价格:

");

scanf("%f",&yao->Drug_price);

printf("\n");

printf("请输入药品数量:

");

scanf("%d",&yao->amount);

printf("\n");

printf("请输入药品入库时间:

");

scanf("%s",&yao->Drug_time);

printf("\n");

printf("请输入药品类型:

");

scanf("%s",&yao->Drug_type);

printf("\n");

printf("请输入药品备注:

");

scanf("%s",&yao->remark);

printf("\n");

yao->next=NULL;

returnyao;

}

voiddruginsert(DrugPtr&yaolist,DrugPtryao)

{if(!

yaolist)

yaolist=yao;

else

{yao->next=yaolist->next;

yaolist->next=yao;

}

}

DrugPtrisdrugin(DrugPtryaolist,chardrug_id[])

{DrugPtrp=yaolist;

while(p)

{if(!

strcmp(p->Drug_id,drug_id))

break;

else

p=p->next;

}

returnp;

}//更新结点

voiddrugmodify(DrugPtr&yaolist,DrugPtryao)

{intchoice;

DrugPtrp=yaolist;

floatt=0;//没有这句出现floatpointnotloaded

while(*(int*)GetStdin(MENU41,"%d",&choice))

{switch(choice)

{

case1:

GetStdin("请输入药品的新名称:

","%s",yao->Drug_name);

printf("\n");

cputs("更新成功!

请继续选择\n");

printf("\n");

break;

case2:

GetStdin("请输入药品的新价格:

","%f",&yao->Drug_price);

printf("\n");

cputs("更新成功!

请继续选择\n");

printf("\n");

break;

case3:

GetStdin("请输入药品的修改数量:

","%d",&yao->amount);

printf("\n");

cputs("更新成功!

请继续选择\n");

printf("\n");

break;

case4:

GetStdin("请输入药品的新类型:

","%s",yao->Drug_type);

printf("\n");

cputs("更新成功!

请继续选择\n");

printf("\n");

break;

case5:

GetStdin("请输入药品的新备注:

","%s",yao->remark);

printf("\n");

cputs("更新成功!

请继续选择\n");

printf("\n");

break;

case0:

break;

}

}

}//找到结点返回update

voidupdatedrug(DrugPtr&yaolist)

{charstring[30];

DrugPtryao;

while(strcmp((char*)GetStdin("请输入药品编号(按0结束):

\n","%s",string),"0"))

{yao=isdrugin(yaolist,string);

if(yao)//判断药是否存在

drugmodify(yaolist,yao);

else

printf("没有这种药\n");

}

}

voiddeletedrug(DrugPtr&yaolist)

{charstring[30];

while(STRCMP(SECOND,string))

{

if(isdrugin(yaolist,string))

{

deletenode(yaolist,string);

}

else

printf("药品不存在!

");

}

}

voiddeletenode(DrugPtr&yaolist,chardrug_id[])

{DrugPtrq,p;

q=yaolist;

p=q->next;

if(!

strcmp(yaolist->Drug_id,drug_id))

{yaolist=yaolist->next;

free(q);

}

else

{while(p)

{if(!

strcmp(p->Drug_id,drug_id))

break;

q=q->next;

p=p->next;

}

q->next=p->next;

free(p);

}

printf("药品已删除!

");

}

voidread_to_list(DrugPtr&yaolist)

{FILE*fp=fopen("E:

/yao.txt","r");

if(!

fp)

printf("error");

while(!

feof(fp))

{DrugPtryao=(DrugPtr)malloc(sizeof(Drug));

yao->next=NULL;fscanf(fp,"%s%s%f%s%s%d%s\n",yao->Drug_id,yao->Drug_name,&yao->Drug_price,yao->Drug_type,yao->Drug_time,&yao->amount,yao->remark);

druginsert(yaolist,yao);

}

fclose(fp);

}

voidsave_to_file(DrugPtr&yaolist)

{DrugPtrp=yaolist;

FILE*fp=fopen("E:

/yao.txt","w");

if(!

fp)

printf("error");

while(p)

{fprintf(fp,"%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",p->Drug_id,p->Drug_name,p->Drug_price,p->Drug_type,p->Drug_time,p->amount,p->remark);

p=p->next;

}

fclose(fp);

}

voiddrug_find_name(DrugPtrhead,char*name)

{DrugPtrcur,p;

p=head;

cur=head;

inti=0;

while(p)

{if(!

strcmp(p->Drug_name,name))

break;

else

p=p->next;

}

if(p)

{while(cur!

=NULL)

{if(!

strcmp(cur->Drug_name,name))

{printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);

i++;

}

cur=cur->next;

}

printf("\n");

printf("所有名称为%s的数量为%d\n",name,i);

printf("\n");

}

else

{printf("\n");

printf("没有找到该药名!

\n");

printf("\n");

}

}

voiddrug_find_type_z(DrugPtrhead)

{DrugPtrcur,p;

cur=head;

p=head;

inti=0;

while(p)

{if(!

strcmp(p->Drug_type,"中药"))

break;

else

p=p->next;

}

if(p)

{while(cur!

=NULL)

{if(!

strcmp(cur->Drug_type,"中药"))

{printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);

i++;

}

cur=cur->next;

}

printf("\n");

printf("所有中药的数量为%d\n",i);

printf("\n");

}

else

{printf("\n");

printf("没有该类型的药!

\n");

printf("\n");

}

}

voiddrug_find_type_zc(DrugPtrhead)

{DrugPtrcur,p;

cur=head;

p=head;

inti=0;

while(p)

{if(!

strcmp(p->Drug_type,"中成药"))

break;

else

p=p->next;

}

if(p)

{while(cur!

=NULL)

{if(!

strcmp(cur->Drug_type,"中成药"))

{printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);

i++;

}

cur=cur->next;

}

printf("\n");

printf("所有中成药的数量为%d\n",i);

printf("\n");

}

else

{printf("\n");

printf("没有该类型的药!

\n");

printf("\n");

}

}

voiddrug_find_type_x(DrugPtrhead)

{DrugPtrcur,p;

cur=head;

p=head;

inti=0;

while(p)

{if(!

strcmp(p->Drug_type,"西药"))

break;

else

p=p->next;

}

if(p)

{

while(cur!

=NULL)

{if(!

strcmp(cur->Drug_type,"西药"))

{printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);

i++;

}

cur=cur->next;

}

printf("\n");

printf("所有西药的数量为%d\n",i);

printf("\n");

}

else

{

printf

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2