文档视界 最新最全的文档下载
当前位置:文档视界 › 程序设计基础课程设计

程序设计基础课程设计

程序设计基础课程设计
程序设计基础课程设计

程序设计基础课程设计

ATM自动取款机

院系:机算计科学技术一系

班级:师计09-2

姓名:谢桂花

学好:200928010232

合作者:吴梦佳,吴力楠,王立加

指导教师:黄绍义

1 概述

1.1 研究的背景及意义

ATM自动取款机的开发让人们的生活更方便,更便利,更快捷,ATM自动取款机的利用使得人们取款更方便,更快捷,不用到银行排队等候,浪费太多的时间在“等待”上,人们大多数时间都浪费在等待上,等待公车,等待上车,等待下车,等待上班,等待下班······ATM 自动取款机帮助人们有效地利用时间。

ATM自动取款机的占地面积小,因此在很近的地方也可以建立两个取款机,而且不会浪费太多的土地面积。且取款的操作步骤简单,容易被广大的群众接受,不仅如此,取款的时间仅仅1分钟就可以完成,合理地利用了这个忙碌社会的人们的时间。

1.2 设计的任务和需要的知识点

1.2.1所设计的任务及目的

在原来的ATM自动取款机的基础上加上了音乐“东方红”,寓意着东方这个古老的国度越来越强大,经济也会越来越发达。ATM自动取款机在运行过程中加上声音,使得操作的人在使用该取款机的同时也可以欣赏美妙的音乐。并在使用完取款机后,会有15只大雁飞过,寓有“雁声远过潇湘去,十二楼中月自明”之意。

1.2.2需要的知识点

(1)加上音乐这一过程中需要我们掌握sound函数的使用,例如sound(262)的意义即是发中音‘1’,因此重要的是需要我们牢记声音频率与音符之间的对照关系。

(2)不仅如此,还需要我们掌握delay函数的运用及其意义,delay(m)使程序暂停m 毫秒,用来作为发音的时间停顿,即是节拍。

(3)当该音乐结束时,用函数nosound(),nosound()是专门用来结束声音的函数,该函数关闭计算机的扬声器,使其停止发音。

1.3 具体完全的设计内容

在该程序设计中,我组对该程序加上了音乐模块,并在运行程序的最后加上了大雁南飞之景,修改了ATM的版块,将ATM的版块根据对应的模式进行了一定的修改,我们组自己总共编写了56行源代码,

2 需要分析

2.1功能需求

①帮助新用户在自动取款机上进行新用户的创建,提高运行效率。

②进行业务办理和查询,包括取款,余额查询,存款项目,修改密码等。

2.2操作方法

2.2.1 新用户开户

对于初步使用该取款机的用户来说,进入程序之后,选‘1’,先进行新用户注册,根据提示输入用户名,之后输入密码,并进行密码重复输入,注册成功后可以按任意键返回主菜单。

2.2.2用户登录

输入‘2’进入用户登录,连续输入三次用户名和用户密码,若有错将自动退出程序,三次输入正确后进入工作程序,输入‘1’进入存款程序,输入‘2’进入取款程序,输入‘3’进入余额查询,输入‘4’进行密码修改,输入‘5’便可退出返回主菜单。进入后根据一步步的提示便可顺利地使程序运行下去。若要进行多步程序,可在进行晚一步程序后推到该页面在进行选择进行其他程序。

2.2.3退出系统

若要退出该程序直接按‘3’,根据提示确定退出按“y”,若不再退出则可输入“n”返回主菜单。

3总体设计

该软件的功能有新用户建立、存

款、取款、修改密码、余额查询等。

当进入主菜单后根据提示进入下一轮

系统,进入下一同样根据提示输入数

字进入用户需停药进入的系统程序

中,进行用户所需的步骤。

使用时,程序中都会对所有的下一步进行提示,能使得用户使用起来流畅,而且在使用时只需要输入数字,因此该软件很容易被操纵、掌握。该软件的主要功能即是一些简单的开户、存取金额和修改密码。

3.2数据结构设计

程序使用了fr【】数组和tim【】数组,对音乐的音符和节拍进行了有效地“定义”,使得程序的编译更简洁,不会形成累赘或长篇大论。

4详细设计

在该程序设计中,我们组主要是负责添加一段音乐和在结束时加上一段动画,加音乐时用一维数组,定义了数组fr和tim并对他们进行了赋值,使得在使用这两个数组中的数据时更加方便,快捷;在使其发音的过程中使用了一个for循环语句,使得该程序更简单,明了。再编译最后的动画时,运用了for语句的嵌套,使得编译的动画程序更加简单,不会形成长篇大论,编译简单,也使得程序不啰嗦。在编译动画程序时也使用了setcolor()函数,用来设置前景的颜色,用不同数字表示不同的颜色setcolor(j+1)使得每一个大雁出现的颜色都各不相同。

5程序调试与测试

对音乐的编译在开始的时候编译出来的音乐只能在某一个时段才能进行,经过一定的调试后,即将delay语句和nosound语句都调到cartoon语句后,使得整个程序都能发音。

6总结

在对自动取款机的修改的目的是为了使这种取款机不再是人们心目中那种“庄严”的东西,而是一件能够带给人们“平淡”的感觉的东西,该程序进行修改后,将取款机这样“庄严”的物体,改变的既“庄严”又不失“亲切”,音乐和动漫的运用使得自动取款机的更“平淡”,将世界的每一个角落都变成一个有音乐,有美的世界······

7结束语

在设计过程中,第一次编译如此长的程序,在加上音乐和动画的时候,刚开始不明白应该将这两个程序加在什么地方,如何加上这两个程序,后来经过与书上的例题进行对比,和同学们之间的互相帮助明白了音乐的程序不应该直接使用例题中的全音乐的程序,将音乐函数分开使用才能使音乐在用户使用的整个过程中都有音乐可放,而最后的动画设计中运用函数引用,可以使得ATM自动取款机的编译程序过程的主函数简便。

我觉得在编译程序时,使用引用函数,循环语句以及数组的使用都可以大大减少主函数的累赘,也可以使得主函数简单明了,编译的整个函数看起来有条不紊。

该程序能够很好的完成完全是同学们齐心协力的结果,很感谢同学们相互之间的配合和老师的指导

8程序清单

#include

#include

#include

#include

#include

#include

#include

struct user

{

char name[20];

char psw[7];

int zh;

float money;

}user,users[100];

int no,l=0; //记录用户总数l记录用户登录编号

FILE *fp;

void welcome_jm()//显示欢迎界面0

