放松了一天,毕竟周末,然后,现在是18:51,准备开始今天的课设,然而,我却不知道被安排了什么任务,所以,还是自己找个任务吧。因为现在只有演出厅的模块,所以,还就挑个吧,我先看看去。
嗯,找到了,那就写演出厅的删除吧。现在很明确了:
开始,第一步:界面层
int Studio_UI_Delete()
{
int rtn=0;
int ID;
printf("Input the studio's ID to delete : \n");
scanf("%d",&ID);
if ( Studio_Srv_DeleteByID(ID)==1 )
{
printf("Delete succeed!\n");
rtn=1;
Seat_Srv_DeleteALLByRoomID();
return rtn;
}
else
printf("Delete fail!\n");
}
看吧,现在是19:05,写的还是比较快的,毕竟有流程,毕竟有想法了,定义,调用函数,就是这样
嗯,下一步,业务逻辑层了:
inline int Studio_Srv_DeleteByID(int ID)
{
if ( Studio_Perst_DeleteByID(ID)==1 )
return 1;
}
越写越觉得业务逻辑还是最好写的,就要和写持久化层的交流好调用函数的返回值,可惜我不是组长。不过,现在我们都是每个人写一个模块,而不是写一个层次。
下来,那就是持久化层了,挑战来了:
int Studio_Perst_DeleteByID(int ID)
{
int found=0;
int i;
studio_node_t buf; //临时放入的结构体
rename(STUDIO_DATA_FILE,STUDIO_DATA_TEMP_FILE);
FILE *fp,*tp;
tp=fopen("STUDIO_DATA_TEMP_FILE","rb")
fp=fopen("STUDIO_DATA_FILE","wb");
fread(buf,sizeof(studio_t),newCount,tp);
for (i=0;i<newCount;i++)
{
if ( buf.data.id!=ID && !feof(fp) )
{ found=1;
fwrite(tp,sizeof(studio_t),newCount,fp);
}
}
fclose(tp);
fclose(fp);
if ( remove(STUDIO_DATA_TEMP_FILE)==1 )
return found;
}
持久化层还是说说,不然本来在vim里我没汉语也就没有注释,就在这里说说吧,编写流程也是按模块来得,定义返回值变量,用到了文件的重命名,