2015年6月30日 课设日志

现在是804,又开始了一天的工作。

刚才在路上,和组长激烈的讨论了关于工作的问题,其实,讨论一下,还是不错的,倒是感受到更多的东西。现在还是觉得,自己做好自己应该做的,少说话多做事吧。

昨天是演出计划持久化层,还有点问题,等会看能否解决。然后,今天就写个业务逻辑层,看看手头的模版。 既然这样,本来演出计划业务逻辑也是我写的,那好吧,还合适着。

所以,今天的计划是:解决昨晚遗留的持久化层问题;完成演出计划业务逻辑。

 

好吧,修改了几个小问题,然后又分析了下写的流程功能,那演出计划持久化层也就结束了:

int Schedule_Perst_Insert(const schedule_t *data)

{

        FILE *fp;

        int rtn=0;

 

        fp=fopen("SCHEDULE_DATA_FILE","ab");

        if (fp==NULL)

        {

                printf("Open fail!\n");

                return 0;

        }

 

        rtn=fwrite(data,sizeof(schedule_t),1,fp);

 

        fclose(fp);

 

        return rtn;

}

 

int Schedule_Perst_SelectAll(schedule_list_t list){

        FILE *fp;

        int l=0;

        schedule_list_t temp;

        fp=fopen("SCHEDULE_DATA_FILE","rb")

        if (fp==NULL)

        {

                printf("Open fail!\n");

                return 0;

        }

 

        while ( !feof(fp) )

        {

                if (    fread(temp,sizeof(schedule_list_t),1,fp) && temp->data.id==temp->data.play_id )

                {

                        List_init(list,schedule_list_t);

                        List_AddTail(list,temp);

                        l++;

                }

        }

 

        fclose(fp);

 

        return l;

}

修改了一下以上两个函数的几处,也不是大问题。

 

好的,开始,演出计划业务逻辑层。

 

现在是835

 

inline int Schedule_Srv_Add(const schedule_t *data) {

        int rtn;

 

        rtn=Schedule_Perst_Insert(data);

 

        if ( Ticket_Srv_AddBatch(data)   )

                return rtn;

        return 2;

}

Add,不用说,就是添加模块,这个感觉业务逻辑层有的是简单, 有的是难啊。这个,直接调用Perst,成功返回值为1rtn=1,如果票批量生成,返回rtn。但。。。。如果添加失败呢,rtn多少,是无返回值呢,还是一个随即的数。。。。。。。。。。。。。。。。。。。。懂了,那个,失败的返回值就是0。还是要上下结合层的思考。傻了。

 

inline int Schedule_Srv_Modify(const schedule_t *data) {

        int rtn;

 

        rtn=Schedule_Perst_Update(data);

 

        if (    Ticket_Srv_DeleteBatch() && Tickes_Srv_Addbatch(data)   )

                return rtn;

        return 0;

}

 

inline int Schedule_Srv_DeleteByID(int ID) {

        int rtn;

 

        rtn=Schedule_Perst_DeleteByID(ID);

 

        if (    Ticket_Srv_DeleteBatch()        )       

                return rtn;

        return 0;

}

以上是两个函数,第一个是,修改新数据为data的演出计划服务,第二个是,删除主键id的演出计划服务,现在问题是,

Ticket_Srv_DeleteBatch()Tickes_Srv_Addbatch(data) 是有返回值的是吧,那就是这样调用的吧?主要现在订票模块没有,现在也写了好几天,我觉得应该就是那样。

 

inline int Schedule_Srv_FetchByID(int ID, schedule_t *buf) {

        return Schedule_Perst_SelectByID(ID,buf); 

}

查询主键为ID的演出计划信息,并降其保存在buf所的内存单元中,后面这三个也容易了,就是需要调用持久化层的函数,只需返回值就对。

 

inline int Schedule_Srv_FetchAll(schedule_list_t list) {

        return Schedule_Perst_SelectAll(list);

}

获取所有演出计划服务。

 

