C语言药品标准管理系统_第1页
C语言药品标准管理系统_第2页
C语言药品标准管理系统_第3页
C语言药品标准管理系统_第4页
C语言药品标准管理系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XX大学信息科学和工程学院

课程设计汇报书

课题:药品信息管理系统

姓名:_______________________________

专业:电子信息工程

年级:_________2013级____________

指导老师:_______________________________

时间:_______________________________

目录

引言----------------------------------------1

一、系统概述--------------------------------2

二、需求分析--------------------------------2

1、系统需求-----------------------------2

2、开发环境-----------------------------3

三、具体设计--------------------------------4

四、所碰到问题和分析处理-----------------10

五、系统特色及关键技术---------------------11

六、结论及心得体会--------------------------11

七、附录(源代码)--------------------------12

参考文件17

引言

经过本课程设计,使自己愈加系统地了解和掌握数据结构基础概念;能自如

地依据实际要求,设计对应数据结构,并利用C或C++语言实现所设计算法,

编写较大型程序,分析和处理实际应用问题,深入加深、巩固所学专业课程基础

理论知识,理论联络实际,深入培养自己综合分析问题和处理问题能力。掌握C

语言或C++语言独立编写、调试应用程序和进行其它相关设计技能。

此项目关键是考察我们对结构体、数组、文件等具体操作,和对C语言语

法掌握,所以做成此项目要求比较高设计要求,对整体有很熟悉概括,同时调试

过程也是很关键,对程序界面要求也比较高,要设计合理同时也要美观一点,能

够人性化描述清楚你各个功效,一目了然,对其它用户使用本程序简单易懂,这

才能成本程序或本系统是成功。

这个设计能够练习我们了解和利用结构化程序设计思想和方法,掌握开发一

个小型实用系统基础方法,学会调试一个比较长程序基础方法,同时掌握书写程

序设计开发文档能力。

一、系统概述

I、课程设计应完成工作

(1)编写算法

(2)算法测试,并有具体测试结果和结果分析

(3)撰写课程汇报,内容包含:

①封面

②目录

③课程设计汇报正文

④使用说明

⑤参考文件

2、总体设计工作(包含几大功效模块)

(1)按药品编号查询

(2)按药品名称查询

(3)按药品价格查询

(4)按数据结构降序(冒泡)排序

(5)按总分降序(选择)排序

(6)退出

二、需求分析

1、系统需求

(1)问题描述:

该系统实现.对若干个大药品种类进行管理。最少包含以下信息:

药品编号、名称、价格、功效。

(2)功效要求:

1.使用汉字菜单,界面设计和用户输入输出要人性化些;

2.含有数据删除功效,能最终从文件中删除;

3.排序功效,依据自己设计数据结构,设计排序算法

4.含有多个查询(如按编号查询、按名称查询、按价格查询等)及输出

功效;

5.药品信息修改(比如修改药品名称,修改药品编号)

(3)说明:

①功效各方面越完善越好

②自定义数据结构能够使用数组,链表,树等,然后依据不一样数据结构,

设计不一样排序,查找算法。其中,排序算法最少有两种,能够使用多个数据结

构来存放数据,然后在其上使用不一样排序算法。

③若用数组,必需动态分配空间。

(4)、输入输出形式

本系统是一个药品成绩管理系统,采取VC++6.0编译器作为开发环境,这

个环境是我们在学习C++平台。输入数据类型关键是char.int.float等数据类

型,输入内容包含:药品编号、药品名称、药品价格、药品功效。用户在输入药

品数据时要确保输入数据格式正确性,系统不会自动检测输入数据是否正确,输

出形式和输入形式类似,依据需要能够选择显示输入各项内容。显示内容包含:

药品编号、药品名称、药品价格、药品功效。

2、开发环境

VisualC十十不仅仅足是一个C十十编译器,而是一个基于Windows操作系统可

视化集成开发环境IDE,这种环境开发出来软件稳定性好、可移植性强,能够

编制多种多样Windows应用程序。

三、具体设计

1、大约设计模块

(1)先编入系统所需库函数,从而使程序可运行。

#include<stdio.h>

#include<strong.s>

#include<stdlib.h>

#include<time.h>

#include<conio.h>〃义件和标准控制台输入输出

(2)Main。函数设计

在main。函数中关键利用switch()-case选择判定语句来调用相关

功效模块。系统运行是在一个永真循环里进行,只有在主界面并选择“退出”时,

才会跳出永真循环,并退出程序。

(3)主界面设计

在主界面中包含“①输入药品信息并保留到文件②读取文件并输出药品信

息③插入新药品信息④修改药品信息⑤删除药品信息。之所以设计这麽一个

主界面,一是因为能使用户对程序操作步骤愈加清楚简明,二是确保了用户同时

只能对一个文件进行操作系统要求,确保了系统不会打开文件紊乱或出现致命错

误。再加上对应颜色函数:system,color3F”)从而成功使系统界面背景颜色和

字体分别变成蓝色和白色。每个函数体以下:

intmain()〃主函数

{

systemC^color3FM):

int

printf("\t\t\t*****************************\n\n");

printf(',\t\t\t欢迎使用药品信息管理系统!\n\n");

pnntf(,,\t\t\t*****************************\n\n,');

do

prinlfCAlMM1…〉输入信息\ir');

printf(n\t\t\t2…>删除信息n\”);

printfCWXt3—>查找信息n\”);

printf(H\t\t\t4->浏览信息\n");

printfCAtW5…〉退出系统\n”);

printfT请选择您操作一\n“);

scanf(M%dM,&c);

switch(c)

casel:add();break;

case2:del();break;

case3:search();hreak;

case4:traverse();break;

case5:break;

default:printf("错误选择,请重选!\n*');break;

}

)

while(c!=5);

return0;

}

主界面:

