当前位置:文档之家› 程序设计综合实验报告册

程序设计综合实验报告册

西南交通大学程序设计综合实验实验地点:实验学期:学生班级:学生学号:学生姓名:任课教师:龚勋信息科学与技术学院2012年4月实验一:ATM机用户操作界面、业务逻辑编写●实验目的及内容1、根据ATM的工作流程编写用户界面,掌握文本用户菜单的编写方法;2、根据ATM的工作流程编写业务罗杰,掌握搭建一个完整的应用系统的方法及软件编程思想。

●实验要求1、除提示用户输入的数字外,界面上不能响应、出现任何其他用户输入;2、每个菜单界面独立显示,不要出现多组菜单重叠显示的现象;3、每个业务逻辑可以多次执行,直到用户选择退出业务。

●实验步骤及核心代码void main(){ int bExit=0;char in; //控制语言的选择while(!bExit){MainMenu();in=getch();system("cls");switch(in) { .....语言选择}}}void MainMenu() {......}void LanguageMenu(int t){int cExit=0;char in;while(!cExit){if(t==1){ ...... //显示中文功能选择菜单in=getch();system("cls");switch(in){ 中文功能函数的选择}}else { 同上,只需将中文函数改为英文函数}}}//中文的查询函数void Query1(){printf("======================\n")printf(“此账户有%.2f元\n",sum); //对sum已初始化system("pause");system("cls");}//中文的存钱函数void Deposit1(float *p){float x;printf("================================\n");printf(" 输入您要存的数目:");scanf("%f",&x);*p+=x;system("pause");system("cls");}//中文的取钱函数void WithDraw1(float *p){float y;int a=1;printf("====================================\n");printf("输入您要取的数目: ");while(a){scanf("%f",&y);if(y>sum){ printf("\n余额不足,按任意键后重新输入\n"); }else{ *p-=y;a=0;}}system("pause");system("cls");}实验二:进制转换器●实验目的及内容写一个进制转换器,实现十进制、二进制、十六进制的相互转换●实验要求1、转换要求包括整数和小数;2、提供清晰、有好的用户界面;3、各种转换可以反复多次执行,直到用户选择”退出“按钮。

●实验步骤及核心代码void main() {...}void Mainmenu() {...}//二进制到十进制和十六进制void BtoDH(){int iExit=0;while(!iExit){ system("cls");string s1,s2,s3,s;int i,len;...... //输入字符串ss=s1;len=s1.length();for(i=0;i<len;i++){ s3=s1.substr(0,1); //截取从0到1的字符,包括0不包括1 s1=s1.substr(1,s1.length()-1);if(s3=="."){ s2=s.substr(0,i); //截取0到i的字符break;}}if(s2.length()==0){s2=s;s1="";}int in=BtoDint(s2); //把二进制数分离开后,调用整数部分float dou=BtoDdecimal(s1); //调用二进制小数部分dou=in+dou;string ss1,ss2;ss1=BtoHint(s2,1);ss2=BtoHint(s1,0);...... //输出十进制形式和十六进制形式}}//二进制整数到十进制整数int BtoDint(string s){int i,ss=0,len,l;len=s.length()-1;l=len;for(i=0;i<=len;i++){string ch=s.substr(0,1);s=s.substr(1,s.length()-1);if(ch=="1"){ss+=pow(2,l);l--;}elsel--;}return ss;}//二进制小数到十进制小数float BtoDdecimal(string s){float ss=0.0;int i,len,l;len=s.length()-1;l=-1;for(i=0;i<=len;i++){string ch=s.substr(0,1);s=s.substr(1,s.length()-1);if(ch=="1"){ ss+=pow(2,i); //pow函数返回值为计算2的i次方l--;}elsel--;}return ss;}//十六进制到二进制和十进制void HtoBD(){int iExit=0,len,i;string s,s1,s3,s2,ss1,ss2;while(!iExit){system("cls");cout<<"please input the number ";cin>>s1;s=s1;len=s1.length();for(i=0;i<len;i++){s3=s1.substr(0,1);s1=s1.substr(1,s1.length()-1);if(s3=="."){s2=s.substr(0,i);break;}}if(s2.length()==0){s2=s;s1="";}ss1=HtoBint(s2,1);ss2=HtoBint(s1,0);int in=BtoDint(ss1);float dou=BtoDdecimal(ss2);dou=in+dou;...... //输出二进制形式和十进制形式}}string HtoBint(string s,int in){string s1;int len;len=s.length();string ret="";for(int i=0;i<len;i++){s1=s.substr(0,1);s=s.substr(1,s.length()-1);if(in==1)ret=HtoBbit(s1)+ret;elseret+=HtoBbit(s1);}return ret;}//十六进制字符与二进制字符串的互相转换string HtoBbit(string s){ string ret;if(s=="0") ret="0000";...}//二进制到十六进制string BtoHint(string s,int in){int len=s.length();int t=len%4;len=(4-t)%4;while(len--){if(in==1)s="0"+s;elses+="0";}int num=s.length()/4,i;string ret;for(i=0;i<num;i++){string temp=s.substr(0,4);s=s.substr(4,s.length()-4);ret+=BtoHbit(temp); //BtiHbit函数使二进制字符串与十六进制字符互相转换,与上面相似,略写}return ret;}//十进制到二进制和十六进制void DtoBH(){double num,n2;int iExit=0,len,n1;string s1,s2,s3,s4;while(!iExit){system("cls");cout<<"please input the number and the length of decimal ";cin>>num>>len;n1=int(num);n2=num-n1;s1=DtoBdecimal(n2,len);s2=DtoBint(n1);s3=BtoHint(s2,1);s4=BtoHint(s1,2);...... //输出二进制形式和十六进制形式}}//十进制小数到二进制小数string DtoBdecimal(double in,int len){string ret;double p=in;while(len--){p*=2;if(p>=1){ret+="1";p-=1.0;}elseret+="0";}return ret;}//十进制整数到二进制整数string DtoBint(int in){ if(in==0)return "0";string ret="";int q=in,remain;while(q){ remain=q%2;q=q/2;if(remain) ret="1"+ret;else ret="0"+ret;}return ret;}实验三:随机数生成、中奖者●实验目的及内容生成一组均匀分布的伪随机数,根据随机数编写一个抽奖程序●实验要求1、能够根据用户的输入,控制随机数生成的数目,随机数用动态数组保存;2、能够根据用过的输入,控制随机数的范围:比如能够生成一组【a,b】范围内的随机数;3、由用户输入抽奖者人数N;4、为每一个人分配一个代号(类似于名字)和一个随机号码(即抽奖票号,加你控制在1-N之间)并将其打印出来;5、由机器摇号:生成一个在1-N之间的随机数作为中奖号码,查找中奖者,并公布中奖者信息(注:可以有多人同时中奖);6、如果没有对应的中奖者,需要将该号码公布出来,然后重新生成一个中奖号码,知道中奖者存在为止。

相关主题