inline int Schedule_Srv_FetchByPlay(schedule_list_t list,int play_id) {

        return Schedule_Perst_SelectByPlay(list,play_id);

查询主键为ID的演出计划信息,并将这些信息组织成头指针为list的链表。

 

 

其实,最后又莫名出现了一个

//根据演出ID,统计上座率及票房,返回票房数收入

int Schedule_Srv_StatRevByPlay(int play_id, int *soldCount, int *totalCount) {

// 请补充完整

       return 1;

}

好吧 已有的模块里没有这个,估计是老师后来自己加的。

 

现在是1011,和班长讨论着freadfwrite,感觉真的一个人一个思路啊,我还是在查查看。

 

现在不能就这样结束,继续找任务了。

 

程序真是在不断的更改啊- -!地址符忘记。

 

现在是1102,距放学还有俩小时:

inline int Play_Srv_Add(const play_t *data) {

 

return Play_Perst_Insert(data);

 

}

 

 

 

inline int Play_Srv_Modify(const play_t *data) {

 

return Play_Perst_Update(data);

 

}

 

 

 

inline int Play_Srv_DeleteByID(int ID) {

 

return Play_Perst_DeteleByID(ID);

 

}

 

 

 

inline int Play_Srv_FetchByID(int ID, play_t *buf) {

 

return Play_Perst_SelectByID(ID,buf);

 

}

 

 

 

inline int Play_Srv_FetchAll(play_list_t list) {

 

return Play_Perst_SelectAll(list);

 

}

 

以上是剧目管理业务逻辑,这一块还是相对简单的,所以,我现在想尝试下界面层,这几天还没有好好写过界面层,每个层都写写,这样就都体验。

Go go go。。。

 

是我的这个这个,管理剧目界面太难了吗?好些问题呢。。。。。。。

 

现在是1204,为了缓解情绪,我还是我的主工作,业务逻辑里的主键文件好好看下。发现老师又是给写好了,到时直接用的。

 

然后,现在分析下,我们业务逻辑层还有哪些:

 

Account.c

 

 

 

SalesAnalysis.c

 

Seat.c

 

Ticket.c

 

现在就还剩下这4个任务。

 

俗话说人比人,气死人,所以,还是不要看别人怎么怎么,做的快,因为我是我,所以,继续工作吧,一早也没停下来

 

现在是2025,从中午下机到现在,生活事情太多,课设也没有写,而且,就因为今天早上在机房转的看了下。其一,有人说,我们的任务就是复制代码。一开始听他那么一说,我嘴上也没说什么,心里想,是复制吗?也需要脑子的好吧?你做的好NB的样子。其二,我今天就早上后半段写那个剧目界面,一写才发现还有更多的问题,现在看看流程图,问题有:链表初始化,用for循环显示链表中剧目信息,函数如何调用。

组长催促着要,所以,我交我的,然后再继续自己写。

 

 

现在是2254,不多说废话了,直接一个任务,演出计划界面层。

 

int Schedule_UI_Add(int play_id) {

        schedule_t *new;

        while (1)

        {

 

        printf("Input the new play infomation : \n");

        scanf("%d%d%d%d%d%d",&new->id,&new->play_id,&new->studio_id,&new->date_tdate,&new->mytime_ttime,&new->seat_count);

        EntKey_Srv_CompNewKey();

 

        if (    Schedule_Srv_Add(new)   )

        {

                printf("Add succeed!\n");

                n++;

        }

        else

                printf("Add faid!\n");

        printf("Do you want to continue : \n ");

        scanf("%c",&choice);

 

        if (    strcmp(choice,'a')!=0 || strcmp(choice,'A')!=0          )

        {

                return n;

                break;

        }

 

        }

 

}

三个问题,添加信息应该是链表插入主键函数调用那里 按流程执行完 最后判断后又再一次执行函数功能 必须在函数里。

哎,组长又让扫地。

看来今晚能完成一个函数都是好的了。

现在是2346

是解决问题,还是继续把流程框架写出来。

 

然而,一写一看界面层,才发现,这也关系到很多呀!我现在都哭了(┬_┬),关系到前两个层的返回值,或者说它到底是把什么传递过去的。打开三个终端看了半天,也进展不大,和业务逻辑与持久化不太一样,还是需要下个功夫学。以下是刚才写的四不像:

 

int Schedule_UI_Modify(int id){

        schedule_t *temp;

 

        if (    Schedule_Srv_FetchByID(id,temp)         )

 

好吧,今天就到这里吧。

今天算是比较平静吧,回头看看今天的日志,明天开始,任务很明确,界面层。

你可能感兴趣的:(一周)