《C语言程序设计》药房管理系统

合集下载

C语言:书店管理系统

C语言:书店管理系统

C语言:书店管理系统#include "stdio.h"#include <string.h>#define MAXNUM 1000typedef struct{char isbn[10]; /*书号*/char bkname[20]; /*书名*/char author[10]; /*作者*/float price; /*单价*/int num; /*数量(单位:册)*/} BOOK;int bknum;BOOK bk[MAXNUM];rdata(){FILE *fp;if ((fp=fopen("e:\\lth019\\bkstore\\bookdata.txt","rb"))==NULL){printf("Can not open the file!\n");return;}fread(&bknum,sizeof(int),1,fp);fread(bk,sizeof(BOOK),bknum,fp);fclose(fp);}bklist(){int i;clrscr();printf(" Isbn bkname author price num\n"); printf("----------------------------------------------------------------\n");for(i=0;i<bknum;i++)putout();printf("-------------------------BOOK LIST END---------------------------\n");printf("Press any key to return...");getch();}void wdata(){FILE *fp;if ( (fp=fopen("e:\\lth019\\bkstore\\bookdata.txt","wb"))==NULL) {printf("Can not open the file!\n");return;}fwrite(&bknum , sizeof(int) , 1 , fp);fwrite(bk, sizeof(BOOK), bknum, fp);fclose(fp);}void bookin(){char s[10],bn[20],au[10];int i,nn;float pp;printf("input isbn(000 to end input):");scanf("%s",s);while(strcmp(s,"000")!=0){if ((i=found(s))<bknum){ printf("Have found!\n");putout();printf("input the number:");scanf("%d",&nn);bk[i].num+=nn;{putout();getch();}printf("input isbn(000 to end input):");scanf("%s",s);}else{printf("A new book input,\nPlease input bkname,author,price,num\n");strcpy(bk[i].isbn,s);scanf("%s%s",bn,au);strcpy(bk[i].bkname,bn);strcpy(bk[i].author,au);scanf("%f%d",&pp,&nn );bk[i].price=pp;bk[i].num=nn;bknum++;{putout();getch();}printf("input isbn(000 to end input):");scanf("%s",s);break;}}}showsold(BOOK sold[],int n){int i;printf("\n\n\n -------------The Books are selling-----------------\n");for(i=0;i<n;i++)printf(" %-10s%-20s%-10s%-8.2f%-8d\n",sold[i].isbn,sold[i].bkname,sold[i].author,sold[i].price,sold[i].num);}int found(char isbn[]){int i;for(i=0;i<bknum;i++)if(strcmp(isbn,bk[i].isbn)==0) break;return i;}void booksale(){ char isbn[10];BOOK sold[100];int soldnum=0,i;float total=0;clrscr();printf("Please input isbn(000 to end input):");scanf("%s",isbn);while(strcmp(isbn,"000")!=0){if((i=found(isbn))<bknum)if(bk[i].num>0)sold[soldnum++]=bk[i],bk[i].num--;else{printf("\Not enough!Pressany key to continue...");getch();} else{printf("\Not enough!Pressany key to continue...");getch();}clrscr();for(i=0,total=0;i<soldnum;i++)total+=sold[i].price;if(soldnum){ showsold(sold,soldnum);printf(" ----------------------------------------------\n");printf("\n The total %8.2f\n\n\n",total);}printf("\n input isbn(000 to end input):");scanf("%s",isbn);}}void search(){ char s[10]; char found; char isbn[20];char num[10]; char au[20]; char name[20];int t,i;printf("=================\n");printf(" 1.search with isbn \n");printf(" 2.search with author \n");printf(" 3.search with bookname \n");printf("=================\n");printf(" please chose one way : ");scanf("%d",&t);if(t==1){ printf(" please input isbn : ");scanf("%s",&s);for(found=0,i=0 ; i<bknum ; i++)if(strcmp(s,bk[i].isbn)==0){printf("Have found!\n");putout();found++;}else continue;if(!found) printf("Not found!");getch();}if(t==2){ printf(" please input author: ");scanf("%s",au);for(found=0,i=0;i<bknum;i++)if(strcmp(au,bk[i].author)==0){printf("Have found!\n");putout();found++;}else continue;if(!found) printf("Not found!");getch();}if(t==3){ printf(" please input bookname: ");scanf("%s",name);for(found=0,i=0;i<bknum;i++)if(strcmp(bk[i].bkname,name)==0){printf("Have found!\n");putout();found++;}else continue;if(!found) printf("Not found!");getch();}}Delete(){ char s[10],t;int found=0,i,j;printf("please input isbn of the book:");scanf("%s",s);for(i=0 ; i<bknum ; i++)if( strcmp(s,bk[i].isbn)==0 )break;if (i<bknum){ found=1;printf("Found!\n");putout();printf("Are you sure to delete?(Y/N):"); flushall(); scanf("%c",&t);if(t=='y'||t=='Y'){ for(;i<=bknum;i++)bk[i]=bk[i+1];}bknum--;}else printf("This book did't delete!");getch();}putout(){ int i;printf(" %-10s%-20s%-10s%-8.2f%-8d\n",bk[i].isbn,bk[i].bkname,bk[i].author,bk[i].price,bk[i].num); }int showsel(){int sel;clrscr();printf("--------------------------ManiMenus-------------------------\n\n"); printf(" 0. Exit\n");printf(" 1. BookList\n");printf(" 2. BookIn\n") ;printf(" 3. BookSale\n");printf(" 4. Save\n ");printf(" 5. Delete\n");printf(" 6. Search\n");printf("\n------------------------------------------------------------\n"); printf(" Input the selection:");scanf("%d",&sel);return sel;}main(){int sel; char yes;clrscr();rdata();sel=showsel();while(1){ switch(sel){case 0:printf("Are sure to Save?(Y/N) ");flushall();scanf("%c",&yes);if(yes=='Y'||yes=='y') { wdata(); exit(0); }exit(0);case 1:bklist();break;case 2:bookin();break;case 3:booksale();break;case 4:wdata();break;case 5:Delete();break;case 6:search();break;default :break;}sel=showsel();}}。

c语言书店管理系统课程设计

c语言书店管理系统课程设计

c语言书店管理系统课程设计一、课程目标知识目标:1. 掌握C语言基础语法,如变量定义、数据类型、运算符、控制结构等;2. 学会使用数组、字符串、结构体等C语言高级特性;3. 理解并掌握文件操作在C语言中的应用;4. 了解书店管理系统的需求分析、功能模块划分及实现。

技能目标:1. 能够运用C语言编写简单的书店管理系统程序;2. 学会分析问题,运用所学知识解决问题;3. 掌握编程规范,养成良好的编程习惯;4. 提高团队协作能力,通过小组合作完成课程设计。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情;2. 培养学生的创新意识,鼓励他们勇于尝试新方法解决问题;3. 增强学生的责任感,让他们明白编程在生活中的应用和价值;4. 培养学生面对困难时的坚持和毅力,学会克服挫折。

课程性质:本课程为实践性课程,旨在培养学生的编程能力、分析问题和解决问题的能力。

学生特点:学生已经掌握了C语言的基础知识,具备一定的编程能力,但实际应用经验较少。

教学要求:结合实际应用,引导学生运用所学知识完成书店管理系统的设计与实现,注重培养学生的实践能力和团队协作能力。

通过本课程的学习,使学生能够将所学知识运用到实际项目中,提高编程水平。

二、教学内容1. C语言基础回顾:变量定义、数据类型、运算符、控制结构(选择、循环);2. 数组、字符串、结构体等高级特性及应用;3. 文件操作:文件的打开、读取、写入和关闭;4. 书店管理系统需求分析:系统功能模块划分、数据结构设计;5. 书店管理系统功能实现:用户界面设计、功能模块编程实现;- 用户注册与登录模块;- 图书信息管理模块;- 销售管理模块;- 库存管理模块;- 查询统计模块;6. 编程规范与调试技巧:代码风格、调试方法、性能优化;7. 团队协作与项目管理:分工合作、进度控制、问题解决;8. 课程总结与成果展示:项目演示、经验分享、总结反馈。

教学内容安排与进度:1. C语言基础回顾(1课时);2. 数组、字符串、结构体等高级特性及应用(2课时);3. 文件操作(1课时);4. 书店管理系统需求分析(1课时);5. 书店管理系统功能实现(6课时);6. 编程规范与调试技巧(1课时);7. 团队协作与项目管理(2课时);8. 课程总结与成果展示(1课时)。

源程序(医院药房药品管理系统C++)

源程序(医院药房药品管理系统C++)

