TTMS框架设计思路及实例介绍
TTMS框架设计思路及实例介绍
TTMS框架设计思路
系统目标用户及功能设计
✔:完全的权限 ✖无权限 〇表示仅有查询权限
用户名称 | 剧目管理 | 影厅管理 | 座位管理 | 演出管理 | 售票管理 | 用户管理 |
---|---|---|---|---|---|---|
系统管理员 | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ |
剧院经理 | ✔ | ✔ | ✔ | ✔ | ✖ | ✖ |
售票员 | 〇 | ✖ | ✖ | 〇 | ✔ | ✖ |
顾客(拓展) | 可浏览 | ✖ | ✖ | 可查看近期演出 | 买票退票 | ✖ |
任何用户均可维护个人信息,如:登录口令的修改
管理的具体功能:单项查询、翻页浏览全部、修改、新增、删除
框架设计原则
本框架设计思路完全基于面向过程的程序设计思想,贴近自然思维。程序运行的每个阶段、每次人机交互都是一个独立过程,根据这些过程设计函数,并追求函数的通用性。任何功能均由各种函数的产生相应的调用关系及先后顺序组成,正如所有过程都是由更小的过程组成。
以剧目管理为例
其中 绿色表示打印界面的显示层层函数 黄色表示进行I/O及处理的功能层函数 红色表示链表操作函数 橙色表示文件操作函数
调用关系实例
//剧院经理总过程
void process_manager(){
while(true){
int choice=choice_judge();//判断用户选择的功能,返回对应编号
switch(choice){
case 0:break;
case 1:process_program();break;//剧目管理过程
case 2:process_studio();break;//放映厅管理过程
case 3:process_plan();break;//演出计划管理过程
}if(choice==0){break;}
}
}
//剧目管理过程
void process_program(){
while(ture){
int choice=choice_judge();
switch(choice){
case 1:printf("提示信息");print_program();//打印剧目信息
case 2:printf("提示信息");modify_program();//修改剧目信息
case 4:printf("提示信息");add_program();//增加剧目信息
case 5:printf("提示信息");delete_program();//删除剧目信息
}
}
}
//实际上的使用是这样
Program *search_program(char *obj);//根据传入的字符串查找剧目,找到则返回节点指针,否则返回NULL;
char *get_string(int ,int ,int);//获取并检查用户输入,非法输入报错,直到获得有效输入,(适当给出输入提示)
//返回得到的在堆中的字符串首地址。三个参数控制字符串的检查
//实际调用
char *str;
printf("请输入想要查询的剧目的ID/名称:");print_program(search_program(str=get_string(1,30,0)));
search_program(str=get_string(1,30,0))
这些不写进print_program()
的定义中是为了提高函数的复用性。
最后给出项目暂定框架
及项目暂定数据结构