您的位置:首页 > 其它

2015年6月30日 课设日志

2015-07-01 00:25 267 查看
现在是8:04,又开始了一天的工作。

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

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

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

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

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;

}

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

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

现在是8:35。

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,成功返回值为1,rtn=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;

}

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

现在是10:11,和班长讨论着fread和fwrite,感觉真的一个人一个思路啊,我还是在查查看。

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

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

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

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。。。

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

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

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

Account.c

SalesAnalysis.c

Seat.c

Ticket.c

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

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

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

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

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

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;

}

}

}

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

哎,组长又让扫地。

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

现在是23:46。

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

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

int Schedule_UI_Modify(int id){

schedule_t *temp;

if ( Schedule_Srv_FetchByID(id,temp) )

好吧,今天就到这里吧。

今天算是比较平静吧,回头看看今天的日志,明天开始,任务很明确,界面层。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: