⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 基于sip协议得系统分析
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>

#include "DB/db.h"
//#include "network/net.h"

void user_operator(DB *db)
{	
	int choice;
	int i,max,cur;
	int index;
	int result;
/*	sockaddr_in srvaddr;
	SOCKET clientsocket;
	struct timeval tmval;
	tmval.tv_sec=20;
	tmval.tv_usec=0;
	char srvip[16]="202.118.1.98";
	int srvport=80;
	fd_set rfd;
	net_AddrSrvInit(srvaddr,srvip,srvport);
*/	while(true)
	{
		printf("***********--Main  Menu--***************\n");
		printf("\t0:  Quit \n");
		printf("\t1:  Set Max Record \n");
		printf("\t2:  Upload a Message \n");
		printf("\t3:  Display a Message \n");
		printf("\t4:  Display all Message \n");
		printf("\t5:  Modify a Message \n");
		printf("\t6:  Delete a Message \n");
		printf("\t7:  Delete All Message \n");
		printf("\t8:  Config Server's IP and Port \n");
		printf("***************************************\n");
		printf("please input your choice:");

		scanf("%d",&choice);
		getchar();		
		switch(choice)
		{
		case 0:  db_Close(db);
			     exit(0);
		case 1: /*reset max record number,the old record may still exist*/  
				DB_Rec *temp_db_rec; 
				cur=db->max_rec_num;
				max=MAX_RECORD_NUM;			   
				printf("please input the max record number:");
				scanf("%d",&i);
				while(i<=cur||i>=max)
				{
				  printf("sorry your input should between %d~~~%d,try again:",cur,max);
				  scanf("%d",&i);
				}
				 db->max_rec_num=i;
				 db->free_block_num=db->max_rec_num-db->cur_rec_num;
				 printf("the db's max record is %d\n",db->max_rec_num);
				 db->pDB_Rec=(DB_Rec*)realloc(db->pDB_Rec,db->max_rec_num*DB_REC_SIZE);	
			
				 memset((char *)(db->pDB_Rec)+cur*DB_REC_SIZE,0,(db->max_rec_num-cur)*DB_REC_SIZE);
				 db_SetHeader(db);				 
				 break;
		case 2: /*Upload  message*/
				char msg[MAX_MSG];
				printf("plesase input a message:");
				scanf("%s",msg);
				while( false==db_CompareRecord(db,msg)) /*judge whether the record is exist in db*/
				{
					printf("the record is exist,can't upload !\n");
					printf("input again:");
					scanf("%s",msg);
				}		
			/*
			    if(-1==(clientsocket==net_SocketInit()))
				{
					printf("Socket init error!\n");
		            break;
				}
				if(false==net_ConnectServer(clientsocket,srvaddr))
				{
					break;
				}

				if( false==net_UploadMessage(clientsocket,msg,srvip,srvport))
				{
					break;
				}
				FD_ZERO(&rfd);
				FD_SET(clientsocket,&rfd);				
				result=select(NULL, &rfd, NULL,NULL, &tmval ) ;
				if(result<0)
				{

					printf("select error !\n");
					net_CloseSocket(clientsocket);
					break;
				}
				if(result==0)
				{
					printf("time out!\n");
					net_CloseSocket(clientsocket);
					break;
				}
				if( false==net_RecvResponse(clientsocket))
				{
					printf("Upload Message failed!\n");
					break;
				}
				printf("Upload Message Success!\n");
			*/
				if(false==db_AddRecord(db,msg))
				{
					printf("add record error!\n");	
					break;
				}
				break;
				
		case 3: /*display a message*/			    
				if(db->cur_rec_num<=0)			
					printf("sorry,the database have no record!\n");
				else
				{					
					printf("there are %d record now,input which one do you want to display!\n",db->cur_rec_num);
					printf("input:");
					scanf("%d",&index);					
					db_DisplayRecord(db,index);
				}	
				break;
		case 4: /*display all message*/
			    if(db->cur_rec_num<=0)			
					printf("sorry,the database have no record!\n");
			    else
					db_DisplayAllRecord(db);
			    break;
		case 5: /*modify a message*/		    
				if(db->cur_rec_num<=0)			
					printf("sorry,the database have no record!\n");
				else
				{					
					printf("there are %d record now,input which one do you want to modify!\n",db->cur_rec_num);
					printf("input:");
					scanf("%d",&index);
					db_ModifyRecord(db,index);
				} 
				break;
		case 6: /* delete a message*/
				if(db->cur_rec_num<=0)			
					printf("sorry,the database have no record!\n");
				else
				{					
					printf("there are %d record now,input which one do you want to delete!\n",db->cur_rec_num);
					printf("input:");
					scanf("%d",&index);
					db_DeleteRecord(db,index);
					printf("delete record[%d] success!\n",index);
				} 
				break;
		case 7: /*delete all message*/
				 if(db->cur_rec_num<=0)			
					printf("sorry,the database have no record!\n");
			    else
					db_DeleteAllRecord(db);
			    break;
/*		case 8: /*confige server's ip and port*/
/*			    printf("input the server's ip:");
				scanf("%s",srvip);
				printf("input the server's port:");
				scanf("%d",&srvport);
				srvaddr=net_Config(srvip,srvport);
				printf("Confing Server's Address Success!\n");
				break;	
*/
		default:
				printf("sorry,your choice is invalid,please check it\n\n");
				break;
		}		
	}
}

int main(int argc , char *argv[])
{
	DB *db;	
	char *filename="local_db.db";
	bool oldflag; /*if oldflag = true,the db need read all the records from db file*/
    if( false==db_Init(filename,&oldflag))
	{
		printf("initilize database failed!");
		exit(0);
	}
	if( (db=db_Open(filename,"rb+",oldflag))==NULL)
	{
	printf("open database failed\n");
	exit(0);
	}	
	user_operator(db);
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -