skip to content
WNLee's Blog

C语言编程流程总结

/ 5 min read

很少用C语言写东西,代码是需要一定的代码量来修炼的,一步一个脚印,练得多代码才能写得好!这是写了三个操作系统实验小程序之后做的总结

目录

  • 摘要
  • 目录
  • 撰文缘由
  • 开发流程
  • 总结

开发流程

【第一步】程序要求

比如我的作用是做一个单道处理系统的作业等待模拟程序,要求如下:

  1. 首先是单道处理系统,就是说单进程的,不需要考虑多进程的情况;
  2. 需要分别模拟 先到先服务调度算法(FCFS) 和 响应比高优先调度算法(HRN);
  3. 控制块统一命名 JCB,大概需要包含的信息(可以用来设计结构体);
  4. 模拟过程中需要输出 周转时间、带权周转时间、平均周转时间和平均带权周转时间;
【第二步】知识储备
  • 至少要知道什么是 FCFS 和 HRN 算法吧!
  • 响应比(Rp) = (等待时间+要求服务时间)/(要求服务时间);
  • 周转时间 = 完成时间 - 到达时间 = 等待时间 + 服务时间;
  • 带权周转时间 = 周转时间/服务时间;
【第三步】程序构思
  • 选择要测试的调度算法的类型,选择后对应进行测试
  • 程序需要数据,所以需要用户输入的过程
  • 输入结束,我要存储未到达进程、就绪进程、运行进程、完成进程
  • 存储时,我需要按进程的到达时间来进行筛选
  • 存储到就绪进程的需要按算法类型来排序
  • 运行进程每次都调用就绪进程首位的进程来运行
  • 运行过程中未到达的进程会到达,我需要计算到达时间
  • 程序要求记录进程完成时间需要设置 timer
  • 程序要求输出的结果需要另外存储完成的进程
  • 所有进程完成后需要计算结果
  • 结果得出后需要输出
【第四步】程序框图
程序框图
【第五步】准备工作
  1. 选择需要的预编译头文件;
  2. 选择数据结构,还有相关操作,这里我选择链表;
  3. 设计结构体,我为了方便插入删除增加了指向前面元素的指针;
  4. 设计功能块,可以按函数来分,函数间互相依赖;
  5. 按功能模块为函数分类,比如:功能函数我加上前缀 ‘md_ ‘、输出是’pf_ ‘、链表操作是’lt_‘;

大概就是这些,缺的欢迎补充…

【第六步】编写程序

这个怎么写呢?!每个人都有自己的编程习惯,编译器也有不同。但是,大部分人都会按模块来写吧!我个人比较喜欢先写输入输出,数据结构这两块。写输入输出再来添加逻辑模块方便调试,数据结果模块比较固定,而且是其他模块的依赖。

这一部分就略过,以后有心得再补充。。。

【第七步】测试和优化

【测试】也可以叫做 debugger 吧?多输入几组数据来看有木有 BUG!

【优化】主要讲下代码优化,包括代码风格、变量命名、功能块合并等等!

总结

理清思路来写代码的话,比上网拷贝抄袭好很多的,这样子思路清晰不用帮别人debugger。添加、删减功能思路也会很清晰。至少不会因为代码不是自己的而手足无措。还能锻炼自己的思维啊、编程能力啊。。。以上就是个人的一些心得希望读者喜欢,XDXDXD。。。