c語(yǔ)言課設(shè)——藥品管理系統(tǒng)-創(chuàng)新互聯(lián)

運(yùn)用結(jié)構(gòu)體鏈表指針等寫出實(shí)現(xiàn)增刪改查統(tǒng)計(jì)文件等基本操作,代碼如下

成都創(chuàng)新互聯(lián)專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國(guó)電信/網(wǎng)通/移動(dòng)機(jī)房,成都天府聯(lián)通服務(wù)器托管服務(wù)有保障!
#include#include#include#include//定義一個(gè)藥品
typedef struct _Medicine
{
	char name[20];//藥品名
	int num;//藥品編號(hào)
	int price;//藥品價(jià)格 
	int stock;//藥品庫(kù)存數(shù)量
	int sell;//藥品銷量 
 } Medicine;
 
 //節(jié)點(diǎn)
typedef struct _Node
{
	Medicine med;
	struct _Node* pNext;//指向下一個(gè)結(jié)點(diǎn)的指針 
}Node; 
 
//頭結(jié)點(diǎn)
Node *g_pHead=NULL;//頭結(jié)點(diǎn) 

//歡迎
void Welcome(); 
//錄入藥品信息
void InputMedicine(); 
//打印藥品信息
void PrintMedicine(); 
//保存藥品信息
void SaveMedicine(); 
//讀取藥品信息
void ReadMedicine();
//查找藥品信息
Node* FindMedicine();
//修改藥品信息
void ModifyMedcine();
//刪除藥品信息
void DeleteMedicine();
//統(tǒng)計(jì)所有藥品數(shù)量 
int main()
{
	while(1)
	{
		Welcome();//歡迎
		
		//從鍵盤接收一個(gè)字符
		char ch=getchar(); 
		
		switch(ch)
		{
		case '1'://錄入藥品信息
			InputMedicine();
			break; 
		case '2'://打印藥品信息
			PrintMedicine();
			break;
		case '3'://保存藥品信息
			SaveMedicine(); 
			system("pause");//暫停 
			system("cls");//清屏 
			break;
		case '4'://讀取藥品信息
			ReadMedicine();
			break;
		case '5'://統(tǒng)計(jì)所有藥品數(shù)量 
			printf("藥品總數(shù)為:%d\n",CountMedicine());
			system("pause");//暫停 
			system("cls");//清屏 
			break;
		case '6'://查找藥品信息
		{
			Node* p = FindMedicine();
			if(p!=NULL)
			{
				printf("藥品編號(hào):%d\t名稱:%s\t價(jià)格:%d\t庫(kù)存:%d\t銷量:%d\n",p->med.num,p->med.name,p->med.price,p->med.stock,p->med.sell);
			}
			else
			{
				printf("沒(méi)有找到該藥品。\n");
			}
			system("pause");//暫停 
			system("cls");//清屏 
			break;
		}
		case '7'://修改藥品信息
			ModifyMedcine(); 
			break;
		case '8'://刪除藥品信息
			DeleteMedicine();
			break;
		case '0'://退出系統(tǒng)
			printf("再見,歡迎下次使用!\n");
			return 0;
		default:
			printf("您的輸入有誤,請(qǐng)重新輸入!\n");
			system("pause");//暫停 
			system("cls");//清屏
			break; 
		}
	} 
		
	return 0;
}

//歡迎
void Welcome()
{
	printf("***********************************************\n");
	printf("*               請(qǐng)選擇功能列表                *\n");
	printf("***********************************************\n");
	printf("*               1.錄入藥品信息                *\n");
	printf("*               2.打印藥品信息                *\n");
	printf("*               3.保存藥品信息                *\n");
	printf("*               4.讀取藥品信息                *\n");
	printf("*               5.統(tǒng)計(jì)所有藥品數(shù)              *\n");
	printf("*               6.查找藥品信息                *\n");
	printf("*               7.修改藥品信息                *\n");
	printf("*               8.刪除藥品信息                *\n");
	printf("*               0.退出系統(tǒng)                    *\n"); 
	printf("***********************************************\n");
 } 
 
 //錄入藥品信息 
 void InputMedicine()
 {
	//創(chuàng)建一個(gè)新節(jié)點(diǎn)
	Node* pNewNode=(Node*)malloc(sizeof(Node));
	pNewNode->pNext=NULL;
	
	//頭插法
	if(g_pHead==NULL)
	{
		g_pHead=pNewNode;
	 } 
	 else
	 {
	 	pNewNode->pNext=g_pHead;
	 	g_pHead=pNewNode;
	 }
	 
	printf("請(qǐng)輸入藥品的名稱:\n");
	scanf("%s",pNewNode->med.name);
	printf("請(qǐng)輸入藥品的編號(hào):\n");
	scanf("%d",&pNewNode->med.num);
	printf("請(qǐng)輸入藥品的價(jià)格:\n");
	scanf("%d",&pNewNode->med.price);
	printf("請(qǐng)輸入藥品的庫(kù)存:\n");
	scanf("%d",&pNewNode->med.stock); 
	printf("請(qǐng)輸入藥品的銷量:\n");
	scanf("%d",&pNewNode->med.sell);
	
	printf("藥品信息錄入成功.\n");
	system("pause");//暫停 
	system("cls");//清屏 
 }
 
 //打印藥品信息 
 void PrintMedicine()
 {
 	system("cls");//清屏
	printf("***********************************************\n");
	printf("*          歡迎使用藥品管理系統(tǒng)               *\n");
	printf("***********************************************\n");
	printf("*  編號(hào)  *  名稱  *  價(jià)格  *  庫(kù)存  *  銷量  * \n"); 
	printf("***********************************************\n");
	
	//遍歷鏈表
	Node* p=g_pHead;
	while(p!=NULL)
	{
		printf("*  %d  *  %s  *  %d  *  %d  *  %d  *\n",p->med.num,p->med.name,p->med.price,p->med.stock,p->med.sell);
		p=p->pNext;
	 } 
	printf("***********************************************\n");
	system("pause");//暫停 
 }
 
 //保存藥品信息 
 void SaveMedicine()
 {
 	//打開文件
	FILE* fp = fopen("D:\\shiyan.txt","w");
	 
	if (fp==NULL)
	{
		printf("打開文件失敗。\n");
	 	return;
	} 
	  
	//遍歷鏈表 
	Node* p=g_pHead;
	while(p!=NULL)
	{
		fwrite(&p->med,1,sizeof(Medicine),fp);
		p=p->pNext;
	 } 
	 
	//關(guān)閉文件
	fclose(fp);
	printf("\n數(shù)據(jù)保存成功\n");
 }
 
 //讀取藥品信息 
 void ReadMedicine()
 { 
 	//打開文件
	FILE *fp=fopen("D:\\shiyan.txt","r");
	if(fp==NULL)
	{
		printf("打開文件失敗。\n");
		return;
	 } 
	 
	 //讀文件
	 Medicine med;
	 while (fread(&med,1,sizeof(Medicine),fp))
	 {
	 	//創(chuàng)建一個(gè)新節(jié)點(diǎn)
		Node* pNewNode = (Node*)malloc(sizeof(Node));
		pNewNode->pNext=NULL; 
		
		memcpy(pNewNode,&med,sizeof(Medicine));
		
		//頭插法
		if(g_pHead==NULL)
		{
			g_pHead=pNewNode;
	 	}	 
	 	else
	 	{
	 		pNewNode->pNext=g_pHead;
	 		g_pHead=pNewNode;
	 	}
	} 
	
	//關(guān)閉文件
	fclose(fp);
	printf("加載數(shù)據(jù)成功。\n"); 
	system("pause");//暫停 
	system("cls");//清屏 
 } 
 
 //刪除藥品信息 
