欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    高级语言课程设计实验指导书.docx

    • 资源ID:14085451       资源大小:45.85KB        全文页数:26页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    高级语言课程设计实验指导书.docx

    1、高级语言课程设计实验指导书高级语言课程设计实验教案模版 本实验是C+程序设计的后续课程,目的是通过本实验课,使得学生更好掌握C+的相关知识,提高学生的编程水平、技能和综合应用C+的能力。实验工具:vc+6.0 实验题目为银行活期储蓄管理系统。系统的功能模块结构图如下: 高级语言课程设计实验教案 1实验项目一、系统主菜单 2实验项目二、开户模块 3实验项目三、存款模块 7实验项目四、取款模块 9实验项目五、计息模块 10实验项目六、查询模块 10实验项目七、排序模块 13C+文件流操作 13 实验项目一、系统主菜单实验内容:编写系统主菜单实验目的:通过实现系统主菜单模块使得学生掌握工程文件中不同

    2、文件之间的函数调用方法。模块实现算法包含头部文件函数声明extern void kh();开户函数extern void ck();存款函数extern void qh();取款函数extern void jx();计息函数extern void cx();查询函数extern void px();排序函数main()while(1)system(“cls”);/清屏显示菜单选择提示并接收用户输入使用多路选择语句处理用户选择相关知识点:清屏函数函数名称system头部文件Stdlib.h函数用途调用dos命令函数原型Int system(const char*command)参数Command

    3、 dos命令字符串容易出现的错误: 如果将用于接受用户输入选择的变量定义为整型,则当输入非数字字符时候,程序将进入死循环。 缺少对被调用的函数的引用声明(extern)。思考:使用工程的优点 实验项目二、开户模块实验内容:编写开户模块实验目的:掌握与文件相关的操作开户模块算法:函数声明bool uidinput();函数的功能是输入身份证并验证是否合法(身份证号长度、组成)合法返回假否则返回真bool pwdinput();函数功能是输入密码和确认密码,并验证密码是否合法,如果合法则返回假,否则返回真bool moneyinput();函数功能输入开户金额并验证金额是否合法合法返回假,否则返回

    4、真void kh()bool xh;清屏身份证输入及验证doxh= uidinput(); while(xh);验证当前身份证是否已经开过户Person p,p2;/对象p用于接收存放开户信息,对象 p2用于存放从帐户文件中读取的帐户记录以读与添加方式打开帐户文件C文件操作C+文件流操作定义文件指针FILE*fp以读和追加写方式打开帐户文件fp=fopen(char *fileName,”r+a”);if(fp=NULL)/当前帐户文件为空将当前储户开户信息追加到帐户文件fwrite( &p,sizeof(zh),1,fp);关闭文件fclose(fp);反馈开户成功信息返回主菜单elsewh

    5、ile(!feof(fp)读取帐户记录If(读取帐户的帐号=开户帐号)反馈已经开过户信息返回系统主菜单将开户信息追加到帐户文件关闭文件反馈开户成功信息返回系统主菜单创建文件流对象fstream file;以读追加方式打开帐户文件file.open(char*fileName,ios:in|ios:out|ios:binary|ios:app,0);while(!file.eof()读取帐户记录If(读取帐户的帐号=开户帐号)反馈已经开过户信息关闭文件流file.close();返回系统主菜单将开户信息追加到帐户文件file.write(char *)&ap,sizeof(zh);反馈开户成功信

    6、息关闭文件流file.close();返回系统主菜单相关知识点:文件指针定义FILE * fp;打开文件(fopen函数)函数名称fopen头部文件Stdio.h函数用途打开一个文件函数原型FILE *fopen( char *filename,char *mode)参数filename:文件名称参数Mode:文件打开模式:a 追加方式打开文本文件ab 追加方式打开二进制文件w 只写方式打开文本文件wb 只写方式打开二进制文件r 只读方式打开文本文件rb 只读方式打开二进制文件r+a 可读可写追加方式打开文本文件r+ 可读可写覆盖方式打开文本文件返回值返回文件指针,打开失败返回NULL文件写操

    7、作(fwrite库函数)函数名称fwrite头部文件Stdio.h函数用途往文件的当前位置开始写入size*count个字节的数据函数原型int fwrite(void *buf, int size, int count, FILE *fp)参数fp: 文件指针参数Buf: 存放要写入的数据的地址参数Size:写入数据类型的字节数参数Count:写入数据的数量文件读操作(fread库函数)函数名称fread头部文件Stdio.h函数用途从文件的当前位置开始中读取size*count个字节的数据函数原型int fread(void *buf, int size, int count, FILE

    8、*fp)参数fp: 文件指针参数Buf: 存放读取数据的指针参数Size: 每个数据单位的字节数参数Count: 读取的数据单位个数关闭文件fclose(FILE *);函数名称fclose头部文件Stdio.h函数用途关闭文件函数原型nt fclose(FILE *fp)参数fp: 文件指针判断是否到达文件结尾函数(feof库函数)函数名称feof头部文件Stdio.h函数用途检测文件位置指示器是否已到结尾函数原型int feof(FILE *stream)参数fp: 文件指针返回值0-未到文件结尾,1-已到文件结尾字符串比较函数:函数名称strcmp头部文件string.h函数用途字符串比

    9、较函数原型int strcmp(char *str1,char *str2)参数str1,str2 待比较的字符串返回值小于0:str1str2字符串长度函数函数名称strlen头部文件string.h函数用途得到字符串长度函数原型int strlen(const char *s)参数s 待求长度的字符串指针返回值字符串的长度判定字符是否数字字符函数函数名称isdigit头部文件ctype.h函数用途测试参数是否为数字 0 - 9函数原型int isdigit(int ch)参数ch 被测参数返回值非零-是,0-不是判断字符是否是数字或字母字符isalnum函数名称isalnum头部文件cty

    10、pe.h函数用途测试参数是否为大、小写字母或数字函数原型int isalnum(int ch)参数ch 被测参数返回值非零-是,0-不是字符串复制库函数strcpy函数名称strcpy头部文件string.h函数用途将字符串src拷贝到字符串dest中去函数原型char *strcpy(char *dest, const char *src)参数dest 目的字符串,src 源字符串返回值指向dest的指针从控制台读取字符库函数getch函数名称getch头部文件conio.h函数用途从控制台读取一个字符,但不显示在屏幕上函数原型int getch(void)返回值读取的字符消息框函数Mess

    11、ageBox(0,提示,提示,0);容易出现的错误.打开文件的方式与要进行的操作不符文件绝对路径中的转义字符用于存放密码的数组开辟的单元不够在逐个输入密码后缺少字符串结束字符0在判断当前用户是否开过户时,未遍历所有记录而做出结论忘记关闭文件获取系统日期举例:系统时间的获取示例:#include#includevoid main() time_t t; t=time(NULL); tm *T=gmtime(&t); int year=T-tm_year+1900; int month=T-tm_mon+1; int day=T-tm_mday; int hour=T-tm_hour+8; int

    12、 min=T-tm_min; int sec=T-tm_sec; coutyear年month月day日 hour:min:secp.uid;/金额验证/以读写方式打开帐户文件FILE * fp=fopen(“文件名称”,”r+w”);do (!feof(fp)/未到文件结尾 fread(&p2,sizeof(person),1,fp);/读取文件指针所指的帐户记录将其存放于对象p2中/验证是否与存款帐户号码(身份证号码)是否相等 If(!strcmp(p.uid,p2.uid)将文件指针定位于当前存款客户的帐户记录将当前客户的修改了存款余额的帐户记录(对象)写回帐户文件(覆盖)关闭文件反馈存

    13、款成功信息 返回主菜单/帐户文件遍历结束关闭文件/反馈帐号不存在信息/返回主菜单相关知识文件指针定位函数:函数名称fseek头部文件stdio.h函数用途设定文件操作指示器位置函数原型int fseek(FILE *fp, LONG offset, int origin)参数fp 文件指针 offset 相对于origin规定的偏移位置量 origin 指针移动的起始位置,可设置为以下三种情况:SEEK_SET 0 文件开头SEEK_CUR 1 当前读写的位置SEEK_END 2 文件尾部容易出现的错误:文件指针定位不正确思考: 系统功能之间的序的问题?实验项目四、取款模块实验内容:取款模块的

    14、设计与编码实现实验目的:进一步掌握文件操作和编程训练。取款模块算法包含头部文件定义帐户对象Void qk()/取款函数清屏输入身份证号码和密码以读写方式打开帐户文件File * fp=fopen(“文件名称”,”r+w”);while(!feof(fp)/当帐户文件未遍历结束读取文件指针当前所指的帐户记录并存放于对象p2If(p2.身份证号码与用户输入的身份证号码相同且密码也相同)输入取款金额并校验. 验证是否可能透支If(可能透支)反馈帐户存款不足信息关闭文件返回主菜单else修改当前客户的存款余额 将文件指针定位于当前客户的帐户记录 将修改存款余额后的对象写入帐户文件(覆盖)反馈取款成功信

    15、息关闭文件返回系统主菜单遍历结束关闭文件反馈非法用户信息返回主菜单容易出现的错误在查询用户时未将身份证号码和密码同时验证。思考:存款模块、款模块有何共性?实验项目五、计息模块实验内容:实现对所有帐户批处理计息。实验目的:正确掌握文件指针的定位计息模块算法:计算当前帐户文件中的帐户个数n对帐户文件中所有帐户计息For(int i=1;i=n;i+)将指针定位于帐户文件中第i个记录读取第i个记录计算第i个帐户记录的利息将指针定位于帐户文件中第i个记录修改第i个帐户记录覆盖帐户文件中原有的第i个帐户记录。反馈计息结束信息。容易出现的错误:在批处理时候,在读取记录时没有定位。思考:当完成一个写操作时候

    16、,文件指针是否移动到下一个记录?实验项目六、查询模块实验内容:实现查询用户的当前存款余额并以人民币大写的形式输出实验目的:掌握映射算法容易出现的错误:算法不好人民币大写示例:#include#include#include int num8;/用于存储组成金额的数值int length;/用于存放组成金额的数值个数bool jy(int i)/用于验证从第i个数值后是否还存在非零数值 int j; for(j=i;j=length;j+) if(numj) return true;/存在非0数值 return false;/不存在非0数值void main() MessageBox(0,人民币

    17、大写示例,提示,0); coutmoney; if(money99000000) MessageBox(0,金额过大,提示,0); return; /处理0元 if(money=0) cout零元; else/非0元 /定义大写映射数组 char dx103=零,壹,贰,叁,肆,伍,陆,柒,捌,玖; /定义单位映射数组 char dw85=元,十,百,千,万,十万,百万; /将钱以逆序存放于数组 int i=0; int fl=0;/用于统计非0数值的个数处理整百、千、万.的特殊数值 while(money)/将组成金额的数值分离出来 numi=money%10;/求当前金额的个位数值 cou

    18、tnumi; if(numi) fl+;/累计非0数出现次数 money/=10;/去掉当前金额的个位 i+; -i;/将金额分离完毕 length=i; if(fl=0) index=numi; if(index)/非零数字 printf(dxindex);/输出大写 printf(dwi);/输出人民币单位 first=true;/第一次遇到0标识 else if(first&jy(i)/如果是第一次遇到0且此位以后还存在非0数值 printf(零); first=false;/将第一次遇到0的标识设置为假 i-; 思考:在验证用户身份时,为何用户标识和密码同时验证?实验项目七、排序模块

    19、实验内容 将现有储户按照余额以为降序排序。实验目的:动态数据结构及排序训练。知识点:动态分配内存空间函数:allocmem函数名称allocmem头部文件dos.h函数用途按节(16字节)分配内存块函数原型int allocmem(unsigned size, unsigned * seg)输入参数size 分配的节数输出参数seg 分配后的段地址返回值-1 分配成功,其他数值-实际分配的节数动态分配内存空间函数:freemem函数名称freemem头部文件dos.h函数用途释放由allocmem()分配的内存块函数原型int freemem(unsigned seg)输入参数seg 段地址返

    20、回值0-操作成功,-1 操作失败思考:动态申请的存储单元的生存期为?C+文件流操作在C+中,有一个stream这个类,所有的I/O都以这个“流”类为基础。stream这个类有两个重要的运算符: 1、插入器() 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,coutWrite Stdout) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cinx;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C+中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所

    21、以,要用这种方式操作文件,就必须加入头文件fstream.h。一、打开文件 在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是: void open(const char* filename,int mode,int access); 参数: filename: 要打开的文件名 mode: 要打开文件的方式 打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:ios:app: 以追加的方式打开文件 ios:ate: 文件打开后定位到文件尾ios:app就包含有此属性 ios:binary: 以二进制方式打开文件,缺省的方式是文本方式。ios:i

    22、n: 文件以输入方式打开ios:out: 文件以输出方式打开 ios:nocreate: 不建立文件,所以文件不存在时打开失败 ios:noreplace:不覆盖文件,所以打开文件时如果文件存在失败 ios:trunc: 如果文件存在,把文件长度设为0 可以用“或”把以上属性连接起来,如ios:out|ios:binary access: 打开文件的属性打开文件的属性取值是: 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件 可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件。 例如:以二进制输入方式打开文件c:config.sys fstre

    23、am file1; file1.open(c:config.sys,ios:binary|ios:in,0); 特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu file stream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。ifstream file2(c:pdos.def);/以输入方式打开文件ofstream file3(c:x.123);/以输出方式打开文件所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想

    24、以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义。二、关闭文件 打开的文件使用完成后一定要关闭,fstream提供了成员函数close()来完成此操作,如:file1.close();就把file1相连的文件关闭。三、读写文件 读写文件分为文本文件和二进制文件的读取,对于文本文件的读取比较简单,用插入器和析取器就可以了;而对于二进制的读取就要复杂些,下要就详细的介绍这两种方式 文本文件的读写 文本文件的读写很简单:用插入器()从文件输入。假设file1是以输入方式打开,file2以输出打开。示例如下: file2i;/从文件输入一个整数值。 这

    25、种方式还有一种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些 操纵符 功能 输入/输出 dec 格式化为十进制数值数据 输入和输出 endl 输出一个换行符并刷新此流 输出 ends 输出一个空字符 输出 hex 格式化为十六进制数值数据 输入和输出 oct 格式化为八进制数值数据 输入和输出 setpxecision(int p) 设置浮点数的精度位数 输出 比如要把123当作十六进制输出:file1hex123;要把3.1415926以5位精度输出:file1setpxecision(5)3.1415926。 2、二进制文件的读写 put() put()函数向流写入一个字符,其原型是ofstream &put(char ch),使用也比较简单,如file1.put(c);就是向流写一个字符c。 get() get()函数比较灵活,有3种常用的重载形式: 一种就是和put()对应的形式:ifstream &get(char &ch);功能是从流中读取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如file2.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。 另一种重载形式的原型是:


    注意事项

    本文(高级语言课程设计实验指导书.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开