程序设计基础课程设计报告 内容样例
《程序设计基础》课程设计报告参考样本
《程序设计基础》课程设计报告仅供参考(要求交纸质报告,A4纸张,可交打印稿)《程序设计基础》课程设计报告题目:日期:班级:学号:姓名:一.设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C语言)》课程后进行的一次全面的综合练习。
本课程设计的目的:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二.课程设计任务书(附上选择的题目)例如:题目:学生成绩管理系统某班学生有若干人(不超过40人),期末共考5门课,每个学生的成绩按学号顺序存入计算机。
学生信息如下表所示:设计一个程序,实现学生成绩管理功能。
基本功能:1、提供菜单式的用户界面;2、输入学生的基本信息(应考虑学生学号的唯一性);3、增加或删除学生记录;4、输入姓名或学号,查找某个学生的成绩;5、统计某门课程在100-90,89-80,79-70,69-60,60分以下各分数段人数并显示;6、对学生成绩按总分排序,并将排序结果输出7、使用文件记载学生信息,程序启动时加载学生信息,程序退出时保存学生信息;(进一步功能)要求:1、用C语言实现程序设计;2、系统的各个功能模块要求用函数的形式实现;3、界面友好(良好的人机交互),程序加必要的注释。
三.系统设计方案说明本程序中用到的数据结构的定义、主程序的流程以及各程序模块之间的层次(调用)关系。
四.调试分析内容包括:(1)调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;(2)程序算法的改进设想;(3)经验和体会等。
五.用户使用说明说明如何使用你编写的程序,详细列出每一步的操作步骤。
例如:一、开始二、具体信息三、排序四、统计输出不及格的学生名单和对应的课程。
五、查找六、结束六.测试结果列出你的测试结果,包括输入和输出。
程序设计基础课程设计报告
仲恺农业工程学院课程设计课程《程序设计基础》姓名金峰院(系)计算机科学与工程学院专业班级计算机093学号200910214308指导教师黄明志职称副教授日期 2010年06 月26日仲恺农业工程学院教务处制⏹题目:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:1系统以菜单方式工作2图书信息录入功能(图书信息用文件保存)--输入3图书信息浏览功能--输出4图书信息查询功能--算法查询方式:●按书名查询●按作者名查询5图书信息的删除与修改(可选项)⏹总体设计:✓程序分为六个模块◆主菜单◆图书信息录入◆图书信息浏览◆图书信息查询◆图书信息修改◆系统说明✓程序框图如下:⏹ 详细设计:◆ 主菜单程序框图:◆ 图书信息录入程序框图:◆ 图书信息浏览程序框图:◆ 图书信息查询程序框图:图书信息修改程序框图:系统说明程序框图:软件测试:主界面:信息录入:信息查询:综合设计总结:1.制作菜单时,使用getchar()函数,结果导致功能选择多了回车输入,导致下次选择出错。
解决方法是更换为getch()函数,此函数不需要回车确认,故避免此问题。
2.写输出函数时,遇到选择输出时,屏幕没有反应,检查函数没有错误。
发现为程序执行过快,闪一下就过去。
引入了system()函数中的”pause”参数,在浏览输出后暂停。
3.搜索资料时,算法有点问题,导致不够准确。
所以在后面修改功能里,忽略其它查询方法,只采用isbn搜索。
4.在定义指针数组时,有时会忘记是指针或者是指针变量。
5.生成储存文件时,有时的fopen或者fclose会用错参数或者放错位置。
附录:(源程序)20。
程序设计基础实验报告
一、实验目的1. 掌握程序设计的基本概念和编程语言的基本语法。
2. 熟悉编程环境的使用,学会编写、调试和运行简单的程序。
3. 培养逻辑思维能力和问题解决能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容1. 简单计算器(1)功能描述编写一个简单的计算器程序,能够实现加、减、乘、除四种基本运算。
(2)实现步骤1)定义一个函数,用于获取用户输入的两个数和一个运算符。
2)根据运算符进行相应的运算,并返回运算结果。
3)在主函数中调用该函数,打印运算结果。
(3)代码实现```pythondef calculator(num1, num2, operator):if operator == '+':return num1 + num2elif operator == '-':return num1 - num2elif operator == '':return num1 num2elif operator == '/':return num1 / num2else:return "无效的运算符"def main():num1 = float(input("请输入第一个数:"))num2 = float(input("请输入第二个数:"))operator = input("请输入运算符(+、-、、/):")result = calculator(num1, num2, operator)print("结果是:", result)if __name__ == "__main__":main()```2. 循环结构(1)功能描述编写一个程序,实现计算1到100之间所有奇数的和。
程序设计基础课程设计报告-内容样例
第一章目的及要求书上有。
第二章需求分析软件设计的一个重要的环节就是需求分析。
本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。
以下是ATM取款机管理系统所需要的需求分析。
ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。
①登录:输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面②挂失功能:确认是否对银行卡进行挂失,挂失后账户无法操作③修改密码:用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码④取款功能:用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内⑤转账功能:用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账号⑥查询功能:用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额模拟ATM取款机的操作:首先录入账户信息,格式如下㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。
㈡、查询功能:查询账户余额。
㈢、取款功能:取款,更新余额。
㈣、挂失功能:挂失后,该账户不能进行任何操作。
㈤、修改密码:输入原密码和新设置密码。
㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。
第三章设计分析3.1、ATM系统管理3.1.1系统基本功能首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。
另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。
所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并及ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。
基本功能:登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。
查询功能---------查询账户余额。
取款功能---------取款,更新余额。
程序设计基础(C语言)实验报告册
《程序设计基础》(c语言)实践报告专业 :计算机科学与技术班级:姓名:学号:教师:《程序设计基础》(c语言)课程组实验一#include<stdio.h>#include<conio.h>main(){printf(" 5 2 0\n");printf("+ 1 3 1 4\n");printf(" 1 8 3 4 * 10\n");4、输入一元二次方程的三个系数,求根。
#include<stdio.h>#include<math.h>void main(){double a,b,c,x1,x2,d;printf("pleae enter a,b,c:\n");scanf("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a);printf("x1=%lf\nx2=%lf\n",x1,x2);5、输入三角形的三个边长a,b,c,输出面积s。
#include<stdio.h>#include<math.h>main(){double a,b,c,s,r;printf("pleae enter a,b,c:\n");scanf("%lf%lf%lf",&a,&b,&c);r=(a+b+c)/2;s=sqrt(r*(r-a)*(r-b)*(r-c));printf("s=%lf\n",s);getch();实验2选择结构程序设计一、实验目的二、实验内容三、实验源码及测试数据#include<stdio.h>#include<conio.h>main(){double x,y;scanf("%lf",&x);if(x<1)y=x;if(x>=1&&x<10)y=2*x-1; if(x>=10)y=3*x-11;printf("%lf\n",y);getch();}#include"stdio.h"main(){int a,b,c,k,max,mid,min;#include<stdio.h>#include<math.h>main(){double a,b,c,s,r;printf("please enter a,b,c:\n"); scanf("%lf%lf%lf",&a,&b,&c);if(((a+b)-c)>0&&((a-b)-c)<0){r=(a+b+c)/2;s=sqrt(r*(r-a)*(r-b)*(r-c));printf("s=%lf\n",s);}else printf("不能构成三角形\n"); getch();}#include<stdio.h>#include<conio.h>main(){int a,b,c=0,i;printf("please enter a number\n"); scanf("%d",&a);while(a>0){b=a%10;c=b+10*c;a=a/10;}printf("%d",c);getch();}#include<stdio.h>#include<conio.h>main(){int a;printf("please enter a:\n"); scanf("%d",&a);if(a==100)printf("A\n");if(a>=90&&a<=99)printf("B\n");if(a>=80&&a<=89)printf("C\n");if(a>=70&&a<=79)printf("D\n");if(a>=60&&a<=60)printf("E\n");if(a<60)printf("F\n");getch();}#include"stdio.h"void main()实验3循环结构程序设计一、实验目的二、实验内容三、实验源码及测试数据#include<stdio.h>#include<conio.h>main(){char a[200];int i,b,num=0,emp=0,oth=0,lat=0;gets(a);b=strlen(a);for(i=0;i<b;i++){if(a[i]>='0'&&a[i]<='9')num++;elseif((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))lat++;else if(a[i]==' ')emp++;else oth++;}printf("num=%d\nlat=%d\nemp=%d\noth=%d\n",num,lat,emp,oth); getch();}#include<stdio.h>#include<conio.h>main(){int a=1,i;for(i=1;i<10;i++) {a=2*(a+1);printf("%d\n",a);} getch();}#include<stdio.h> main(){int i,b,a;a=0;for(i=1;i<=100;i++) {b=i%3;if(b==0) a=a+i; printf("%d\n",a);} getch();}#include<stdio.h>#include<math.h>void main(){int k;double n,a,s1,s2,s;s1=0;s2=0;for(n=1;n<=10;n++){a=1;for(k=1;k<=n;k++)a=a*k; s1=s1+a;s2=s2+(n*n*n-3*n*n+2)*pow(-1,n);} s=s1+s2;printf("%lf",s);}#include<stdio.h>#include<conio.h>#include<math.h>main(){int i,j,b,a,c;for(i=2;i<=5000;i++){ a=0;for(j=1;j<i;j++){b=i%j;if(b==0)a=a+j;}if(a==i)printf("%d\n",a); } getch();#include<stdio.h>#include<conio.h>#include<math.h>main(){int i,j,b,a,c;for(i=2;i<=5000;i++){ a=0;for(j=1;j<i;j++){b=i%j;if(b==0)a=a+j;}if(a==i)printf("%d\n",a); }getch();}#include<stdio.h>#include<conio.h>#include<math.h>main(){int a[10],i,zhengshu=0,fushu=0;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){if(a[i]>0)zhengshu++;if(a[i]<0)fushu++;}printf("zhengshu=%dfushu=%d",zhengshu,fushu); getch();}#include<stdio.h>#include<conio.h>#include<math.h>main(){char c;int num=0,oth=0,lat=0;for(;(c=getchar())!='#';){if(c>='0'&&c<='9')num++;else if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))lat++; else oth++;}printf("num=%d\nlat=%d\noth=%d\n",num,lat,oth); getch();}#include<stdio.h>main(){int i,a,b,c=0;for(i=1;i<=100;i++){a=i%10;b=i/10;if((a==6)||(b==6))c=c+i;}printf("c=%d\n",c);getch();}#include<stdio.h>main(){int i,a,b,c,d,f,e;e=0;for(i=101;i<1000;i++){b=i%10;c=((i-b*1)%100)/10;d=((i-b-c*10)%1000)/100; f=b*b*b+c*c*c+d*d*d;if(f==i)printf("i=%d\n",i); } getch();}#include<stdio.h>#include<math.h>void main(){double s=0,n,a,b,i,A;printf("输入下限a:");scanf("%lf",&a);printf("输入上限b:");scanf("%lf",&b);printf("输入最小分段n:");scanf("%lf",&n);for(i=a;i<b;i=i+n){A=(pow((4-i*i),0.5)+pow((4-(i+n)*(i+n)),0.5))*n/2; s=s+A;}printf("%lf",s);}#include<stdio.h>#include<math.h>void main(){double e;e=0.1;double x,x0,f,fl;scanf("%lf",&x);do{x0=x;f=3*x0*x0*x0+2*x0*x0-4*x0-6;fl=(9*x0+4)*x0-4;x=x0-f/fl;} while(fabs(x-x0)>e);printf("x=%lf\n",x);}#include<stdio.h>#include<conio.h>#include<math.h> main(){int i,j;for(i=1;i<10;i++) printf("%-5d",i); printf("\n");for(i=1;i<10;i++) {printf("\n");for(j=1;j<10;j++) printf("%-5d",i*j); } getch();}#include<stdio.h>void main(){int q,i,j,a=2,b;printf("%-8d%-8d",a,a); for(i=2;i<=10;i++) {printf("%-8d",2*i);a=a*a;printf("%-8d",a);b=i%5;if(b==0)printf("\n"); } }#include<stdio.h>main(){int i,j,n=1;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%d",n++%10);printf("\n"); }}三、实验源码及测试数据#include<stdio.h>main(){int a[10];int i,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;} for(i=0;i<10;i++)printf("%-3d",a[i]);getch();}#include "stdio.h"#include "string.h"scanf("%s",b);c=strlen(a);d=strlen(b);for(i=0;i<c+d;i++)a[c+i]=b[i];printf("%s\n",a);}#include"stdio.h" main(){int i,j,k,a;for(i=0;i<5;i++){ k=i;for(j=0;j<5;j++){k++;if(k>5)a=k-5;else a=k;printf("%d",a);} printf("\n");}}#include<stdio.h>#include<conio.h>#include<math.h>main(){int i,t,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<4;i++){t=a[i];a[i]=a[9-i];a[9-i]=t;} for(i=0;i<10;i++)printf("%d",a[i]);getch();}#include "stdio.h"#include "string.h"void main()int a[7];int i,j,t,b=0,pinjun;for(i=0;i<7;i++)scanf("%d",&a[i]);for(j=0;j<7;j++)for(i=0;i<7-j;i++){if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}} for(i=1;i<6;i++)b=b+a[i];pinjun=b/5;printf("%-d\n",pinjun);}#include "stdio.h"#include "string.h"void main(){char a[100];int i=0,b;{scanf("%c",&a[i]);i++; }while(a[i-1]!='#');b=strlen(a);for(i=0;i<b;i++)if(a[i]=='f')printf("%d\n",i+1); }#include<stdio.h>#include<string.h>void main(){int a[5][5];int i,j,k,b,max,min;for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);for(i=9;i>=0;i--){printf("NO.%k name:%s\n",name[i][20]); printf("time:%d minites\n",time[i]);printf("floor:%d\n\n",floor[i]);k++;}}#include<stdio.h>#include<string.h>struct team{char name[30];int floor;int time;}st[10],p;实验5函数一、实验目的二、实验内容三、实验源码及测试数据pass=100*k/3 ;return (pass);}#include "stdio.h"#include"string.h"void main(){ char a[200];int i,k;int hanshu(char a[]);int panduan(char a);gets(a);k=hanshu(a);for(i=k;panduan(a[i]);i++) printf("%c",a[i]); printf("\n");}int hanshu(char a[]){int i,l=0, k=0,m,n;int panduan(char a);for(i=0;i<=strlen(a);i++){if(panduan(a[i]))l++;else{ if(l>k) { n=i;k=l;l=0;}else l=0;}}return (n-k);}int panduan(char a){if((a>='a'&&a<='z')||(a>='A'&&a<='Z')) return 1;elsereturn 0;}#include"stdio.h"#include"math.h"#include"string.h"void main(){。
程序的设计基础课程设计报告
课程设计(大作业)报告课程名称:程序设计基础设计题目:学生成绩记录薄设计院系:信息技术学院班级:设计者:学号:指导教师:设计时间:2013.7 8.-2013.7.13信息技术学院学院课程设计(大作业)任务书学生成绩记录薄设计一、课程设计目的与要求1.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。
(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。
2. 课程设计要求设计一个简易学生成绩记录簿设计,其中包括:,学号,C语言成绩;具体功能:1.系统以菜单方式工作2. 创建学生成绩信息并以磁盘文件保存;3. 读取磁盘文件并显示输出所有学生的成绩;4. 查询学生成绩(1)按学号查询成绩(2)学号查询成绩5.添加成绩记录;6.修改指定或学号的学生的成绩并可存盘;7.显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
二、总体设计图1 系统总体结构三、详细设计1、数据结构设计#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct student{int num; /*学号*/char name[10]; /**/float score[3]; /*成绩*/}2.函数说明1.主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。
2.其他部分功能函数包括(1) 将学生成绩信息保存为文件void save();算法思想:①定义指向文件的指针变量;②输入保存路径及文件名,打开文件,若不能打开文件给出提示信息;③将存有学生成绩信息的结构体数组信息依次保存到文件中。
程序设计基础实验报告范例
程序设计基础实验报告范例实验项目:C++程序的编辑、编译与运行⒈实验目的与要求学习和掌握VC++ 6.0程序设计环境的基本使用方法,掌握C++程序的基本构成,初步能够在系统环境中编辑、编译、运行一个程序。
⒉实验任务⑴掌握VC++ 6.0系统的启动方法,了解其各主菜单提供的功能。
⑵练习在VC++ 6.0环境中建立一个程序的方法,练习编辑,编译和运行程序的方法,掌握编辑的基本规则和查看程序运行结果的方法。
⑶熟习、掌握C/C++程序的基本模式和结构。
3.预习与准备⑴阅读VC++ 6.0集成环境的使用介绍(实验教材P143)。
⑵阅读了解实验教材P1—P4的实验内容。
4.实验内容实验教材:P1 T1,T25. 实验步骤5.1 VC ++6.0系统的启动从:开始\所有程序\Microsoft Visual C++6.0下选择Microsoft Visual C++6.0启动系统。
5.2建立VC文件从主菜单“文件”中选择“新建”菜单项,从打开的对话框中选择“文件”,再从打开的文件类型对话框中选择“C++ Source File”,之后在右边的“文件名”栏中填写准备新建的文件名,在“位置”栏中填写文件存放的地址,然后点击“确定(OK)”。
之后,系统在编辑窗口中打开一个名为所填写的文件名命名的空C++文件。
5.3编辑源程序文件在文件编辑窗口中输入实验内容T1题:“利用公式C=5/9(F-32)计算输出华氏与摄氏温度对照表。
假设华氏温度取0,20,40,…….200”的程序。
#include<stdio.h>void main( ){ double f,c;int lower,upper,step;lower=0;upper=200;step=20;f=0;printf(“\t华氏温度\t摄氏温度\n”);while(f<=upper){ c=5.0/9*(f-32.0);p rintf(“\t%7.2f\t%7.2f\n”,f,c);f=f+step;}}5.4编译源程序在系统主菜单中选择“组建(Build)”项,从中选择”编译(Compile)”,或在工具栏中点击编译图标,系统给出提示对话框,询问是否创建一个活动项目工作空间,点击“是(Yes)”。
程序设计基础课程设计模板
程序设计基础课程设计模板一、课程目标知识目标:1. 理解程序设计的基本概念,掌握编程语言的语法结构;2. 学习变量、数据类型、运算符、控制结构等基本编程元素,并能够正确运用;3. 掌握程序设计的基本方法,能够阅读和分析简单的程序代码;4. 了解程序调试和测试的基本方法,能够找出并修正程序中的错误。
技能目标:1. 能够运用所学知识编写简单的程序,解决实际问题;2. 培养逻辑思维和问题分析能力,能够设计简单的算法;3. 提高编程实践能力,熟练使用编程环境进行代码编写和调试;4. 学会合作学习,与他人共同探讨问题,提高团队协作能力。
情感态度价值观目标:1. 培养学生对程序设计的兴趣,激发学习热情和求知欲;2. 培养学生勇于尝试、克服困难的精神,增强自信心;3. 培养学生遵守编程规范,养成良好的编程习惯;4. 增进学生对计算机科学的认识,提高信息素养,培养创新意识。
课程性质:本课程为程序设计基础课程,旨在让学生掌握编程的基本知识和技能,培养学生运用计算机解决问题的能力。
学生特点:学生处于初中年级,具备一定的逻辑思维能力和学习热情,对新鲜事物充满好奇心。
教学要求:结合学生特点,注重启发式教学,理论与实践相结合,关注个体差异,提高学生动手实践能力。
通过本课程的学习,使学生能够具备初步的程序设计能力,为后续学习打下坚实基础。
二、教学内容1. 程序设计基本概念:程序、编程语言、算法、软件等基本概念介绍。
- 教材章节:第一章 程序设计与算法概述2. 编程语言基础:Python编程语言的语法结构、基本数据类型、变量和常量。
- 教材章节:第二章 Python语言基础3. 控制结构:顺序结构、分支结构、循环结构及其应用。
- 教材章节:第三章 程序控制结构4. 函数与模块:函数的定义、调用和返回值,模块的导入和使用。
- 教材章节:第四章 函数与模块5. 简单算法设计与实现:排序、查找等经典算法的介绍和实现。
- 教材章节:第五章 简单算法6. 程序调试与测试:程序错误分类、调试方法、测试用例设计。
c程序设计教程课程设计报告
c程序设计教程课程设计报告一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握数据类型、变量、运算符的使用方法。
2. 学会使用C语言进行顺序结构、选择结构和循环结构的程序设计。
3. 掌握数组、函数、指针的基本概念和应用。
技能目标:1. 能够运用C语言编写简单的程序,解决实际问题。
2. 能够运用顺序、选择和循环结构进行程序设计,实现复杂逻辑。
3. 能够使用数组、函数、指针进行程序优化,提高编程能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,形成自主学习、探究学习的习惯。
2. 培养学生团队合作意识,学会与他人共同解决问题,提高沟通与协作能力。
3. 培养学生严谨、细心的学习态度,养成良好的编程习惯,注重代码规范和优化。
课程性质分析:本课程为C程序设计教程,旨在让学生掌握C语言的基本知识,培养编程思维和实际编程能力。
学生特点分析:学生为初学者,对编程有一定兴趣,但基础薄弱,需要从基本概念和语法入手,逐步提高。
教学要求:1. 注重理论与实践相结合,让学生在实践中掌握C语言知识。
2. 采用案例教学,激发学生兴趣,提高学生的实际编程能力。
3. 加强课堂互动,引导学生主动思考,培养编程思维。
二、教学内容1. C语言概述:介绍C语言的发展历史、特点和应用领域,引导学生了解C语言的重要性。
教材章节:第一章2. 数据类型、变量和常量:讲解基本数据类型、变量定义、赋值和常量的概念。
教材章节:第二章3. 运算符和表达式:介绍各种运算符及其优先级,掌握表达式的编写方法。
教材章节:第三章4. 顺序结构程序设计:学习顺序执行语句,掌握顺序结构程序设计方法。
教材章节:第四章5. 选择结构程序设计:讲解if语句、switch语句,学会使用选择结构实现程序逻辑。
教材章节:第五章6. 循环结构程序设计:学习for循环、while循环和do-while循环,掌握循环结构的使用方法。
教材章节:第六章7. 数组:介绍一维数组、二维数组的概念和应用,学会使用数组存储和处理数据。
C语言程序设计基础课程设计报告
C语言程序设计基础课程设计报告第一篇:C语言程序设计基础课程设计报告程序设计基础课程设计报告课程名称:课程设计题目:程序设计基础课程设计学生信息管理系统姓名:系:专业:年级:学号:指导教师:职称:计算机科学技术系计算机网络技术讲师2012年1月1日一、设计题目及要求。
1、题目:学生信息管理系统2、要求:1)建立学生信息的结构体2)学生信息的初始化(可以从文件获取)3)学生信息的添加、修改、查找 4)学生信息的输出 5)对学生信息按学号排序 6)计算一门课的平均分和总分 7)将学生信息保存为文件二、设计算法设计分析。
1、主要功能模块:添加模块、查找模块、修改模块、排序模块添加模块:(1)从键盘中输入添加学生的人数n.(2)从键盘中输入学生的学号和各科成绩,分别存入一维数组sum和二维数组score中。
(3)计算各科的总分和平均分,分别存入一维数组sum和aver 中。
(4)判断各个学生的三科成绩是否都大于90,如果是则输出“Y”,表示该生能获得奖学金,否则输出“N”表示该生不能获得奖学金。
添加模块结果图查找模块(1)从键盘中输入要查找的学生的学号k..(2)编写程序使num[i]与k一一对比,直到num[i]==k,输出该生的学号及相应成绩。
查找模块结果图修改模块:(1)从键盘中输入要修改的学生的学号x..(2)编写程序使num[i]==x,输出该生的成绩,选择你要修改的科目并输入你修改后的新分数,重新计算该生的总分和平均分。
(3)重新判断该生的三门课成绩是否都大于90,如果是则输出“Y”,表示该生能获得奖学金,否则输出“N”表示该生不能获得奖学金。
修改模块的结果图三、程序编码实现。
源代码与执行结果2部分/*函数功能:添加一个或几个学生的成绩,查找某个学生的成绩,修改某个学生的成绩函数参数:长整型数组num,存储每个学生的学号整型数组score,存储每个学生的成绩整型数组sum,存储每个学生的总分实型数组aver,存储每个学生的平均分字符型数组c,标志每个学生能否获得奖学金整型数n,存储学生总数函数返回值:无 */void Find(long num[],int score[][3],int sum[],float aver[],char c[],int n){ long x,t,k;int i,j;printf(“请选择您要实现的功能:1-添加,2-查找,3-修改n”);scanf(“%ld”,&t);if(t==1){ printf(“请输入你要添加的人数:”);scanf(“%d”,&A);printf(“Enter No and Score as: MT ENPHn”);for(i=n;i=90)&&(score[i][1]>=90)&&(score[i][2]>=90)){ c [i]='Y';} else { c[i]='N';} } } if(t==2){ printf(“请输入学号:”);scanf(“%ld”,&k);for(i=0;iprintf(“学号t数学t英语t物理t总分t平均成绩t>90n”);printf(“%4ldt”,num[i]);for(j=0;j<3;j++){ printf(“%4dt”,score[i][j]);}printf(“%5dt%6.1ftt%cn”,sum[i],aver[i],c[i]);} } } if(t==3){printf(“请输入学号:”);scanf(“%ld”,&x);for(i=0;iprintf(“请输入你要修改的选项所对应的数字:0-MT,1-EN,2-PHn”);scanf(“%d”,&j);printf(“你将修改为:”);scanf(“%d”,&score[i][j]);sum[i]=0;for(j=0;j<3;j++){sum[i]=sum[i]+score[i][j];}aver[i]=(float)sum[i]/3;if((score[i][0]>=90)&&(score[i][1]>=90)&&(score[i][2]>=90)) {c[i]='Y';}else{c[i]='N';} } } } } /*函数功能:按学号对学生排序函数参数:长整型数组num,存储每个学生的学号整型数组score,存储每个学生的成绩整型数组sum,存储每个学生的总分实型数组aver,存储每个学生的平均分字符型数组c,标志每个学生能否获得奖学金整型数n,存储学生总数函数返回值:无*/ void order(long num[],int score[][3],int sum[],float aver[],char c[],int n){ int i,j,t,x;long k;float g;char h;for(i=0;ii;t--){ if(num[t]x=score[i][j];score[i][j]=score[t][j];score[t][j]=x;} } }执行结果(1):(2)四、程序调试过程中出现的问题:开始运用添加功能时,虽然添加了,但在输出结果中不显示。
程序入门设计实验报告
实验名称:程序入门基础实验实验日期:2023年X月X日实验地点:计算机实验室实验者:[姓名]一、实验目的1. 熟悉编程环境,掌握基本的编程概念。
2. 学习并理解程序设计的基本流程。
3. 培养逻辑思维和问题解决能力。
4. 掌握编程语言的基本语法和结构。
二、实验内容1. 编写一个简单的“Hello World”程序。
2. 学习变量、数据类型和运算符。
3. 掌握条件语句和循环语句。
4. 实现一个简单的计算器功能。
三、实验步骤1. 打开编程环境(如Visual Studio Code、Eclipse等)。
2. 创建一个新的项目,命名为“程序入门实验”。
3. 在项目中创建一个新的Java文件,命名为“Main.java”。
4. 编写“Hello World”程序代码。
```javapublic class Main {public static void main(String[] args) {System.out.println("Hello World!");}}```5. 运行程序,观察控制台输出结果。
6. 学习变量、数据类型和运算符。
- 定义一个整型变量`num`,并赋值为10。
- 定义一个字符串变量`str`,并赋值为"Hello"。
- 输出变量`num`和`str`的值。
```javaint num = 10;String str = "Hello";System.out.println("num: " + num);System.out.println("str: " + str);```7. 学习条件语句和循环语句。
- 使用if语句判断变量`num`是否大于10,并输出相应的信息。
- 使用for循环打印1到10的数字。
```javaif (num > 10) {System.out.println("num大于10");} else {System.out.println("num不大于10");}for (int i = 1; i <= 10; i++) {System.out.println(i);}```8. 实现一个简单的计算器功能。
程序设计基础课程设计报告
2. 数据统计:按不同的职位用不同的方式计算出月工资。销售经理需要统计所辖
第页
1
销售员的所有销售额。其中:运用双重循环(销售员所属销售经理的编号和销
售经理的编号对应时,即把各销售员销售额加到对应销售经理名下),实现了 对不同销售经理所辖部门销售额总额的计算问题和存储问题;
3.数据输出:输出所有职员的月工资和年工资。主要运用 for 循环和对类内成员
6. 退出系统:退出系统返回主菜单。主要运用了 goto、exit 退出函数。又由于
当 case1、case2、case3、 case4 和 Case5 各步结束后要求返回主菜单并且当
且仅当 case6 时退出系统。
需要考虑的问题:
1. 由于数据的查询要按照编号或者姓名查询,所以考虑要返回编号 num 和姓名 name,这样的话可以获得编号和姓名以备查询。在主函数设置两个变量 int bh 和 string xm 分别为整型的编号和字符串型的姓名,用于判断用户查询的方 式。
//数据统计 //数据输出 //保存数据
第页
4
void printinfor();
//返回销售员信息
int getsales();
//返回销售额
int getsnum();
//返回销售员销售编号
SalesManager (派生类) 公有继承基类
成员数据:(protected)
int salesvolume;
函数的调用实现各类职工基本情况一览表的输出。调用年工资函数输出年工 资。
4. 数据查询:按编号或者姓名查询员工的信息。先用 if 语句判断按哪种方式查
询,然后再调用相应的数据查询函数。
5. 数据保存:备份所有的数据。主要运用了输出流类 ofstream、for 循环和对
程序设计基础课程设计报告范本
程序设计基础课程设计报告课程设计(大作业)报告课程名称:程序设计基础设计题目:学生成绩记录薄设计院系:信息技术学院班级:设计者:学号:指导教师:设计时间: .7 8.- .7.13信息技术学院昆明学院课程设计(大作业)任务书学生成绩记录薄设计一、课程设计目的与要求1.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。
(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。
2. 课程设计要求设计一个简易学生成绩记录簿设计,其中包括:姓名,学号,C 语言成绩;具体功能:1.系统以菜单方式工作2. 创立学生成绩信息并以磁盘文件保存;3. 读取磁盘文件并显示输出所有学生的成绩;4. 查询学生成绩(1)按学号查询成绩(2)学号姓名查询成绩5.添加成绩记录;6.修改指定姓名或学号的学生的成绩并可存盘;7.显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
二、总体设计根据系统的要求,系统总体设计如图1所示。
图1 系统总体结构三、详细设计1、数据结构设计#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct student{int num; /*学号*/char name[10]; /*姓名*/float score[3]; /*成绩*/}2.函数说明1.主函数main()允许用户经过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。
2.其它部分功能函数包括(1) 将学生成绩信息保存为文件void save();算法思想:①定义指向文件的指针变量;②输入保存路径及文件名,打开文件,若不能打开文件给出提示信息;③将存有学生成绩信息的结构体数组信息依次保存到文件中。
程序设计基础课程设计报告范本
程序设计基础课程设计报告范本程序设计基础课程设计报告1. 引言本报告详细介绍了程序设计基础课程的设计过程和实施情况。
该课程旨在培养学生的程序设计能力和解决问题的思维方式。
本报告包括了课程的目标、教学内容、教学方法和学生评价等方面的内容。
2. 课程目标2.1 培养学生熟练掌握基本的程序设计语言和技术。
2.2 培养学生解决实际问题的能力,提高他们的创新能力和自学能力。
2.3 培养学生团队合作意识和沟通能力。
3. 教学内容3.1 程序设计基础知识3.1.1 程序设计语言的基础知识3.1.2 算法和数据结构的基础知识3.2 程序设计实践3.2.1 编写简单的程序3.2.2 解决实际问题的综合性设计4. 教学方法4.1 教师讲授理论知识4.2 集体讨论和讲解案例4.3 实验和实践操作4.4 个人作业和项目开发5. 学生评价5.1 课程评估在课程结束时,我们对学生进行了笔试和实践操作的考核,考察了他们所学的基本知识和解决问题的能力。
学生在以约10%的通过率通过了考核。
5.2 学生反馈从学生的反馈来看,大部分学生认为这门课程对他们提高编程技能和解决问题的能力非常有帮助。
他们也提到了一些课程的不足之处,如理论和实际操作的平衡不够、课程进度有些紧张等。
我们将考虑这些建议,并在以后的课程设计中进行改进。
6. 总结通过本次课程的设计和实施,学生在程序设计方面的能力得到了较大的提高。
虽然还有一些不足之处,但我们会根据学生的反馈不断完善课程。
希望更多学生能够通过本课程获得编程的基础知识和解决问题的能力。
程序设计基础课程设计报告(c语言实现附源码)
《程序设计基础》课程设计报告题目:员工工资管理系统院(系):信息科学与工程学院专业班级:学生姓名:学号:指导教师:20 16 年 12 月 12 日至20 16 年 12 月 23 日武昌首义学院制程序设计基础课程设计任务书目录1需求与总体设计 (1)2详细设计 (1)3编码实现 (4)4运行结果 (21)总结 (24)1需求与总体设计1.1需求描述设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、年月、岗位工资、奖金、扣款和实发)进行管理,具有增加数据、更新数据、查询数据、删除数据、列表显示数据以及重组文件的功能。
1.2总体设计先以登陆函数登陆,再进入主菜单,菜单中显示各个要实现的操作,以菜单将各个函数联系起来,对菜单操作以实现系统的目的。
1.3数据结构struct user //登陆者信息{char un[10];char up[10];}us[3] = { "aaa","111","bbb","222","ccc","333" };struct yg //员工结构体{short zt; //数据状态long bh; //编号char name[20]; //名字char time[11]; //时间long money; //基本工资long jj; //奖金long kk; //扣款long sf; //实发工资};整个程序只运用了结构体的数据结构,结构体运用于登陆者信息和员工信息,将员工信息封装在一个结构体里,再创建结构体数组,将多个员工信息储存在结构体数组中。
2详细设计2.1 系统功能设计主函数和子函数:系统包含一个主函数,和子函数,分别有登陆子函数,菜单子函数,增加数据子函数,更新数据子函数,查询数据子函数,删除数据子函数,统计数据子函数,重组文件子函数,排序数据子函数,最后两个分别是读取文件和写入文件子函数。
程序设计基础设计报告
程序设计基础设计报告《程序设计基础》实验报告学号:20112796姓名:陈涛班级:电子信息科学与技术11-1 学院:计算机与信息学院实验一面向过程的简单程序设计1.实验目的掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运算符和表达式的使用。
掌握赋值语句的使用。
掌握数据的输入输出方法。
2.实验设备Visual C++ 6.03.实验内容(1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。
<1> dc b a x -++ 源代码:#includeVoid main(){ float a,b,c,d,x,ycin>>x>>a>>b>>c>>d;y=x+(a+b)/(c+d);Cout<<y<<endl;< bdsfid="83" p=""></y<<endl;<>}测试过程和运行结果分析:输入数据为:2 3 4 2 5 运行结果为: -(1/3)<2> 1111+++x x源代码:#include#includevoid main(){ double x,y;cin>>x;y=sqrt(1+1/(x+1/(x+1)));cout<<y<<endl;< bdsfid="99" p=""></y<<endl;<> }测试过程和运行结果分析:输入数据为:2 运行结果为:1.19523<3> sinX+cosX+tan -1X源代码:#include#includevoid main(){int x,y;cin>>x;y=sin(x)+cos(x)+1/tan(x);cout<<y<<endl;< bdsfid="117" p=""></y<<endl;<> }测试过程和运行结果分析:输入数据为:2运行结果为:0.035493 <4>e x+y +e x-y源代码:#include#includevoid main(){ int x,y,s;cin>>x>>y;s=exp(x+y)+exp(x-y);cout<<s<<endl;< bdsfid="134" p=""></s<<endl;<> }测试过程和运行结果分析:输入数据为:2 3运行结果为:148.781<5>log 10(1+21x )源代码:#include#includevoid main(){ int x,y;cin>>x;y=log10(1+sqrt(1+pow(x,2)));cout<<y<<endl;< bdsfid="154" p=""></y<<endl;<> }测试过程和运行结果分析:输入数据为:2 运行结果为:0.510018 <6>22b a -+??b a - 源代码:#include#includevoid main(){ int a,b,y;cin>>a>>b;y=abs(pow(a,2)-pow(b,2))+abs(a-b);cout<<y<<endl;< bdsfid="171" p=""></y<<endl;<> }测试过程和运行结果分析:输入数据为:2 3 运行结果为:6(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章目的与要求书上有。
第二章需求分析软件设计的一个重要的环节就是需求分析。
本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。
以下是ATM取款机管理系统所需要的需求分析。
ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。
①登录:输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面②挂失功能:确认是否对银行卡进行挂失,挂失后账户无法操作③修改密码:用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码④取款功能:用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内⑤转账功能:用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账号⑥查询功能:用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额模拟ATM取款机的操作:首先录入账户信息,格式如下㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。
㈡、查询功能:查询账户余额。
㈢、取款功能:取款,更新余额。
㈣、挂失功能:挂失后,该账户不能进行任何操作。
㈤、修改密码:输入原密码和新设置密码。
㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。
第三章设计分析3.1、ATM系统管理3.1.1系统基本功能首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。
另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。
所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。
基本功能:登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。
查询功能---------查询账户余额。
取款功能---------取款,更新余额。
挂失功能---------挂失后,该账户不能进行任何操作。
修改密码---------输入原密码和新设置密码。
转账功能---------输入转账的转出账户以及转账金额,进行转账。
、系统功能如图3-1:图3-1 ATM系统的基本功能分类3.1.2相关数据结构的说明信息的载体用对象数组。
系统录入信息的操作非常枯燥,所以创建一个文件,把每次录入的信息保存入文件,在下一次进入系统时,它会默认读取文件原有的信息,当然也可以随时添加录入ATM信息。
然后系统的各个功能仅仅是通过查询找到具体对象的具体数据进行操作。
用户姓名:Name 字符型。
用户账号:Num 字符型。
用户密码:Password 字符型。
身份证号:Id 字符型。
存款数额:Money 实型。
3.1.3类的设计1)定义了一个ATM取款机类,类中包括以下几部分:公有段:依次为登陆界面,核对密码,挂失,修改密码,取款,转账,查询信息,退出系统,功能界面,锁机。
私有段:记录密码输入次数以及变量j。
友元函数:取款,转账,查询信息,账号,密码。
2)定义了一个consumer 类,类中包括以下几部分:公有继承了ATM类私有段:用户密码,用户姓名,用户身份证号,卡号,存款钱数保护段:取得姓名,取得卡号,取得身份证号,取得密码,取得余额,设置密码,取钱3.2系统流程图利用流程图来说明系统各个部分之间如何协调来完成任务。
1)登录流程如图3-2图3-2 登陆的基本流程2)查询功能图3-3 图中显示的是查询的基本流程:图3-3 图中显示的是查询的基本流程3)挂失功能图3-4 图中显示的是挂失的基本流程:图3-4 图中显示的是挂失的基本流程4)修改密码图3-5 图中显示的是修改密码的基本流程:图3-5 图中显示的是修改密码的基本流程5)取款功能图3-6 图中显示的是取款的基本流程:图3- 6 取款的基本流程6)转账功能图3-7 图中显示的是转账的基本流程:图3-7 转账的基本流程3.3参数说明全局变量,重要形式参数、全局变量局部变量等等,它们的命名及用途解释bool j: 全局变量。
char m,t,ch: 全局变量。
int times : 重要形式参数。
第四章系统实现对运行及测试结果进行说明,并添加运行界面的截图。
4.1、登录主界面图4-1 主界面登录窗口图4-2 登录主界面时,账号或密码出错时系统自动锁机图4-3 成功登录后,主界面所显示的窗口4.2、挂失功能图4-4 根据所选代码进行挂失,挂失后系统将退出主界面4.3、修改密码图4-5 xxxx图4-6 图为更改密码功能界面,更改后的密码为新密码图4-7为图为取款功能界面,图中显示为成功取款图4-8 图为取款失败后的功能界面图4-9 图为转账功能界面,图中显示为转账成功后的界面图4-10 图为转账失败后的功能界面图4-11 图中所示为用户个人信息,包括用户姓名、身份证号、银行卡号以及存款余额4.7、退出系统图4-12图为选择序号后系统退出的页面第五章总结课程设计旨在锻炼学生的实际动手能力和解决真实问题的能力。
并在其中掌握和熟练所学的知识,并能够运用所学知识解决比较简单的现实模拟问题。
本次课程设计在老师的帮助和自己的努力下终于能够成功运行,使我感到非常高兴以及提高了自己的编程信心,虽然这次课程设计的题目实现比较简单和不实用但毕竟是自己将近两个星期的努力地结果。
在期间我对编程的理念理解又加深了一点,课程设计使我明白好的算法或者是好的逻辑思维对编程的重要性,在调试期间我自卑过、高兴过、平静过。
可以说是我经历了比较大的情感波动。
当费很大劲才把程序调运行的时候那种感觉实在是太好了。
在本次课程设计活动中,我明显的感觉到自己知识的欠缺和实际动手能的差劲。
尤其是在传值传参的函数调用时更体现的非常明显,感觉自己的书本学的不透、学的不扎实。
有些地方更本就不会,不如说文件的操作,比如说系统时间的获取等以前在上课或作习题时更本就不会考虑的问题在课程设计当中完全暴露出来。
通过本次试验,主要加深了对于友元函数,友元类使用的熟练程度。
程序功能相对比较简单,没有设计复杂的继承和重载函数,完成的比较轻松!参考文献[1]吴敏,杨国林.C++面向对象程序设计内蒙古大学出版社.[2]康晓林,汪涛.标准C++使用教程电子工业出版社附录以下是程序的源代码,并且加上了详细的注释://====hcsdkhfsk====#include"iostream"using namespace std;class consumer;class ATM // ATM取款机类{public:ATM(consumer& cn):cnsm(cn){j=true;}void welcome(); // 登陆界面bool check_passwd(char n[],char pwd[]);// 核对密码bool check_zhang(char num[]);//核对转入账号bool gua();//挂失void change_passwd(); // 修改密码void fetchmoney(); // 取款void zhuan();//转账void information(); // 查询信息void exitATM(); // 退出系统void functionshow(); // 功能界面void lock();//锁机private:bool j;int times; // 记录密码输入次数consumer& cnsm;};class consumer// 用户类{public:friend class ATM;consumer(char Name[],char Num[],char Id[20],float Money,char Password[]);protected:char* get_name(); // 取得姓名char* get_num(); // 取得卡号char* get_id();//取得身份证号char* get_passwd();// 取得密码float get_money(); // 取得余额void set_passwd(char pwd[]);// 设置密码void set_money(float m);// 取钱private:char passwd[8];// 用户密码char name[20]; // 用户姓名char id[20];//用户身份证号char num[20];//float money;//};consumer::consumer(char Name[],char Num[],char Id[20],float Money,char Password[]){strcpy(name,Name);strcpy(num,Num);strcpy(id,Id);money=Money;strcpy(passwd,Password);}float consumer::get_money(){return money;}char* consumer::get_name() // 对于数组的返回操作返回指针{return name;}char* consumer::get_num(){return num;}char* consumer::get_id(){return id;}char* consumer::get_passwd(){return passwd;}void consumer::set_money(float m){money-=m;}void consumer::set_passwd(char pwd[]){strcpy(passwd,pwd);}void ATM::welcome(){times=0;cout<<"欢迎使用银行ATM自动取款机"<<endl;char pwd[8],num1[20],ch;int i=0;do{i=0;cout<<endl<<"请输入卡号:";do{cin.get(ch); //对于键盘字符串的接收!num1[i++]=ch;}while(ch!='\n');num1[i-1]='\0';i=0;cout<<"请输入密码:";do{cin.get(ch);pwd[i++]=ch;}while(ch!='\n');pwd[i-1]='\0';if(!check_passwd(num1,pwd)){cout<<"你输入的卡号或密码有误,请重新输入"<<endl;times++;}else{functionshow();}}while(times<3);lock();}bool ATM::check_passwd(char num[],char pwd[]){if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0) return true;elsereturn false;}void ATM::functionshow(){int n;do{cout<<"本机可办理以下业务:"<<endl;cout<<"********************"<<endl;cout<<" "<<endl;cout<<"1>挂失"<<" "<<"2>修改密码"<<endl;cout<<" "<<endl;cout<<"3>取款"<<" "<<"4>转账"<<endl;cout<<" "<<endl;cout<<"5>查询余额"<<" "<<"6>退出系统"<<endl;cout<<" "<<endl;cout<<"********************"<<endl;cout<<endl<<"请您输入相应的操作序号进行操作:"<<endl;cin>>n;while(n<1||n>6){cout<<"请输入正确的操作序号!"<<endl;cin>>n;}switch(n){case 1: gua(); break;case 2: change_passwd(); break;case 3: fetchmoney(); break;case 4: zhuan(); break;case 5: information(); break;case 6: exitATM(); break;}}while(true);}bool ATM::gua(){char a;do{cout<<"是否确认挂失:(y/n) 继续请按y 退出请按n "<<endl;cin>>a;if(a=='y'){cout<<"您已挂失成功!"<<endl;exit(2);}else{cout<<"您已选择退出!"<<endl;}}while(a=='y');return j=true;}void ATM::change_passwd(){char pwd[8],repwd[8];times=0;do{cout<<endl<<"请输入旧密码:";cin>>pwd;if(!check_passwd(cnsm.get_num(),pwd))times++;elsebreak;}while(times<3);if(times==3)lock();int t=1;do{cout<<"请输入新密码:";cin>>pwd;cout<<"请再输入一次新密码:";cin>>repwd;t=strcmp(pwd,repwd); // 相同返回0;if(t!=0)cout<<"你输入的两次密码不一样,请重新输入!"<<endl;}while(t!=0);cnsm.set_passwd(pwd);cout<<"密码修改成功,请牢记!"<<endl;}void ATM::fetchmoney(){float m;char ch;do{cout<<endl<<"你要取多少钱:"<<endl; // 两种情况while(m<=0){cout<<"请输入正确的数字!"<<endl;cin>>m;}if(cnsm.get_money()-m<0){cout<<"对不起,你的余额不足!"<<endl;}else{cout<<endl<<"取款成功,请收好钱!"<<endl;cnsm.set_money(m);}cout<<"是否要继续取款:(y/n) "<<endl;cin>>ch;}while(ch=='y'||ch=='Y');}void ATM::zhuan(){char z[20];float num;cout<<"请输入所转账号:"<<endl;cin>>z;cout<<"请输入所转钱数:"<<endl;cnsm.money-=num;if(cnsm.money>0)cout<<"转账成功!"<<"您的余额:"<<cnsm.money<<endl;elsecout<<"余额不足!"<<endl;}void ATM::information(){cout<<"**********************************"<<endl;cout<<"* 用户姓名: "<<cnsm.get_name()<<endl;cout<<"* 身份证号: "<<cnsm.get_id()<<endl;cout<<"* 银行卡号: "<<cnsm.get_num()<<endl; //必须声明友元才能用cnsm调用其成员函数cout<<"* 存款余额: "<<cnsm.get_money()<<endl;cout<<"**********************************"<<endl;}void ATM::lock(){cout<<endl<<"对不起,由于你的操作有误,你的卡已经被没收! "<<endl;exit(1); // 系统非正常退出}void ATM::exitATM(){cout<<endl<<"感谢你对本银行的支持,欢迎下次光临!"<<endl;cout<<"请取卡……"<<endl;exit(0);}void main(){consumer c1("李四","323401020056078","150201************",450.8,"123456");// 先构造一个用户ATM atm(c1);atm.welcome();}。