void DeleteMedicine()
{
	int nMedNum;
 	printf("請(qǐng)輸入要?jiǎng)h除的藥品的編號(hào):\n");
 	
 	scanf("%d",&nMedNum);
 	
 	Node* p1,*p2;
 	
 	//判斷是不是頭節(jié)點(diǎn)
	 if (g_pHead->med.num == nMedNum)
	 {
	 	p1=g_pHead;
	 	g_pHead=g_pHead->pNext;
	 	free(p1);
	 	return;
	  } 
	  
	  //不是頭節(jié)點(diǎn)
	  Node* p=g_pHead;
	  while (p->pNext != NULL)
	  {
	  	if(p->pNext->med.num == nMedNum)
	  	{
	  		p2=p->pNext;
	  		p->pNext=p->pNext->pNext;
	  		free(p2);
	  		
	  		system("pause");//暫停 
	   		system("cls");//清屏 
	  		return;
		  }
		  
		  p=p->pNext;
		  
		  if(p->pNext==NULL)
		  {
		  	break;
		  }
	   } 
	   
	   if(p->pNext==NULL)
	   {
	   	printf("沒(méi)有找到該藥品。\n");
	   }
	   
	   system("pause");//暫停 
	   system("cls");//清屏 
}

//查找藥品信息 
 Node* FindMedicine()
 {
 	int nMedNum;
 	char ypName[20];
 	printf("請(qǐng)輸入要查找的藥品的編號(hào):\n");
 	scanf("%d",&nMedNum);
 	
 	printf("請(qǐng)輸入要查找的藥品的名稱:\n");
 	scanf("%s", ypName);
 	
 	Node* p =g_pHead;
 	while(p!=NULL)
 	{
 		//strcmp字符串比較函數(shù)
		 if (p->med.num == nMedNum || 0 == strcmp(p->med.name, ypName))
		 {
		 	return p;
		  } 
		  p=p->pNext;
	 }
 	
 	//沒(méi)有找到 
 	return NULL; 
 }
 
 //修改藥品信息 
 void ModifyMedcine()
 {
 	int nMedNum;
 	printf("請(qǐng)輸入需要修改的藥品信息的編號(hào):\n");
	scanf("%d",&nMedNum); 
	
	Node* p =g_pHead;
 	while(p!=NULL)
 	{
 		//strcmp字符串比較函數(shù)
		 if (p->med.num == nMedNum)
		 {
		 	printf("請(qǐng)輸入要修改的藥品名稱 價(jià)格 庫(kù)存 銷量:\n");
			scanf("%s %d %d %d",p->med.name,&p->med.price,&p->med.stock,&p->med.sell);
			printf("修改成功。\n");
			break; 
		  } 
		  p=p->pNext;
	 }
	 
	 if (p==NULL)
	 {
	 	printf("沒(méi)有找到該藥品信息。\n");
	 }
	 
	system("pause");//暫停 
	system("cls");//清屏
  } 
  
//統(tǒng)計(jì)所有藥品數(shù)量 
int CountMedicine()
{
	int nCount=0;//藥品總數(shù)
	
	//遍歷
	Node* p=g_pHead;
	while (p!=NULL)
	{
		nCount++;
		p=p->pNext;
	 } 
	 
	 return nCount;
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享題目:c語(yǔ)言課設(shè)——藥品管理系統(tǒng)-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://muchs.cn/article16/dpgcdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、軟件開發(fā)、ChatGPT、網(wǎng)站建設(shè)網(wǎng)站制作、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)