源程序:# include <fstream.h> //包含文件读写# include <iostream.h># include <string.h> //包含strcmp()字符是否相等#include <stdlib.h> //包含system("cls")清屏#define MAX 60 //下列字符数组的大小struct Date{//日期char year[MAX];//年char month[MAX];//月char day[MAX];//日};struct Goods{//药品信息char name[MAX];//药品名称char price[MAX];//药品价格char number[MAX];//药品数量char cost[MAX];//药品总价char kind[MAX];//药品的种类Date indate;//入库日期Date xiaoqi;//到期时间Goods * next;//下一个结点};class Cangkuguanli { //类定义与实现private:int length;//客户数量Goods * head;//列表的头结点Goods * current;//当前结点public:Cangkuguanli()//构造函数{head=new Goods;//创建头结点current=head;current->next=NULL;length=0;//长度为0}void Creatlist()//创建新的列表{char g='Y';int s=0;length=0;//初始长度为0;current=head;do {Goods * temp=new Goods ;//构建新结点信息length++; //每加一个结点链表长度增1temp->next=NULL;cout<<" 请输入药品名称: ";cin>>temp->name;cout<<" 请输入单价: ";cin>>temp->price;cout<<" 请输入药品数量: ";cin>>temp->number;cout<<" 请输入总费用: ";cin>>temp->cost;cout<<" 请输入日期(**** ** **) : ";cin>>temp->indate.year>>temp->indate.month>>temp->indate.day;cout<<" 请输入药品有效期(**** ** **):";cin>>temp->xiaoqi.year>>temp->xiaoqi.month>>temp->xiaoqi.day;cout<<" 请输入药品种类: ";cin>>temp->kind;if(head==NULL){head=temp;current=temp;} //head头指针,current尾指针else {current->next=temp,current=temp;}do{cout<<" next ? (Y N) "; //是否继续存入新产品cin>>g;if(g!='Y'&&g!='N'){cout<<"\n error !!!!\n ";}}while(g!='Y'&&g!='N');}while(g=='Y');//判断是否继续插入新结点}void Open ()//打开一个数据文件,并建立链表关联和文件中的记录对应{char fname[20];//文件名称cout<<" input the name of the file \n";cin>>fname; //输入要打开的文件名ifstream infile (fname);//创建输入文件流infile>>length;cout<<"\n length is: "<<length<<endl;//if(length==0)cout<<" 数据为空\n";for(int i=0;i<length;i++)//创建新的结点保存文件的数据{Goods * t=new Goods ;t->next=NULL;infile>>t->name>>t->price>>t->number>>t->cost>>t->kind>>t->indate.year>>t->indate.month>>t->indate.day;if(head==NULL){head=t;current=t;}//跟上面的链表创建相似else {current->next=t,current=t;}}infile.close();//关闭文件流}//openvoid Save ()//保存链表信息到文件{if(length==0){cout<<" 列表为空不需存盘\n";return ;}char fname[20];//文件名称cout<<" input the name of the file you want to put data in \n";cin>>fname;ofstream outfile(fname);//创建输出文件流Goods * temp=head->next;outfile<<length<<endl;//先写入文件的长度while (temp!=NULL)//把所有结点写入到文件fname{outfile<<temp->name<<" "<<temp->price<<" "<<temp->number<<" "<<temp->cost<<" "<<temp->kind<< " "<<temp->indate.year<<" "<<temp->indate.month<<" "<<temp->indate.day<<" "<<temp->xiaoqi.year<<" "<<temp->xiaoqi.month<<" "<<temp->xiaoqi.day<<endl; //写入每个结点信息temp=temp->next;}outfile.close();//关闭文件流}void printinfor( Goods * current)//输出一个结点的信息到字符界面{if(current==NULL){cout<<"\n元素为空!!! \n ";return;}cout.fill(' ');cout<<current->name;cout.width(8);cout.width(8);cout<<current->price;cout.width(8);cout<<current->number;cout.width(8);cout<<current->cost; //就是给current->cost10个字符输出,不够往前面加‘ ’空格cout.width(10);cout<<current->kind;cout.width(10);cout<< current->indate.year<<"."<<current->indate.month<<"."<<current->indate.day; cout.width(10);cout<<current->xiaoqi.year<<"."<<current->xiaoqi.month<<"."<<current->xiaoqi.day; cout<<endl;}// printinforvoid Show()//输出所有结点信息到字符界面{current=head->next;if(current==NULL){cout<<"列表为空\n";return ;}cout.fill(' ');cout.width(2);cout<<"名称";cout.width(8);cout<<"价格";cout.width(8);cout<<"数量";cout.width(8);cout<<"总费用";cout.width(10);cout<<"药品的种类";cout.width(15);cout<<"购进时间";cout.width(15);cout<<"有效期";cout<<endl; //输出属性列while(current!=NULL){ //循环输出所有结点printinfor( current );current=current->next;}}//showGoods *Searchindate(Date t){ //按购入日期搜索返回结点指针temp //结构体t含有t.year t.month t.day三个信息块Date d;bool f=false;Goods * temp;current=head->next;while(current!=NULL){d=current->indate;if(!strcmp(d.year,t.year)&&!strcmp(d.month,t.month)&&!strcmp(d.day,t.day)) {temp=current;f=true;break;}current=current->next;}if(f==false){cout<<"\n 没有满足要求的信息\n";return NULL;}return temp;}void Queryindate()//按入库日期查询{Date t;cout<<" input the date (**** ** **): ";cin>>t.year>>t.month>>t.day;printinfor(Searchindate (t));}//Queryindate()Goods * Searchname (char r[])//搜索药品名返回结点指针temp{ Goods * temp;current=head->next;bool f=false;while(current!=NULL){if(strcmp(current->name,r)==0){temp=current;f=true;break;}current=current->next;}if(f==false){cout<<"\n 商品名为: "<<r<<" 的商品不存在\n ";return NULL;}return temp;}void Queryname() //按药品名查询{char r[MAX];cout<<" input the name: ";cin>>r;printinfor(Searchname (r));}void Query ()//查询函数一个次级菜单{char m;do{cout<<" ********************************************************** "<<endl; cout<<"*******<a> 按入库的时间查询***********"<<endl; cout<<"*******<b> 按药品的名称查询***********"<<endl; cout<<"*******<c> 退出***********"<<endl; cout<<" ********************************************************** "<<endl; cin>>m;switch (m){ //分别调用按不同查询方式下的函数case 'a': Queryindate();break;case 'b': Queryname();break;case 'c': return ;default: cout<<"error!! ";}}while(m!='h');}//Queryvoid Removebynumber () //按总量删除某个结点{char t[MAX]; //需要删除的总量值bool f=false; //表示是否找到满足要求的结点Goods * temp; //指向找到的结点,并删除cout<<" 请输入药品的数量: ";cin>>t;current=head;while(current->next!=NULL){if(strcmp(current->next->number,t)==0) //判断是否满足条件{temp=current->next;current->next=temp->next;length--; //没删除一个结点,链表长度减1f=true;delete temp;//释放结点cout<<"已删除此药品\n";//break; 此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继续删除}else{current=current->next;}}if(f==false)//false没有改动,表示没有满足条件的结点{cout<<"此药品不存在,无须删除\n";}}//Removebynumbervoid Removebyname () //按名称删除某个结点{char t[20];bool f=false;;Goods * temp;cout<<" 请输入药品的名称:";cin>>t;current=head;while(current->next!=NULL){if(strcmp(current->next->name,t)==0){temp=current->next;current->next=temp->next;length--;f=true;delete temp;cout<<"已删除此药品\n";//break;此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继续删除}else{current=current->next;}}if(f==false){cout<<"此药品不存在,无须删除\n";}}//Removebynamevoid Removebyindate () //按购进时间删除某个结点{Date t,d;bool f=false;Goods * temp;cout<<" 请输入查找药品的日期: ";cin>>t.year>>t.month>>t.day;current=head;while(current->next!=NULL){d=current->next->indate;if(d.year==t.year&&d.month==t.month&&d.day==t.day){temp=current->next;current->next=temp->next;length--;f=true;delete temp;cout<<"已删除此药品\n";}else{current=current->next;}}if(f==false){cout<<"此元素不存在,无须删除\n";}}//Removebyindatevoid Remove ()//删除函数{char g='Y';do{cout<<" ********************************************************** "<<endl; cout<<"*******<a> 按药品总数量删除***********"<<endl; cout<<"*******<b> 按药品名称删除***********"<<endl; cout<<"*******<c> 按入库时间删除***********"<<endl; cout<<"*******<d> 退出***********"<<endl; cout<<" ********************************************************** "<<endl; cin>>g;switch (g){case 'a': Removebynumber ();break;case 'b': Removebyname();break;case 'c': Removebyindate();break;case 'd': return ;default: cout<<"error!! ";}} while(g!='d');}void Add(){Goods * temp;current=head;while(current->next!=NULL)//找到尾指针{current=current->next;}temp=new Goods;temp->next=NULL;length++;//链表长加1cout<<" 请输入药品名称: ";cin>>temp->name;cout<<" 请输入单价: ";cin>>temp->price;cout<<" 请输入药品数量: ";cin>>temp->number;cout<<" 请输入总费用: ";cin>>temp->cost;cout<<" 请输入入购日期(**** ** **) ";cin>>temp->indate.year>>temp->indate.month>>temp->indate.day;cout<<"请输入有效期(**** ** **)";cin>>temp->xiaoqi.year>>temp->xiaoqi.month>>temp->xiaoqi.day;cout<<" 请输入药品的种类:"<<endl;cin>>temp->kind;current->next=temp;//这时current指向尾指针,将要插入的结点接到current后面current=temp;}//addvoid Modify (){//通过药品名找到要修改的数据项char n[MAX];cout<<"请输入您要修改的药品名:"<<endl;cin>>n;Goods * temp=Searchname (n);//按商品名查找cout<<" 请输入单价:";cin>>temp->price;cout<<" 请输入药品的总费用:\n";cin>>temp->cost;cout<<" 请输入日期(**** ** **):\n";cin>>temp->indate.year>>temp->indate.month>>temp->indate.day;cout<<" 请输入药品的数量:\n";cin>>temp->number;cout<<" 请输入药品的种类:\n";cin>>temp->kind;}void operation (){char g='Y';do{cout<<"\t";cout.fill('*');cout.width(21);cout<<'*';cout<<"医院药房管理系统";cout.fill('*');cout.width(19);cout<<'*';cout<<"\n";cout<<"\t********************************************************\n";cout<<"\t MWDICINE STORE MANAGEMENT SYSTERM\n";cout<<"\t********************************************************\n";cout<<"\t && && <C> 药品入库&&&&&&&&&&&&&&& \n"; cout<<"\t && && <R> 药品出库&&&&&&&&&&&&&&& \n";cout<<"\t && && <M> 药品调价&&& \n";cout<<"\t && && <A>新药品入库&&& \n";cout<<"\t && && <O> 打开文件&&&&&&&&&&&&&&& \n";cout<<"\t && && <S> 保存文件&&&&&&&&&&&&&&& \n";cout<<"\t &&& <D> 显示库存&&& \n";cout<<"\t &&& <Q> 药品查询&&& \n";cout<<"\t &&& <L> 上下限制&&& \n";cout<<"\t &&& <E> 退出&&& \n";cout<<"\t********************************************************\n";cout<<"\t********************************************************\n";cout<<"\t";cout.fill('*');cout.width(18);cout<<'*';cout<<"医院药房管理系统";cout.fill('*');cout.width(22);cout<<'*';cout<<endl;cin>>g;switch (g){case 'C': Creatlist();break;case 'A': Add();break;case 'M': Modify ();break;case 'D': Show ();break;case 'Q': Query ();break;case 'R': Remove();break;case 'O': Open ();break;case 'S': Save();break;case 'N': system ("cls");break;case 'E': return ;default: cout<<" error!! input the right character !!!!! \n";}//switch}while(g!='E');}//operation};//Cangkuguanliint main (){Cangkuguanli A;A.operation(); return 0;}。

源程序医院药房药品管理系统C

源程序医院药房药品管理系统C