{

system("cls");

printf("\t◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇◇理◇◇◇财◇◇◇通◇◇◇天◇◇◇下◇◇◇\n");

printf("\t◇◇◇●●●◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●●●●●◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇自◇◇◇◇◆欢◇迎◇您◇的◇使◇用◆◇◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●●●●●◇◇动◇◇◇★★★★★★★★★★★★★★★◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇◇◇★★◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇◇◇★您是第一次使用本软件★◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇柜◇◇◇★★◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇◇◇★请您按任意键开始创建用户★◇◇◇◇\n");

printf("\t◇◇◇◇◇◇◇◇◇◇◇◇◇★★◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇员◇◇◇★★★★★★★★★★★★★★★◇◇◇◇\n");

printf("\t◇◇●●◇●●◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●◇●◇●◇◇◇◇◇◇◇◇◇◇◇◇◇◇版权所有◇违者必究◇◇\n");

printf("\t◇◇●◇◇◇●◇◇机◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇◇版本1.0◇◇◇◇◇◇◇作者Happy小屋◇◇◇\n");

printf("\t◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n\a");

printf("\n\n");

}

void zhu_jm()//显示主界面函数

{

system("cls");

printf("\t◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇◇理◇◇◇财◇◇◇通◇◇◇天◇◇◇下◇◇◇\n");

printf("\t◇◇◇●●●◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●●●●●◇◇◇◇◇◇◇◇主〒〒〒〒菜〒〒〒〒单◇◇◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇自◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇◇◇◇◇◇◆服◇务◇项◇目◆◇◇◇◇◇◇◇\n");

printf("\t◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●●●●●◇◇动◇◇◇★★★★★★★★★★★★★★★◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇◇◇★★◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇◇◇★1新用户开户★◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇柜◇◇◇★★◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇◇◇★2用户登陆★◇◇◇◇\n");

printf("\t◇◇◇◇◇◇◇◇◇◇◇◇◇★★◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇员◇◇◇★3退出系统★◇◇◇◇\n");

printf("\t◇◇●●◇●●◇◇◇◇◇◇★★◇◇◇◇\n");

printf("\t◇◇●◇●◇●◇◇◇◇◇◇★★★★★★★★★★★★★★★◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇机◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇◇版本1.0◇◇◇◇◇◇作者Happy小屋◇◇◇\n");

printf("\t◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n\a");

printf("\n\n");

printf("\t\t\t★请您选择服务项目(1-3)? ");

}

void kaihu_jm()//显示用户开户界面函数

{

system("cls");

printf("\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\t ◆理◇财◇通◇天◇下◆\n");

printf("\t ◆◆\n");

printf("\t ◆●欢迎新客户开户●◆\n");

printf("\t ◆1 使用方法:◆\n");

printf("\t ◆◆\n");

printf("\t ◆您需要输入用户名和一个6位密码并确认密码, ◆\n");

printf("\t ◆这样系统就分配给您了一个帐号。◆\n");

printf("\t ◆◆\n");

printf("\t ◆2 注意事项:◆\n");

printf("\t ◆◆\n");

printf("\t ◆开户成功后您必须牢记帐号和密码, ◆\n");

printf("\t ◆只有输入正确了帐号和密码, ◆\n");

printf("\t ◆系统才能受理您要使用的业务。◆\n");

printf("\t ◆◆\n");

printf("\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n\a");

printf("\n");

printf("\t\t\t★请您进行开户★\n ");

}

void khcg_jm()//显示开户成功界面函数

