📄 main.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 + -