源程序: include <> <<current-><<"."<<current->;10;cout<<current-><<"."<<current-><<"."<<current->;cout<<endl;}// printinforvoid Show//输出所有结点信息到字符界面{current=head->next;ifcurrent==NULL{cout<<"列表为空 \n";return ;}' ';2;cout<<"名称";8;cout<<"价格";8;cout<<"数量";8;cout<<"总费用";10;cout<<"药品的种类";15;cout<<"购进时间";15;cout<<"有效期";cout<<endl; //输出属性列whilecurrent=NULL{ //循环输出所有结点printinfor current ;current=current->next;}}//showGoods SearchindateDate t{ //按购入日期搜索返回结点指针temp //结构体t含有三个信息块Date d;bool f=false;Goods temp;current=head->next;whilecurrent=NULL{d=current->indate;ifstrcmp,&&strcmp,&&strcmp,{temp=current;f=true;break;}current=current->next;}iff==false{cout<<"\n 没有满足要求的信息 \n"; return NULL;}return temp;}void Queryindate//按入库日期查询{Date t;cout<<" input the date : "; cin>>>>>>;printinforSearchindate t;}//QueryindateGoods Searchname char r//搜索药品名返回结点指针temp { Goods temp;current=head->next;bool f=false;whilecurrent=NULL{ifstrcmpcurrent->name,r==0{temp=current;f=true;break;}current=current->next;}iff==false{cout<<"\n 商品名为 : "<<r<<" 的商品不存在 \n ";return NULL;}return temp;}void Queryname //按药品名查询{char rMAX;cout<<" input the name: ";cin>>r;printinforSearchname r;}void Query //查询函数一个次级菜单{char m;do{cout<<" "<<endl;cout<<"<a> 按入库的时间查询 "<<endl; cout<<"<b> 按药品的名称查询 "<<endl; cout<<"<c> 退出 "<<endl; cout<<" "<<endl;cin>>m;switch m{ //分别调用按不同查询方式下的函数case 'a': Queryindate;break;case 'b': Queryname;break;case 'c': return ;default: cout<<"error ";}}whilem='h';}//Queryvoid Removebynumber //按总量删除某个结点{char tMAX; //需要删除的总量值bool f=false; //表示是否找到满足要求的结点Goods temp; //指向找到的结点,并删除cout<<" 请输入药品的数量: ";cin>>t;current=head;whilecurrent->next=NULL{ifstrcmpcurrent->next->number,t==0 //判断是否满足条件 {temp=current->next;current->next=temp->next;length--; //没删除一个结点,链表长度减1f=true;delete temp;//释放结点cout<<"已删除此药品\n";//break; 此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继续删除}else{current=current->next;}}iff==false//false没有改动,表示没有满足条件的结点 {cout<<"此药品不存在 ,无须删除 \n";}}//Removebynumbervoid Removebyname //按名称删除某个结点{char t20;bool f=false;;Goods temp;cout<<" 请输入药品的名称:";cin>>t;current=head;whilecurrent->next=NULL{ifstrcmpcurrent->next->name,t==0{temp=current->next;current->next=temp->next;length--;f=true;delete temp;cout<<"已删除此药品\n";//break;此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继续删除}else{current=current->next;}}iff==false{cout<<"此药品不存在 ,无须删除 \n";}}//Removebynamevoid Removebyindate //按购进时间删除某个结点{Date t,d;bool f=false;Goods temp;cout<<" 请输入查找药品的日期: "; cin>>>>>>;current=head;whilecurrent->next=NULL{d=current->next->indate;if==&&==&&=={temp=current->next;current->next=temp->next;length--;f=true;delete temp;cout<<"已删除此药品\n";}else{current=current->next;}}iff==false{cout<<"此元素不存在 ,无须删除 \n";}}//Removebyindatevoid Remove //删除函数{char g='Y';do{cout<<" "<<endl;cout<<"<a> 按药品总数量删除 "<<endl;cout<<"<b> 按药品名称删除 "<<endl; cout<<"<c> 按入库时间删除 "<<endl;cout<<"<d> 退出 "<<endl;cout<<" "<<endl;cin>>g;switch g{case 'a': Removebynumber ;break;case 'b': Removebyname;break;case 'c': Removebyindate;break;case 'd': return ;default: cout<<"error ";}} whileg='d';}void Add{Goods temp;current=head;whilecurrent->next=NULL//找到尾指针{current=current->next;}temp=new Goods;temp->next=NULL;length++;//链表长加1cout<<" 请输入药品名称: ";cin>>temp->name; cout<<" 请输入单价 : ";cin>>temp->price;cout<<" 请输入药品数量 : ";cin>>temp->number;cout<<" 请输入总费用 : ";cin>>temp->cost;cout<<" 请输入入购日期 ";cin>>temp->>>temp->>>temp->;cout<<"请输入有效期 ";cin>>temp->>>temp->>>temp->;cout<<" 请输入药品的种类:"<<endl;cin>>temp->kind;current->next=temp;//这时current指向尾指针,将要插入的结点接到current后面current=temp;}//addvoid Modify {//通过药品名找到要修改的数据项char nMAX;cout<<"请输入您要修改的药品名:"<<endl;cin>>n;Goods temp=Searchname n;//按商品名查找cout<<" 请输入单价:";cin>>temp->price;cout<<" 请输入药品的总费用:\n";cin>>temp->cost;cout<<" 请输入日期 :\n";cin>>temp->>>temp->>>temp->;cout<<" 请输入药品的数量:\n";cin>>temp->number;cout<<" 请输入药品的种类:\n";cin>>temp->kind;}void operation{char g='Y';do{cout<<"\t";'';21;cout<<'';cout<<"医院药房管理系统";'';19;cout<<'';cout<<"\n";cout<<"\t\n";cout<<"\t MWDICINE STORE MANAGEMENT SYSTERM\n";cout<<"\t\n";cout<<"\t && && <C> 药品入库 &&&&&&&&&&&&&&& \n";cout<<"\t && && <R> 药品出库 &&&&&&&&&&&&&&& \n";cout<<"\t && && <M> 药品调价&&& \n";cout<<"\t && && <A>新药品入库&&& \n";cout<<"\t && && <O> 打开文件&&&&&&&&&&&&&&& \n";cout<<"\t && && <S> 保存文件&&&&&&&&&&&&&&& \n";cout<<"\t &&& <D> 显示库存&&& \n";cout<<"\t &&& <Q> 药品查询&&& \n";cout<<"\t &&& <L> 上下限制&&& \n";cout<<"\t &&& <E> 退出&&& \n";cout<<"\t\n";cout<<"\t\n";cout<<"\t";'';18;cout<<'';cout<<"医院药房管理系统";'';22;cout<<'';cout<<endl;cin>>g;switch g{case 'C': Creatlist;break;case 'A': Add;break;case 'M': Modify ;break;case 'D': Show ;break;case 'Q': Query ;break;case 'R': Remove;break;case 'O': Open ;break;case 'S': Save;break;case 'N': system "cls";break;case 'E': return ;default: cout<<" error input the right character \n"; }//switch}whileg='E';}//operation};//Cangkuguanli int main{Cangkuguanli A; ; return 0;}。

C语言药品管理系统

C语言药品管理系统

XX大学信息科学与工程学院课程设计报告书课题:药品信息管理系统姓名:专业:电子信息工程年级: 2 0 1 3 级指导老师:时间:目录引言------------------------------------------------------------1一、系统概述------------------------------------------------2 二、需求分析------------------------------------------------2 1、系统需求-------------------------------------------22、开发环境-------------------------------------------3三、详细设计-----------------------------------------------4 四、所遇到的问题和分析解决--------------------------10五、系统特色及关键技术--------------------------------11六、结论及心得体会--------------------------------------11七、附录(源代码)--------------------------------------12参考文献-----------------------------------------------------17引言通过本课程设计,使自己更加系统地理解和掌握数据结构的基本概念;能自如地根据实际要求,设计相应的数据结构,并运用C或C++语言实现所设计的算法,编写较大型的程序,分析和解决实际应用问题,进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

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

c课程设计药店管理系统

c课程设计药店管理系统

c 课程设计药店管理系统一、课程目标知识目标:1. 学生能理解药店管理系统的基本概念和功能需求,掌握药品信息管理、库存管理、销售管理等核心模块的基本原理。

2. 学生能够运用数据库知识,设计并实现药店管理系统的数据模型,包括数据表的设计和关系维护。

3. 学生能够结合软件工程方法,编写药店管理系统相关的功能性代码,实现对药品信息、库存和销售的有效管理。

技能目标:1. 学生掌握使用至少一种数据库管理系统(如MySQL、SQLite等)进行药店管理系统数据设计和操作的能力。

2. 学生能够运用面向对象编程思想,使用适当的编程语言(如Java、C#等)实现药店管理系统的功能模块。

3. 学生通过团队协作,学会项目管理的基本方法,提高沟通与协作能力。

情感态度价值观目标:1. 学生通过参与药店管理系统的设计与实现,培养解决问题的兴趣和自信心,增强对信息技术的学习热情。

2. 学生能够认识到信息技术在医药卫生行业中的重要性,提升社会责任感和职业道德意识。

3. 学生在项目实施过程中,学会尊重他人意见,培养团队合作精神,提高集体荣誉感。

课程性质分析:本课程为高年级信息技术或计算机科学与技术相关专业的实践性课程,强调理论知识与实际应用的结合,注重培养学生的动手能力和实际项目经验。

学生特点分析:高年级学生已具备一定的编程基础和数据库知识,具有较强的自学能力和创新意识,同时,他们即将面临毕业和就业,对实际项目的参与有较高的积极性。

教学要求:1. 结合实际案例,引导学生主动探索和解决问题,提高学习的主动性和创造性。

2. 通过团队协作,培养学生的沟通能力和团队精神,提升项目实施的成功率。

3. 注重过程评价,及时反馈学生的学习成果,帮助学生明确自己的不足和努力方向。

二、教学内容本课程教学内容主要包括以下几部分:1. 药店管理系统概述:介绍药店管理系统的概念、发展历程、功能模块和实际应用场景,使学生对该系统有一个全面的认识。

2. 数据库设计:讲解数据库的基本概念、关系型数据库的设计方法,以及如何运用数据库管理系统(如MySQL、SQLite等)进行药店管理系统数据模型设计。

c语言课程设计报告 药房管理系统

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教师签字总分一、题目药房管理系统(主要是输入药品信息部分、药品药品销量排序和药品库存排序)二、功能描述该系统可以实现的功能主要有:1、能正确地录入药品信息并保存下来。

2、能够有效、快速地查看全部药品的信息。

3、可以查看某一药品的信息(按药品的默认序号查看)4、可以查看某一药品的信息(按药品的编号进行查看)5、能够按照管理人员的意愿修改任意药品的信息(按药品的默认序号修改)。

6、能修改药品信息(按药品的编号进行修改)。

7、当管理员查看药品时,系统能够准确地判断药品的性质。

8、此系统还能对药品的销售量进行排序,以指导后期的药品进出货。

9、能对药品库存进行排序等。

该系统主要是由三个同学一起完成的,而我所做的主要是输入药品信息、药品销量排序和药品库存排序等;在输入药品信息的过程中,系统能够“自己记住“所录入的药品信息,且能够按照已规定的步骤继续执行下去;在药品销量排序部分和药品库存排序部分,运用结构体的方法,采用指针、文件、for循环语句等,使得管理系统能够快速、准确无误地进行排序。

药品管理c语言课程设计

药品管理c语言课程设计

药品管理c语言课程设计一、课程目标知识目标:1. 学生能理解药品管理系统的基本原理,掌握C语言实现药品信息管理的基本方法。

2. 学生能够运用结构体、文件操作等C语言知识,实现对药品信息的增删改查功能。

3. 学生了解并掌握C语言中字符串处理、内存分配等与药品管理系统相关的关键技术。

技能目标:1. 学生能够运用所学知识,独立设计并编写一个简单的药品管理系统。

2. 学生能够通过调试和修改代码,解决药品管理系统中出现的问题。

3. 学生能够运用合作和沟通技巧,与团队成员共同完成课程项目。

情感态度价值观目标:1. 学生养成认真负责、严谨细致的学习态度,对待代码编写和程序调试具有耐心和毅力。

2. 学生通过课程学习,认识到编程在解决实际问题中的应用价值,提高对计算机科学的兴趣。

3. 学生在团队协作中,学会互相尊重、理解和帮助,培养良好的团队合作精神和沟通能力。

课程性质:本课程为实践性较强的学科,结合药品管理实际需求,引导学生运用C语言知识解决实际问题。

学生特点:学生已具备一定的C语言基础,具有一定的编程能力和问题解决能力,但实际应用经验不足。

教学要求:注重理论与实践相结合,以项目为导向,引导学生自主探究和团队协作,提高学生的编程能力和实际应用能力。

在教学过程中,关注学生的个体差异,给予个性化指导,确保课程目标的实现。

通过课程学习,使学生能够将所学知识应用于实际项目,达到学以致用的目的。

二、教学内容1. 知识准备:复习C语言基础知识,包括数据类型、运算符、控制结构、函数、数组、指针和结构体等。

教材章节:第一章至第六章2. 药品管理系统需求分析:介绍药品管理的基本功能,如药品信息的增删改查等。

教材章节:第七章 项目设计与分析3. C语言实现药品信息管理:- 结构体定义:定义药品信息结构体,包括药品名称、编号、价格、生产日期等。

- 文件操作:实现药品信息的存储和读取,包括文件的打开、关闭、读写等。

- 功能实现:编写增删改查等功能的函数。

《C语言程序设计》药房管理系统

《C语言程序设计》药房管理系统
printf("\t\t\t5.按价格排序\n");
printf("\t\t\t6.删除药品信息\n");
printf("\t\t\t7.退出\n");
printf("\t\t------------------------------------------\n\n");
do{
printf("Enter you choice(1~7):");
scanf("%s",s);
a=atoi(s);
}
while (a<1 || a>7);
return a;
}
int addmedicine()
{
printf("\t\t\t--------------请输入您要保存的信息------------\n");
printf("\t\t\t输入药品名称:\n");
addmedicine();
return(0);
}
void modifybyname() //按药品名称修改
{
char c;
int i,mark=0;
char name[20];
printf("\n\t\t请输入要修改的药品名称:");
scanf("%s",name);
if(num==0)
{
printf("\n\t\t文件中无相关药品");
三、概要设计(根据功能描述建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能,正式报告需将括号内文字删除)

药店管理系统c语言课程设计

药店管理系统c语言课程设计

药店管理系统c语言课程设计一、课程目标知识目标:1. 理解药店管理系统的基本功能需求,掌握C语言实现基础数据结构(如线性表、树等)和算法(如排序、查找等)的能力。

2. 学会使用C语言进行模块化编程,实现药店管理系统的各项功能模块,如药品信息管理、库存管理、销售管理等。

3. 掌握C语言文件操作,实现对药店管理系统数据的持久化存储。

技能目标:1. 培养学生运用C语言解决实际问题的能力,提高编程实践技能。

2. 培养学生分析需求、设计系统、编写程序、调试程序的能力。

3. 提高学生团队协作和沟通能力,能够就药店管理系统项目进行有效讨论和分工。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养勇于挑战、积极进取的学习态度。

2. 培养学生认真负责、严谨细致的工作作风,树立良好的职业道德观念。

3. 增强学生的集体荣誉感,培养合作精神和团队意识。

课程性质:本课程为实践性较强的课程,旨在让学生在实际项目中运用所学知识,提高编程能力和解决实际问题的能力。

学生特点:学生已具备一定的C语言基础,具有较强的逻辑思维能力,但缺乏实际项目经验。

教学要求:结合学生特点和课程性质,注重实践操作,引导学生主动探究,培养学生解决实际问题的能力。

将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 系统需求分析:介绍药店管理系统的功能需求,让学生理解项目背景和实际应用场景。

- 药品信息管理- 库存管理- 销售管理- 用户权限管理2. 数据结构设计:结合C语言,讲解药店管理系统中所需的数据结构及其应用。

- 线性表- 树结构- 哈希表3. 算法设计与实现:根据药店管理系统需求,学习相关算法并进行编程实践。

- 排序算法- 查找算法- 药品信息增删改查操作4. 模块化编程:引导学生运用模块化思想,实现药店管理系统的各个功能模块。

- 模块划分- 函数封装- 模块间通信5. 文件操作与数据持久化:学习C语言文件操作,实现对药店管理系统数据的存储和读取。

c++语言书店管理系统课程设计

c++语言书店管理系统课程设计

C++语言书店管理系统课程设计随着信息技术的不断发展,计算机课程设计已经成为高校教学的重要组成部分。

其中,C++语言作为一种高级程序设计语言,在计算机专业课程中占据着重要地位。

为了提高学生的实际操作能力,许多高校都将C++语言的课程设计作为必修课程。

本文以C++语言书店管理系统课程设计为例,将系统介绍课程设计的步骤和实现过程。

一、课程设计背景及意义1.1 课程设计背景随着社会经济的不断发展,人们对书店的需求越来越大。

尤其是随着移动互联网的发展,网络书店逐渐成为人们购书的首选。

开发一套高效的书店管理系统对于书店的经营和管理具有重要意义。

1.2 课程设计意义通过C++语言书店管理系统的课程设计,能够帮助学生了解书店管理的基本需求,提高学生的编程能力和实际操作能力。

能够锻炼学生的分析和解决问题的能力,培养学生的团队合作精神和创新意识,为将来的就业和创业打下坚实的基础。

二、课程设计内容2.1 课程设计要求本课程设计要求学生能够独立完成一套完整的书店管理系统,包括图书信息管理、销售统计、库存管理等功能。

要求学生能够充分利用C++语言的面向对象特性,结合文件操作和数据库技术,设计具有良好的用户界面和操作体验的系统。

2.2 课程设计步骤学生需要对书店管理系统的功能进行分析和设计,包括系统所需的基本功能和模块划分。

学生需要编写系统的框架和基本功能代码,包括图书信息的录入、修改和删除,销售记录的统计和查询等。

学生需要对系统进行测试和优化,确保系统的稳定性和性能。

三、课程设计实现过程3.1 需求分析在书店管理系统的设计过程中,学生需要对系统的需求进行充分的分析,包括用户的基本需求、系统的基本功能和模块划分。

学生需要考虑系统的扩展性和灵活性,为将来的系统升级和功能增加留下余地。

3.2 系统设计在系统设计阶段,学生需要根据需求分析的结果,设计系统的框架和基本功能模块。

学生需要充分考虑到系统的整体结构和模块之间的关联,确保系统的稳定性和可靠性。

基于C的自动化药店管理系统设计

基于C的自动化药店管理系统设计

基于C的自动化药店管理系统设计一、引言随着医疗技术的不断发展和人们健康意识的提高,药店在社会中扮演着越来越重要的角色。

为了提高药店的管理效率和服务质量,自动化药店管理系统应运而生。

本文将基于C语言,设计一个自动化药店管理系统,以实现药品库存管理、销售记录跟踪、客户信息管理等功能。

二、系统设计1. 功能模块设计药品管理模块:包括药品信息录入、库存管理、药品查询等功能。

销售管理模块:记录销售信息、生成销售报表、统计销售数据等。

客户管理模块:客户信息录入、客户购买记录查询、客户分类等功能。

用户权限管理模块:管理员权限设置、用户登录验证等功能。

2. 数据结构设计药品信息结构体:包括药品名称、价格、库存量等字段。

销售记录结构体:包括销售日期、销售数量、销售金额等字段。

客户信息结构体:包括客户姓名、联系方式、购买记录等字段。

3. 界面设计使用C语言的控制台界面,通过菜单选择实现各项功能。

设计清晰简洁的界面,方便用户操作和查看信息。

三、系统实现1. 药品管理模块实现实现药品信息的录入和修改功能,保证库存数据的准确性。

提供药品查询功能,方便用户快速查找所需药品信息。

2. 销售管理模块实现记录每笔销售信息,包括销售日期、销售数量和金额。

自动生成销售报表,统计每日/每月销售情况,为经营决策提供数据支持。

3. 客户管理模块实现实现客户信息的录入和修改功能,建立客户档案。

查询客户购买记录,分析客户消费习惯,提高客户满意度。

4. 用户权限管理模块实现设定管理员权限,保护系统数据安全性。

用户登录验证,确保只有授权人员可以操作系统。

四、系统优化与扩展1. 性能优化对系统进行性能优化,提高系统响应速度和稳定性。

针对大规模数据处理场景进行优化,确保系统运行效率。

2. 功能扩展根据用户需求不断扩展系统功能,满足不同药店的管理需求。

引入智能算法,优化库存管理和销售预测功能。

五、总结与展望自动化药店管理系统基于C语言的设计实现,能够有效提升药店的管理效率和服务质量。

(完整版)《C语言程序设计》药房管理系统

(完整版)《C语言程序设计》药房管理系统

课程设计报告(201 —201 学年第学期)课程:高级语言程序设计题目:药房管理系统姓名:专业:班级:学号:指导教师:完成时间:一、课程设计的内容(课程设计题目,正式报告需将括号内文字删除)药房管理系统功能:设计药房管理系统,输入药品基本信息(药品编号、名称、单价、库存数量、品牌),并实现以下功能:1、修改、删除指定药品的信息2、按单价或库存数量排序并显示药品信息3、统计指定品牌药品数量分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:实现药品的添加、修改、删除等功能;3、进一步要求:实现排序及统计功能。

要求:1、用C语言实现程序设计;2、系统的各个功能模块要求用函数实现;3、界面友好(良好的人机交互),程序加必要的注释。

二、功能描述(对系统要实现的功能进行描述,正式报告需将括号内文字删除)1、能正确地录入药品信息并保存下来。

2、能够有效、快速地查看全部药品的信息。

3、可以查看某一药品的信息(按药品的默认序号查看)4、可以查看某一药品的信息(按药品的编号进行查看)5、能够按照管理人员的意愿修改任意药品的信息6、能修改药品信息7、此系统还能对药品的单价进行排序三、概要设计(根据功能描述建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能,正式报告需将括号内文字删除)四、详细设计(详细说明各功能模块的实现过程,包括用流程图对算法进行描述、所用到的数据结构、算法实现的主要源代码等,正式报告需将括号内文字删除)#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>struct medicine{char name[20]; //药品名称char number[50]; //药品编号char price[50]; //单价char inventory[50]; //库存数量char brand[20]; //品牌} medicine[100]; //假设最大数为100.//定义全局变量numint num;int menu_select(){char s[80];int a;/*定义整形变量*/system("cls");printf("\t\t-------------您好!您已进入药房管理系统-----------\n\n");printf("\t\t\t1. 输入药品信息\n");printf("\t\t\t2. 查看药品信息\n");printf("\t\t\t3. 修改药品信息\n");printf("\t\t\t4. 按编号查找药品\n");printf("\t\t\t5. 按价格排序\n");printf("\t\t\t6. 删除药品信息\n");printf("\t\t\t7. 退出\n");printf("\t\t------------------------------------------\n\n");do{printf("Enter you choice(1~7):");scanf("%s",s);a=atoi(s);}while (a<1 || a>7);return a;}int addmedicine(){printf("\t\t\t--------------请输入您要保存的信息------------\n");printf("\t\t\t输入药品名称:\n");scanf("%s",medicine[num].name);printf("\t\t\t输入药品编号:\n");scanf("%s",medicine[num].number);printf("\t\t\t单价:\n");scanf("%s",medicine[num].price);printf("\t\t\t品牌:\n");scanf("%s",medicine[num].brand);printf("\t\t\t库存数量:\n");scanf("%s",medicine[num].inventory);num++;printf("\t\t\t是否继续添加?(Y/N):\n");if(getch()=='y' || getch()=='Y')addmedicine();return(0);}void modifybyname() //按药品名称修改{char c;int i,mark=0;char name[20];printf("\n\t\t请输入要修改的药品名称:");scanf("%s",name);if(num==0){printf("\n\t\t文件中无相关药品");printf("\n\t\t按任意键返回主菜单");getch(); mark++;return;}for(i=0;i<num;i++){if(strcmp(medicine[i].name,name)==0){printf("\n\t\t以下是您要修改的药品信息");printf("\n\t\t药品名称: %s",medicine[i].name);printf("\n\t\t药品编号: %s",medicine[i].number);printf("\n\t\t单价: %s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\n\t\t库存数量: %s",medicine[i].inventory);printf("\n\t\t是否修改(y/n)");if(getch()=='y'){printf("\n\t----------------------请选择修改信息-------------------------");printf("\n\t 1-修改药品名称");printf("\n\t 2-修改药品编号");printf("\n\t 3-修改单价");printf("\n\t 4-修改品牌");printf("\n\t 5-修改库存数量");printf("\n\t--------------------------------------------------------------------------");printf("\n\t请选择您所要的服务:");scanf("%s",&c);switch(c){case '1': printf("\n\t请输入新药品名称:");scanf("%s",medicine[i].name);break;case'2':printf("\n\t请输入新药品编号:%s");scanf("%s",medicine[i].number);break;case'3':printf("\n\t请输入新单价: ");scanf("%s",medicine[i].price);break;case'4':printf("\n\t请输入新品牌: ");scanf("%s",medicine[i].brand);break;case'5':printf("\n\t请输入新库存数量: ");scanf("%s",medicine[i].inventory);break;}}}}if(mark==0){printf("\n\t\t药品信息修改完毕");printf("\n\t是否继续修改?(Y/N):");if(getch()=='y')modifybyname();return;}}void list(){int i;system("cls");if(num!=0){printf("\t\t\t----------已为您显示所有药品信息----------\n");for (i=0;i<num;i++){printf("\t\t\t药品名称:%s\n",medicine[i].name);printf("\t\t\t药品编号:%s\n",medicine[i].number);printf("\t\t\t单价:%s\n",medicine[i].price);printf("\n\t\t品牌: %s\n",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory);if(i+1<num){system("pause");}}printf("\t\t\t------------------------------\n");}elseprintf("\t\t\t系统中无任何记录\n");printf("\t\t\t按任意键返回主菜单:\n");getch();return;}int searchbyname(){int mark=0;int i;printf("\t\t\t---------- 按药品名称查找----------\n");char name[20];printf("\t\t\t请输入药品名称:\n");scanf("%s",name);for(i=0;i<num;i++){if (strcmp(medicine[i].name,name)==0){printf("\t\t\t------- 以下是您查找的药品信息-------\n");printf("\t\t\t药品名称:%s",medicine[i].name);printf("\t\t\t药品编号:%s",medicine[i].number);printf("\t\t\t单价:%s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory);printf("\t\t\t------------------------------------------------------\n");mark++;if((i+1)<num){printf("\t\t\t是否继续查找相同名称的药品信息:(y/n)\n");if(getch()=='y' || getch()=='Y'){continue;}elsereturn(0);}else{printf("\t\t\t请按任意键返回主菜单");getch();return(0);}}}if(mark == 0){printf("\t\t\t没有您要查找的药品记录\n");printf("\t\t\t请按任意键返回主菜单\n");getch();return(0);}return 0;}int searchbynumber(){int mark=0;int i;printf("\t\t\t---------------按药品编号查找--------------\n");char number[10];printf("\t\t\t请输入药品编号:\n");scanf("%s",number);for(i=0;i<num;i++){if (strcmp(medicine[i].number,number)==0){printf("\t\t\t---------------以下是您查找的药品信息---------------\n");printf("\t\t\t药品名称:%s",medicine[i].name);printf("\t\t\t药品编号:%s",medicine[i].number);printf("\t\t\t单价:%s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory);printf("\t\t\t-------------------------------------------------\n");printf("\t\t\t请按任意键返回主菜单\n");mark++;getch();return(0);}}if (mark==0){printf("\t\t\t没有改药品的信息\n");printf("\t\t\t请按任意键返回主菜单\n");getch();return(0);}return(0);}void deletebynumber(){int i,j;int deletemark=0;char number[20];printf("\t\t\t请输入要删除药品编号:\n");scanf("%s",number);if(num==0){printf("\t\t\t对不起,系统中无任何记录\n");printf("\t\t\t请按任意键返回主菜单\n");getch();return;}for (i=0;i<num;i++){if (strcmp(medicine[i].number,number)==0){printf("\t\t\t以下是您要删除的用户记录:\n");printf("\t\t\t药品名称:%s",medicine[i].name);printf("\t\t\t药品编号:%s",medicine[i].number);printf("\t\t\t单价:%s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory);printf("\t\t\t是否删除?(y/n)");if (getch()=='y' || getch()=='Y'){for (j=i;j<num-1;j++)medicine[j]=medicine[j+1];num--;deletemark++;printf("\t\t\t删除成功");printf("\t\t\t是否继续删除?(y/n)");if (getch()=='y' || getch()=='Y')deletebynumber();return;}elsereturn;}continue;}if (deletemark==0){printf("\t\t\t没有该药品的记录");printf("\t\t\t是否继续删除?(y/n)");if(getch()=='y' || getch()=='Y')deletebynumber();return;}return;}void deletebyname(){int a=0;int findmark=0;int j;int deletemark=0;int i;char name[20];printf("\t\t\t请输入要删除药品名称:\n");scanf("%s",name);for (i=a;i<num;i++){if(strcmp(medicine[i].name,name)==0){printf("\t\t\t以下是您要删除的药品信息:");findmark++;printf("\t\t\t________________________________"); printf("\t\t\t药品名称:%s",medicine[i].name);printf("\t\t\t药品编号:%s",medicine[i].number);printf("\t\t\t单价:%s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory); printf("\t\t\t________________________________"); printf("\t\t\t是否删除?(y/n)");if (getch()=='y' || getch() == 'Y'){for(j=i;j<num-1;j++)medicine[j]=medicine[j+1];num--;deletemark++;printf("\t\t\t删除成功");if((i+1)<num){printf("\t\t\t是否继续删除相同名称的药品信息?(y/n)"); if (getch()=='y'){a=i;continue;}}printf("\t\t\t是否继续删除?(y/n)");if (getch()=='y')deletebyname();return;}if((i+1)<num){printf("\t\t\t是否继续删除相同名称的药品信息?(y/n)");if (getch()=='y' || getch() == 'Y'){a=i;continue;}}}elsecontinue;}if ((deletemark==0)&&(findmark==0)){printf("\t\t\t没有该药品的记录");printf("\t\t\t是否继续删除?(y/n)");if(getch()=='y' || getch() == 'Y')deletebynumber();return;}else if (findmark!=0){printf("\t\t\t没有重名信息");printf("\t\t\t没有该药品的记录");printf("\t\t\t是否继续删除?(y/n)");if(getch()=='y' || getch() == 'Y')deletebynumber();return;}int dele() //删除记录{char choic;printf("\t\t\t1-按药品编号删除2-按药品名称删除");printf("\t\t\t请选择:");choic=getch();switch (choic){case '1':deletebynumber();break;case '2':deletebyname();break;}return(0);}int sortbyprice() //按药品单价进行排序{int i,j;struct medicine tmp;for (i=1;i<num;i++){if(strcmp(medicine[i].price,medicine[i-1].price)<0){tmp=medicine[i];j=i-1;do{medicine[j+1]=medicine[j];j--;}while ((strcmp(tmp.price,medicine[j].price)<0&&j>=0));medicine[j+1]=tmp;}printf("\t\t\t排序成功,是否显示?(y/n)");if (getch()=='y')list();return(0);}int main(){printf("\t\t---------------------------------------------------------\n");printf("\t\t---------Welcome to management system ----------\n");printf("\t\t----------Made By FACE CARD-------------\n");printf("\t\t---------------------------------------------------------\n");printf("请按任意键进入主菜单:)\n");getch();int selectnum;while(1){selectnum = menu_select();switch(selectnum){case 1:{addmedicine(); //添加药品信息break;}case 2:{list();break;}case 3:{modifybyname(); //修改药品信息break;}case 4:{searchbynumber(); //按药品编号查找break;}case 5:{sortbyprice(); //按药品单价排序break;}case 6:{dele();break;}case 7:{printf("BYE BYE!\n");system("pause");getchar();exit(0);}}}getchar();return 0;}五、测试结果(说明系统的各模块运行结果(附运行界面图片),正式报告需将括号内文字删除)1、进入系统运行界面2、添加药品信息3、显示药品信息4、修改药品信息5、按编号查找药品信息6、按价格排序7、删除药品信息8、退出系统六、总结(谈谈自己的课程设计中的心得体会,正式报告需将括号内文字删除)整个实验比较复杂,我使用switch语句调用菜单中的各个功能软件调用不同的函数来实现不同的功能,通过反复调用函数来实现反复输入。

(完整版)《C语言程序设计》药房管理系统

(完整版)《C语言程序设计》药房管理系统

课程设计报告(201 —201 学年第学期)课程:高级语言程序设计题目:药房管理系统姓名:专业:班级:学号:指导教师:完成时间:一、课程设计的内容(课程设计题目,正式报告需将括号内文字删除)药房管理系统功能:设计药房管理系统,输入药品基本信息(药品编号、名称、单价、库存数量、品牌),并实现以下功能:1、修改、删除指定药品的信息2、按单价或库存数量排序并显示药品信息3、统计指定品牌药品数量分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:实现药品的添加、修改、删除等功能;3、进一步要求:实现排序及统计功能。

要求:1、用C语言实现程序设计;2、系统的各个功能模块要求用函数实现;3、界面友好(良好的人机交互),程序加必要的注释。

二、功能描述(对系统要实现的功能进行描述,正式报告需将括号内文字删除)1、能正确地录入药品信息并保存下来。

2、能够有效、快速地查看全部药品的信息。

3、可以查看某一药品的信息(按药品的默认序号查看)4、可以查看某一药品的信息(按药品的编号进行查看)5、能够按照管理人员的意愿修改任意药品的信息6、能修改药品信息7、此系统还能对药品的单价进行排序三、概要设计(根据功能描述建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能,正式报告需将括号内文字删除)四、详细设计(详细说明各功能模块的实现过程,包括用流程图对算法进行描述、所用到的数据结构、算法实现的主要源代码等,正式报告需将括号内文字删除)#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>struct medicine{char name[20]; //药品名称char number[50]; //药品编号char price[50]; //单价char inventory[50]; //库存数量char brand[20]; //品牌} medicine[100]; //假设最大数为100.//定义全局变量numint num;int menu_select(){char s[80];int a;/*定义整形变量*/system("cls");printf("\t\t-------------您好!您已进入药房管理系统-----------\n\n");printf("\t\t\t1. 输入药品信息\n");printf("\t\t\t2. 查看药品信息\n");printf("\t\t\t3. 修改药品信息\n");printf("\t\t\t4. 按编号查找药品\n");printf("\t\t\t5. 按价格排序\n");printf("\t\t\t6. 删除药品信息\n");printf("\t\t\t7. 退出\n");printf("\t\t------------------------------------------\n\n");do{printf("Enter you choice(1~7):");scanf("%s",s);a=atoi(s);}while (a<1 || a>7);return a;}int addmedicine(){printf("\t\t\t--------------请输入您要保存的信息------------\n");printf("\t\t\t输入药品名称:\n");scanf("%s",medicine[num].name);printf("\t\t\t输入药品编号:\n");scanf("%s",medicine[num].number);printf("\t\t\t单价:\n");scanf("%s",medicine[num].price);printf("\t\t\t品牌:\n");scanf("%s",medicine[num].brand);printf("\t\t\t库存数量:\n");scanf("%s",medicine[num].inventory);num++;printf("\t\t\t是否继续添加?(Y/N):\n");if(getch()=='y' || getch()=='Y')addmedicine();return(0);}void modifybyname() //按药品名称修改{char c;int i,mark=0;char name[20];printf("\n\t\t请输入要修改的药品名称:");scanf("%s",name);if(num==0){printf("\n\t\t文件中无相关药品");printf("\n\t\t按任意键返回主菜单");getch(); mark++;return;}for(i=0;i<num;i++){if(strcmp(medicine[i].name,name)==0){printf("\n\t\t以下是您要修改的药品信息");printf("\n\t\t药品名称: %s",medicine[i].name);printf("\n\t\t药品编号: %s",medicine[i].number);printf("\n\t\t单价: %s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\n\t\t库存数量: %s",medicine[i].inventory);printf("\n\t\t是否修改(y/n)");if(getch()=='y'){printf("\n\t----------------------请选择修改信息-------------------------");printf("\n\t 1-修改药品名称");printf("\n\t 2-修改药品编号");printf("\n\t 3-修改单价");printf("\n\t 4-修改品牌");printf("\n\t 5-修改库存数量");printf("\n\t--------------------------------------------------------------------------");printf("\n\t请选择您所要的服务:");scanf("%s",&c);switch(c){case '1': printf("\n\t请输入新药品名称:");scanf("%s",medicine[i].name);break;case'2':printf("\n\t请输入新药品编号:%s");scanf("%s",medicine[i].number);break;case'3':printf("\n\t请输入新单价: ");scanf("%s",medicine[i].price);break;case'4':printf("\n\t请输入新品牌: ");scanf("%s",medicine[i].brand);break;case'5':printf("\n\t请输入新库存数量: ");scanf("%s",medicine[i].inventory);break;}}}}if(mark==0){printf("\n\t\t药品信息修改完毕");printf("\n\t是否继续修改?(Y/N):");if(getch()=='y')modifybyname();return;}}void list(){int i;system("cls");if(num!=0){printf("\t\t\t----------已为您显示所有药品信息----------\n");for (i=0;i<num;i++){printf("\t\t\t药品名称:%s\n",medicine[i].name);printf("\t\t\t药品编号:%s\n",medicine[i].number);printf("\t\t\t单价:%s\n",medicine[i].price);printf("\n\t\t品牌: %s\n",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory);if(i+1<num){system("pause");}}printf("\t\t\t------------------------------\n");}elseprintf("\t\t\t系统中无任何记录\n");printf("\t\t\t按任意键返回主菜单:\n");getch();return;}int searchbyname(){int mark=0;int i;printf("\t\t\t---------- 按药品名称查找----------\n");char name[20];printf("\t\t\t请输入药品名称:\n");scanf("%s",name);for(i=0;i<num;i++){if (strcmp(medicine[i].name,name)==0){printf("\t\t\t------- 以下是您查找的药品信息-------\n");printf("\t\t\t药品名称:%s",medicine[i].name);printf("\t\t\t药品编号:%s",medicine[i].number);printf("\t\t\t单价:%s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory);printf("\t\t\t------------------------------------------------------\n");mark++;if((i+1)<num){printf("\t\t\t是否继续查找相同名称的药品信息:(y/n)\n");if(getch()=='y' || getch()=='Y'){continue;}elsereturn(0);}else{printf("\t\t\t请按任意键返回主菜单");getch();return(0);}}}if(mark == 0){printf("\t\t\t没有您要查找的药品记录\n");printf("\t\t\t请按任意键返回主菜单\n");getch();return(0);}return 0;}int searchbynumber(){int mark=0;int i;printf("\t\t\t---------------按药品编号查找--------------\n");char number[10];printf("\t\t\t请输入药品编号:\n");scanf("%s",number);for(i=0;i<num;i++){if (strcmp(medicine[i].number,number)==0){printf("\t\t\t---------------以下是您查找的药品信息---------------\n");printf("\t\t\t药品名称:%s",medicine[i].name);printf("\t\t\t药品编号:%s",medicine[i].number);printf("\t\t\t单价:%s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory);printf("\t\t\t-------------------------------------------------\n");printf("\t\t\t请按任意键返回主菜单\n");mark++;getch();return(0);}}if (mark==0){printf("\t\t\t没有改药品的信息\n");printf("\t\t\t请按任意键返回主菜单\n");getch();return(0);}return(0);}void deletebynumber(){int i,j;int deletemark=0;char number[20];printf("\t\t\t请输入要删除药品编号:\n");scanf("%s",number);if(num==0){printf("\t\t\t对不起,系统中无任何记录\n");printf("\t\t\t请按任意键返回主菜单\n");getch();return;}for (i=0;i<num;i++){if (strcmp(medicine[i].number,number)==0){printf("\t\t\t以下是您要删除的用户记录:\n");printf("\t\t\t药品名称:%s",medicine[i].name);printf("\t\t\t药品编号:%s",medicine[i].number);printf("\t\t\t单价:%s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory);printf("\t\t\t是否删除?(y/n)");if (getch()=='y' || getch()=='Y'){for (j=i;j<num-1;j++)medicine[j]=medicine[j+1];num--;deletemark++;printf("\t\t\t删除成功");printf("\t\t\t是否继续删除?(y/n)");if (getch()=='y' || getch()=='Y')deletebynumber();return;}elsereturn;}continue;}if (deletemark==0){printf("\t\t\t没有该药品的记录");printf("\t\t\t是否继续删除?(y/n)");if(getch()=='y' || getch()=='Y')deletebynumber();return;}return;}void deletebyname(){int a=0;int findmark=0;int j;int deletemark=0;int i;char name[20];printf("\t\t\t请输入要删除药品名称:\n");scanf("%s",name);for (i=a;i<num;i++){if(strcmp(medicine[i].name,name)==0){printf("\t\t\t以下是您要删除的药品信息:");findmark++;printf("\t\t\t________________________________"); printf("\t\t\t药品名称:%s",medicine[i].name);printf("\t\t\t药品编号:%s",medicine[i].number);printf("\t\t\t单价:%s",medicine[i].price);printf("\n\t\t品牌: %s",medicine[i].brand);printf("\t\t\t库存数量:%s\n",medicine[i].inventory); printf("\t\t\t________________________________"); printf("\t\t\t是否删除?(y/n)");if (getch()=='y' || getch() == 'Y'){for(j=i;j<num-1;j++)medicine[j]=medicine[j+1];num--;deletemark++;printf("\t\t\t删除成功");if((i+1)<num){printf("\t\t\t是否继续删除相同名称的药品信息?(y/n)"); if (getch()=='y'){a=i;continue;}}printf("\t\t\t是否继续删除?(y/n)");if (getch()=='y')deletebyname();return;}if((i+1)<num){printf("\t\t\t是否继续删除相同名称的药品信息?(y/n)");if (getch()=='y' || getch() == 'Y'){a=i;continue;}}}elsecontinue;}if ((deletemark==0)&&(findmark==0)){printf("\t\t\t没有该药品的记录");printf("\t\t\t是否继续删除?(y/n)");if(getch()=='y' || getch() == 'Y')deletebynumber();return;}else if (findmark!=0){printf("\t\t\t没有重名信息");printf("\t\t\t没有该药品的记录");printf("\t\t\t是否继续删除?(y/n)");if(getch()=='y' || getch() == 'Y')deletebynumber();return;}int dele() //删除记录{char choic;printf("\t\t\t1-按药品编号删除2-按药品名称删除");printf("\t\t\t请选择:");choic=getch();switch (choic){case '1':deletebynumber();break;case '2':deletebyname();break;}return(0);}int sortbyprice() //按药品单价进行排序{int i,j;struct medicine tmp;for (i=1;i<num;i++){if(strcmp(medicine[i].price,medicine[i-1].price)<0){tmp=medicine[i];j=i-1;do{medicine[j+1]=medicine[j];j--;}while ((strcmp(tmp.price,medicine[j].price)<0&&j>=0));medicine[j+1]=tmp;}printf("\t\t\t排序成功,是否显示?(y/n)");if (getch()=='y')list();return(0);}int main(){printf("\t\t---------------------------------------------------------\n");printf("\t\t---------Welcome to management system ----------\n");printf("\t\t----------Made By FACE CARD-------------\n");printf("\t\t---------------------------------------------------------\n");printf("请按任意键进入主菜单:)\n");getch();int selectnum;while(1){selectnum = menu_select();switch(selectnum){case 1:{addmedicine(); //添加药品信息break;}case 2:{list();break;}case 3:{modifybyname(); //修改药品信息break;}case 4:{searchbynumber(); //按药品编号查找break;}case 5:{sortbyprice(); //按药品单价排序break;}case 6:{dele();break;}case 7:{printf("BYE BYE!\n");system("pause");getchar();exit(0);}}}getchar();return 0;}五、测试结果(说明系统的各模块运行结果(附运行界面图片),正式报告需将括号内文字删除)1、进入系统运行界面2、添加药品信息3、显示药品信息4、修改药品信息5、按编号查找药品信息6、按价格排序7、删除药品信息8、退出系统六、总结(谈谈自己的课程设计中的心得体会,正式报告需将括号内文字删除)整个实验比较复杂,我使用switch语句调用菜单中的各个功能软件调用不同的函数来实现不同的功能,通过反复调用函数来实现反复输入。

c语言书店管理系统课程设计

c语言书店管理系统课程设计

c语言书店管理系统课程设计一、教学目标本课程的目标是让学生掌握C语言编程的基本技能,通过实现一个简单的书店管理系统,使学生能够理解C语言的数据结构、控制流程和文件操作等核心概念,并培养学生的实际编程能力和问题解决能力。

具体的教学目标包括:1.理解C语言的基本语法和数据类型。

2.掌握数组、字符串、指针等数据结构的使用。

3.熟悉函数的定义和调用,理解作用域规则。

4.学习递归算法和动态内存管理。

5.了解文件操作API,掌握文件读写的实现方法。

6.能够使用C语言编写结构化的程序。

7.学会编写和调试函数,进行模块化编程。

8.掌握结构体和文件操作在程序中的应用。

9.能够独立设计和实现小型系统程序。

情感态度价值观目标:1.培养学生的逻辑思维能力和抽象思考能力。

2.培养学生的问题解决能力和创新意识。

3.增强学生的团队合作精神和代码分享意识。

二、教学内容教学内容将依据C语言的标准教材,结合书店管理系统的设计和实现,涵盖以下几个方面:1.C语言基础:数据类型、运算符、表达式、语句。

2.控制结构:条件语句、循环语句。

3.数据结构:数组、字符串、指针、结构体。

4.函数:函数定义、调用、参数传递、返回值。

5.高级主题:动态内存分配、递归、文件操作。

6.项目实践:书店管理系统的设计与实现。

三、教学方法为了提高学生的编程技能和问题解决能力,将采用多种教学方法相结合的方式进行教学:1.讲授法:系统讲解C语言的基本语法和概念。

2.案例分析法:通过分析实际代码案例,讲解数据结构和算法。

3.实验法:学生在实验室完成编程练习和项目开发。

4.讨论法:分组讨论项目设计,解决编程过程中遇到的问题。

四、教学资源教学资源包括:1.教材:《C程序设计语言》(K&R)或等效的C语言入门教材。

2.参考书:《C Primer Plus》、《C和指针》等。

3.多媒体资料:教学PPT、编程视频教程。

4.实验设备:计算机、网络环境、编程开发环境(如Code::Blocks、Visual Studio等)。

c语言课程设计药房管理

c语言课程设计药房管理

c语言课程设计药房管理一、教学目标本节课的教学目标是使学生掌握C语言编程的基本方法,能够运用C语言设计简单的药房管理系统。

具体目标如下:1.知识目标:使学生了解C语言的基本语法、数据类型、运算符、控制结构等,为药房管理系统的编程奠定基础。

2.技能目标:培养学生运用C语言进行程序设计的能力,学会使用函数、数组、指针等高级特性,提高编程水平。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,增强其团队协作意识,使其认识到计算机编程在实际生活中的重要性。

二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言基本语法和数据类型。

2.运算符与控制结构。

3.函数、数组和指针。

4.文件操作。

5.药房管理系统的需求分析与设计。

三、教学方法为了提高教学效果,本节课将采用多种教学方法相结合的方式:1.讲授法:讲解C语言的基本语法、数据类型、运算符和控制结构等基础知识。

2.案例分析法:通过分析药房管理系统的实际案例,使学生了解并学会使用函数、数组和指针等高级特性。

3.实验法:安排实验室实践环节,让学生动手编写药房管理系统的程序,巩固所学知识。

4.讨论法:学生进行小组讨论,分享编程心得,培养团队协作精神。

四、教学资源为了保证教学效果,本节课将充分利用以下教学资源:1.教材:《C程序设计语言》。

2.参考书:《C Primer Plus》、《C和指针》。

3.多媒体资料:教学PPT、视频教程。

4.实验设备:计算机、网络环境。

5.药房管理系统案例资料:用于案例分析和实践环节。

五、教学评估为了全面、客观地评估学生的学习成果,本节课将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和掌握程度。

2.作业:布置与课程内容相关的编程作业,要求学生在规定时间内完成,以此评估学生的编程能力和实践能力。

3.考试:安排期末考试,包括理论知识和编程实践两部分,以检验学生对C语言编程的掌握程度。

c语言医院管理系统课程设计

c语言医院管理系统课程设计

c语言医院管理系统课程设计一、教学目标本课程旨在通过学习C语言实现的医院管理系统,使学生掌握C语言编程的基本技能,理解面向对象编程思想,培养学生的实际项目开发能力和团队协作能力。

具体的教学目标分为以下三个维度:1.知识目标:•掌握C语言的基本语法和数据结构;•理解面向对象编程的基本概念,如类、对象、继承、封装和多态;•了解医院管理系统的业务流程和需求。

2.技能目标:•能够使用C语言独立编写程序,实现简单的医院管理系统功能;•能够运用面向对象编程思想进行程序设计和开发;•具备一定的软件调试和排错能力。

3.情感态度价值观目标:•培养学生的团队协作精神,学会在团队中分工合作,共同完成项目任务;•培养学生对编程的兴趣和热情,提高他们对计算机科学的认同感;•培养学生具有良好的职业素养,使他们能够遵守编程规范,注重代码的可读性和可维护性。

二、教学内容本课程的教学内容主要包括C语言基础知识、面向对象编程方法和医院管理系统的设计与实现。

具体的教学大纲如下:1.C语言基础知识:•C语言概述和基本语法;•数据类型、运算符和表达式;•控制语句和函数。

2.面向对象编程方法:•类和对象的概念及创建;•继承、封装和多态的原理及应用;•常用类库和API的使用。

3.医院管理系统的设计与实现:•系统需求分析和设计;•数据库设计和连接;•系统模块划分和编程实现;•系统测试和优化。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学,包括:1.讲授法:用于讲解C语言的基本语法和面向对象编程的基本概念;2.案例分析法:通过分析实际案例,使学生更好地理解医院管理系统的需求和设计方法;3.实验法:让学生在实验环节动手编写代码,巩固所学知识,培养实际编程能力;4.小组讨论法:分组进行项目开发,培养学生的团队协作能力和解决问题的能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的C语言和面向对象编程教材;2.参考书:提供相关的编程指南和医院管理系统设计手册;3.多媒体资料:制作课件和教学视频,辅助学生理解复杂概念;4.实验设备:提供计算机实验室,确保学生能够进行实际编程练习;5.在线资源:推荐编程社区和论坛,便于学生交流和获取最新资讯。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告(201 —201 学年第学期)课程:_________ 高级语言程序设计题目:_________ 药房管理系统______________ 姓名: ________________________________________ 专业: ________________________________________ 班级: ________________________________________ 学号: ________________________________________ 指导教师:_____________________________________完成时间: ____________________________________、课程设计的内容(课程设计题目,正式报告需将括号内文字删除)药房管理系统功能:设计药房管理系统,输入药品基本信息(药品编号、名称、单价、库存数量、品牌),并实现以下功能:1、修改、删除指定药品的信息2、按单价或库存数量排序并显示药品信息3、统计指定品牌药品数量分步实施:1 、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2 、完成最低要求:实现药品的添加、修改、删除等功能; 3、进一步要求:实现排序及统计功能。

要求: 1、用 C 语言实现程序设计; 2、系统的各个功能模块要求用函数实现;3 、界面友好(良好的人机交互),程序加必要的注释。

二、功能描述(对系统要实现的功能进行描述,正式报告需将括号内文字删除)1、能正确地录入药品信息并保存下来。

2 、能够有效、快速地查看全部药品的信息。

3、可以查看某一药品的信息(按药品的默认序号查看)4 、可以查看某一药品的信息(按药品的编号进行查看)5 、能够按照管理人员的意愿修改任意药品的信息6、能修改药品信息 7、此系统还能对药品的单价进行排序三、概要设计(根据功能描述建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能,正式报告需将括号内文字删除)确认全部删除取消单个删除单个删除按名称删除plr确认是否删除■ -I厂r是1删除成功四、详细设计(详细说明各功能模块的实现过程,包括用流程图对算法进行描述、所用//药品名称 //药品编号 //单价//库存数量 //品牌//假设最大数为 100.\n\n");#include<stdio.h> #include<stdlib.h> #include<string.h>#include<conio.h> struct medicine {char name[20]; char number[50]; char price[50]; char inventory[50]; char brand[20]; } medicine[100];//定义全局变量 numint num;int menu_select (){char s[80];int a;/* 定义整形变量 */ system ("cls");printf ("\t\t ---------- 您好!您已进入药房管理系统 printf ("\t\t\t1. 输入药品信息 \n"); printf ("\t\t\t2. 查看药品信息 \n"); printf ("\t\t\t3. 修改药品信息 \n"); printf ("\t\t\t4. 按编号查找药品 \n"); printf ("\t\t\t5. 按价格排序 \n");printf("\t\t\t6. 删除药品信息 \n"); printf("\t\t\t7. 退出 \n");\n");do{printf("Enter you choice(1~7):"); scanf("%s",s); a=atoi(s);}while (a<1 || a>7); return a;}int addmedicine(){printf("\t\t\t ----------- 请输入您要保存的信息printf("\t\t\t 输入药品名称 :\n"); scanf("%s",medicine[num].name); printf("\t\t\t 输入药品编号 :\n"); scanf("%s",medicine[num].number); printf("\t\t\t 单价 :\n"); scanf("%s",medicine[num].price); printf("\t\t\t 品牌 :\n"); scanf("%s",medicine[num].brand); printf("\t\t\t 库存数量 :\n"); scanf("%s",medicine[num].inventory); num++;printf("\t\t\t 是否继续添加 ?(Y/N):\n");if(getch()=='y'|| getch()=='Y')addmedicine();return(0);void modifybyname() //按药品名称修改{char c;int i,mark=0;char name[20];printf("\n\t\t 请输入要修改的药品名称: ");scanf("%s",name);if(num==0){printf("\n\t\t 文件中无相关药品 ");printf("\n\t\t 按任意键返回主菜单 ");getch(); mark++;return;}for(i=0;i<num;i++){if(strcmp(medicine[i].name,name)==0){printf("\n\t\t 以下是您要修改的药品信息 ");printf("\n\t\t 药品名称 : %s",medicine[i].name);printf("\n\t\t 药品编号 : %s",medicine[i].number);printf("\n\t\t 单价 : %s",medicine[i].price);printf("\n\t\t 品牌 : %s",medicine[i].brand);printf("\n\t\t 库存数量 : %s",medicine[i].inventory);printf("\n\t\t 是否修改 (y/n)");if(getch()=='y'){printf("\n\t---------------------- 请选择修改信息 ---------------------------------- ");printf("\n\t 1-修改药品名称");printf("\n\t 2-修改药品编号");printf("\n\t 3-修改单价");printf("\n\t 4-修改品牌");printf("\n\t 5-修改库存数量");printf("\n\t----------------------------------------------------------------------------- ");printf("\n\t 请选择您所要的服务: ");scanf("%s",&c);switch(c){case '1': printf("\n\t 请输入新药品名称: "); scanf("%s",medicine[i].name);break;case'2':printf("\n\t 请输入新药品编号: %s");scanf("%s",medicine[i].number);break; case'3':printf("\n\t 请输入新单价 : ");scanf("%s",medicine[i].price);break; case'4':printf("\n\t 请输入新品牌 : ");scanf("%s",medicine[i].brand);break; case'5':printf("\n\t 请输入新库存数量 : ");scanf("%s",medicine[i].inventory);break;}}}}if(mark==0){printf("\n\t\t 药品信息修改完毕 "); printf("\n\t 是否继续修改? (Y/N):");if(getch()=='y') modifybyname();return;}void list(){int i;system("cls");if(num!=0){printf("\t\t\t ------- 已为您显示所有药品信息----------------- \n");for (i=0;i<num;i++){printf("\t\t\t 药品名称: %s\n",medicine[i].name);printf("\t\t\t 药品编号: %s\n",medicine[i].number);printf("\t\t\t 单价: %s\n",medicine[i].price); printf("\n\t\t 品牌 : %s\n",medicine[i].brand);printf("\t\t\t 库存数量: %s\n",medicine[i].inventory);if(i+1<num){system("pause");}}printf("\t\t\t ---------------------------- \n");}elseprintf("\t\t\t 系统中无任何记录 \n");printf("\t\t\t 按任意键返回主菜单: \n");getch();return;}int searchbyname()int mark=0;int i;printf("\t\t\t ------- 按药品名称查找------------------- \n");char name[20];printf("\t\t\t 请输入药品名称 :\n");scanf("%s",name);for(i=0;i<num;i++){if (strcmp(medicine[i].name,name)==0){printf("\t\t\t ----- 以下是您查找的药品信息 -----------------\nprintf("\t\t\t 药品名称: %s",medicine[i].name);printf("\t\t\t 药品编号: %s",medicine[i].number); printf("\t\t\t 单价: %s",medicine[i].price); printf("\n\t\t 品牌 : %s",medicine[i].brand);printf("\t\t\t 库存数量: %s\n",medicine[i].inventory);printf("\t\t\t ------------------------------------------------------ \n");mark++;(y/n)\n");if((i+1)<num){printf("\t\t\t 是否继续查找相同名称的药品信息: if(getch()=='y'|| getch()=='Y'){continue;}elsereturn(0);}elseprintf ("\t\t\t 请按任意键返回主菜单 ");getch();return(0);}}}if(mark == 0){printf("\t\t\t 没有您要查找的药品记录 \n");printf("\t\t\t 请按任意键返回主菜单 \n");getch();return(0);}return 0;}int searchbynumber()\n"); {int mark=0;int i;printf("\t\t\t ------------- 按药品编号查找 ---------------------- \n");char number[10];printf("\t\t\t 请输入药品编号 :\n");scanf("%s",number);for(i=0;i<num;i++){if (strcmp(medicine[i].number,number)==0){printf("\t\t\t ------------ 以下是您查找的药品信息 --printf("\t\t\t 药品名称: %s",medicine[i].name);printf("\t\t\t 药品编号: %s",medicine[i].number);printf("\t\t\t 单价: %s",medicine[i].price);printf("\n\t\t 品牌 : %s",medicine[i].brand);printf("\t\t\t 库存数量: %s\n",medicine[i].inventory); printf("\t\t\t \n");printf("\t\t\t 请按任意键返回主菜单 \n");mark++;getch();return(0);}}if (mark==0){printf("\t\t\t 没有改药品的信息 \n");printf("\t\t\t 请按任意键返回主菜单 \n");getch();return(0);}return(0);}void deletebynumber(){int i,j;int deletemark=0;char number[20];printf("\t\t\t 请输入要删除药品编号: \n");scanf("%s",number);if(num==0){printf("\t\t\t 对不起,系统中无任何记录 \n");printf("\t\t\t 请按任意键返回主菜单 \n");getch();return;}for (i=0;i<num;i++){if (strcmp(medicine[i].number,number)==0){printf("\t\t\t 以下是您要删除的用户记录: \n");printf("\t\t\t 药品名称: %s",medicine[i].name);printf("\t\t\t 药品编号: %s",medicine[i].number); printf("\t\t\t 单价: %s",medicine[i].price); printf("\n\t\t 品牌 : %s",medicine[i].brand);printf("\t\t\t 库存数量: %s\n",medicine[i].inventory); printf("\t\t\t 是否删除 ?(y/n)");if (getch()=='y'|| getch()=='Y'){for (j=i;j<num-1;j++)medicine[j]=medicine[j+1];num--;deletemark++;printf("\t\t\t 删除成功 ");printf("\t\t\t 是否继续删除 ?(y/n)");if (getch()=='y'|| getch()=='Y')deletebynumber();return;}else return; continue;}if (deletemark==0){printf("\t\t\t 没有该药品的记录 ");printf("\t\t\t 是否继续删除 ?(y/n)");if(getch()=='y'|| getch()=='Y') deletebynumber();return;}return;}void deletebyname(){int a=0;int findmark=0;int j;int deletemark=0;int i;char name[20];printf("\t\t\t 请输入要删除药品名称: \n");scanf("%s",name);for (i=a;i<num;i++){if(strcmp(medicine[i].name,name)==0){printf("\t\t\t 以下是您要删除的药品信息: "); findmark++;printf("\t\t\t_________________________________ ");printf("\t\t\t 药品名称: %s",medicine[i].name); printf("\t\t\t 药品编号: %s",medicine[i].number); printf("\t\t\t 单价: %s",medicine[i].price); printf("\n\t\t 品牌 : %s",medicine[i].brand);printf("\t\t\t 库存数量: %s\n",medicine[i].inventory);printf("\t\t\t_________________________________ ");printf("\t\t\t 是否删除 ?(y/n)");if (getch()=='y'|| getch() == 'Y'){for(j=i;j<num-1;j++)medicine[j]=medicine[j+1];num--;deletemark++;printf("\t\t\t 删除成功 ");if((i+1)<num){printf("\t\t\t 是否继续删除相同名称的药品信息 ?(y/n)"); if (getch()=='y'){a=i;continue;}}printf("\t\t\t 是否继续删除 ?(y/n)");if (getch()=='y')deletebyname();return;}if((i+1)<num){printf("\t\t\t 是否继续删除相同名称的药品信息 ?(y/n)");if (getch()=='y'|| getch() == 'Y'){a=i;continue;}}}elsecontinue;}if ((deletemark==0)&&(findmark==0)) {printf("\t\t\t 没有该药品的记录 "); printf("\t\t\t 是否继续删除 ?(y/n)"); if(getch()=='y'|| getch() == 'Y') deletebynumber();return;}else if (findmark!=0){printf("\t\t\t 没有重名信息 ");printf("\t\t\t 没有该药品的记录 "); printf("\t\t\t 是否继续删除 ?(y/n)"); if(getch()=='y'|| getch() == 'Y') deletebynumber();return;}}int dele()//删除记录char choic;printf("\t\t\t1- 按药品编号删除 2-按药品名称删除 "); printf("\t\t\t 请选择: ");choic=getch();switch (choic){case '1':deletebynumber();break;case '2':deletebyname();break;}return(0);}int sortbyprice() // 按药品单价进行排序{int i,j;struct medicine tmp;for (i=1;i<num;i++){if(strcmp(medicine[i].price,medicine[i-1].price)<0){tmp=medicine[i];j=i-1;do{medicine[j+1]=medicine[j];j--;}while ((strcmp(tmp.price,medicine[j].price)<0&&j>=0)); medicine[j+1]=tmp; }}printf("\t\t\t 排序成功 ,是否显示 ?(y/n)");if (getch()=='y')list();return(0);}int main(){printf("\t\t ---------------------------------------------------------- \n");printf("\t\t ------- Welcome to management system ---------------- \n");printf("\t\t ------- Made By FACE CARD ------------------------- \n");printf("\t\t ---------------------------------------------------------- \n");printf("请按任意键进入主菜单 :)\n");getch();int selectnum;while(1){selectnum = menu_select();switch(selectnum){case 1:{addmedicine(); // 添加药品信息break;}case 2:{list();break;}case 3:modifybyname(); //修改药品信息break;}case 4:{searchbynumber(); // 按药品编号查找 break; }case 5:{sortbyprice(); // 按药品单价排序break;}case 6:{dele();break;}case 7:{printf("BYE BYE!\n");system("pause");getchar();exit(0);}}} getchar(); return 0;五、测试结果(说明系统的各模块运行结果(附运行界面图片),正式报告需将括号内文字删除)1进入系统运行界面2、添加药品信息3、显示药品信息4、修改药品信息5、按编号查找药品信息■ “[>\C西宜*EltXDtbug磺鹿晋煙爭洗exe- —_ X6、按价格排序7、删除药品信息您好!曙已进入药馬管理系统-1. 输入药品信息2. 査看药品信息3. 修改药品信息4. 按编号查找药品5. 按价格tt序6. 删除药品甘息7. 退岀Enter you choice(P7) :61-按药品编号删除皆按药品名称和除请选择:请输入要删除药品编号:1001以下是您要删除的用户记录;药品苦称!aspirin跖品编号:1001单价:19品牌:AC 库存数呈;.13是否删除?(y/n)六、丿总结(谈谈自己的课程设计中的心得体会,正式报告需将括号内文字删除) □整个实验比较复杂,我使用switch语句调用菜单中的各个功能软件调用不同的函数来实现不同的功能,通过反复调用函数来实现反复输入。

相关文档
最新文档