⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tc.txt

📁 c语言心得
💻 TXT
📖 第 1 页 / 共 2 页
字号:

  程序清单如下:(win2000+VC6.0) 

  /******************************************************************* 
利用ADO访问MS SQL2000 
要求: 【1】输出stu_info表内的每一条记录 
【2】添加一条新记录 
【3】删除名字为"本拉登"的记录 
*/ 
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \ 
no_namespace rename("EOF", "EndOfFile") 
#include <iostream> 
#include <iomanip> //for setw() 
using namespace std; 
class STU 
{ 
 public: 
  char snum[10]; //学号 
  char sname[10]; //姓名 
  char ssex[2]; //姓别 
  long sage; //年龄 
  char smajor[20]; //专业 
 public: 
  STU(){} 
  ~STU(){} 
}; 

int main() 
{ 
 STU student; 
 ::CoInitialize(NULL); // 初始化OLE/COM库环境 ,为访问ADO接口做准备 

 _RecordsetPtr m_pRecordset("ADODB.Recordset"); 
 _ConnectionPtr m_pConnection("ADODB.Connection"); 

 _bstr_t bstrSQL("select * from stu_info"); //查询语句 
 char * query_cmd = "DELETE FROM stu_info WHERE sname = '本拉登'"; 

 try 
 { 
  // 创建Connection对象 
  m_pConnection.CreateInstance("ADODB.Connection"); 
  // 设置连接字符串,必须是BSTR型或者_bstr_t类型 
  _bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;"; 
  //若数据库在网络上则Server为形如(192.168.1.5,3340) 
  //用户sa和密码123只是针对我的库 
  m_pConnection->Open(strConnect,"","",adModeUnknown); 
  if(m_pConnection==NULL) 
   cerr<<"Lind data ERROR!\n"; 
  // 创建记录集对象 
  m_pRecordset.CreateInstance(__uuidof(Recordset)); 
  // 取得表中的记录 
  m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(), 
  adOpenDynamic,adLockOptimistic,adCmdText); 

  _variant_t vsnum,vsname,vsage,vssex,vsmajor; //对应库中的snum,sname,sage,ssex,smajor 
  cout << "学号 姓名 年龄 姓别 专业"; 
  cout << "\n----------------------------------------------------------------\n"; 

  while (!m_pRecordset->EndOfFile) 
  { 
   vsnum = m_pRecordset->GetCollect(_variant_t((long)0));//这儿给字段编号和字段名都可以 
   vsname = m_pRecordset->GetCollect("sname"); 
   vsage = m_pRecordset->GetCollect("sage"); 
   vssex = m_pRecordset->GetCollect("ssex"); 
   vsmajor = m_pRecordset->GetCollect("smajor"); 
   if (vsnum.vt != VT_NULL && vsname.vt != VT_NULL && vsage.vt != VT_NULL 
&& vssex.vt != VT_NULL && vsmajor.vt != VT_NULL) 
   { 
    cout.setf(ios::left); 
    cout << setw(14) << (char*)(_bstr_t)vsnum; 
    cout << setw(14) << (char*)(_bstr_t)vsname; 
    cout << setw(8) << vsage.lVal; 
    cout << setw(8) << (char*)(_bstr_t)vssex; 
    cout <<setw(20) << (char*)(_bstr_t)vsmajor; 
    cout.unsetf(ios::left); 
    cout << endl; 
   } 
   m_pRecordset->MoveNext(); ///移到下一条记录 
  } 
  cout << "\n----------------------------------------------------------------\n"; 
  cout << "\n请输入你要添加的学生信息\n"; 
  cout << "学号:"; 
  cin >> student.snum; 
  cout << "\n姓名:"; 
  cin >> student.sname; 
  cout << "\n年龄:"; 
  cin >> student.sage; 
  cout << "\n姓别:"; 
  cin >> student.ssex; 
  cout << "\n专业:"; 
  cin >> student.smajor; 
  m_pRecordset->MoveFirst(); //移动到第一条记录 
  m_pRecordset->AddNew(); ///添加新记录 
  m_pRecordset->PutCollect("snum",_variant_t(student.snum)); 
  m_pRecordset->PutCollect("sname",_variant_t(student.sname)); 
  m_pRecordset->PutCollect("sage",_variant_t(student.sage)); 
  m_pRecordset->PutCollect("ssex",_variant_t(student.ssex)); 
  m_pRecordset->PutCollect("smajor",_variant_t(student.smajor)); 
  m_pRecordset->Update(); 

  m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除 
  m_pRecordset->Close(); // 关闭记录集 
 } 

 // 捕捉异常 
 catch(_com_error e) 
 {  
  // 显示错误信息 
  cerr << "\nERROR:" << (char*)e.Description();//抛出异常 
 } 
 if(m_pConnection->State) 
  m_pConnection->Close(); 

 ::CoUninitialize(); 

 return 0; 





 第九文章频道 
首页 | 文章首页 | 编程技术 | C/C++教程 | 本站新频道-第九书盟 
Turbo C 程序设计 
 