{

system("cls");

printf("\n\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\t ◆理◇财◇通◇天◇下◆\n");

printf("\t ◆◆\n");

printf("\t ◆●恭喜您●◆\n");

printf("\t ◆◆\n");

printf("\t ◆◆\n");

printf("\t ◆★您已经开户成功★◆\n");

printf("\t ◆◆\n");

printf("\t ◆**请牢记您的信息** ◆\n");

printf("\t ◆用户名:%4d ◆\n",https://www.docsj.com/doc/e518548982.html,);

printf("\t ◆帐号:%4d 密码:%6d ◆\n",user.zh,user.psw);

printf("\t ◆帐户余额是:%.2f(元) ◆\n",user.money);

printf("\t ◆◆\n");

printf("\t ◆别忘了,只有输入正确了帐号和密码, ◆\n");

printf("\t ◆系统才能受理您要使用的业务。◆\n");

printf("\t ◆◆\n");

printf("\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n\a");

printf("\n");

printf("\t\t\t按任意键返回主菜单!\n");

/*这里用到了https://www.docsj.com/doc/e518548982.html,,user.zh,user.psw,user.money这几个变量*/

}

void dlyz_jm()//显示登陆验证界面函数

{

system("cls");

printf("\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\t ◆理◇财◇通◇天◇下◆\n");

printf("\t ◆◆\n");

printf("\t ◆! 登陆验证! ◆\n");

printf("\t ◆◆\n");

printf("\t ◆您必须输入正确的帐号和密码,◆\n");

printf("\t ◆系统才能受理您要使用的业务。◆\n");

printf("\t ◆您一共有三次机会◆\n");

printf("\t ◆三次如果都不正确,系统会自动退出◆\n");

printf("\t ◆请您务必认真输入, ◆\n");

printf("\t ◆以免造成不必要的麻烦! ◆\n");

printf("\t ◆◆\n");

printf("\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n\a");

printf("\n");

printf("\t\t 您现在可以输入了,请谨慎! \n");

}

void ywxz_jm()//显示登陆成功后业务选择界面函数

{

system("cls");

printf("\n\t ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇理◇◇◇财◇◇◇通◇◇◇天◇◇◇下◇◇\n");

printf("\t◇◇◇●●●◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇◇◇业〒〒务〒〒菜〒〒单◇◇◇◇\n");

printf("\t◇◇●●●●●◇◇◇◇╭★★★★★★★★★★★★★╮◇◇\n");

printf("\t◇◇●◇◇◇●◇◇服◇★╭━1存入款项━╮★◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇★︾︾★◇◇\n");

printf("\t◇◇◇◇◇◇◇◇◇◇◇★┇┇★◇◇\n");

printf("\t◇◇●●●●●◇◇◇◇★︾2取出款项︾★◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇务◇★┇┇★◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇★︾︾★◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇★┇3余额查询┇★◇◇\n");

printf("\t◇◇◇◇●◇◇◇◇◇◇★︾︾★◇◇\n");

printf("\t◇◇◇◇◇◇◇◇◇项◇★┇┇★◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇★︾4修改密码︾★◇◇\n");

printf("\t◇◇●●◇●●◇◇◇◇★┇┇★◇◇\n");

printf("\t◇◇●◇●◇●◇◇◇◇★︾︾★◇◇\n");

printf("\t◇◇●◇◇◇●◇◇目◇★┇5返回主菜单┇★◇◇\n");

printf("\t◇◇●◇◇◇●◇◇◇◇╰★★★★★★★★★★★★★╯◇◇\n");

printf("\t ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n\a");

printf("\n");

printf("\t\t\t★请您选择服务业务(1-5)? ");

}

void ckyw_jm()//显示存款业务界面函数

{

system("cls");

printf("\n\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\t ◆╭━理◇财◇通◇天◇下━╮◆\n");

printf("\t ◆︾︾◆\n");

printf("\t ◆┇【业务 1 】┇◆\n");

printf("\t ◆︾︾◆\n");

printf("\t ◆┇〒存入款项〒┇◆\n");

printf("\t ◆︾︾◆\n");

printf("\t ◆┇输入您要存入的金额┇◆\n");

printf("\t ◆︾即完成操作! ︾◆\n");

printf("\t ◆┇┇◆\n");

printf("\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n\a");

printf("\n");

printf("\t\t确定要继续存钱请按任意键,返回请按n: ");

}

void qkyw_jm()//显示取款业务界面函数

{

system("cls");

printf("\n\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\t ◆╭━理◇财◇通◇天◇下━╮◆\n");

printf("\t ◆︾︾◆\n");

printf("\t ◆┇【业务 2 】┇◆\n");

printf("\t ◆︾︾◆\n");

printf("\t ◆┇〒取出款项〒┇◆\n");

printf("\t ◆︾︾◆\n");

printf("\t ◆┇输入您要取出的金额┇◆\n");

printf("\t ◆︾即完成操作! ︾◆\n");

printf("\t ◆┇┇◆\n");

printf("\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n\a");

printf("\n");

printf("\t\t确定要继续取钱请按任意键,返回请按n: ");

}

void yecx_jm()//显示余额查询业务界面函数

{

system("cls");

printf("\n");

printf("\t ↓╭◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆╮\n");

printf("\t ◆╭━理◇财◇通◇天◇下━╮◆↓\n");

printf("\t ↓◆︾︾◆\n");

printf("\t ◆┇【业务 3 】┇◆↓\n");

printf("\t ↓◆︾︾◆\n");

printf("\t ◆┇〒余额查询〒┇◆↓\n");

printf("\t ↓◆︾︾◆\n");

printf("\t ◆┇系统会自动显示您的余额┇◆↓\n");

printf("\t ↓◆︾︾◆\n");

printf("\t ╰◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆╯↓\n\a");

printf("\n");

}

void rePassword_jm()//显示修改密码业务界面函数

{

system("cls");

printf("\n\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\t ◆╭━理◇财◇通◇天◇下━╮◆\n");

printf("\t ◆︾︾◆\n");

printf("\t ◆┇【业务 4 】┇◆\n");

printf("\t ◆︾︾◆\n");

printf("\t ◆┇〒修改密码〒┇◆\n");

printf("\t ◆︾︾◆\n");

printf("\t ◆┇需要两次输入新密码┇◆\n");

printf("\t ◆︾只有两次一样系统才能修改︾◆\n");

printf("\t ◆┇请您认真输入以免造成不必要的麻烦┇◆\n");

printf("\t ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n\a");

printf("\n");

}

void exit_jm()//退出系统的界面

{

printf("\n");

printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");

printf("\t\t↗︽︽︽︽︽︽︽︽↖\n");

printf("\t\t↗◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇↖\n");

printf("\t\t↗◇◇◇◇●◇◇◇◇◇●●●●●◇◇◇◇●●●◇◇◇↖\n");

printf("\t\t↗◇◇◇●●●◇◇◇◇◇◇●◇◇◇◇◇●◇●◇●◇◇↖\n");

printf("\t\t↗◇◇●◇◇◇●◇◇◇◇◇●◇◇◇◇◇●◇●◇●◇◇↖\n");

printf("\t\t↗◇◇●●●●●◇◇◇◇◇●◇◇◇◇◇●◇●◇●◇◇↖\n");

printf("\t\t↗◇◇●◇◇◇●◇◇◇◇◇●◇◇◇◇◇●◇●◇●◇◇↖\n");

printf("\t\t↗◇◇●◇◇◇●◇◇◇◇◇●◇◇◇◇◇●◇◇◇●◇◇↖\n");

printf("\t\t↗◇◇◇◇◇◇※真◆◆诚◆◆用◆◆心※◇◇◇◇◇◇◇↖\n");

printf("\t\t↗◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇↖\n");

printf("\t\t↗◇※◇◇◇〒〒〒非常感谢您的使用〒〒〒◇◇◇◇※◇↖\n");

printf("\t\t↗◇为◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇服◇↖\n");

printf("\t\t↗◇·◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇·◇↖\n");

printf("\t\t↗◇·◇●因为时间仓促难免有些遗漏和不足之处●◇·◇↖\n");

printf("\t\t↗◇·◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇·◇↖\n");

printf("\t\t↗◇·◇◇◇◇◇▲▲▲▲▲▲▲▲▲▲◇◇◇◇◇◇·◇↖\n");

printf("\t\t↗◇·◇◇◇◇◇▲请您多提宝贵意见▲◇◇◇◇◇◇·◇↖\n");

printf("\t\t↗◇·◇◇◇◇◇▲▲▲▲▲▲▲▲▲▲◇◇◇◇◇◇·◇↖\n");

printf("\t\t↗◇您◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇务◇↖\n");

printf("\t\t↗◇※◇◇◇◇◇◇◇◇★再见★◇◇◇◇◇◇◇◇◇※◇↖\n");

printf("\t\t↗◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇↖\n");

printf("\t\t↗︽︽︽︽︽︽︽︽↖\n");

printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n\a"); }

void kaihu_xt() //新用户的创建

{

int i ;

char psw[7];

while(1)

{

kaihu_jm();

printf("\n\t请输入你的用户名:");

fflush(stdin);

gets(https://www.docsj.com/doc/e518548982.html,);

printf("\t请输入6位密码:");

fflush(stdin);

for(i=0;i<6;i++)

{

user.psw[i]=getch();

if(user.psw[i]==8)

{

if(i>0)

printf("\b \b");

else

i++;

i=i-2;

continue;

}

printf("*");

}

user.psw[6]='\0';

printf("\n");

fflush(stdin);

printf("\t请再次输入密码(以便确认):");

for(i=0;i<6;i++)

{

psw[i]=getch();

if(psw[i]==8)

{

if(i>0)

{

printf("\b \b");

}

else

i++;

i=i-2;

continue;

}

printf("*");

}

psw[6]='\0';

if(strcmp(user.psw,psw)==0)

{

srand((unsigned)time(NULL));

user.zh=1000+rand()%1000;

user.money=0.0f;

fp=fopen("atm.txt","a");

fprintf(fp,"%s\t%s\t%d\t%f\n",https://www.docsj.com/doc/e518548982.html,,user.psw,user.zh,user.money);

fclose(fp);

return;

}

else

printf("\n\t两次输入密码不符,请重新输入...");

}

}

int logon_xt()

{

int i,k; //k记录用户输入次数

char flag='n';

k=0;

while(k<3)

{

dlyz_jm(); //登录验证界面

printf("\t请输入帐号:");

scanf("%d",&user.zh);

printf("\t请输入密码:");

fflush(stdin);

for(i=0;i<6;i++)

{

user.psw[i]=getch();

if(user.psw[i]==8)

{

if(i>0)

{

printf("\b \b");

}

else

i++;

i=i-2;

continue;

}

printf("*");

}

user.psw[6]='\0';

for(i=0;i

{

if(user.zh==users[i].zh && strcmp(user.psw,users[i].psw)==0)

{

strcpy(https://www.docsj.com/doc/e518548982.html,,users[i].name);

strcpy(user.psw,users[i].psw);

user.zh=users[i].zh;

user.money=users[i].money;

l=i;

flag='y';

}

}

if(flag=='y')

break;

else if (i==0) //判断是否有用户存在!

{

printf("\n\n\t系统当前没有帐户存在,按任意键退回主界面新建用户");

getch();

break;

}

else

k++;

if(k<3)

printf("\n\n\t输入错误你还有最后%d次机会继续...",3-k);

getch();

}

if(flag=='y' && k<3)

return 1; //代表登录成功

else

return 0; //代表登录失败

}

void write_file() //存款取款和密码修改的写文件操作函数

{

int i;

strcpy(users[l].name,https://www.docsj.com/doc/e518548982.html,);

strcpy(users[l].psw,user.psw);

users[l].zh=user.zh;

users[l].money=user.money;

fp=fopen("atm.txt","w");

for(i=0;i

fprintf(fp,"%s\t%s\t%d\t%f\n",users[i].name,users[i].psw,users[i].zh,users[i].money);

fclose(fp);

}

void saving() //执行存款操作后写入文件

{

float money; //用户输入存款变量

char c;

ckyw_jm();

c=getch();

if(c=='n')

return;

else

{

printf("\n\n请输入你要存款的金额:");

fflush(stdin);

scanf("%f",&money);

user.money=user.money+money;

// printf("\n用户名%s 帐号%d 余额%f",https://www.docsj.com/doc/e518548982.html,,user.zh,user.money);//查看结果write_file();

printf("\n存款成功按任意键返回...");

getch();

}

}

void fetch() //执行取款操作

{

float money; //用户输入取款变量

char c;

ckyw_jm();

c=getch();

if(c=='n')

return;

else

{

while(1)

{

printf("\n\n请输入你要取款的金额:");

fflush(stdin);

scanf("%f",&money);

money=user.money-money;

// printf("\n 用户名%s 帐号%d 余额%f",https://www.docsj.com/doc/e518548982.html,,user.zh,money);//查看结果if(money<0)

{

printf("\n对不起你的余额不足请重新输入按任意键重新输入...n退出");

getch();

}

else

{ user.money=money;

write_file();

printf("\n取款成功按任意键返回...");

getch();

return;

}

}

}

}

void balance() //余额查询

{

yecx_jm(); //余额查询界面

printf("\n\t\t您的用户名:%s\t您的余额:%f",https://www.docsj.com/doc/e518548982.html,,user.money);

printf("\n\n\n 按任意键返回...");

getch();

}

void rePassword() //密码修改函数

{

int i,k; char psw[7];

k=0; //k记录用户输入密码次数

while(k<3)

{

rePassword_jm();

printf("\n请输入新密码:");

fflush(stdin);

for(i=0;i<6;i++)

{

user.psw[i]=getch();

if(user.psw[i]==8)

{

if(i>0)

{

printf("\b \b");

}

else

i++;

i=i-2;

continue;

}

printf("*");

}

user.psw[6]='\0';

printf("\n请再次输入密码:");

fflush(stdin);

for(i=0;i<6;i++)

{

psw[i]=getch();

if(psw[i]==8)

{

if(i>0)

{

printf("\b \b");

}

else

i++;

i=i-2;

continue;

}

printf("*");

}

psw[6]='\0';

if(strcmp(user.psw,psw)==0)

{

write_file();

printf("\n密码修改成功请按任意键返回...");

getch();

return;

}

else

k++;

if(k<3)

{

printf("\n两次密码输入不符,请重新输入...");

printf("\n你还有%d次机会...",3-k);

}

getch();

}

}

void logon_success() //登录成功后调用的函数调入业务选择菜单{

char c;

while(1)

{

system("cls");

ywxz_jm();

c=getche();

switch(c)

{

case '1':

saving(); //存款

break;

case '2':

fetch(); //取款

break;

case '3':

balance(); //查询

break;

case '4':

rePassword(); //密码修改

break;

case '5':

return; //返回主菜单

default:

printf("\n\t\t\t输入有误按任意键重新输入");

getch();

}

}

}

void cartoon()

{ float x1,y1,x2,y2;

char ch;

int i,j,gdriver=DEETECT,gmode;

initgraph(&gdriver,&gmode,"e:\\tc3\\bgi");

for(i=0;i<40;i++)

{for(j=0;j<15;j++)

{setcolor(j+1); /*设置画大雁的前景色*/

x1=100+i*10-j*25;

y1=i%2?100-j*5:95-j*5; /*10行画一个大雁*/

x2=110+i*10-j*25;

y2=100-j*5;

line(x1,y1,x2,y2); /*从点(x1,y1)到点(x2,y2)画一条线段*/

x1=110+i*10-j*25;

y1=100-j*5;

x2=120+i*10-j*25;

y2=100-j*5;

line(x1,y1,x2,y2);

x1=120+i*10-j*25;

y1=100-j*5;

x2=130+i*10-j*25;

y2=95-j*5;

line(x1,y1,x2,y2);

x1=130+i*10-j*25;

y1=95-j*5;

x2=140+i*10-j*25;

y2=i%2?100-j*5:95-j*5;

line(x1,y1,x2,y2);}

delay(350); /*延迟350毫秒,以便看到*/

cleardevice;}

closegraph;} /*清屏,以便下次画新的画面,形成动画*/ void main()

{

int choose;

int i,j;

int fr[]={392,392,440,294,262,262,220,294,392,392,\

440,532,440,392,262,262,220,294,392,294,\

262,247,220,196,392,294,330,294,262,262,\

220,294,330,294,262,294,262,247,220,196,};

int tim[]={4,2,2,8,4,2,2,8,4,4,2,2,2,2,4,2,2,8,4,4,\

4,2,2,4,4,4,2,2,4,2,2,2,2,2,2,2,2,2,2,12};

sound(fr[i]); /*将发声函数插到程序中*/

《程序设计基础》试卷B及答案

黄淮学院计算机科学系2007-2008学年度第一学期 期末考试《程序设计基础》B 卷 注意事项:本试卷适用于计科系06级本科计算机科学与技术专业学生。 1.__ ____函数是程序启动时惟一的入口。 2.算法的复杂性包含两方面: 和 。 3.已知 char c= 'a' ; int x=2,k; 执行语句k=c&&x++ ; 则x 为 ,k 为 。 4.数值0x34对应的十进制为 。 5.已知int a ; 则表达式”(a=2*3 , 3*8), a*10”的结果为_ _ ____,变量a 的值为___ ___。 6.面向对象程序开发步骤为: 、 和面向对象实现。 1.下列程序设计语言中( )是面向对象语言。 A. FORTRAN B. C 语言 C. C++ D. 汇编语言 2.下列关于注释的说法哪个是错误的( )。 A. 注释不是程序中的可执行语句 B. 注释对于程序的执行有很重要的意义 C. 注释将在程序的编译阶段被编译器剔除 D. 编程时在程序中添加适当的注释是一个良好的编程风格 3.算法设计应该遵守( )的设计原则。 A. 自底向上,逐步求精 B. 自顶向下,逐步求精 C. 自底向上,同步扩展 D. 自顶向下,同步扩展 4.下列语句执行后a 的值为( )。 int a=4, &z=a, k=3; a=k; z+=2; k++; A. 0 B. 4 C. 1 D. 5 5.以下程序执行后,屏幕输出为( )。 #include “iostream.h ” void fun(int d) {d++;} void main() { int d=3; fun(d); d++; cout<=’a ’)&&(d<=’z ’) B. ‘a ’<=d<=’z ’ C. (d>=’a ’)||(d<=’z ’) D. ‘A ’<=d<=’Z ’ 8.已知:int k=7, x=12; 则执行语句( )后x 的值为0。 A. x+=k-x%5; B. x+=(x-k%5); C. x%=(k-=5); D. (x-=k)-(k+=5); 9.运行下列程序,其输出结果为( )。 #include “iostream.h ” void main() { int x(5),y(5),z(5); y--&&++x&&z--||y++; cout<

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

程序设计基础试题库

练习题一Visual FoxPro 基础 、选择题 1. 关系数据库管理系统应能实现的专门关系运算包括___c __________ A 显示、打印、制表B关联、更新、排序 C 选择、投影、连接D排序、索引、统计 2. 关系是指__b__。 A 属性的集合B元组的集合 C 实例的集合 D 字段的集合 3. 如果把学生看成实体,某个学生的姓名叫“杨波”,则“杨波”应看成是___b ______ 。 A)属性型B )属性值C )记录型D )记录值 4. 关系数据库系统中所使用的数据结构是 _______ d ___ 。 A)图B )树C )表格D )二维表 5. 对表进行水平方向的分割用的运算是 _______ b ___ 。 A)交B )选择C )投影D )连接 6. 下列数据库技术的术语与关系模型的术语的对应关系中_______ d _____ 是正确的。 A)实例与关系 B )字段与元组C )记录与属性 D )记录类型与关系模式 7. 下列关于数据库系统的叙述中,正确的是 _____ c _____ 。 A)数据库系统中数据的一致性是指数据类型一致 B)数据库系统只是比文件系统管理的数据更多 C)数据库系统减少了数据冗余 D数据库系统避免了数据冗余 8. 关系数据模型 ______ d ___ 。 A)只能表示实体间的1:1联系 B)只能表示实体间的1:n C只能表示实体间的m:n D 可以表示实体间的上述三种联系 9. 在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称

这个属性为 _____ a____ 。 A)关键字B )主属性C )数据项D )主属性值 10. 关系数据库管理系统中的元组是______ b ____ 。 A)关系中的垂直方向的列 B )关系中的水平方向的行 C属性或属性的组合 D )以上的答案均不正确 11. 从数据库的整体结构看,数据库系统采用的数据模型有_________ a __ 。 A)层次模型、网状模型和关系模型 B)层次模型、网状模型和环状模型 C)网状模型、链状模型和层次模型 D链状模型、关系模型和层次模型 12. 设有属性A B、C D以下表示中不是关系的是___________ d__。 A)R( A) B )R( A, B)C )R (A, B, C, D) D )R (A X B X C X D) 13. 若实体间联系是M N的,则将联系类型_________ a___ 。 A)也转换为关系模型 B)属性加入任一个关系模式中 C)属性加入N端实体类型相应的关系模式中 D)属性加入M端实体类型相应的关系模式中 14. 数据库系统的构成为数据库、计算机硬件系统、用户和________ a ____ 。 A 数据库管理系统 B 操作系统 C 数据集合 D 文件系统 15. 层次型、网状型和关系型数据库划分原则是________ c ___ 。 A 文件大小 B 记录长度 C 数据之间的联系 D 联系的复杂程度 16. 在数据库设计中用关系模型来表示实体和实体之间的联系,关系模型的结构是 _____ d ___ 。 A 封装结构 B 层次结构 C 网状结构 D 二维表结构 17. 在关系模型中,实现“关系中不允许出现相同的元组”的约束是通过__a ________ 。 A 主键 B 超键 C 外键 D 候选键 18. 层次模型不能直接表示 ______ b __ 关系。 A 1:1 B m:n C 1:m D 1:1 和1:m 19. DBAS旨的是_____ d____ 。

《C语言程序设计》精品课申报表

2011年度省级精品课程申报表 (高职高专) 课程名称 C语言程序设计 所属专业大类名称电子信息 所属专业类名称计算机 所属专业名称(专业课程填写) 课程负责人贾名 推荐学校(盖章) XXXXXXXX职业技术学院申报日期 XXX年XXX月 江西省教育厅制 二○一一年三月

填写要求 一、以word文档格式如实填写各项。 二、表格文本中外文名词第一次出现时,要写清全称和缩写, 再次出现时可以使用缩写。 三、涉密内容不填写,有可能涉密和不宜大范围公开的内容, 请在“其他说明”栏中注明。 四、除课程负责人外,根据课程实际情况,填写1~4名主讲 教师的详细信息。 五、本表栏目未涵盖的内容,需要说明的,请在“其他说明” 栏中注明。

1.课程负责人情况 1-1 基本信息 姓名XXX性别男 出生 年月 XXX 最终 学历 研究生 专业技 术职务 教授电话XXX 学位硕士 职业资 格证书 高校教师传真 所在 院系 计算机科学系E-mail 通信地址(邮编) 教学与技术专长 工作简历(含在行业、企业的工作经历和当时从事工作的专业领域及所负责任)

1-2 教学情况近五年来承担的主要课程(含课程名称、周学时,届数及学生总人数,不超过五门);主持的教学研究课题(含课题名称、来源、年限,不超过五项);作为第一署名人在国内外公开发行的刊物上发表的教学研究论文(含题目、刊物名称、时间,不超过十项);获得的教学表彰/奖励(不超过五项) 一、近五年主要担任课程 二、编写教材

