1、实战3-C大型项目组织3.1 字符界面菜单设计,叶安胜2018年9月30日,C Programming in Action,Chengdu university,程序菜单,是最基本的交互设计,用以完成基本的人机交互功能和有效组织各程序模块最简单和最有效的一种手段和方法。包括:图形窗口界面和字符(控制台)窗口界面窗口界面的应用程序开发:会涉及到控制台窗口操作、文本(字符)控制、滚动和移动光标、键盘和鼠标等。图形窗口界面程序-目前大多数高级语言的IDE都提供控件操作方式-比如C+的Windows图形界面应用程序,是一种界面友好的交互设计方法,有一整套API,涉及知识很多。字符(控制台)窗口界面-C
2、本身也提供一系列的文本屏幕(控制台窗口)控制函数(相应的头文件是conio.h)。-C还可以使用第三方函数库,比如书上第九章的图形函数库的。-使用简单的打印语句实现。-为了突出C的基本编程思想和解决基本编程问题,本实战教材中只阐述简单的基于字符模式的程序菜单设计方法,相对简单,友好程度较低,但还是能实现交互。,项目需求知识点算法思想流程图项目实现项目扩展,看看常见的菜单设计案例,项目需求知识点算法思想流程图项目实现项目扩展,字符模式的菜单设计和控制核心-打印语句:printf()函数的相关格式控制-无限循环 : for(;)或while(1); -设置监视哨,多分支结构进行判断:输入功能号,s
3、witch()语句,项目需求知识点算法思想流程图项目实现项目扩展,第1步:打印菜单,通常用函数实现。void display()printf(*主菜单*n);printf(* 1. 功能模块1 *n);printf(* 2. 功能模块2 *n);printf(* 3. 功能模块3 *n);printf(* 4. 功能模块4 *n);printf(*n);printf(请输入功能编号:);,项目需求知识点算法思想流程图项目实现项目扩展,第2步:无限循环,while(1) . . . if (特定条件成立) exit(0)或break;,for(;) . . . if (特定条件成立) exit(
4、0)或break;,项目需求知识点算法思想流程图项目实现项目扩展,第3步:设置监视哨,通过switch进行判断。-监视哨往往是程序里面的一个变量,给变量输入一个值就相当于哨兵,当哨兵跟功能号相等时,就做一个操作。,设置监视哨;给监视哨赋值;switch(哨兵) case “功能号值”: 做一个操作; break; case “功能号值值”: 做一个操作; break; ,int key;scanf(“%d”, ,项目需求知识点算法思想流程图项目实现项目扩展,int key; /设置监视哨while(1) display(); /菜单项的显示 scanf(%d,项目需求知识点算法思想流程图项目实
5、现项目扩展,void display()printf(*主菜单*n);printf(* 1. 功能模块1 *n);printf(* 2. 功能模块2 *n);printf(* 3. 功能模块3 *n);printf(* 4. 功能模块4 *n);printf(*n);printf(请输入功能编号:);,菜单框架,完整的菜单框架!,int key; /设置监视哨while(1) display(); /菜单项的显示 scanf(%d,项目需求知识点算法思想流程图项目实现项目扩展,void display()printf(*主菜单*n);printf(* 1. 功能模块1 *n);printf(*
6、 2. 功能模块2 *n);printf(* 3. 功能模块3 *n);printf(* 4. 功能模块3 *n);printf(*n);printf(请输入功能编号:);,通常菜单框架!,int key; /设置监视哨while(1) display(); /菜单项的显示 scanf(%d,项目需求知识点算法思想流程图项目实现项目扩展,void display()printf(*主菜单*n);printf(* 1. 功能模块1 *n);printf(* 2. 功能模块2 *n);printf(* 3. 功能模块3 *n);printf(* 4. 功能模块3 *n);printf(*n);printf(请输入功能编号:);,项目实现操作演练创建新项目添加源程序代码文件编写程序框架编写菜单界面编写菜单主程序框架根据需要修饰代码和完善功能运行演示代码参见附件,项目需求知识点算法思想流程图项目实现项目扩展,1、菜单嵌套的实现。,项目需求知识点算法思想流程图项目实现项目扩展,2、本书9个实战,每个实战中又包含基本项目、扩展项目和拓展项目。每个类型项目下又包含多个项目实例,如何实现三层嵌套?,Thanks,C语言综合项目实践,成都大学信息科学与技术学院,