简单开发过程介绍(C语言)
来源:互联网 发布:文化部网络歌曲黑名单 编辑:程序博客网 时间:2024/06/06 09:10
本文通过将文本文件中的字符串进行排序,给出一个基本分析问题,解决问题通用方法。希望通过解决一个简单问题(比如:字符串排序),让大家了解如何分析和解决类似研发中遇到的问题。
= 需求分析 =
将文本文件中的字符串按照ASCII码进行排序。
= 功能分析 =
# 支持文件操作
# 支持字符排序
= 详细设计 =
* a) 文件读取:
int FILE_Read(char * file_name, char * buf, int size)
* b) 文件保存:
int FILE_Save(char * file_name, char * buf, int size)
* c) 字符排序:
int CHAR_Sort(char * buf, int size)
= 使用方法 =
* 第一步:读取文件,调用FILE_Read
* 第二步:字符排序,调用CHAR_Sort
* 第三步:排序结果输出到文件,调用FILE_Save
= 编码实现 =
#include <stdio.h>//a) 文件读取: int FILE_Read(char * file_name, char * buf, int size)int FILE_Read(char * file_name, char * buf, int size){int ch, cnt;FILE * fp = NULL;if (NULL == file_name || NULL == buf){return -1;}fp = fopen(file_name, "r");if (NULL == fp){return -2;}cnt = 0;ch = fgetc(fp);while(ch != EOF){*(buf + cnt) = (char)ch;cnt++;//printf("char[%d] = %c\n", cnt, ch);ch = fgetc(fp);}fclose(fp);return cnt;}//b) 文件保存: int FILE_Save(char * file_name, char * buf, int size)int FILE_Save(char * file_name, char * buf, int size){int ret, cnt;FILE * fp = NULL;if (NULL == file_name || NULL == buf){return -1;}fp = fopen(file_name, "w");if (NULL == fp){return -2;}cnt = 0;while(cnt < size){ret = fputc(*(buf + cnt), fp);if (EOF == ret){return -3;}cnt++;}fclose(fp);return cnt;}//c) 字符排序: int CHAR_Sort(char * buf, int size)int CHAR_Sort(char * buf, int size){char ch;int i, j;for (i = size; i > 0; i--){for (j = size -1; j > size - i; j--){if ( *(buf + j) < *(buf + j - 1)){ch = *(buf + j);*(buf + j) = *(buf + j - 1);*(buf + j - 1) = ch;}else{// do nothing}}}return 0;}#define MAX_BUF 512int main(){int ret, size;char buf[MAX_BUF];size = FILE_Read("a.in", buf, MAX_BUF);if (0 > size){printf("FILE_Read error! size = %d\n", size);return size;}printf("FILE_Read size = %d\n", size);ret = CHAR_Sort(buf, size);printf("CHAR_Sort ret = %d\n", ret);ret = FILE_Save("test1.out", buf, size);printf("FILE_Save ret = %d\n", ret);return 0;}
= 功能测试 =
1) 输入“aghyckt” --> 输出“acghkty”
2) 输入“This is a 78903471 really combined test with digits and alphabet. 100 3000 489103476” --> 输出“ .000000011133344467778899Taaaaabbcdddeeeeghhhiiiiiilllmnnoprsssstttttwy”
3) 输入“8609835” --> 输出“0356889”
= 总结报告 =
知识点,涉及:
* 文件的打开、关闭、字符读取,字符保存操作
* 冒泡算法
* 问题的分析,归纳整理,和处理流程
* 详细设计
* C语言编码、调试能力
* 系统测试能力
= 参考资料 =
* C程序设计(第二版) 7-302-03806-06-6/TP.2205
0 0
- 简单开发过程介绍(C语言)
- c语言数组简单介绍
- 简单c语言程序介绍
- C语言的简单介绍
- C 语言知识点简单介绍
- C语言 编译链接过程介绍
- C语言的简单介绍与描述(个人见解)
- 简单C语言程序的执行过程
- Object_c基础——oc程序与C语言程序开发过程的异同简单认识
- 简单介绍Linux中C语言妙用
- c语言基本数据类型简单介绍
- c语言中的冒泡排序简单介绍
- c语言中指针的简单介绍
- C语言中枚举的简单介绍
- c语言中函数的简单介绍
- 4.6 C语言函数的简单介绍
- c语言-----数组的简单介绍
- C/C++语言的简单介绍
- memcached搭建缓存系统
- 软件版本管理原则
- LRU Cache
- Android根据所设置的textSize获取字体高度和设置行高
- Python 获取新浪微博的最新公共微博
- 简单开发过程介绍(C语言)
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- Apache Ant 简介
- httphelp
- picture
- centos 编译安装 heartbeat
- hdu2099
- Linux系统目录结构
- atitit.插件体系设计总结o73.doc