1-3 技术服务近五年来承担的技术开发或技术服务(培训)项目及效果(含项目/培训名称、来源、年限、本人所起作用,不超过五项);在国内外公开发行刊物上发表的相关专业技术论文(含题目、刊物名称、署名次序与时间,不超过五项);获得的表彰/奖励或获得的专利(含奖项名称、授予单位、署名次序、时间,不超过五项) 2. 主讲教师情况⑴ 2⑵-1 基本信息 姓名性别 出生 年月 最终 学历 专业技 术职务 电话 学位 职业资 格证书 传真 所在 院系 计算机科学系E-mail 513581735@https://www.docsj.com/doc/e518548982.html, 通信地址(邮编)南昌市新溪桥XXXX职业技术学院(330024) 教学与技术专长从事计算机课程教学及科研工作 工作简历(含在行业、企业的工作经历和当时从事工作的专业领域及所负责任)

程序设计基础试题和答案解析二

《程序设计基础》考试试卷二 1.1966年,Bohra和Jacopini提出的三种基本程序设计结构是:________ A.if、while和for; B. switch、do-while和for; C.while、do-while和for; D.顺序结构、分支结构和循环结构。 2.算法的特征不包括:______。 A.有穷性 B.可行性 C.确定性 D.有1个或者多个输入。 3.C语言源程序的基本组成单位是______。 A.函数 B. 语句 C. 声明和语句 D. 文件 4.下列标识符中,只有______是合法的。 A.if B. 3ab C. Int D. A-4 5.下列常量中,只有______是合法的。 A.3e-0.3 B. ‘abc’ C. 02a1 D. ‘\377’ 6.下列说法中正确的是:______。 A.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。 B.宏替换比函数调用的执行速度慢。 C.实质上,C语言中的指针就是一个变量的地址。 D.C语言中的任何函数都可以由程序员命名。 7.C语言中,运算对象必须是整型的运算符是_______。 A./ B. % C. + D. - 8.以下叙述中错误的是_______。 A.C语句必须以分号结束 B.复合语句在语法上被看作一条语句 C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句 9.以下叙述中正确的是_______。 A.调用printf函数时,必须要有输出项 B.使用putchar函数时,必须在之前包含头文件stdio.h C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10.以下关于函数的叙述中正确的是_______。 A.每个函数都可以被其它函数调用(包括main函数) B.每个函数都可以被单独编译 C.每个函数都可以单独运行 D.在一个函数内部可以定义另一个函数 11.有以下程序段typedef struct NODE{ int num; struct NODE *next;

程序设计基础课程设计

设计题目:学生成绩管理系统班级:计0902 姓名:付乐颖 学号:20091221067 完成日期:2010.10.15

1. 课程设计目的和要求 随着科学的发展和社会的进步,许多过去有人工处理的繁杂事务开始交付计算机来完成。学生成绩管理系统可以说是一个得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。 本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。 2. 课程设计任务内容 学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C语言成绩、总分、平均分。系统的主要功能包括: 1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。 2. 增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排序,并继续保存至原文件。 3. 删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。 4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。 5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。 (1) 按学号查询,输入一个学号,输出对应的学生信息。

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.docsj.com/doc/e518548982.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

《程序设计基础》试卷(A卷)

《程序设计基础》试卷(A 卷) 注意:1、考试时间: 90 分钟; 2、班级、姓名、学号必须写在指定地方; 3、适用班级: 4、考试方式: 一、填空题 (每空 2 分,共 20 分) 1、C 程序是由函数构成的,其中有且只能有 1 个主函数,每个C 程序总是从它开始执行,并且以 ; 作为结束符。 2、C 语言中三大基本结构有:顺序结构、 选择结构 、 循环结构 。 3、‘A ’+3的结果是 68 。 4、若已定义x 和y 为double 类型,则表达式x=1,y=x+3/2 的值是 2.5 。 5、C 语言中逻辑运算符 ! 的优先级高于算术运算符。 6、符号“a”和‘a’的区别是 “a ”2字节 ‘a ’1字节 。 7、C 语言的预处理语句以____#_____开头。 8、有如下输入语句:scanf(“a=%d,b=%d ,c=%d”,&a ,&b ,&c );为使变量a 的值为1,b 的值为3,c 的值为2,从键盘输入数据的正确形式应是 a=1,b=3,c=2 。 二、选择题 (每小题 3 分,共 30 分) 1、下列叙述中错误的是( D )。 A 、 if 语句允许用户选择是否执行某个操作。 B 、 if else 语句允许用户选择执行两个操作中的某个操作。 C 、 switch 语句允许用户选择执行多个操作中的某个操作 D 、 多分支选择结构只能使用switch 语句实现 2、以下不正确的C 语言标识符是( D ) A 、ABC B 、abc C 、a_bc D 、ab.c 3、按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是( B )。 A 、大写字母 B 、连接符 C 、数字字符 D 、下划线 4、将int 型变量n 转换成float 型变量的方法是( B )。 A 、float n B 、(float)n C 、float(n) D 、(int )n 5、( A )是构成C 语言的基本单位。 A 、函数 B 、子函数 C 、过程 D 、子过程 6、下面关于运算符优先顺序的描述中正确的是( B )。 A 、关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B 、逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 C 、赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D 、算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 7、在C 语言中,要求参加运算的数必须是整数的运算符是( C )。 A 、/ B 、! C 、% D 、= = 8、char 型常量在内存中存放的是( B )。 A 、ASCII 代码值 B 、BCD 代码值 C 、内码值 D 、十进制代码值 9、以下程序的输出结果是( B ) Main() { Int x=10,y=4; Printf(“%d\n ”,x/y);

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

计算机程序设计基础习题册含答案

《计算机程序设计基础》 计算机程序设 计基础_基础知识(一) 班级 学号 姓名 成 绩 一、 单选题 习题册

1.C++源程序文件的默认扩展名为A。 2.A) cpp B) exe C) obj D) lik 3.由C++源程序文件编译而成的目标文件的默认扩展名为C。 4.A) cpp B) exe C) obj D) lik 5.由C++目标文件连接而成的可执行文件的默认扩展名为B。 6.A) cpp B) exe C) obj D) lik 7.编写C++程序一般需经过的几个步骤依次是B。 8.A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接9.程序中主函数的名字为 A 。 10.A) main B) MAIN C) Main D) 任意标识 符 11.下面四个选项中,均是不合法的 用户标识符的选项的是 C。 12.A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 13.下列变量名中合法的是 C。 14.A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 15.存储以下数据,占用存储字节最 多的是 D 。 16.A) 0 B) ‘0’

C) “0” D) 17.在C++语言中,字符型数据在内存中的存储形式是D。 18.A) 补码 B) 反码 C) 原码 D) ASCII码 19.若有说明语句:char c =’\072’;则变量c A。 20.A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令 计算机程序设计基础_基础知识(二) 班级学号姓名成绩 一、单选题 1.下列哪一个是C++语言中合法的变量 C A) 8ZSe B) ±A0 C) X0_2 D) ’x0’2.已知ch是字符型变量,下面不正确的赋值语句是A 3.A) ch='a+b' B) ch='\0'

“程序设计基础”精品课程建设

