WINDOW界面设计标准

本文详细阐述了Windows界面设计的标准,包括易用性、规范性、帮助设施等方面的内容,旨在提高用户体验,确保界面的一致性和美观性。

  Windows 界面设计标准

  1. 易用性

  ● 界面元素的名称、标签应该易懂,用词准确,避免使用模楞两可的字眼,要与同一界面上的其他元素易于区分,能望文知意最好。理想的情况是用户不用查阅帮助就能知道该界面的功能并进行相关的正确操作作。

  ● disable 而不是not visible。

  ● 完成相同或相近功能的按钮用GoupBox框起来,常用按钮要支持快捷方式。

  ● 完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离。

  ● 按功能将界面划分局域块,用GoupBox框括起来,并要有功能说明或标题。

  ● 界面要支持键盘自动浏览按钮功能,即按Tab键的自动切换功能。

  ● 界面上首先应输入的和重要信息的控件在Tab order中应当靠前,位置也应放在窗口上较醒目的位置。

  ● 同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。

  ● 分页界面要支持在页面间的快捷切换,常用组合快捷键Ctrl+Tab

  ● 默认按钮要支持Enter选定及鼠标选择操作,即按Enter后自动执行默认按钮对应操作。

  ● 可写控件检测到非法输入后应给出说明并能自动获得焦点。

  ● Tab 键的顺序与控件排列顺序要一致,总体遵守从上到下,同时行间从左到右的方式。

  ● 复选框和选项框按选择几率的高底而先后排列。

  ● 复选框和选项框要有默认选项,并支持Tab键选择。

  ● 界面空间较小时使用下拉框而不用选项框。

  ● 选项数较少时使用选项框,相反使用下拉列表框。

  ● 专业性强的软件要使用相关的专业术语,通用性界面则提倡使用通用性词眼。

  2 . 规范性

  ● 通常界面设计都按Windows界面的规范来设计

  ● 小型软件可以不提供工具栏。

  ● 常用菜单要有命令快捷方式。

  ● 完成相同或相近功能的菜单用横线隔开放在同一位置。

  ● 菜单前的图标能直观的代表要完成的操作。

  ● 菜单深度一般要求最多控制在三层以内。

  ● 工具栏要求可以根据用户的要求自己选择定制。

  ● 相同或相近功能的工具栏放在一起。

  ● 工具栏中的每一个按钮要有及时提示信息。

  ● 一条工具栏的长度最长不能超出屏幕宽度。

  ● 工具栏的图标能直观的代表要完成的操作。

  ● 系统常用的工具栏设置默认放置位置。

  ● 工具栏太多时可以考虑使用工具厢。

  ● 工具厢要具有可增减性,由用户自己根据需求定制。

  ● 工具厢的默认总宽度不要超过屏幕宽度的1/5。

  ● 状态条要能显示用户切实需要的信息,常用的有: 目前的操作、系统状态、用户位置、用户信息、提示信息、错误信息,如果某一操作需要的时间较长,应该显示进度条和进程提示。

  ● 滚动条的长度要根据显示信息的长度或宽度能及时变换,以利于用户了解显示信息的位置和百分比。

  ● 状态条的高度以放置五号字为宜,滚动条的宽度比状态条的略窄。

  ● 菜单和工具条要有清楚的界限;

  ● 菜单要求凸出显示,这样在移走工具条时仍有立体感。

  ● 菜单和状态条中通常使用5号字体。工具条一般比菜单要宽,但不要宽的太多,否则看起来很不协调。

  ● 右键快捷菜单采用与菜单相同的准则。

  ● 如果菜单和按钮将使用户进入一个新的界面,则在标签文本之后加上三句点的省略号 “…”

  3 . 帮助设施

  ● 系统应该提供详尽而可靠的帮助文档,在用户使用产生迷惑时可以自己寻求解决方法。

  ● 帮助文档中的性能介绍与说明要与系统性能配套一致。系统作修改时,相应的帮助文档也应该保持同步更新。

  ● 操作时要提供及时调用系统帮助的功能。常的热键是F1。

  ● 帮助要有即时针对性,在界面上调用帮助时应该能够及时定位到与该操作相对的帮助位置。

  ● 最好提供目前流行的联机帮助格式或HTML帮助格式。

  ● 用户可以用关键词在帮助索引中搜索所要的帮助,当然也应该提供帮助主题词。

  ● 如果没有提供书面的帮助文档的话,最好有打印帮助的功能。

  ● 在帮助中应该提供我们的技术支持方式,一旦用户难以自己解决可以方便的寻求新的帮助方式。

  ● 可以在系统菜单中提供一个about对话框,以快速地提供程序的版本、版权声明和技术支持方式等信息。

  4 . 合理性

  ● 屏幕对角线相交的位置是用户直视的地方,正上方四分之一处为易吸引用户注意力的位置,在放置窗体时要注意利用这两个位置。

  ● 父窗体或主窗体的中心位置应该在对角线焦点附近。

  ● 子窗体位置应该在主窗体的左上角或正中。

  ● 多个子窗体弹出时应该依次向右下方偏移,以显示窗体出标题为宜。

  ● 重要的命令按钮与使用较频繁的按钮要放在界面上注目的位置。

  ● 错误使用容易引起界面退出或关闭的按钮不应该放在易点位置。横排开头或最后与竖排最后为易点位置。

  ● 与正在进行的操作无关的按钮应该加以屏蔽(Windows中用灰色显示,没法使用该按钮)。

  ● 对可能造成数据无法恢复的*作必须提供确认信息,给用户放弃选择的机会。

  ● 非法的输入或*作应有足够的提示说明。

  ● 对运行过程中出现问题而引起错误的地方要有提示,让用户明白错误出处,避免形成无限期的等待。

  ● 提示、警告、或错误说明应该清楚、明了、恰当。

  5 . 美观与协调性

  ● 界面应该大小适合美学观点,感觉协调舒适,能在有效的范围内吸引用户的注意力。

  ● 统一色调,针对软件类型以及用户工作环境选择恰当色调。

  ● 长宽比或宽长比接近黄金点比例,切忌长宽比例失调。

  ● 布局要合理, 不宜过于密集,也不能过于空旷,合理的利用空间。

  ● 相邻或同组的按钮大小相同,同界面上所有的按钮高度相同。

  ● 按钮的大小要与界面的大小和空间要协调。

  ● 避免空旷的界面上放置很大的按钮。

  ● 放置完控件后界面不应有很大的空缺位置。

  ● 字号的大小要与界面的大小比例协调, 字体大小根据系统标准字体来,例如 MSS字体8磅,宋体的小五号字(9磅)五号字(10.5磅)。

  ● 使用正规字体,中文采用标准字体 “宋体”,英文采用标准 Microsoft Sans Serif,不考虑特殊字体(隶书、草书等,特殊情况可以使用图片取代),除非是需要艺术处理或有特殊要求的地方。

  ● 前景与背景色搭配合理协调,反差不宜太大,常用色考虑使用Windows界面色调。

  ● 如果使用其他颜色,主色要柔和,具有亲和力,坚决杜绝刺目的颜色。Graphtalk程序建议以下按钮的风格:

  ● “确定” 按钮文本颜色设为深蓝

  ● “取消” 按钮文本颜色设为深红

  ● “帮助” 按钮文本颜色设为深绿

  ● 大型系统常用的主色有"#E1E1E1"、"#EFEFEF"、"#C0C0C0"等。

  ● 界面风格要保持一致,字的大小、颜色、字体要相同,除非是需要艺术处理或有特殊要求的地方。

  ● 有标准的图标风格设计,有统一的构图布局,有统一的色调、对比度、色阶,以及图片风格。

  ● 底图应该融于底图,使用浅色, 低对比,尽量少的使用颜色。

  ● 鼠标光标样式统一,尽量使用系统标准。

  ● 如果窗体支持最小化和最大化或放大时,窗体上的控件也要随着窗体而缩放;切忌只放大窗体而忽略控件的缩放。

  ● 对于含有按钮的界面一般不应该支持缩放,即右上角只有关闭功能。

  ● 如果需要缩放对话窗,建议以下方式调整每个控件的attachment属性:

  ● 不必变宽的控件,如按钮、静态文本等、采用左上锁定,右下不锁定。

  ● 数据控件,如编辑框、下拉框等,尽可能排放于每行的最右边,采用左上角锁定,右边弹性粘附,

  ● 多行式控件放置于界面最下面端,采用左上右下角全部锁定;

  ● 通常父窗体支持缩放时,子窗体没有必要缩放。

  ● 如果能给用户提供自定义界面风格则更好,由用户自己选择颜色、字体等。

  6 . 菜单

  ● 菜单位置按照按功能来组织。

  ● 菜单通常采用“常用--主要--次要--工具--帮助”的位置排列,符合流行的Windows风格。

  ● 常用的有“文件”、“编辑”,“查看”等,几乎每个系统都有这些选项,当然要根据不同的系统有所取舍。

  ● 下拉菜单要根据菜单选项的含义进行分组,并切按照一定的规则进行排列,用横线隔开。

  ● 一组菜单的使用有先后要求或有向导作用时,应该按先后次序排列。

  ● 没有顺序要求的菜单项按使用频率和重要性排列,常用的放在开头, 不常用的靠后放置;重要的放在开头,次要的放在后边。

  ● 如果菜单选项较多,应该采用加长菜单的长度而减少深度的原则排列。

  ● 菜单深度一般要求最多控制在三层以内。

  ● 对常用的菜单要有快捷命令方式,组合原则见6.1.8。

  ● 对与进行的操作无关的菜单要用屏蔽的方式加以处理,如果采用动态加载方式——即只有需要的菜单才显示——最好。

  ● 菜单前的图标不宜太大,与字高保持一直最好。

  ● 主菜单的宽度要接近,字数不应多于四个,每个菜单的字数能相同最好。

  ● 主菜单数目不应太多,最好为单排布置。

  7 . 独特性

  如果一味的遵循业界的界面标准,则会丧失自己的个性.在框架符合以上规范的情况下,设计具有自己独特风格的界面尤为重要。尤其在商业软件流通中有着很好的迁移默化的广告效用。

  ● 安装界面上应有单位介绍或产品介绍,并有自己的图标。

  ● 主界面,最好是大多数界面上要有公司图标。

  ● 登录界面上要有本产品的标志,同时包含公司图标。

  ● 帮助菜单的 “关于” 中应有版权和产品信息。

  ● 公司的系列产品要保持一直的界面风格,如背景色、字体、菜单排列方式、图标、安装过程、按钮用语等应该大体一致。

  8 . 键盘快捷方式

  在菜单及按钮中使用快捷键可以让喜欢使用键盘的用户操作得更快,在Windows及其应用软件中快捷键的使用大多是一致的。

  菜单中:

  ● 面向事务的组合有:

  Ctrl-D 删除 ;Ctrl-F 寻找 ;Ctrl –H替换;Ctrl-I 插入 ;Ctrl-N 新记录 ;Ctrl-S 保存 Ctrl-O 打开。

  ● 列表:

  Ctrl-R ,Ctrl-G定位;Ctrl-Tab下一分页窗口或反序浏览同一页面控件;。

  ● : 编辑:

  Ctrl-A 全选;Ctrl-C 拷贝;Ctrl-V 粘贴;Ctrl-X 剪切;Ctrl-Z撤消*作;Ctrl-Y恢复*作。

  ● 文件操作:

  Ctrl-P 打印;Ctrl-W 关闭。

  ● 系统菜单

  Alt-A 文件;Alt-E编辑;Alt-T工具;Alt-W窗口;Alt-H帮助。

  ● MS Windows 保留键:

  Ctrl-Esc 任务列表 ;Ctrl-F4 关闭窗口; Alt-F4 结束应用;Alt-Tab 下一应用 ;Enter 缺省按钮/确认操作 ;Esc 取消按钮/取消*作 ;Shift-F1 上下文相关帮助 。

  ● 按钮快捷键

  可以根据系统需要而调节,以下只是常用的组合。

  Alt-Y 确定(是);Alt-C取消;Alt-N 否;Alt-D删除;Alt-Q退出;Alt-A添加;Alt-E编辑;Alt-B浏览;Alt-R读;Alt-W写。

  这些快捷键也可以作为开发中文应用软件的标准, 但亦可使用汉语拼音的开头字母。

  9 . 安全性

  在界面上通过下列方式来控制出错几率,会大大减少系统因用户人为的错误引起的破坏。开发者应当尽量周全地考虑到各种可能发生的问题,使出错的可能降至最小。如应用出现保护性错误而退出系统,这种错误最容易使用户对软件失去信心。因为这意味着用户要中断思路, 并费时费力地重新登录,而且已进行的操作也会因没有存盘而全部丢失。

  ● 排除可能会使应用非正常中止的错误。

  ● 应当注意尽可能避免用户无意录入无效的数据。

  ● 采用相关控件限制用户输入值的种类。

  ● 当用户作出选择的可能性只有两个时, 可以采用单选框。

  ● 当选择的可能再多一些时,可以采用复选框,每一种选择都是有效的,用户不可能输入任何一种无效的选择。

  ● 当选项特别多时,可以采用列表框,下拉式列表框。

  ● 在一个应用系统中,开发者应当避免用户作出未经授权或没有意义的操作。

  ● 对可能引起致命错误或系统出错的输入字符或动作要加限制、屏蔽和处理。

  ● 对可能发生严重后果的操作要有补救措施。通过补救措施用户可以回到原来的正确状态。

  ● 对一些特殊符号的输入、与系统使用的符号相冲突的字符等进行判断并阻止用户输入该字符。

  ● 对错误操作最好支持可逆性处理,如取消系列*作。

  ● 在输入有效性字符之前应该阻止用户进行只有输入之后才可进行的*作。

  ● 对可能造成等待时间较长的操作应该提供取消功能。

  ● 与系统采用的保留字符冲突的要加以限制。

  ● 在读入用户所输入的信息时,根据需要选择是否去掉前后空格。

