C语言实现的一个交互小程序(一)
关于C语言如何有效正确的学习,我写了一个专栏:你可以这样学习C语言,有兴趣的小伙伴可以来看看哦,希望能对你有收获!本文例子需要源码的可以关注我后私信我。
这几天我用C语言自己写了一个交互小程序。这个交互小程序,我精力主要是在友好性方面,美观方面,我实在没啥天赋。
文末会给大家推荐几本书,希望对需要的朋友有帮助。
这个交互小程序其实很简单,现在很多C语言实例项目,像什么学生管理系统、图书管理系统、通讯录等等”XXX管理系统“,大部分都可以套用这个交互小程序。
先给这个程序上个图吧,程序刚开始运行,首先是一个欢迎界面,如下:
这是一个非常简陋的,欢迎界面。
按照提示,用户按下“ENTER”键,就可以进入到菜单选择界面,界面如下:
按照菜单选择界面的提示,输入数字键0退出整个程序,输入数字键1,进入对应的功能模块function1,输入数字键2,进入对应的功能模块function2。比如,我输入数字键1,进入功能模块function1,如下图:
界面嘛就这样了,美观上来说很简单,很丑陋。不过在友好性方面,背后的逻辑可不像UI看起来这么简单,本文就来分析这背后的逻辑。
一、程序一览
1. 程序代码预览
这个小项目的代码文件不多,截图如下:
每个文件里的代码也不多,很简单,每个文件的用处大概介绍如下:
1)main.c
这个是入口函数文件,用于显示欢迎界面、菜单选择界面,并响应处理用户的输入,调起对应的功能模块;
2)Common.h
这里声明了一些公共函数,比如欢迎界面函数、菜单选择界面函数、提示函数等。这些都需要在main.c中用到。如果功能模块函数要使用一些公共的函数与变量,也可以在这个文件中声明。
3)Common.c
这里是Common.h文件里函数与变量的实现。
4)function.h与function.c
这是功能模块文件。每一个功能模块都有自己的头文件和实现文件。
2. 逻辑结构
整个程序的逻辑结构也很简单,我画了一个示意图,如下:
我在图中也指出了,在这个交互程序上可以很方便地添加功能模块。最后,我会用一个示例来说明如何扩展这个程序。
二、技术点
技术点1. 程序暂停
我在程序中,在几个地方使用
system("pause");
来设置暂停点。
1) 在显示完欢迎界面后使用一次。当欢迎界面显示后,让用户能够看到欢迎信息,再由用户选择是否消失欢迎界面进入菜单选择界面;
2) 在switch语句中的每个case部分使用了一次。当每次运行完一个功能模块时,应该使得程序运行暂停,让用户看看功能模块的运行结果,再由用户按下Enter键返回菜单选择界面;
3) 在用户结束整个程序时使用了一次,让用户看到程序结束界面,再由用户按下Enter键结束程序。
上述设置这些暂停点纯粹是从用户体验出发的,同时也增强了与用户的交互性。
技术点2. 清屏
我在程序中,有几个地方使用
system("cls");
来清屏。
1) 在显示完欢迎界面后使用了一次,目的是用户想进入菜单选择界面了,那么就使得欢迎界面消失,为菜单选择界面腾出显示空间。当然,如果你觉得欢迎界面和菜单选择界面在一起显示更好看,你可以去掉清屏。
2) 在switch语句的每个case部分使用了一次。当一个功能模块运行结束后,应该清屏,腾出显示空间给下一个功能模块。因为下一个功能模块有可能有大量的信息需要显示,你上一个功能模块的输出就不要凑热闹了。
待续!
C语言实现的一个交互小程序(一)相关推荐
- 恶作剧c语言程序,自己用C语言编写的一个恶作剧小程序代码
自己用C语言编写的一个恶作剧小程序代码 #include #include #include #define MAX 100 void hebingString(char s1[],char s2[] ...
- mqtt与硬件交互_一个关于小程序Iot的具体实现(MQTT版)
原标题:一个关于小程序Iot的具体实现(MQTT版) Iot,这个名词应该很多人都听过了吧,即大数据.Ai等兴起后也紧跟着研发大潮流的到来,即物联网.传统简单的说就是智能化.程序化的控制硬件设施,大家 ...
- 只需6步,教你从零开发一个签到小程序
摘要:针对于具备瞬时流量.业务场景比较简单的小程序,开发者借助FunctionGraph,可以方便快捷的搭建一个健壮的小程序后台. 本文分享自华为云社区<智慧校园想搞好,FunctionGrap ...
- 开源一个golang小程序商城后台系统(moshopserver)
开源一个golang小程序商城后台系统(moshopserver) 开源一个golang小程序商城后台(moshopserver) golang和c/c++比起来是一门新的语言,一直想学,网上搜集了一 ...
- 微信小程序开发15 项目实战 基于云开发开发一个在线商城小程序
在学完前 4 个模块之后,我相信你会对微信小程序的开发有一个全新的认识.在前面 3 个模块中,俊鹏分别从微信小程序内在的运行原理,小程序工程化开发以及具体实践层面,深度讲解了微信小程序开发所必要的知识 ...
- 手机的小窗口怎么弄_做一个表白小程序
双十一刚过,不知道你是不是和我一样是一个人来庆祝这个节日的.今年的双十一已经过去了,明年的双十一你是不是还是想一个人过 莫慌,我这里演示一个表白小程序. 程序的灵感来自于我曾经某天刷腾讯小视频,发现一 ...
- 手把手教你写一个微信小程序日历组件
今天我们一起写一个微信小程序日历组件 微信小程序日历组件 github.com/749264345/w- 好,我们先看一下要实现的模样,如下图 由以上截图我们可以看到 1.日历可以通过按钮[切换展示效 ...
- java 获取文件所在的文件夹_带你0基础编写一个Java小程序,领略Java程序从编写到编译再到运行的全流程...
在学习Java之前我们需要先认识下什么是计算机语言?计算机语言又有哪些分类?在了解这些后对我们理解学习帮助是很大的. 要知道计算机语言是人与计算机之间进行信息交流沟通的一种特殊语言,又分为机械语言.汇 ...
- 每个公众号都需要一个社区小程序
公众号正式版上线以来,阅读数持续下降,涨粉难.互动难成了公众号运营主们普遍遇到的难题,我们见证了太多公众号停更,坚持做公众号的越来越少. 而微信小程序越来越炙手可热,它以开发周期短,开发成本低,即用即 ...
最新文章
- Angular 7 版本
- Oulipo(kmp算法)
- 四 Spring的工厂类,xml的配置
- 从本地上传项目到 github 以及从github 下载项目到本地环境
- Code First 迁移
- 第22天:如何使用OpenAI Gym和Universe构建AI游戏机器人
- xss挖掘思路分享_新手指南 | permeate靶场漏洞挖掘思路分享
- 【PE】手动给PE文件添加一段代码MessageBoxA
- Js、jquery学习笔记
- Machine Learning - XVII. Large Scale Machine Learning大规模机器学习 (Week 10)
- MySQL电影院管理系统_电影院售票管理系统
- C语言为内存分配空间(代码段、数据段、bss段、存储类、变量的生命周期)
- 解决运行Vue项目localhost8080拒绝连接
- 3dmax 计算机中丢失,3dmax材质丢失怎么快速找回-解决3dmax材质不见了的方法 - 河东软件园...
- 链表:21. 合并两个有序链表
- 红点奖设计概念奖设计之星奖
- C语言 扑克牌小游戏
- Spring源码窥探之:ImportBeanDefinitionRegistrar
- 国庆在家没事干?教大家用Python做一个任何视频都能看的软件, 当然,只能看正经的
- 基于Opencv快速实现人脸识别(图片识别)
热门文章
- Image Segmentation论文学习翻译-SLIC Superpixels Compared to State-of-the-Art Superpixel Methods
- “特斯拉杀手们”真正的敌人来了
- java练习题——手动输入成绩, 每次加分百分之二十。
- One Chin Per Person
- Python -- 关于字典的学习(二)——遍历字典
- PHP源码分析(内存管理)
- 元宇宙产业委共治大会专题——樊晓娟律师:元宇宙中的隐私保护迫在眉睫
- 好用的个人树洞外链系统程序源码
- 求整数1-100的累加值,要求跳过所有个位为3的数
- VM15 虚拟机下载及安装CentOS7.6