“程序设计基础”精品课程建设 摘要:从课程体系、教学方法和手段、实践教学、考核评价、实践创新能力培养等几个方面的改革实践阐述“程序设计基础”精品课程建设方案。 关键词:程序设计基础;精品课程;教学改革;实践 “程序设计基础”是计算机科学与技术专业的主干专业基础课,是所有后续软件专业课的基础和支撑,在计算机整个课程体系中起着举足轻重的作用。本课程是一门实践性很强的学科基础课,不仅要学习基本理论知识,更要注重上机实践,通过上机实践掌握高级语言的特征,巩固所学的理论知识。“程序设计基础”经过多年的教改实践,取得了令人满意的成绩,2004年被评为校级精品课程,2005年入选首批自治区级精品课程[1-2]。 本课程开设以来,课程教学团队一直致力于教学改革,通过多年的探索和实践,确立了课程建设的指导思想—既要培养学生解决问题(算法与程序设计)的能力,又能比较熟练地掌握一种程序设计语言(C/C++)。本课程以程序设计方法为纲,较为系统全面地介绍了程序设计发展和程序设计的基本方法,其目的是让学生掌握程序设计的基本理论和基本方法。在讲授过程中,教师特别注意介绍有关独立于任何特定编程语言的算法概念和结构,强化训练程序设计的经验和相关技术,把重点放在程序设计实践及培养学生分析问题和解决问题的能力训练方面。 1课程建设方案 1.1完善程序设计类课程的课程体系 程序设计基础包含两方面教学内容:程序设计的基本方法和程序设计语言入门。因此,教师在课程讲授中,既要培养学生解决问题(算法与程序设计)的能力,又使他们能比较熟练地掌握一种程序设计语言(C/C++)。本课程以程序设计方法为纲,较为系统全面地介绍了程序设计,其目的是让学生掌握程序设计的基本理论和基本方法。同时,以C/C++作为典型的程序设计语言,介绍结构化程序设计和面向对象程序设计两种编程思想。教师在讲授过程中,特别注意介绍有关独立于任何特定编程语言的算法概念和结构,强化训练程序设计的经验和相关技术,把重点放在程序设计实践方面,以培养学生分析问题和解决问题的能力方面。 程序设计基础课程的学习效果直接关系到许多后续课程的学习,在课程改革与建设的过程中不但要关注这一门课程,还要考虑到与其关联的许多课程,甚至覆盖到与其有内在联系的整个课程群。所以,软件类课程的发展方向必然是从单一走向系列,进一步建立完善的课程体系,发挥其整体优势。笔者以“程序设计”为主线,从程序设计基础、数据结构、可视化编程、网络编程等相关的课程入手,进行课程体系改革,逐步完善程序设计类课程体系。 1.2改革教学方法和教学手段

程序设计基础课程设计

1 矩阵的操作(6人) 设有两个矩阵A=(a ij)m×n,B=(b ij)p×q 实现要求: ⑴编写矩阵输入函数INPUT_MAT,通过该函数完成矩阵的输入并返回保存矩阵的数组和对应矩阵的行数、列数。(不能使用全局变量) ⑵编写矩阵输出函数OUTPUT_MAT,通过该函数完成矩阵的输出。 ⑶求矩阵的转置,矩阵的转置A’=(a ji)n×m,转置前输出原矩阵,转置后输出转置矩阵。 ⑷求矩阵A、B的和。矩阵A和B能够相加的条件是:m=p,n=q;矩阵A和B如果不能相加,请给出提示信息;若能够相加,则求和矩阵C并输出C。 C=A+B=(c ij)m×n,其中c ij=a ij+b ij ⑸求矩阵A、B的积。矩阵A和B能够相乘的条件是:p=n;矩阵A和B 如果不能相乘,请给出提示信息;若能够相乘,则求积矩阵D并输出D。 D=A×B=(d ij)m×q,其中d ij=∑a ik×b kj,k=1,2,……,n ⑹设计一个菜单,具有求矩阵的转置、求矩阵的和、求矩阵的积、退出等基本的功能。在求矩阵的和或求矩阵的积时要求能够先提示输入两个矩阵的,然后再进行相应的操作。

2 数据汇总 (6人) 问题描述: 在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。 假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。实现要求: ⑴编写实现将数据记录插入到数据文件的最后的函数; ⑵编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表; ⑶统计每台收款机的销售总额; ⑷编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表; ⑸以商品为单位,统计每种商品的销售总额。 ⑹设计一个菜单,具有插入数据记录、按收款机统计销售总额、按商品统计销售总额、退出系统等最基本的功能。

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素

9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是()

程序设计基础期末考试题A卷

《程序设计基础》试题 程序设计基础期末考试题A 卷 一、 选择题(1*20=20分) 题号 1 2 3 4 5 6 7 8 9 10 总分 答案 题号 11 12 13 14 15 16 17 18 19 20 答案 1、一个完整的计算机系统应该包括( ) A 、系统软件和应用软件 B 、计算机及其外部设备 C 、硬件系统和软件系统 D 、系统硬件和系统软件 2、“裸机”的概念是指( ) A 、正在进行设计还没有组装好的计算机 B 、已经组装好但还没有安装任何软件的计算机 C 、仅安装了操作系统的计算机系统 D 、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是( ) A 、1936年 B 、1946年 C 、1956年 D 、1970年 4、CASE 的含义是( ) A 、计算机辅助设计 B 、计算机辅助制造 C 、计算机辅助教学 D 、计算机辅助软件工程 5、当前广泛使用的微型计算机是( ) A 、第一代 B 、第二代 C 、第三代 D 、第四代 6、当代计算机的体系结构称为是( ) A 、冯·诺依曼机 B 、非冯·诺依曼机 C 、图灵机 D 、比尔盖茨机 7、硬盘是( ) A 、输入设备 B 、输出设备 C 、存储设备 D 、计算设备 8、下面4句话中,最准确的表述是( ) A 、程序=算法+数据结构 B 、程序是使用编程语言实现算法 C 、程序的开发方法决定算法设计 D 、算法是程序设计中最关键的因素 9、计算机能直接执行的语言是( ) A 、机器语言 B 、汇编语言 C 、高级语言 D 、目标语言 10、解释程序的功能是( ) A 、将高级语言程序转换为目标程序 B 、将汇编语言程序转换为目标程序 C 、解释执行高级语言程序 D 、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是( ) A 、JAVA B 、Object Pascal C 、Delphi D 、C 12、不是C 语言的基本数据类型是( ) A 、int B 、double C 、char D 、bool 13、在C 语言中,为了求两个整数相除之后得到的余数,可以使用运算符( ) A 、/ B 、% C 、* D 、++ 14、数据的逻辑结构分为( ) A 、纯属结构和非线性结构 B 、顺序结构和非顺序结构 C 、树型结构和图型结构 D 、链式结构和顺序结构 班级 姓名

《测量程序设计课程设计》指导书-2015

测量数据处理程序设计指导书 设计名称:测量数据处理程序设计 计划周数:2周 适用对象:测绘工程专业本科 先修课程:测量学,测量平差基础,大地控制测量,测量程序设计 一、设计目的 测量数据处理程序设计是学生在系统学习完大地控制测量学、测量平差基础、测量程序设计等相关课程之后,为了系统理解控制网平差的整体过程及综合运用科学工具而安排的。通过课程设计主要达到以下几个目的:掌握控制网平差课程设计具体内容、方法和步骤;通过理论联系实际,进一步巩固已学到的专业理论知识,并加深对理论的认识;培养学生对编写代码,上机调试和编写说明书等基本技能;锻炼学生阅读各类编程参考书籍及加以编程运用的能力。 二、设计内容及日程 在VB、 VC软件或matlab科学计算软件的平台上,选择的具体课程设计题目,进行程序设计与实现,共计10个工作日,工作程序如下: 三、设计的组织: 1.设计领导 (1)指导教师:由教研室指派教师、实验员兼任。

职责:全面组织设计大纲的实施,完成分管工作及相关技术指导。 (2)设计队长:学生班长兼任。 职责:协助教师做好本班学生的人员组织工作。 (3)设计组长:每组一人。 职责:组织执行下达的设计任务,安排组内各成员的工作分工。 2.设计分组 学生实习作业组由3~4人组成(含组长一人)。 四、设计内容 在VB、VC或MATLAB 软件平台上,按选择的设计题目进行相关程序开发 1、闭合导线简易平差、附合导线简易平差支导线计算 2、闭合水准网计算、附合水准网简易平差 3、地形图编号(新、旧两种方法) 4、误差椭圆的参数的计算与绘制误差椭圆 5、水准网严密平差 6、高斯正反算计算 7、高斯投影换带计算 8、七参数大地坐标转换(WGS84-bj54坐标转换、WGS84-CGCS2000坐标转换) 9、四参数坐标转换(西安80-bj54坐标转换、CGCS2000-bj54坐标转换、CGCS2000-西安80坐 标转换(平面) 10、大地高转换为正常高的计算 11、工程投影变形超限的处理 12、遥感图像数据处理 13、曲线(曲面)拟合 14、摄影测量空间后方交会 15、****管理信息系统设计与开发 五、上交成果 1) 小组利用vb、vc或matlab编写的软件包一个及测试数据一份 2)小组关于所开发程序设计说明书一份 3) 个人课程设计的心得一份 4)小组答辩PPT一份

(完整版)程序设计基础试题_10_答案

广州大学学年第学期考试卷 课程高级语言程序设计考试形式(开/闭卷,考试/查) 学院系专业班级学号姓名 一、填空题(每空1分,共10分) 1.C源程序的基本单位是(函数)。 2.一个C源程序中至少应包含一个(main()函数)。 3.若a和b均是int型变量,且a和b的初值均为5,则计算表达式a+=b++ 后,a的值为(10 ),b的值为( 6 )。 4.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,b值为( 4 ),c 值为( 2 )。 5.表达式8.2-2/3 的计算结果是(8 )。 6.在C语言中,整数可用三种数制表示,它们分别是(十进制)、(八进制)和(十六进制)。 二、程序计算题(每小题5分,共15分) 1. # define f(a) printf(“%d”,a) main() { int i,b[]={1,2,3,5,7,9,11,13,15},*p=5+b; for(i=3;i;i--) switch(i) { case 1: case 2: f(*p++); break;

case 3: f(*(--p)); } } 2. main() { int arr_sum(int arr[],int n); int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p,total; int (*pt)( int arr[],int n); pt=arr_sum; p=a[0]; total=(*pt)(p,12); printf(“total=%d\n”,total); } arr_sum(int arr[],int n) { int i,sum=0; for(i=0;i

C++面向对象程序设计课程设计报告

. 课程设计 课程名称C++面向对象程序设计题目名称公司人员管理系统 专业班级13级计算机科学与技术一班学生林涛、甑德胜、梁增辉 吴志伟、齐、江靖 学号51302011015、51302011016、51302011001 51302011037、51302011006、51302011009指导教师郭有强 二○一四年六月二十日

目录 一、引言 (2) 二、课程设计报告 (4) 1、问题描述 (4) 2、系统总体方案 (4) 3、设计思路和主要步骤 (5) 4、各功能模块和流程图 (5) (1)各功能模块 (5) (2)流程图 (6) 三、系统测试 (9) 四、心得体会 (15) 五、参考文献 (17) 附:程序设计代码 (18)

一、引言 1985年,管理信息系统的创始人,高登?戴维斯给出的管理信息系统的定义是:“它是一个利用计算机硬件和软件,手工作业,分析、计划、控制和决策模型,以及数据库的用户一机器系统。它能提供信息,支持企业或组织的运行、管理和决策。”这个定义说明了管理信息系统的组成要素:计算机硬件、软件、数据库、模型库和用户。 随着我国社会的不断进步,人们对管理信息系统越来越重视,再加之管理信息系统在管理方面所产生的巨大影响,也使得人们越来越关注管理信息系统的发展趋势。由于管理信息系统的发展受到以上各种变革因素的制约,传统的管理信息系统必然向现代管理信息系统发展,在这个发展过程中,管理信息系统的发展将会呈现出以下趋势: 管理信息系统将会越来越注重以人为本。管理科学的发展有科学管理理论、行为管理理论和现代管理理论三个发展阶段,正在向着越来越人性化的方向发展,即以人为本。基于管理学的这一研究视角,管理信息系统也将向着更加人性化的方向发展。在今后的管理信息系统中将会越来越注重人的因素,以人为出发点和中心,围绕着激发和调动人的主动性、积极性、创造性展开的,以实现人与社会共同发展的一系列管理活动。而且这种人性化还会贯穿于管理信息系统的开发设计与研究中,具体表现为今后的管理信息系统将具有更加友好的人机界面,易于人们操作,也会考虑到不同用户的不同需求,更加个性化。 管理信息系统向智能化方向发展。随着人工智能技术的发展,数据仓库、数据挖掘技术在管理信息系统中的应用,管理信息系统必将向着智能化方向发展,如产生了很多的决策支持系统、专家系统等等。智能化的管理信息系统具有思维模拟活动,它具有很高的自学习、自组织和进化性,并具有知识创新功能,可以解决非结构化事务,在决策中处于主导地位,是人的向导,在体系上将是大规模分布式计算模式,以基于网络神经元构件的智能网为主。 管理信息系统向集成化方向发展。随着当前系统集成技术的提高,集成技术和方法也逐步地运用到管理信息系统中。由于管理信息系统将包含多个子系统,因此将这些功能集合在一起以便更好地发挥它的作用,这就是集成化的管理信息系统。集成化的管理信息系统将管理信息系统的各个子系统有机地结合起来,达到互通信息、共享数据资源的目的,其支撑技术是数据库和计算机网络。集成管

相关文档
相关文档 最新文档