1. What is an IDE (Integrated Development Environment), and what are its main components? 2. What is the role of a compiler in the C++ development process? 3. What is the difference between source code (e.g., a .cpp file) and an executable file? 4. In the "Hello, World!" program, what is the purpose of the line #include <iostream>? 5. What is special about the main() function in a C++ program? 6. Why do computers fundamentally operate using the binary (base-2) system? 7. What is the base of the hexadecimal system? Why is it often used by programmers as a shorthand for binary numbers? 8. Explain the "triad" method for converting an octal number to binary. 9. Briefly describe the "division by 2" method for converting a decimal number to binary. 10. What is the decimal value of the binary number 1011? 1. What is the purpose of the std::cout object? Which header file must be included to use it? 2.What is the difference between an escape sequence like \n and a manipulator like std::endl? (Hint: Both create a new line, but they have a subtle difference). 3.How would you print the following text to the console, including the quotes and the backslash: He said: "The file is in C:\Users\"? 4.Is it possible to write an entire multi-line text output using only one std::cout statement? If yes, how? 5.What is a syntax error? Give an example of a syntax error from Task 2. (Task 2: Debugging The following program contains several syntax errors. Copy the code into your IDE, identify the errors, fix them, and run the program to ensure it works correctly. Incorrect Code: */ Now you should not forget your glasses // #include <stream> int main { cout << "If this text" , cout >> " appears on your display, cout << " endl;" cout << 'you can pat yourself on ' << " the back!" << endl. return 0; "; ) Hint: Pay close attention to comments, header files, brackets ({}), operators (<<), semicolons, and how strings and manipulators are written.) 1. What is the difference between variable declaration and initialization? 2.What will be the result of the expression 7 / 2 in C++? Why? 3.What will be the result of the expression 10 % 3? What is the main purpose of the modulus operator? 4. What is the purpose of std::cin and the >> operator? 5. A beginner tries to swap two integer variables a and b with the code a = b; b = a;. Why will this not work correctly? 1. What is an algorithm? Name the primary ways to represent an algorithm. 2.List the main flowchart symbols and explain their purpose. 3.What are the three fundamental types of algorithm structures? Briefly describe each. 4.In a branching algorithm, what determines the flow of execution? 5.What is the key characteristic of a linear algorithm? 6.When is a cyclic algorithm structure used?7. 8. 9. 7.Explain the purpose of a connector in a flowchart. 8.What is the difference between a predefined process block and a standard process block? 9.In the context of solving a quadratic equation algorithm, what condition must be checked before calculating the roots? Why? 1. What are the three main approaches to data input and output offered by C++? 2. What is the purpose of the SetConsoleOutputCP(65001) and SetConsoleCP(65001)
functions in the provided C++ program example? 3. Explain the difference between the cin and cout objects in Stream 1/0. 4. When using formatted 1/0, which header file must be included to use manipulators like setw and setprecision? 5. List three manipulators used for data output in C++ and briefly describe what each one does. 6. In Formatted I/0 using printf), what are the conversion specifications for a decimal integer and a real number in exponential form? 7. What is the difference in how the & (address-of) operator is used when inputting a value for an integer variable versus a string variable using the scanf() function? 8. Which Character I/O function is used to output a single character to the screen, and which is used to output a string? 9. Describe the syntax and function of the ternary operator in C++. 10. What is the difference between the logical AND (&&) and logical OR (I|) operators when combining multiple conditions? 11. When is the default label executed in a C++ switch statement? 12. What is the primary purpose of the break statement within a switch block? 1. What is the main purpose of using loops in programming? 2. Explain the key difference between the for, while, and do while loops. 3. What happens if you forget to include the increment/decrement statement in a while loop? 4. How can you interrupt an infinite loop during program execution? 5. What is the role of the setw() and setfill) manipulators in C++? 6. In a nested loop, how does the inner loop behave relative to the outer loop? 7. What is type casting, and why is it used in loop calculations? 8. How does the do while loop differ from the while loop in terms of condition checking? 9. What output formatting options can be used to align numerical results in columns? 10*. How would you modify a loop to skip certain iterations based on a condition? 1. List the six main biwise operators in C++ and explain the function of each. 2. Why cannot bitwise operations be applied to variables of floating-point type? 3. Explain the purpose of the << (left shift) and >> (right shift) operators. What is the typical effect on the decimal value of a number when it is shifted left by 1? Shifted right by 1? 4. Describe the process of using a mask to check the value of a specific bit within an
integer. 5. How can you use the bitwise AND operator (&) to check if a number is even or odd?
Explain the logic. 6. What is the difference between the logical AND (&&) and the bitwise AND (&)? Provide an example scenario for each. 7. Explain the purpose of the ~ (bitwise NOT) operator. What is the result of applying it to a mask, and how can this be useful? 1. What is the primary goal of program debugging? What types of errors can it help identify? 2. Describe the difference between Step Over (F10) and Step Into (F11) debugging commands. When would you choose one over the other? 3. What is the purpose of a breakpoint in planned debugging? How do you set and remove a breakpoint in Visual Studio? 4. Explain the utility of the "Watch" window compared to the "Autos" or "Locals" windows during a debugging session. 5. What is the key difference between the Debug and Release configurations when building a project? Why is it necessary to create a Release version after successful debugging? 6. List at least three types of files commonly found in a project's Debug folder and briefly state their purpose (e.g., *.pdb). 7. During debugging, you notice a variable has an incorrect value. How can you change its value during runtime to test a hypothesis without modifying the source code? 8. What command is used to exit the debug mode and stop the current debugging session? 1. What is an array in C++? List its three main characteristics. 2. How are array elements numbered in C++? What is the valid index range for an array declared as int data[25];? 3. Explain the difference between array declaration and initialization. Provide an example of each. 4. What is an initializer list? What happens if the initializer list is shorter than the array size? 5. How can you let the compiler automatically determine the size of an array during initialization? 6. What values do elements of a local array contain if it is declared but not explicitly initialized? How does this differ from a global array? 7. What is an array out-of-bounds error? Why is it dangerous, and what are its potential consequences? 8. How do you calculate the number of elements in an array using the sizeof operator?
Provide the formula. What is a significant limitation of this method? 9. Why is it impossible to copy the contents of one array into another using the assignment
operator (arrayB = arrayA;)? What is the correct way to perform this operation? 10. Why does comparing two arrays using the equality operator (arrayA == arrayB) not check if their elements are equal? How should array comparison be done correctly? 11. What does the name of an array represent in terms of memory? 1. What is a pointer in C++ and what are its two main attributes? 2. Explain the difference between the & and * operators when working with pointers. 3. Why is pointer initialization critical and what dangers do uninitialized pointers pose? 4. What is the fundamental relationship between arrays and pointers in C++? 5. How does pointer arithmetic work and why does ptr + 1 advance by the size of the pointed type rather than 1 byte? 6. What is the difference between an array name and a pointer variable? Why can't you increment an array name? 7. What are the differences between const int*, int* const, and const int* const? 8. How can you safely iterate through an array using pointers, and what are the boundary risks? 9. What is a null pointer and why should you check for nullptr before dereferencing? 10. How do you access array elements using pointer syntax, and how does the compiler translate arr[i] internally? 1. What is a multidimensional array? How is a two-dimensional array structured in memory? 2. Explain the concept of an "array of arrays". How does this relate to the declaration int arr/ROWS//COLS;? 3. The name of a two-dimensional array without indices is a pointer constant. What does this pointer point to? What do the expressions *(A + i) and *(*(A + i) +j) mean for a two-dimensional array A? 4. Describe the different ways to access the element A/1/[2/ of a two-dimensional array
using pointers. 5. What is the rule for omitting the size of dimensions when initializing and when passing a multidimensional array to a function? Why is it allowed to omit only the first dimension? 6. Explain the principle of "row-major order" for storing two-dimensional arrays in memory.
How does this affect element access? 7. Why are nested loops the standard tool for processing multidimensional arrays?
Describe the typical pattern for iterating through a matrix. 1. How is a character string stored in memory in C++? What is the role of the null terminator (10), and why is it critical for C-style strings? 2. Why must the size of a char array declared to hold a string be at least one greater than the number of characters you intend to store? 3. The array name without an index is a pointer constant. What does the name of a char array point to? 4. What are the two main ways to initialize a C-style string? What is a common mistake when using the initializer list method, and what is its consequence? 5. Why is it necessary to add _CRT_SECURE_NO_WARNINGS to the preprocessor definitions in Visual Studio when working with many standard C library functions?
What is the alternative approach? 6. What is the key difference between stropy and strncpy? Why might strncpy be considered safer? 7. How does the stremp function determine if one string is "less than" another? Why can't you use the == operator to compare two C-style strings for content equality? 8. Describe the purpose and parameters of the strok function. How do you get all tokens from a string? 9. What do the functions strchr and strrchr do? How do they differ? 10. Explain what the strstr function returns and what it is commonly used for. 11. What is the purpose of the functions in the < cctype> header? Give three examples of such functions and their use. 12. What is the difference between tolower(c) and_tolower(c)? When should you use each? 1. What is a function in C++? Name the three core benefits of using functions in a program. 2. What is the difference between a function declaration (prototype) and a function definition? Provide examples. 3. What is a function signature? Which elements are part of the signature, and which are not? 4. What methods of passing parameters to a function do you know? Explain the difference between pass-by-value, pass-by-pointer, and pass-by-reference. 5. Why can't you pass an array to a function by value? What is the correct way to pass an array to a function? 6. What is variable scope? How is it related to functions? 7. How does a function return a value? What happens if a function with a non-void return type does not return a value on all control paths? 8. Can you use multiple return statements in a single function? Provide an example. 9. What is function overloading? What is it based on? 10. How is interaction between functions organized in a program? Provide an example program with several functions. 11. What are default parameters? How are they specified, and in what cases are they useful? 12. How can you prevent a function from modifying the data passed to it? What modifiers are used for this? 13. What is recursion? Provide an example of a recursive function. 14. What common errors occur when working with functions? How can they be avoided? 15. How do you use pointers to functions? Provide an example of declaring and calling a function through a pointer. 用中文回答
最新发布
11-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值