C语言药品管理系统
c课程设计药品信息管理系统

药品信息管理需求分析的目的:明确系统需求,为系统设计提供依据
药品信息管理需求分析的内容:包括药品信息管理、药品库存管理、药品销售管理等 药品信息管理需求分析的方法:采用问卷调查、访谈、观察等方法收集需求信息
药品信息管理需求分析的结果:形成需求文档,为系统设计提供依据
响应时间:系统响应时间应控制在1秒以内 数据处理能力:系统应具备处理大量数据的能力 安全性:系统应具备良好的安全性,防止数据泄露和攻击 可扩展性:系统应具备良好的可扩展性,便于未来升级和维护
用户身份验证:确保只有授权用户才能访问系统 数据加密:对敏感数据进行加密处理,防止数据泄露 访问控制:限制用户访问权限,确保数据安全 备份与恢复:定期备份数据,确保数据丢失后能够恢复
系统设计
架构设计原则:高内聚、低耦 合、可扩展、可维护
架构设计方法:分层设计、模 块化设计、服务化设计
架构设计要素:用户界面、业 务逻辑、数据存储、系统安全
架构设计工具:UML、ER图、 流程图、数据流图
数据库类型:关系型数据库
数据库字段:药品名称、药品规格、 药品价格、用户ID、订单ID等
添加标题
添加标题
添加标题
添加标题
数据库结构:包括药品信息表、用 户信息表、订单信息表等
数据库操作:包括查询、插入、更 新、删除等操作
界面布局:简洁明了,易于操作 色彩搭配:协调统一,易于阅读 功能模块:清晰划分,易于查找 交互方式:直观便捷,易于使用
管理等
系统特点:操 作简便、界面 友好、数据安 全、可扩展性
强
系统应用:药 店、医院、药 品生产企业等
系统优势:提 高工作效率、 降低管理成本、 增强市场竞争
力
用户管理模 块:用户注 册、登录、 修改密码等 功能
c课程设计药店管理系统

c 课程设计药店管理系统一、课程目标知识目标:1. 学生能理解药店管理系统的基本概念和功能需求,掌握药品信息管理、库存管理、销售管理等核心模块的基本原理。
2. 学生能够运用数据库知识,设计并实现药店管理系统的数据模型,包括数据表的设计和关系维护。
3. 学生能够结合软件工程方法,编写药店管理系统相关的功能性代码,实现对药品信息、库存和销售的有效管理。
技能目标:1. 学生掌握使用至少一种数据库管理系统(如MySQL、SQLite等)进行药店管理系统数据设计和操作的能力。
2. 学生能够运用面向对象编程思想,使用适当的编程语言(如Java、C#等)实现药店管理系统的功能模块。
3. 学生通过团队协作,学会项目管理的基本方法,提高沟通与协作能力。
情感态度价值观目标:1. 学生通过参与药店管理系统的设计与实现,培养解决问题的兴趣和自信心,增强对信息技术的学习热情。
2. 学生能够认识到信息技术在医药卫生行业中的重要性,提升社会责任感和职业道德意识。
3. 学生在项目实施过程中,学会尊重他人意见,培养团队合作精神,提高集体荣誉感。
课程性质分析:本课程为高年级信息技术或计算机科学与技术相关专业的实践性课程,强调理论知识与实际应用的结合,注重培养学生的动手能力和实际项目经验。
学生特点分析:高年级学生已具备一定的编程基础和数据库知识,具有较强的自学能力和创新意识,同时,他们即将面临毕业和就业,对实际项目的参与有较高的积极性。
教学要求:1. 结合实际案例,引导学生主动探索和解决问题,提高学习的主动性和创造性。
2. 通过团队协作,培养学生的沟通能力和团队精神,提升项目实施的成功率。
3. 注重过程评价,及时反馈学生的学习成果,帮助学生明确自己的不足和努力方向。
二、教学内容本课程教学内容主要包括以下几部分:1. 药店管理系统概述:介绍药店管理系统的概念、发展历程、功能模块和实际应用场景,使学生对该系统有一个全面的认识。
2. 数据库设计:讲解数据库的基本概念、关系型数据库的设计方法,以及如何运用数据库管理系统(如MySQL、SQLite等)进行药店管理系统数据模型设计。
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循环语句等,使得管理系统能够快速、准确无误地进行排序。
药品管理系统源代码

int p;
if(low<high)
{
p=Partition(L,low,high);
Qsort(L,low,p-1);
Qsort(L,p+1,high);
}
}
void QuickSort(SequenList &L)
{
Qsort(L,1,L.length-1);
#incluቤተ መጻሕፍቲ ባይዱe <iostream>
#include <fstream>
using namespace std;
#define MaxSize 50
typedef struct node
{
char num[8]; /*药品编号*/
char name[16]; /*药品名称*/
}
}
//快速排序
int Partition(SequenList &L,int low,int high)
{
int pri;
L.r[0]=L.r[low];
pri=L.r[low].count;
while (low<high)
{
while (low<high&&L.r[high].count>=pri) --high;
cout<<"4、按药品销售额排序 "<<endl;
cout<<"0、退出系统 "<<endl;
cout<<"请输入您的选择:"<<endl;
药品管理系统

printf("\t %s\t %s\t %f\t %d\t %f\n",L->r[i].num,L->r[i].name,L->r[i].price,L->r[i].count,L->r[i].sale);
பைடு நூலகம்
}
strcpy(name1,L->r[j].name);
strcpy(L->r[j].name,L->r[i].name);
strcpy(L->r[i].name,name1);
price1=L->r[j].price;
if(L->r[j].price>L->r[i].price)
{strcpy(num1,L->r[j].num);
strcpy(L->r[j].num,L->r[i].num);
strcpy(L->r[i].num,num1);
strcpy(name1,L->r[j].name);
void nam(SqList *L) //按药品名称排序
{
int i,j;
char num1[10],name1[30];
float price1,sale1;
int count1;
for(i=0;i<L->type;i++)
for(j=i+1;j<L->type;j++)
sale1=L->r[j].sale;
L->r[j].sale=L->r[i].sale;
药品管理c语言课程设计

药品管理c语言课程设计一、课程目标知识目标:1. 学生能理解药品管理系统的基本原理,掌握C语言实现药品信息管理的基本方法。
2. 学生能够运用结构体、文件操作等C语言知识,实现对药品信息的增删改查功能。
3. 学生了解并掌握C语言中字符串处理、内存分配等与药品管理系统相关的关键技术。
技能目标:1. 学生能够运用所学知识,独立设计并编写一个简单的药品管理系统。
2. 学生能够通过调试和修改代码,解决药品管理系统中出现的问题。
3. 学生能够运用合作和沟通技巧,与团队成员共同完成课程项目。
情感态度价值观目标:1. 学生养成认真负责、严谨细致的学习态度,对待代码编写和程序调试具有耐心和毅力。
2. 学生通过课程学习,认识到编程在解决实际问题中的应用价值,提高对计算机科学的兴趣。
3. 学生在团队协作中,学会互相尊重、理解和帮助,培养良好的团队合作精神和沟通能力。
课程性质:本课程为实践性较强的学科,结合药品管理实际需求,引导学生运用C语言知识解决实际问题。
学生特点:学生已具备一定的C语言基础,具有一定的编程能力和问题解决能力,但实际应用经验不足。
教学要求:注重理论与实践相结合,以项目为导向,引导学生自主探究和团队协作,提高学生的编程能力和实际应用能力。
在教学过程中,关注学生的个体差异,给予个性化指导,确保课程目标的实现。
通过课程学习,使学生能够将所学知识应用于实际项目,达到学以致用的目的。
二、教学内容1. 知识准备:复习C语言基础知识,包括数据类型、运算符、控制结构、函数、数组、指针和结构体等。
教材章节:第一章至第六章2. 药品管理系统需求分析:介绍药品管理的基本功能,如药品信息的增删改查等。
教材章节:第七章 项目设计与分析3. C语言实现药品信息管理:- 结构体定义:定义药品信息结构体,包括药品名称、编号、价格、生产日期等。
- 文件操作:实现药品信息的存储和读取,包括文件的打开、关闭、读写等。
- 功能实现:编写增删改查等功能的函数。
《C语言程序设计》药房管理系统

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

源程序:# 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];//日}void Creatlist()//创建新的列表 {char g='Y';int s=0;length=0;//初始长度为0;current=head;do {Goods * temp=new Goods ;//构建新结点信息1链表长度增每加一个结点 length++; //temp->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;尾指infile>>length;cout<<\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 ;}}cout.fill(' ');cout<<current->name;cout.width(8); cout.width(8);cout<<current->price;cout.width(8);cout<<current->number;cout.width(8);'空个字符输出,不够往前面加‘ current->cost10就是给//cout<<current->cost;格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;潣瑵?有效期;cout<<endl; //输出属性列while(current!=NULL){ //循环输出所有结点printinfor( current );current=current->next;}}//showGoods *Searchindate(Date t){ //按购入日期搜索返回结点指针temp三个信息块t.year t.month t.day含有t结构体//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;{if(strcmp(current->name,r)==0) {temp=current;f=true;break;}current=current->next;}if(f==false){cout<<\商品名为 : <<r<< 的商品不存在 \n ; return NULL;}return temp;}void Queryname() //按药品名查询{char r[MAX];cout<< input the name: ;cin>>r;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;//释放结点潣瑵?已删除此药品\n;//break; 此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继续删除}else{current=current->next;}//break;此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继续删除}else{current=current->next;}}if(f==false){\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)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;}//addvoid Modify (){//通过药品名找到要修改的数据项char n[MAX];潣瑵?请输入您要修改的药品名:<<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<<\ ********************************************************\n; cout<<\ ;cout.fill('*');cout.width(18);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;。
药店管理系统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语言,设计一个自动化药店管理系统,以实现药品库存管理、销售记录跟踪、客户信息管理等功能。
二、系统设计1. 功能模块设计药品管理模块:包括药品信息录入、库存管理、药品查询等功能。
销售管理模块:记录销售信息、生成销售报表、统计销售数据等。
客户管理模块:客户信息录入、客户购买记录查询、客户分类等功能。
用户权限管理模块:管理员权限设置、用户登录验证等功能。
2. 数据结构设计药品信息结构体:包括药品名称、价格、库存量等字段。
销售记录结构体:包括销售日期、销售数量、销售金额等字段。
客户信息结构体:包括客户姓名、联系方式、购买记录等字段。
3. 界面设计使用C语言的控制台界面,通过菜单选择实现各项功能。
设计清晰简洁的界面,方便用户操作和查看信息。
三、系统实现1. 药品管理模块实现实现药品信息的录入和修改功能,保证库存数据的准确性。
提供药品查询功能,方便用户快速查找所需药品信息。
2. 销售管理模块实现记录每笔销售信息,包括销售日期、销售数量和金额。
自动生成销售报表,统计每日/每月销售情况,为经营决策提供数据支持。
3. 客户管理模块实现实现客户信息的录入和修改功能,建立客户档案。
查询客户购买记录,分析客户消费习惯,提高客户满意度。
4. 用户权限管理模块实现设定管理员权限,保护系统数据安全性。
用户登录验证,确保只有授权人员可以操作系统。
四、系统优化与扩展1. 性能优化对系统进行性能优化,提高系统响应速度和稳定性。
针对大规模数据处理场景进行优化,确保系统运行效率。
2. 功能扩展根据用户需求不断扩展系统功能,满足不同药店的管理需求。
引入智能算法,优化库存管理和销售预测功能。
五、总结与展望自动化药店管理系统基于C语言的设计实现,能够有效提升药店的管理效率和服务质量。
C语言 药品仓库管理系统设计

#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#include <windows.h>#pragma comment(lib, "winmm.lib")#define BACKSPACE 8#define PASS_MAXLEN 128#define NAME_MAXLEN 50struct cangku{char name[20]; //存放药品名称char shoop_name[20]; //存放药品厂商名称int num; //存放药品的编号float input_vale; //存放药品的进货价格float inout_vale; //存放药品的出售价格int number; //存放药品的数量};struct pass{char name[30]; //存放用户名char password[30]; //存放密码}word[11]={0,0};struct pass_1 //存放修改密码时的临时结构体{char name[30];char password[30];}xiu_pass[11]={0,0};struct cangku ck[50]; //定义结构体数组typedef struct cangku Cangku;int answer() //进入提示函数{char ch;printf("是否进入?\t");printf("确定按Y,否定按N 或任意键?(Y/N)\n");ch=getchar();getchar();if(ch=='Y'||ch=='y'){return 1;}else return 0;}int init_display () //登入界面初始化函数{system("color 1F");printf("\t***************************************************\n");printf("\t***************************************************\n");printf("\t***************************************************\n");printf("\t*******************欢迎使用本系统*****************\n");printf("\t***************************************************\n");printf("\t***************************************************\n");printf("\t***************************************************\n");printf("\t********************请登入本系统******************\n");printf("\t***************************************************\n");printf("\t***************************************************\n");printf("\t***************************************************\n");printf("\t 作者:jj \n");printf("\t***************************************************\n");printf("\t 电子信息工程12年级\n");printf("\t***************************************************\n");printf("\t 2010年4月10日\n");printf("\t***************************************************\n");printf("\n");return 0;}int Menu_select() //药品菜单函数{printf("按回车键进入仓库管理菜单\n");getchar();system("cls");system("color F0");printf(" *************************药库药品管理系统****************************\n");printf("*********************************************************************\n");printf(" * 1. 药品添加初始化录入*\n");printf("*********************************************************************\n");printf(" * 2. 药品的删除*\n");printf("*********************************************************************\n");printf(" * 3. 药品的修改*\n");printf("*********************************************************************\n");printf(" * 4. 药品的智能查找*\n");printf("*********************************************************************\n");printf(" * 5. 显示库存的所有药品信息*\n");printf("*********************************************************************\n");printf(" * 6. 再次添加药品*\n");printf("*********************************************************************\n");printf(" * 7. 用户密码管理*\n");printf("*********************************************************************\n");printf(" * 8. 药品出库入库*\n");printf("*********************************************************************\n");printf(" * 9. 退出*\n");printf("*********************************************************************\n");return 0;}int input(struct cangku t[]) //药品输入函数{int i,n;system("cls");system("color 6E");printf("\n请输入要添加的数目:\n");scanf("%d",&n);printf("开始输入药品信息:\n");for(i=0;i<n;i++){system("cls");printf("\n第%d个药品的编号:",i+1);scanf ("%d",&t[i].num);getchar();printf("第%d个药品的数量:",i+1);scanf ("%d",&t[i].number);getchar();printf("第%d个药品的名称:",i+1);scanf ("%s",t[i].name);getchar();printf("第%d个药品的厂商名称:",i+1);scanf ("%s",t[i].shoop_name);getchar();printf("第%d个药品的进价:",i+1);scanf ("%f",&t[i].input_vale);getchar();printf("第%d个药品的售价:",i+1);scanf ("%f",&t[i].inout_vale);getchar();}printf("写入成功\n");return (n);}void SaveRecord(Cangku t[],int n)//添加药品后保存文件函数{int i;FILE *fp;if((fp=fopen("yaoping.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp);}fclose(fp);}void SaveRecord_1(Cangku t[],int n)//修改药品后时保存文件函数{int i;FILE *fp;if((fp=fopen("yaoping.txt","w"))==NULL){printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp);}fclose(fp);}int LoadRecord(Cangku t[])//读取文件函数{int n=0;FILE *fp;if((fp=fopen("yaoping.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}rewind(fp);while(fread(&t[n],sizeof(struct cangku),1,fp)) n++;fclose(fp);return n;}void List(Cangku t[],int n)//显示药品函数{int i;system("color 7c");printf("****************************************************************************\n") ;printf(" 编号药品名称厂商名称数量进货价格售价\n");printf(" ----------------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%6d%15s%15s%10d%15.2f%15.2f\n",t[i].num,t[i].name, t[i].shoop_name, t[i].number,t[i].input_vale, t[i].inout_vale );}printf("****************************************************************************\n") ;printf ("\n");printf("\n");}int DeleteRecord(Cangku t[],int n)//删除药品函数{char s[20];char ch;int i,j;int flag=0;system("color 02");printf("请输入要删除药品的名称\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要删除的仓库信息如下:\n");printf("\n");printf("****************************************************************************\n") ;printf(" 编号药品名称厂商名称数量进货价格售价\n");printf(" ----------------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%6d%15s%15s%10d%15.2f%15.2f\n",t[i].num,t[i].name,t[i].shoop_name, t[i].number,t[i].input_vale, t[i].inout_vale );}printf("****************************************************************************\n") ;printf ("\n");printf("确定删除仓库信息吗?(Y/N)\n");ch=getchar();ch=getchar();if(ch=='Y'||ch=='y'){for(j=i;j<n-1;j++)t[j]=t[j+1];n--;i--;printf ("删除成功.\n");}}}if(flag==0){printf("要删除的药品不存在!!\n");}getchar();return n;}int xiugai_shoop(Cangku t[],int n)//修改药品函数{int i,flag=0;int s;char temp[20];char ch,ch1,ch2,ch3,ch4;system("color 1F");printf("请输入要修改的药品的编号\n");scanf("%d",&s);for(i=0;i<n;i++){if(s==t[i].num){strcpy(temp,t[i].name);flag=1;system("cls");printf("\n\n要修改的仓库信息如下:\n");printf("\n");printf("****************************************************************************\n") ;printf(" 编号药品名称厂商名称数量进货价格售价\n");printf(" ----------------------------------------------------------------------------\n");printf("%6d%15s%15s%10d%15.2f%15.2f\n",t[i].num,t[i].name, t[i].shoop_name, t[i].number,t[i].input_vale, t[i].inout_vale );printf("****************************************************************************\n") ;printf ("\n");printf("是否修改药品编号\t");printf("确定修改?(Y/N)\n");ch=getchar();ch=getchar();if(ch=='Y'||ch=='y'){printf("请输入药品%s的新的编号:",temp);scanf("%d",&t[i].num);printf("修改成功\n");}printf("是否修改药品名称\t");printf("确定修改?(Y/N)\n");ch1=getchar();ch1=getchar();if(ch1=='Y'||ch1=='y'){printf("请输入药品%s的新的名称:",temp); scanf("%s",t[i].name);printf("修改成功\n");}printf("是否修改药品的厂商名称\t");printf("确定修改?(Y/N)\n");ch2=getchar();ch2=getchar();if(ch2=='Y'||ch2=='y'){printf("请输入%s药品新的厂商名称:",temp); scanf("%s",t[i].shoop_name);printf("修改成功\n");}printf("是否修改药品的进货价格\t");printf("确定修改?(Y/N)\n");ch3=getchar();ch3=getchar();if(ch3=='Y'||ch3=='y'){printf("请输入%s药品新的进货价格:",temp); scanf("%f",&t[i].input_vale);printf("修改成功\n");}printf("是否修改药品的出售价格\t");printf("确定修改?(Y/N)\n");ch4=getchar();ch4=getchar();if(ch4=='Y'||ch4=='y'){printf("请输入%s药品新的出售价格:",temp); scanf("%f",&t[i].inout_vale);printf("修改成功\n");}getchar();return n;}}if(flag==0)printf("要修改的仓库不存在!!\n");printf("\n");printf("修改所有信息完毕\n");getchar();return n;}void SaveRecord_2(Cangku t[],int n)//保存文件函数{int i;FILE *fp;if((fp=fopen("yaoping.txt","w"))==NULL){printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp);}fclose(fp);}int find_Name(Cangku t[],int n)//药品按名称查找函数char s[20],ch;int i,flag=0;system("cls");system("color 5F");printf("请输入要查找药品的名称或者药品名的关键字:\n");scanf("%s",s);ch=getchar();for(i=0;i<n;i++){if(strstr(t[i].name,s)){flag=1;printf("\n\n要查找的仓库信息如下:\n");printf("\n");printf("****************************************************************************\n") ;printf(" 编号药品名称厂商名称数量进货价格售价\n");printf(" ----------------------------------------------------------------------------\n");printf("%6d%15s%15s%10d%15.2f%15.2f\n",t[i].num,t[i].name, t[i].shoop_name, t[i].number,t[i].input_vale, t[i].inout_vale );printf("****************************************************************************\n") ;printf ("\n");}}if(flag==0)printf("要查找的仓库不存在!!\n");printf("\n");return 0;}int find_num(Cangku t[],int n) //药品按编号查找函数{int num;int i,flag=0;system("cls");system("color 7c");printf("请输入要查找药品的编号:\n");scanf("%d",&num);getchar();for(i=0;i<n;i++){if(t[i].num == num){flag=1;printf("\n\n要查找的仓库信息如下:\n");printf("\n");printf("****************************************************************************\n") ;printf(" 编号药品名称厂商名称数量进货价格售价\n");printf(" ----------------------------------------------------------------------------\n");printf("%6d%15s%15s%10d%15.2f%15.2f\n",t[i].num,t[i].name, t[i].shoop_name, t[i].number,t[i].input_vale, t[i].inout_vale );printf("****************************************************************************\n") ;printf ("\n");}}if(flag==0)printf("要查找的仓库不存在!!\n");printf("\n");return 0;int Add_shoop(Cangku t[],int n) //添加药品函数{int i,m;system("cls");system("color 7D");printf("\n请输入再增加的药品数量:\n");scanf("%d",&m);getchar();printf("开始追加药品\n");for(i=n;i<n+m;i++){system("cls");printf("\n第%d个药品的编号:",i+1);scanf ("%d",&t[i].num);getchar();printf("第%d个药品的名称:",i+1);scanf ("%s",t[i].name);getchar();printf("第%d个药品的厂商名称:",i+1);scanf ("%s",t[i].shoop_name);getchar();printf("第%d个药品的进价:",i+1);scanf ("%f",&t[i].input_vale);getchar();printf("第%d个药品的售价:",i+1);scanf ("%f",&t[i].inout_vale);getchar();}return (n+m);}int write_mima(struct pass *pass_word)//注册用户名函数{FILE *fp;char pass_1[30]={0};int i=0;printf("请注册的新的用户名:");gets(pass_word[10].name);while(i<3){i++;printf("请输入密码:");gets(pass_word[10].password);printf("请再次输入密码:");gets(pass_1);if(strcmp(pass_1,pass_word[10].password) == 0)break;strcmp(pass_word[10].password,"0");strcmp(pass_1,"0");printf("密码前后不一致\n");printf("\n");}if((fp=fopen("usr_name.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}//rewind(fp);fwrite(&pass_word[10],sizeof(struct pass),1,fp) ;fclose(fp);strcpy(pass_word[10].name,"0");strcpy(pass_word[10].password,"0");return 0;}int read_mima(struct pass *pass_word) //读取密码函数{FILE *fp_3;int temp=0;if((fp_3=fopen("usr_name.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}rewind(fp_3);while(fread(&pass_word[temp],sizeof(struct pass),1,fp_3)){//printf("%s\n",pass_word[temp].name);//printf("%s\n",pass_word[temp].password);temp++;}fclose(fp_3);return temp;}int read_xiugai_mima(struct pass_1 *pass_word) //修改时读取密码{FILE *fp_3;int temp=0;if((fp_3=fopen("usr_name.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}rewind(fp_3);while(fread(&pass_word[temp],sizeof(struct pass),1,fp_3)){printf("当前的用户名有:\t");printf("%s\n",pass_word[temp].name);//printf("%s\n",pass_word[temp].password);temp++;}fclose(fp_3);return temp;}/***********************Purpose:* 从标准输入接受一个密码字符串,并且回显**Entry:* password - 密码字符串指针* pass_maxlen - 字符串最大长度*Exit:* 返回接受的密码字符串长度**********************/int get_password(char *password, unsigned short pass_maxlen){unsigned short i = 0;char letter = '\0';while((i<PASS_MAXLEN-1)&&(letter!='\r')) //如果没有按回车并且达到最大长度{letter = getch();if(letter == BACKSPACE) //如果是退格符,表示要删除前面输入的一个字符{if(i>0)//如果以前输入自符{password[--i] = '\0'; //从缓冲区中删除最有一个字符putchar(BACKSPACE); //光标位置前移一个字符位置putchar(' '); //将要删除的字符(回显的*)从屏幕中置为空白putchar(BACKSPACE); //光标位置前移一个字符位置}else{putchar(7); //响铃}}else if(letter != '\r') //如果按下回车{password[i++] = letter;putchar('*');}}password[i] = '\0'; //设置字符串结束标志return i;}int xiu_gai_mima(struct pass_1 *pass_word,int num) //修改密码函数{int temp=0;char pass[30]={0};char pass_1[30]={0};char usr[30]={0};char usr_password[30]={0};printf("请输入要修改的用户名:");gets(usr);printf("请输入用户名的原始密码:");gets(usr_password);printf("\n");while(temp<=num){if(strcmp(pass_word[temp].name,usr) == 0){if(strcmp(pass_word[temp].password,usr_password) == 0){while(1){printf("请输入新的密码:");get_password(pass, PASS_MAXLEN);//gets(pass);printf("\n");printf("请再次输入新的密码:");get_password(pass_1, PASS_MAXLEN);//gets(pass_1);printf("\n");if(strcmp(pass_1,pass) == 0){strcpy(pass_word[temp].password,pass);printf("修改成功\n");printf("\n");break ;}else printf("新的密码不一致,修改失败\n");}break;}printf("原始密码不匹配,修改失败\n");}temp++;if(temp>num) printf("用户名不存在\n");}return temp;}int deleat_mima(struct pass_1 *pass_word,int num) //删除用户名函数{int temp=0,j=0;char pass[30]={0};char usr[30]={0};char usr_password[30]={0};printf("请输入要删除的用户名:");gets(usr);printf("请输入用户名的原始密码:");gets(usr_password);printf("\n");while(temp<=num){if(strcmp(pass_word[temp].name,usr) == 0){if(strcmp(pass_word[temp].password,usr_password) == 0){for(j=temp;j<num-1;j++){pass_word[j] = pass_word[j+1];}printf("删除成功\n");num--;printf("\n");return num ;}}temp++;if(temp>num) printf("用户名不存在,或原始密码匹配错误\n");}return num;}void Save_mima(struct pass_1 t[],int n)//保存修改密码{int i;FILE *fp;if((fp=fopen("usr_name.txt","w"))==NULL){printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct pass_1),1,fp);}fclose(fp);}int chuku_shoop(Cangku t[],int n)//出库药品函数{int i,flag=0,j=0;int num=0,num_1=0;char name_3[30];char ch;system("color 1F");printf("请输入要出库的药品的名称\n");scanf("%s",&name_3);getchar();for(i=0;i<n;i++){if(strcmp(t[i].name,name_3) == 0){flag=1;system("cls");printf("\n\n要出库的仓库信息如下:\n");printf("\n");printf("****************************************************************************\n") ;printf(" 编号药品名称厂商名称数量进货价格售价\n");printf(" ----------------------------------------------------------------------------\n");printf("%6d%15s%15s%10d%15.2f%15.2f\n",t[i].num,t[i].name, t[i].shoop_name, t[i].number,t[i].input_vale, t[i].inout_vale );printf("****************************************************************************\n") ;printf ("\n");printf("是否确定出库\t");while(j<3){j++;printf("确定按Y ?(Y/N)\n");ch=getchar();getchar();if(ch == 'n'|| ch =='N') return n;if(ch=='Y'||ch=='y'){printf("请输入出库的数量\n");scanf("%d",&num);getchar();num_1=t[i].number;if((num_1-num)>0){t[i].number=(t[i].number-num);printf("出库成功\n");return n;}else{printf("出库失败\n");getchar();return n;}}}return n;}}if(flag==0)printf("要出库的药品不存在!!\n");printf("\n");getchar();return n;}int ruku_shoop(Cangku t[],int n)//入库药品函数{int i,flag=0,j=0;int num=0,num_1=0;char name_3[30];char ch;system("color 1F");printf("请输入要入库的药品的名称\n");scanf("%s",&name_3);getchar();for(i=0;i<n;i++){if(strcmp(t[i].name,name_3) == 0){flag=1;system("cls");printf("\n\n要入库的仓库信息如下:\n");printf("\n");printf("****************************************************************************\n") ;printf(" 编号药品名称厂商名称数量进货价格售价\n");printf(" ----------------------------------------------------------------------------\n");printf("%6d%15s%15s%10d%15.2f%15.2f\n",t[i].num,t[i].name, t[i].shoop_name, t[i].number,t[i].input_vale, t[i].inout_vale );printf("****************************************************************************\n") ;printf ("\n");printf("是否确定入库\t");while(j<3){j++;printf("确定按Y ?(Y/N)\n");ch=getchar();getchar();if(ch == 'n'|| ch =='N') return n;if(ch=='Y'||ch=='y'){printf("请输入入库的数量\n");scanf("%d",&num);getchar();num_1=t[i].number;if((num_1+num)<65535){t[i].number=(t[i].number+num);printf("入库成功\n");return n;}else{printf("入库失败\n");getchar();return n;}}}return n;}if(flag==0)printf("要入库的药品不存在!!\n");printf("\n");getchar();return n;}int menu()//操作菜单函数{int i=0,j=0,cha;int temp_3=3,temp_4=1;int xx=0,yy=0;int length=0;int len=0;int password=0;int sw=0;char choice[256];while (1){Menu_select();printf("\n");printf("请选择操作\n");fgets(choice, 256, stdin);switch(choice[0]){case '1':temp_3=answer();if(temp_3 == 1){length=input(ck);SaveRecord(ck,length);}break;case '5':temp_3=answer();if(temp_3 == 1){length=LoadRecord(ck);system("cls");List(ck,length);}break;case '2':temp_3=answer();if(temp_3 == 1){system("cls");length=LoadRecord(ck);List(ck,length);xx=length;length=DeleteRecord(ck,length);if(xx!=length)SaveRecord_1(ck,length);}break;case '3':temp_3=answer();if(temp_3 == 1){system("cls");length=LoadRecord(ck);List(ck,length);length=xiugai_shoop(ck,length);SaveRecord_2(ck,length);}break;case '4':temp_3=answer();if(temp_3 == 1){length=LoadRecord(ck);printf("1. 编号查询 2.名称查询\n ");scanf("%d",&cha);getchar();if(cha == 1) find_num(ck,length);else if(cha == 2) find_Name(ck,length);}break;case '6':temp_3=answer();if(temp_3 == 1){length=LoadRecord(ck);yy=length;length=Add_shoop(ck,length);if(yy!=length)SaveRecord_1(ck,length);printf("添加成功\n");}break;case '7':temp_3=answer();if(temp_3 == 1){system("cls");printf("1 修改密码 2 删除用户账号\n");scanf("%d",&password);getchar();if(password == 1){len=read_xiugai_mima(xiu_pass);xiu_gai_mima(xiu_pass,len);Save_mima(xiu_pass,len);}if(password ==2){len=read_xiugai_mima(xiu_pass);len=deleat_mima(xiu_pass,len);Save_mima(xiu_pass,len);}}break;case '8':temp_3=answer();if(temp_3 == 1){system("cls");printf("1 入库\t 2 出库\n");scanf("%d",&sw);length=LoadRecord(ck);List(ck,length);if(sw == 2)chuku_shoop(ck,length);else if(sw == 1)ruku_shoop(ck,length);SaveRecord_1(ck,length);}break;case '9':temp_3=answer();if(temp_3 == 1){return 0;}break;default:system("cls");printf ("不要调皮重新选择\n");printf ("\n");break;}}}int main()//主函数{int i=0,j=0;int temp_3=3,temp_4=1,num=0,num_1=0;int xx=0,yy=0;int length=0;int num_3=0;char mi;char n[30]={0};char p[PASS_MAXLEN];init_display();while(num_3<5){num_3++;printf("1 登陆系统:\t\t 2 注册新的管理账号\n ");mi=getchar();getchar();if(mi == '2')temp_4=write_mima(word);if(temp_4 == 0){temp_4=1;printf("注册成功帐号成功\n");system("cls");printf("\n");printf("\n");mi=1;}if(mi =='1'){num=read_mima(word);if(num == 0){printf("不存在账号,请注册\n");return 0;}printf("目前本系统有%d个用户\n",num);printf("\n");printf("请登录系统\n");printf("\n");printf("请输入用户名:\t ");gets(n);printf("请输入密码: ");get_password(p, PASS_MAXLEN);printf("\n");system("cls");while(num_1 < num){if( (strcmp(word[num_1].name,n) == 0) && (strcmp(word[num_1].password,p) == 0) ){printf("欢迎使用药物管理系统\n");menu();return 0;}num_1++;}printf("用户名错误or 密码错误or 账号不存在!!!,请重新输入\n");printf("你还有两次机会\n");printf("\n");for(i=0,num_1=0; i<2 ;i++){printf("1 登陆系统:\t\t \n ");printf("请输入用户名:\t ");gets(n);printf("请输入密码: ");get_password(p, PASS_MAXLEN);printf("\n");system("cls");while(num_1 < num){if( (strcmp(word[num_1].name,n) == 0) && (strcmp(word[num_1].password,p) == 0) ){printf("欢迎使用药物管理系统\n");mciSendString("open \"C:\\Users\\Administrator\\Desktop\\char\\jun\\可惜没如果.mp3\" alias file", NULL, 0, NULL);mciSendString("play file", NULL, 0, NULL);menu();getchar();return 0;}num_1++;}num_1=0;j++;if(j == 3){printf("系统已锁定\n");return 0;}printf("用户名错误or 密码错误or 账号不存在!!!,请重新输入\n");printf("你还有%d次机会\n",(2-j));printf("\n");printf("\n");}}}return 0;}。
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语言编程的掌握程度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XX大学信息科学与工程学院课程设计报告书课题:药品信息管理系统姓名:专业:电子信息工程年级: 2 0 1 3 级指导老师:时间:目录引言------------------------------------------------------------1一、系统概述------------------------------------------------2 二、需求分析------------------------------------------------2 1、系统需求-------------------------------------------22、开发环境-------------------------------------------3三、详细设计-----------------------------------------------4 四、所遇到的问题和分析解决--------------------------10五、系统特色及关键技术--------------------------------11六、结论及心得体会--------------------------------------11七、附录(源代码)--------------------------------------12参考文献-----------------------------------------------------17引言通过本课程设计,使自己更加系统地理解和掌握数据结构的基本概念;能自如地根据实际要求,设计相应的数据结构,并运用C或C++语言实现所设计的算法,编写较大型的程序,分析和解决实际应用问题,进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。
掌握C语言或C++语言独立的编写、调试应用程序和进行其它相关设计的技能。
此项目主要是考察我们对结构体、数组、文件等具体操作,以及对C语言语法的掌握,所以做成此项目要求比较高的设计要求,对整体有很熟悉的概括,同时调试过程也是很重要的,对程序界面的要求也比较高,要设计的合理同时也要美观一点,能够人性化的描述清楚你的各个功能,一目了然,对其他用户使用本程序简单易懂,这才能成本程序或本系统是成功的。
这个设计能够练习我们的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,学会调试一个比较长的程序的基本方法,同时掌握书写程序设计开发文档的能力。
一、系统概述1、课程设计应完成的工作(1)编写算法(2)算法测试,并有具体的测试结果和结果分析(3)撰写课程报告,内容包括:①封面②目录③课程设计报告正文④使用说明⑤参考文献2、总体设计工作(包含几大功能模块)(1)按药品编号查询(2)按药品名称查询(3)按药品价格查询(4)按数据结构降序(冒泡)排序(5)按总分降序(选择)排序(6)退出二、需求分析1、系统需求(1)问题描述:该系统实现对若干个大药品的种类进行管理。
至少包括以下信息:药品编号、名称、价格、功效。
(2)功能要求:1.使用中文菜单,界面设计和用户输入输出要人性化些;2.具有数据删除功能,能最终从文件中删除;3.排序功能,根据自己设计的数据结构,设计排序算法4.具有多种查询(如按编号查询、按名称查询、按价格查询等)及输出功能;5.药品信息的修改(比如修改药品名称,修改药品的编号)(3)说明:①功能各方面越完善越好②自定义的数据结构可以使用数组,链表,树等,然后根据不同的数据结构,设计不同的排序,查找算法。
其中,排序算法至少有两种,可以使用多种数据结构来存放数据,然后在其上使用不同的排序算法。
③若用数组,必须动态分配空间。
(4)、输入输出的形式本系统是一个药品成绩管理系统,采用VC++ 编译器作为开发环境,这个环境是我们在学习C++的平台。
输入数据类型主要是char、int、float等数据类型,输入内容包括:药品编号、药品名称、药品价格、药品功效。
用户在输入药品数据时要保证输入数据格式的正确性,系统不会自动检测输入的数据是否正确,输出形式与输入形式类似,根据需要可以选择显示输入的各项内容。
显示内容包括:药品编号、药品名称、药品价格、药品功效。
2、开发环境Visual C++不仅仅是是一个C++编译器,而是一个基于Windows操作系统的可视化集成开发环境IDE,这种环境开发出来的软件稳定性好、可移植性强,可以编制各种各样的Windows应用程序。
三、详细设计1、大概设计模块(1)先编入系统所需的库函数,从而使程序可运行。
#include <>#include <>#include <>#include <>#include <>dellag!=1){k=i;break;}for(i=k;i<k+N;i++){stu[i].flag=1;printf("请输入第%d个药品的编号:",i);scanf("%s",stu[i-1].bnum);printf("请输入第%d个药品的名称:",i);scanf("%s",stu[i-1].name);printf("请输入第%d个药品的价格:",i);scanf("%s",stu[i-1].price);printf("请输入第%d个药品的功效:",i);scanf("%s",stu[i-1].function);}}void del() num)==0){for(j=i;j<=M;j++)stu[j]=stu[j+1];printf("删除成功!\n");for(int n=M;;n--)if(stu[n].flag==1){stu[n].flag=0;break;}break;}if(i==M)printf("无此编号!\n");}void search() num)==0){k=i;break;}printf("编号:%s\t名称:%s\t价格:%s\t功效:%s\n",stu[k].bnum,stu[k].name,stu[k].price,stu[k].function);void traverse() lag==0){k=i-1;break;}for(i=0;i<k;i++){printf("编号:%s\t名称:%s\t价格:%s\t功效:%s\n",stu[i].bnum,stu[i].name,stu[i].price,stu[i].function);}}2、设计思想(1)确定语言算法由于之前都没有做过类似的设计,所以一时间不能够确定到底使用何种语言来设计本系统,所以在网上看了一些其他人设计的程序,链表的、数组的,C++的,各种各样的,也不知如何选择,但是仔细地看了其中的设计思想,最终还是用C和指针数组的来做,一是觉得本人对链表掌握的不是很熟练,那么在设计过程中容易产生不能理解的错误,耽误时间,二是想运用C,可以巩固一下所学的数据结构的知识,之前做实验的时候一直用C来做,都没怎么用所学的知识,这时候想练练。
就这样确定了整体的结构算法。
(2)确定程序主要功能模块这个就比较简单了,主要是根据系统设计的说明及要求来设计,从而设计了十大功能模块,有文件操作,有系统维护功能,排序和统计功能,有输入输出等基本功能,比较人性化,添加了较多的提示语。
这个程序的主要功能时输入药品的功效,名称,价格和编号。
(3)系统结构体的设计struct student{char bnum[12]; lag==1){stu[n].flag=0;break;}break;中的for(j=i;j<=M;j++) stu[j]=stu[j+1];才使删除操作可以正常实现了。
经过几天多次的程序修改,程序终于可以正确运行了,虽然有些疲惫,但还是有很多的收获的,像计算机组成原理的课设一样,让我们我又一次巩固了所学到的知识,之前的学习只是停留在理论基础上,现在通过我们自己动手操作试验后,才是真正的理解及体会。
C也学了近一年,有很多知识都是似懂非懂,通过平时上机操作,也了解了一些,但让我们有了更深的理解和更好的认识,则是在这次的课设上,之前的困惑也通过这次的课设解决了一些,虽然还是不能够全面的理解,但是有进步就很高兴。
在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输进去之后,并编译让其运行,发现通过不了,再来检查出问题,是很费费力的事情,因此分析和规划代码是很重要的,最重要的是要把逻辑结构写好,这样就不会出现大问题,写代码就要先找出核心的内容,用多种方法来实现核心部分,这样可以尽可能的避免发现逻辑或编译不支持的错误。
五、附录(源代码)#include<>#include<>#include<>#define M 100struct student{char bnum[12];char name[12];char price[8];char function[100];int flag;}stu[M];void add();void del();void search();void traverse();int main(){system("color 3F");int c;printf("\t\t\t*****************************\n\n");printf("\t\t\t 欢迎使用药品信息管理系统!\n\n");printf("\t\t\t*****************************\n\n");do{printf("\t\t\t 1--->输入信息\n");printf("\t\t\t 2--->删除信息\n");printf("\t\t\t 3--->查找信息\n");printf("\t\t\t 4--->浏览信息\n");printf("\t\t\t 5--->退出系统\n");printf("请选择您的操作~~\n");scanf("%d",&c);switch(c){case 1:add();break;case 2:del();break;case 3:search();break;case 4:traverse();break;case 5:break;default:printf("错误选择,请重选!\n");break;}}while(c!=5);return 0;}void add(){int i=0,k,N;printf("\t欢迎进入药品信息的录入!\n");printf("\t请输入要录入信息的药品的数量!\n");scanf("%d",&N);for(i=1;i<=M;i++)if(stu[i].flag!=1){k=i;break;}for(i=k;i<k+N;i++){stu[i].flag=1;printf("请输入第%d个药品的编号:",i);scanf("%s",stu[i-1].bnum);printf("请输入第%d个药品的名称:",i);scanf("%s",stu[i-1].name);printf("请输入第%d个药品的价格:",i);scanf("%s",stu[i-1].price);printf("请输入第%d个药品的功效:",i);scanf("%s",stu[i-1].function);}}void del(){int i,j;char str[12];printf("\t欢迎进入药品信息的删除!\n");printf("请输入要删除信息的编号:");scanf("%s",str);for(i=0;i<=M;i++)if(strcmp(str,stu[i].bnum)==0) {for(j=i;j<=M;j++)stu[j]=stu[j+1];printf("删除成功!\n");for(int n=M;;n--)if(stu[n].flag==1){stu[n].flag=0;break;}break;}if(i==M)printf("无此编号!\n");}void search(){char str[10];int k,i;printf("请输入要查找药品的编号:");scanf("%s",str);for(i=0;i<M;i++)if(strcmp(str,stu[i].bnum)==0){k=i;break;}printf("编号:%s\t名称:%s\t价格:%s\t功效:%s\n",stu[k].bnum,stu[k].name,stu[k].price,stu[k].function); }void traverse(){int k,i;for(i=1;i<=M;i++)if(stu[i].flag==0){k=i-1;break;}for(i=0;i<k;i++){printf("编号:%s\t名称:%s\t价格:%s\t功效:%s\n",stu[i].bnum,stu[i].name,stu[i].price,stu[i].function);}}参考文献:[1] 谭浩强. 《C程序设计》(第四版) 清华大学出版社 2010[2] 谭浩强. 《C++程序设计》(第二版) 清华大学出版社[3] 数据结构(C语言版) 清华大学出版社。