c语言课程设计报告 药房管理系统.docx
- 文档编号:10393484
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:28
- 大小:317.43KB
c语言课程设计报告 药房管理系统.docx
《c语言课程设计报告 药房管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告 药房管理系统.docx(28页珍藏版)》请在冰点文库上搜索。
c语言课程设计报告药房管理系统
xx大学yy学院
课程设计实验报告
班级:
姓名(学号)
实验项目名称:
药房管理系统
实验室(中心):
信息科学与工程学院软件中心
指导教师:
实验完成时间:
2011年12月29日
序号
项目
标准
评分
1
系统演示(功能)(40%)
按要求完成系统功能且界面友好容错能力强(36-40)
按要求完成系统功能界面一般有较好的容错能力(32-35)
基本完成系统功能有一定的容错能力(28-31)
基本完成系统功能(24-27分)
未完成系统功能或他人代做或抄袭(15)
2
课程设计说明书(50%)
课程设计书各项目认真填写,具有清晰的设计思路及软件测试结果分析(45-50)
课程设计书各项目认真填写,具有较为清晰的设计思路并对软件测试结果进行了较为清晰的分析(40-44)
课程设计书各项目认真填写,设计思路正确(35-39)
课程设计书进行为较为认真的填写(30-34)
课程设计书有未完成项或各项填写不属实或他人代做或抄袭(15)
4
纪律遵守、群体协作等(10%)
10
教师签字
总分
一、题目
药房管理系统(主要是输入药品信息部分、药品药品销量排序和药品库存排序)
2、功能描述
该系统可以实现的功能主要有:
1、能正确地录入药品信息并保存下来。
2、能够有效、快速地查看全部药品的信息。
3、可以查看某一药品的信息(按药品的默认序号查看)4、可以查看某一药品的信息(按药品的编号进行查看)5、能够按照管理人员的意愿修改任意药品的信息(按药品的默认序号修改)。
6、能修改药品信息(按药品的编号进行修改)。
7、当管理员查看药品时,系统能够准确地判断药品的性质。
8、此系统还能对药品的销售量进行排序,以指导后期的药品进出货。
9、能对药品库存进行排序等。
该系统主要是由三个同学一起完成的,而我所做的主要是输入药品信息、药品销量排序和药品库存排序等;在输入药品信息的过程中,系统能够“自己记住“所录入的药品信息,且能够按照已规定的步骤继续执行下去;在药品销量排序部分和药品库存排序部分,运用结构体的方法,采用指针、文件、for循环语句等,使得管理系统能够快速、准确无误地进行排序。
三、概要设计
四、详细设计
这几部分在与其他模块融合时还需要修改其中的一些东西才能更好地粘合起来;在输入药品信息模块,用户只需按照操作界面的提示,按照规则输入即可,无需其他,简单程序如下:
while
(1)
{
printf("\n");
printf("======欢迎来到药房管理系统=======\n");
printf("****1输入药品信息****\n");
printf("****2查看药品信息****\n");
printf("****3修改药品信息****\n");
printf("****4判断药品性质****\n");
printf("****5药品销量排序****\n");
printf("****6药品库存排序****\n");
printf("=================================\n");
printf("\n");
printf("请输入你将进行操作的选项序号\n");
scanf("%d",&n);
switch(n)
{
case1:
printf("请输入药品信息\n");
input_the_medicine_information(med);
break;
在药品销量排序模块,当用户输入的药品信息保存以后,用户按照提示操作进行销量排序,此时,销量信息即能按照从大到小的顺序列出来;在药品库存信息排序模块亦如此。
具体简易程序如下:
voidtake_the_rank_of_sell(structmedicinemed[])
{
FILE*fp;
inti;
fp=fopen("d:
\\input_the_medicine_information.txt","r");
for(i=0;i { fread(&med[i],sizeof(structmedicine),1,fp); } intk; chara[20]; for(i=0;i { for(intj=0;j if(med[j].sell { k=med[j].sell; med[j].sell=med[j+1].sell; med[j+1].sell=k; k=med[j].number; med[j].number=med[j+1].number; med[j+1].number=k; k=med[j].storage; med[j].storage=med[j+1].storage; med[j+1].storage=k; k=med[j].category; med[j].category=med[j+1].category; med[j+1].category=k; k=med[j].qualityguaranteeperiod; med[j].qualityguaranteeperiod=med[j+1].qualityguaranteeperiod; med[j+1].qualityguaranteeperiod=k; strcpy(a,med[j].name); strcpy(med[j].name,med[j+1].name); strcpy(med[j+1].name,a); } } printf("\n"); printf("************************************************************************\n"); printf("销量排名销售数量药品名称药品编号药品保质期药品的种类药品库存\n"); for(i=0;i { printf("%4d%10d%10s%10d%10d%15d%11d",i+1,med[i].sell,med[i].name,med[i].number,med[i].qualityguaranteeperiod,med[i].category,med[i].storage); printf("\n"); } printf("************************************************************************\n"); fclose(fp); } /*药品库存排序*/ voidtake_the_rank_of_storage(structmedicinemed[]) { FILE*fp; inti; fp=fopen("d: \\input_the_medicine_information.txt","r"); for(i=0;i { fread(&med[i],sizeof(structmedicine),1,fp); } intk; chara[20]; for(i=0;i { for(intj=0;j if(med[j].storage { k=med[j].storage; med[j].storage=med[j+1].storage; med[j+1].storage=k; k=med[j].number; med[j].number=med[j+1].number; med[j+1].number=k; k=med[j].category; med[j].category=med[j+1].category; med[j+1].category=k; k=med[j].sell; med[j].sell=med[j+1].sell; med[j+1].sell=k; k=med[j].qualityguaranteeperiod; med[j].qualityguaranteeperiod=med[j+1].qualityguaranteeperiod; med[j+1].qualityguaranteeperiod=k; strcpy(a,med[j].name); strcpy(med[j].name,med[j+1].name); strcpy(med[j+1].name,a); } } printf("\n"); printf("************************************************************************\n"); printf("销量排名药品库存药品名称药品编号药品保质期药品的种类销售数量\n"); for(i=0;i { printf("%4d%10d%10s%10d%10d%15d%11d",i+1,med[i].storage,med[i].name,med[i].number,med[i].qualityguaranteeperiod,med[i].category,med[i].sell); printf("\n"); } printf("************************************************************************\n"); fclose(fp); } 五、测试结果及存在的问题 这几部分在运行时: 对于输入药品信息模块,第一次输入的药品信息在关闭系统后无法保存,在第二次打开时不能看到第一次的结果;错误原因: 没有写读入的文件的函数,导致第一次运行的结果无法在第二次打开;解决办法: 写入读入文件函数,加入后即可良好运行。 对于药品销量排序和药品库存排序模块,主要是指针和for循环语句的正确运用,虽然在这其中遇到了一些问题,但经过修改,基本圆满。 运行界面如下: 六、课程设计心得体会 学习c语言已有一年左右的时间,经过这一年的笔练、上机学习,使我对c语言有了更进一步的认识和理解。 我想: 要想学好c语言,多练习绝对是必不可少的;此外,还必须会在练习中发现错误、改正错误并尽量避免在下次重犯。 经过此次的课程设计,也使我看到了团队合作的重大力量、必要性和对工作完成的有效性。 可以说,一个好的团队是一项工作得以准确、快速完成的基础和必要条件。 同时,在做此次课程设计的过程中,也使我看到了自己诸多的劣势与不足,比如自己编写程序的手法不够熟练,打字母速度太慢以致于我要利用好半天时间才能写出小部分程序,还有就是自己对c语言的一些基础知识掌握的不够牢靠,对一些需要经常使用到的比如指针、函数等运用得不是很熟练,找不到下手的地方。 课程设计结束后,我觉得我还有诸多需要改进和提升的地方;对于c语言或是其他计算机语言,关键是实践,多练习、多积累,才能有所进步,找到自己的缺点和不足;所以在以后的学习中,我会更加注重自己的动手能力的培养,加强实际上机操作,争取把c语言学得更好! 七、附录 #include #include #include #defineSIZE4 structmedicine { intnumber; charname[20]; intsell; intqualityguaranteeperiod; intcategory; intstorage; }med[SIZE]; voidmain() { intn,m,p; voidinput_the_medicine_information(structmedicinemed[]);/*输入药品信息*/ voidprintf_all_the_information_of_the_medicines(structmedicinemed[]);/*查看全部药品的信息*/ voidprintf_the_medicine_information(structmedicinemed[]);/*查看某一药品的信息(按药品的默认序号查看)*/ voidprintf_the_medicine_informationt(structmedicinemed[]);/*查看某一药品的信息(按药品的编号进行查看)*/ voidchange_the_medicine_information(structmedicinemed[]);/*修改药品信息(按药品的默认序号修改)*/ voidchange_the_medicine_informationt(structmedicinemed[]);/*修改药品信息(按药品的编号进行修改)*/ voidjudge_the_medicine_category();/*判断药品的性质*/ voidtake_the_rank_of_sell(structmedicinemed[]);/*药品销售排序*/ voidtake_the_rank_of_storage(structmedicinemed[]);/*药品库存排序*/ while (1) { printf("\n"); printf("======欢迎来到药房管理系统=======\n"); printf("****1输入药品信息****\n"); printf("****2查看药品信息****\n"); printf("****3修改药品信息****\n"); printf("****4判断药品性质****\n"); printf("****5药品销量排序****\n"); printf("****6药品库存排序****\n"); printf("=================================\n"); printf("\n"); printf("请输入你将进行操作的选项序号\n"); scanf("%d",&n); switch(n) { case1: printf("请输入药品信息\n"); input_the_medicine_information(med); break; case2: printf("******************************************\n"); printf("查看药品信息\n"); printf("1查看全部药品的信息\n"); printf("2查看某一药品的信息(按药品的默认序号查看)\n"); printf("3查看某一药品的信息(按药品的编号进行查看)\n"); printf("******************************************\n"); printf("\n"); printf("请输入你将进行操作的选项序号\n"); scanf("%d",&m); switch(m) { case1: printf_all_the_information_of_the_medicines(med); break; case2: printf("请输入要查看药品的默认序号\n"); printf_the_medicine_information(med); break; case3: printf("请输入要查看药品的编号\n"); printf_the_medicine_informationt(med); break; default: printf("输入有误,请重新输入\n"); } break; case3: printf("*************************************\n"); printf("修改药品信息\n"); printf("1修改药品信息(按药品的默认序号修改)\n"); printf("2修改药品信息(按药品的编号进行修改)\n"); printf("*************************************\n"); printf("\n"); printf("请输入你将进行操作的选项序号\n"); scanf("%d",&p); switch(p) { case1: printf("请输入要修改的药品默认序号\n"); change_the_medicine_information(med); break; case2: printf("请输入要修改的药品编号\n"); change_the_medicine_informationt(med); break; default: printf("输入有误,请重新输入\n"); } break; case4: judge_the_medicine_category(); break; case5: take_the_rank_of_sell(med); break; case6: take_the_rank_of_storage(med); break; default: printf("输入有误,请重新输入\n"); } } } /*输入药品信息*/ voidinput_the_medicine_information(structmedicinemed[]) { FILE*fp; if((fp=fopen("d: \\input_the_medicine_information.txt","w"))==NULL) { printf("cannotestablishthefile! \n"); exit(0); } printf("请输入药品的numbernamesellqualityquaranteeperiodcategorystorage\n"); for(inti=0;i { scanf("%d",&med[i].number); scanf("%s",med[i].name); scanf("%d",&med[i].sell); scanf("%d",&med[i].qualityguaranteeperiod); scanf("%d",&med[i].category); scanf("%d",&med[i].storage); } for(i=0;i if(fwrite(&med[i],sizeof(structmedicine),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } /*查看全部药品的信息()*/ voidprintf_all_the_information_of_the_medicines(structmedicinemed[]) { FILE*fp; inti; fp=fopen("d: \\input_the_medicine_information.txt","r"); printf("查看全部药品的简略信息: \n"); printf("\n"); printf("***********************************************************************\n"); printf("默认序号numbernamesellqualityguaranteeperiodcategorystorage\n"); for(i=0;i { fread(&med[i],sizeof(structmedicine),1,fp); printf("%6d%8d%8s%6d%11d%22d%8d\n",i,med[i].number,med[i].name,med[i].sell,med[i].qualityguaranteeperiod,med[i].category,med[i].storage); printf("\n"); } printf("***********************************************************************\n"); fclose(fp); } /*查看某一药品的信息(按药品的默认序号查看)*/ voidprintf_the_medicine_information(structmedicinemed[]) { FILE*fp; inti; fp=fopen("d: \\input_the_medicine_information.txt","r"); for(i=0;i { fread(&med[i],sizeof(structmedicine),1,fp); } intg; scanf("%d",&g); if(g { printf("*************************************************************\n"); printf("numbernamesellqualityguaranteeperiodcategorystorage\n"); printf("%d%s%d%d%d%d\n",med[g].number,med[g].name,med[g].sell,med[g].qualityguaranteeperiod,med[g].category,med[g].storage); printf("
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言课程设计报告 药房管理系统 语言 课程设计 报告 药房 管理 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)