作者:C++教程 来源:http\\d9soft.com 时间:2006-2-19 6:34:03 

 




 本节主要介绍Turbo C程序设计的步骤及如何编译、调试和运行源程序。并给出Turbo C的常用编辑命令。最后介绍Turbo C编译、连接和运行时的常见错误。 

  一、Turbo C程序设计基本步骤 

  程序设计方法包括三个基本步骤: 

  第一步: 分析问题。 

  第二步: 画出程序的基本轮廓。 

  第三步: 实现该程序。 

  3a. 编写程序 

  3b. 测试和调试程序 

  3c. 提供数据打印结果 

  下面, 我们来说明每一步的具体细节。 

  第一步: 分析问题 

  在这一步, 你必须: 

  a. 作为解决问题的一种方法, 确定要产生的数据(输出)。 作为这一子步的一部分, 你应定义表示输出的变量。 

  b. 确定需产生输出的数据(称为输入), 作为这一子步的一部分, 你应定义表示输入的变量。 

  c. 研制一种算法, 从有限步的输入中获取输出。 这种算法定义为结构化的顺序操作, 以便在有限步内解决问题。就数字问题而言, 这种算法包括获取输出的计算, 但对非数字问题来说, 这种算法包括许多文本和图象处理操作。 

  第二步: 画出程序的基本轮廓 

  在这一步, 你要用一些句子(伪代码)来画出程序的基本轮廓。每个句子对应一个简单的程序操作。对一个简单的程序来说, 通过列出程序顺序执行的动作,便可直接产生伪代码。然而, 对复杂一些的程序来说, 则需要将大致过程有条理地进行组织。对此, 应使用自上而下的设计方法。 

  当使用自上而下的设计方法时, 你要把程序分割成几段来完成。列出每段要实现的任务, 程序的轮廓也就有了, 这称之为主模块。当一项任务列在主模块时,仅用其名加以标识, 并未指出该任务将如何完成。这方面的内容留给程序设计的下一阶段来讨论。将程序分为几项任务只是对程序的初步设计。整个程序设计归结为下图所示的流程图1.。 

  ┏━━━━━━━━━━━━━━━┓ 

  ┃ 主模块 ┃ 

  ┏━━━━━━━┓ ┃ 输入数据 ┃ 

  ┃ 主模块 ┃ ┃ 计算购房所需的金额 ┃ 

  ┃ ┃ ┃ 计算装修所需的金额 ┃ 

  ┃ 任务1 ┃ ┃ 计算总金额 ┃ 

  ┃ 任务2 ┃ ┃ 输出计算结果 ┃ 

  ┃ 任务3 ┃ ┃ ┃ 

  ┃ 任务4 ┃ ┗━━━━━━━┳━━━━━━━┛ 

  ┃ ┃ ┏━━━━━┳━━━━━╋━━━━┳━━━━━┓ 

  ┃ ┃ ┏━━┻━┓┏━━┻━┓┏━━┻━┓┏━┻━┓┏━━┻━┓ 

  ┗━━━━━━━┛ ┃输入数据┃┃购房额..┃┃装修额..┃┃总额..┃┃输出结果┃ 

  ┗━━━━┛┗━━━━┛┗━━━━┛┗━━━┛┗━━━━┛ 

  图1. 程序初步设计 图2. 第二级程序设计 

  如果把主模块的每项任务扩展成一个模块, 并根据子任务进行定义的话, 那么, 程序设计就更为详细了(见图2.)。这些模块称为主模块的子模块。程序中许多子模块之间的关系可象图2.中那样归结为一张图。这种图称为结构图。 

  要画出模块的轮廓, 你可不考虑细节。如果这样的话, 你必须使用子模块,将各个模块求精, 达到第三级设计。继续这一过程, 直至说明程序的全部细节。 

  这一级一级的设计过程称为逐步求精法。在编写程序之前, 对你的程序进行逐步求精, 对你来说, 是很好的程序设计实践, 会使你养成良好的设计习惯。 

  我们则才描述了程序设计中自上而下的设计方法。实际上就是说, 我们设计程序是从程序的"顶部"开始一直考虑到程序的"底部"。 

  第三步: 实现该程序 

  程序设计的最后一步是编写源码程序。 在这一步, 把模块的伪代码翻译成Turbo C语句。 

  对于源程序, 你应包含注释方式的文件编制, 以描述程序各个部分做何种工作。此外, 源程序还应包含调试程序段, 以测试程序的运行情况, 并允许查找编程错误。一旦程序运行情况良好, 可去掉调试程序段, 然而, 文件编制应做为源程序的固定部分保留下来, 便于你或其他人维护和修改。 