[=।回15w|

■E\c涛言Qebug\药品管理系统l.exe'

欢迎使用药品信息管理系统,

>息

>息

>息

>息

>统

请选择您的操作i

voidadd()〃录入药品

(

inti=0,k,N;

printf(”\t欢迎进入药品信息录入!\iiM);

printf(M\t请输入要录入信息药品数量!\n");

scanf("%d”,&N);

for(i=l;i<=M;i++)

if(stu[i].flag!=l)

(

k=i;

break;

)

for(i=k;i<k+N;i++)

stu[i].flag=l;

printf("请输入第%d个药品编号:”,i);

scanf(%s,stu[i-l].bnum);

printf("请输入第%d个药品名称

scanf("%s",stu[M].name);

prinllT请输入笫%<1个药品价格:",i);

scanf(',%s,',stu[i-l].price);

printf,请输入第%~个药品功效:”,i);

scanf(,,%s,,,stu[i-l].function);

}

)

“'E:\c港言\Debug\药品管理至统Lexe・

欢迎使用药品信息管理系统,

1>信息

2>息

3>=息

4>息

5>统

请选择您的操作一

1

翻,数量,

voiddel()〃删除操作

inti.i;

charstr[12j;

printfC,Xt欢迎进入药品信息删除八n");

printfT请输入要删除信息编号:”);

scanf("%s”,str);

for(i=0;i<=M;i++)

if(strcmp(strl>stu|i].bnuni)==O)

(

fora=i;j<=M;j++)

stu[j]=stu[j+l];

printf("删除成功!\n“);

for(intn=M;;n»)

if(stu[n].flag==l)

(

stu[nJ.flag=O;

break;

)

break;

}

if(i==M)

printf("无此编号!\n");

[。|回

*'E:\c港言Qebug.质三堂覆至统Lexe”

欢迎使用药品信息管理系统,

1>息

2>息

3>息

4>息

5>统

voidsearch。〃查找操作

(

charstr[10];

intk,i;

printf("请输入要查找药品编号:”);

scanf(,,%s*,,str);

for(i=0;i<M;i++)

if(strcmp(str,stu[i].bnum)==O)

(

k=i;

break;

}

printf(M编号:%s\t名称:%s\t价格:%s\t功

效%s\ii",stu[k].bnuni,stu[k].nanie^tu[k].price,stu[kl.function);

■I:\c港言\Debug\药品管理系统LexK-

欢迎使用药品信息管理系统,

>输d

15后

>

>座

i覆

>息

>统

请选择您的操作i

:青输入要查找药品的编号:

voidtraverse()〃浏览操作

(

intk,i;

for(i=l;i<=M;i++)

if(stu[il.flag==O)

(

k=i-l;

break;

)

for(i=0;i<k;i++)

print*"编号:%s\t名称:%s\t价格:%s\t功

效:%s\nH^tu[i].bnum,stu[i].name,stu[i].pnce,stu[i].fundion);

■年位港言\Debug\方品管三系统Lexe”

5-->退出系统

请选择您的操作…

1

品数量,

g口

p1100

^m药

p11iu

<m1药1

n2

药1

B1功•

n□□品1C

1>兰息

二S

2>息

3>呈

一>

4法=

5>

请选择您的操作…

编号:名称:1:功效:

1001liu12信lick

>8信

>-信

>保

1

>系

请选择您的操作…

2、设计思想

(1)确定语言算法

因为之前全部没有做过类似设计,所以一时间不能够确定到底使用何种语

言来设计本系统,所以在网上看了部分其它人设计程序,链表、数组,C++,多

种多样,也不知怎样选择,不过仔细地看了其中设计思想,最终还是用c和指

针数组来做,一是认为本人对链表掌握不是很熟练,那么在设计过程中轻易产生

不能了解错误,耽搁时间,二是想利用C,能够巩固一下所学数据结构知识,之

前做试验时候一直用C来做,全部没怎么用所学知识,这时候想练练。就这么

确定了整体结构算法。

(2)确定程序关键功效模块

这个就比较简单了,关键是依据系统设计说明及要求来设计,从而设计了

十大功效模块,有文件操作,有系统维护功效,排序和统计功效,有输入输出等

基础功效,比较人性化,添加了较多提醒语。这个程序关键功效时输入药品功效,

名称,价格和编号。

(3)系统结构体设计

structstudent

(

charbnum[12];〃编号

charname(12];〃药品名称

charprice[8];〃价格

charfunction[100];〃功效

intflag;

}stu[M];

四、所碰到问题和分析处理

1、存在不足

本药品信息管理系统由十大模块组成,每个模块相互联络又相互独立。这个

药品信息管理系统存在着很多不足之处,因为自己本身编程能力问题,这个系统

能够实现功效很有限。只能实现药品信息管理系统最基础功效,能够进行简单输

入、输出药品信息,查询和修改药品信息。而且在每个模块也有不足地方,比如

在输入药品资料时,对每个信息项没有严格要求,能够输入任何字符。这有待以

后努力,更详尽实现模块功效。

2、指针数组使用

就是在插入药品统计模块中,另一个指针数组定义,之前做时候没有注意到

这点,结果所做修改不能够保留到文件,以后操作时候也没有显示所做修改统计,

以后找了资料看了以后才知道,是变量问题,所以最终作了修改,加了一个另外

指针数组。

3、细节方面

其实在有些细节方面还是要尤其注意啊,比如分号添加,函数返回值等问题,

即使轻易改掉,不过很轻易养成不好习惯,而且还会浪费时间,所以在一开始写

时候就要很仔细,这么才能确保程序编精细,同时若出现很多这么错误话,在编

写程序时候也会心里烦,所以在编程时候要认真卬细。

4、内存分配问题

对于初学者话对内存分配和释放问题是比较抽象和模糊问题,在排序是之前

就出现了交换数据困难问题,和内存分配空间繁琐释放空间不立即问题,造成空

间浪费,使得程序运行时效率较低,所以最终采取了次序存放统计方法,这就能

改变前面所出现问题。

5、较小问题方面

其它就没什么比较大问题了,基础上只要细心一点话就能够正确调试了。

五、系统特色及关键技术

其实在本程序设计过程当中,没有很吸引人关键技术,因为我们小组C

语言或C++语言全部不是学很好,所以当初设计时候就只是想把功效全部实现就

好了,尽可能把所要求功效全部编进程序,这么就认为很满足了。所以全部是设

计比较简单易懂语言,这么能够使人更明白部分,所以就没有时间去细细地去设

计程序。本程序要说有什么值得说,那就只有些人性化这点了,在设计成学时候,

囚为我们怕弄混了,所以添加了很详尽提醒,这么在编程过程中或调试时候全部

能够比较快运行。还有就是尽可能应用了while语句和switch-case语句,这两个

语句在之前不是很常见,所以在这个程序中试炼了一下,即使在编写过程中总是

犯错,但还是成功用好了,也使程序有条理部分。我们也知道可能她人设计程序

比我们弄得还要好,不过在我们所学知识中成功应用了这些,我们认为这就是好

事,就是进步。

六、结论及心得体会

组员分工:负责查找相关设计药品管理设计程序资料,并进行筛选,并负

责撰写课程设计模板。组员分工:对筛选后得到资料,利用C语言在Microsoft

VisualC++6.0环境中进行编写一个药品管理系统程序,和对程序进行调试,作

出修改,最终对程序进行测试,得出运行结果,和对课程设计内容进行修改和补

充。

程序设计时所面临问题:在药品删除程序实现中,当输入多组药品信息后,

在多组药品进行删除时,程序只能正确删除第一组药品信息,而不能正确删除第

二组及以后药品信息。最终正确处理是经过修改for(j=i;j<=M;j++)

stu[j]=stu[j+l];printf("删除成功八n");for(intn=M;;n-)if(stu[n].flag==l){

slu[ii].flag=O;break;}break;中lbr(j=i;j<=M;j十十)slu[j]=slu[j+1];才使删除操作能够

正常实现了。

经过几天数次程序修改,程序最终能够正确运行了,即使有些疲惫,但还

是有很多收获,像计算机组成原理课设一样,让我们我又一次巩固了所学到知识,

之前学习只是停留在理论基础上,现在经过我们自己动手操作试验后,才是真正

了解及体会。C也学了近十二个月,有很多知识全部是似懂非懂,经过平时上机

操作,也了解了部分,但让我们有了更深了解和愈加好认识,则是在这次课设上,

之前迷惑也经过这次课设处理了部分,即使还是不能够全方面了解,不过有进步

就很快乐。

在课程设计之前,因为有了综合试验经验和教训,明白了写代码这一步是

很关键,因为当你把代码输进去以后,并编译让其运行,发觉经过不了,再来检

验出问题,是很费费力事情,所以分析和计划代码是很关键,最关键是要把逻辑

结构写好,这么就不会出现大问题,写代码就要先找出关键内容,用多个方法来

实现关键部分,这么能够尽可能避免发觉逻辑或编译不支持错误。

七、附录(源代码)

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#defineM100

structstudent

{

charbnum[12];

charnaniel12];

charprice[8];

charfunction[100];

intflag;

}stu[M];

voidad(l();

voiddel();

voidsearch();

voidtraverse();

intmain()

system(Mcolor3Fn):

intc;

printf(n\t\t\t*******:,i******************!5:**\n\n,');

printfC^tMXt欢迎使用药品信息管理系统!\n\n”);

do

printfCAtXtXt1…〉输入信息\n”);

printfC^tUXt2…〉删除信息\n");

priiilfCMMM3…)查找信息

printf(',\t\t\t4・・->浏览信息\n”);

printf(,f\t\t\t5…〉退出系统\iT);

printf("请选择您操作~~\n”);

scanf(n%dM,&c);

switch®

(

casel:add();break;

case2:del();break;

case3:search();break;

case4:traverse();break;

case5:break;

default:priiHf("错误选择,请重选!\n*');break;

)

)

while(c!=5);

return0;

)

voidadd()

{

inti=0,k,N;

printf(M\t欢迎进入药品信息录入!\n");

printf(-\t请输入要录入信息药品数量!\n”);

scanf("%d”,&N);

for(i=l;i<=M;i++)

if(stu[i].flag!=l)

(

k=i;

break;

)

for(i=k;i<k+N;i++)

(

stu[i].riag=l;

printfT请输入第%(1个药品编号:”,i);

scanf(,'%s*',stu[i-l].bnuni);

printfC请输入第%(1个药品名称:”,i);

scanf(M%sH,stu[i-1].name);

printf("请输入第%d个药品价格:”,i);

scanf(*'%s,,,shi[i-1].price);

printf("请输入第%d个药品功效:”J);

scanf(*'%s,,,stu[i-l].function);

)

}

voiddel()

(

intij;

charstr[12];

printf("\t欢迎进入药品信息删除!\n");

printfC请输入要删除信息编号:”);

scanf(u%s*',str);

for(i=0;i<=M;i++)

if(strcmp(str^tu[i].bnum)==O)

{

forG=i;j<=M;j++)

stu[j]=stu[j+l];

prinllT删除成功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论