二、源程序的输入、编译和运行 

  C语言是一种中级语言, 用户用C语言编写的程序称为源程序, 存放用C 语言所写源程序文件名字最后的两个字符一般必须为".c"。计算机硬件不能直接执行源程序, 必须将源程序翻译成二进制目标程序。翻译工作是由一个程序完成的,这个程序称为编译程序, 翻译的过程称为编译, 编译的结果称为目标程序, 存放目标程序文件名字紧后的字符一般为".OBJ"或".O"。程序翻译成目标程序后, 便可进行连接。"连接"的目的是使程序变成在计算机上可以执行的最终形式。在这一阶段, 从系统程序库来的程序要与目标程序连接, 连接的结果称为执行程序,存放执行程序文件名字一般以".EXE"结尾。 

  在Turbo C集成开发环境中建立一个新程序通常有以下几个步骤: 

  (1). 在编辑器中编写源文件。 

  (2). 生成可执行文件。 

  在DOS提示符下键入TC, 即可进入Turbo C了。进入主TC屏后, 按F3键, 即可在随之出现的框中输入文件名, 文件名可以带".C"也可以不带( 此时系统会自动加上)。输入文件名后, 按回车, 即可将文件调入, 如果文件不存在, 就建立一个新文件(也可用下面例子中的方法输入文件名)。系统随之进入编辑状态。就可以输入或修改源程序了, 源程序输入或修改完毕以后, 按Ctrl+F9(同时按下Ctrl键和F9键), 则立即进行编译、连接和执行, 这三项工作是连续完成的。 

  下面我们试着建立一个Turbo C名为"HELLO.C"的源程序(因程序很小, 这里就不画出该程序的轮廓图了): 

  1. 操作步骤: 

  (1). 将系统置于DOS提示符下: 

  (2). 键入命令: 

  tc hello.c 

  使系统进入Turbo C集成开发环境, 并建立一个名为HELLO.C的文件。这时, 系统进入Turbo C编辑环境。 

  (3). 通过键盘输入程序, 例如: 

  main() 

  { 

  printf("Hello, world\n"); 

  } 

  则程序进入计算机存贮器。 

  2. 程序存盘 

  为防止意外事故丢失程序, 最好将输入的程序存贮到磁盘中。在编辑窗口下,可直接按F2键或按F10键, 再按F键进入File菜单项, 再按S或W键将文件存盘。存盘时屏幕最底行会显示: 

  "saving edit file" 

  3. 编译一个程序 

  对源程序进行编译有两种方法: (1). 直接按Alt+F9即可。(2). 按F10 键返回主菜单, 选择Compile项, 屏幕显示Compile 下拉菜单, 从下拉菜单中选择Compile to .OBJ项, 按回车键。 

  进入编译状态后, 屏幕会出现一个编译窗口, 几秒钟后, 屏幕显示一闪烁信息: 

  Success: press any key 

  表示编译成功。此时可按任意键, 编译窗口消失, 光标返回主菜单。如果编译时产生警告Warning或出错Error信息, 这些具体错误信息会显示在屏幕下部的信息窗中, 必须纠正这些错误。对源程序进行修改, 重新进行编译。 

  4. 运行程序 

  源程序经编译无误后, 可以投入运行。具体操作如下: 

  (1). 如果当前还在编辑状态, 可按Alt+R, 再选择RUN项即可。 

  (2). 按Ctrl+F9。 

  程序投入运行时, 屏幕会出现一个连接窗口, 显示Turbo C 正在连接和程序所需的库函数。连接完毕后, 会出现屏幕突然一闪, 后又回到TC主屏幕, 发生了什么? 让我们按Alt+F5看看, 此时屏幕被清除, 在顶部显示"Hello, world"字样。再按任意键, 即可又回到TC主屏幕。 

  5. 列磁盘文件目录 

  现在请按Alt+X退出Turbo C, 返回DOS提示符, 键入dir hello.*, 回车, 则屏幕显示: 

  HELLO C 42 1-09-93 10:18 

  HELLO OBJ 221 1-09-93 10:22 

  HELLO EXE 4486 1-09-93 10:25 

  ... 

  第一个文件HELLO.C是源文件文本, 在DOS提示符下键入TYPE HELLO.C命令,可在屏幕上显示该文件的内容。可看到该程序只有42个字节。 

  第二个文件HELLO.OBJ是Turbo C编择程序产生的二进制机器指令(目标码),如果用DOS命令TYPE显示该文件, 屏幕可能会出现混乱的信息。 

  第三个文件HELLO.EXE是Turbo C连接程序产生的实际可执行文件。在DOS 提示符下键入HELLO并按回车, 屏幕将显示"Hello, world"。 

Turbo C 常用的编辑命令 

  Turbo C编辑程序大约有50条命令, 用以移动光标, 按页查看正文, 查找并替换字符串等。如下表所示。 

  表1. Turbo C编辑程序命令 

  ━━━┳━━━━━━━━━┳━━━━━━━━━━━━━ 

  类别 ┃ 功能 ┃ 默认键 

  ━━━╋━━━━━━━━━╋━━━━━━━━━━━━━ 

  ┃ 字符左 ┃ Ctrl+S或Left 

  基 ┃ 字符右 ┃ Ctrl+D或Right 

  本 ┃ 字左 ┃ Ctrl+A 

  光 ┃ 字右 ┃ Ctrl+F 

  标 ┃ 上行 ┃ Ctrl+E或Up 

  移 ┃ 下行 ┃ Ctrl+X或Down 

  动 ┃ 上滚 ┃ Ctrl+W 

  命 ┃ 下滚 ┃ Ctrl+Z 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -