c程序设计语言课程设计收银台结算程序

c程序设计语言课程设计收银台结算程序
c程序设计语言课程设计收银台结算程序

合肥学院

计算机科学与技术系

课程设计报告

2009~2010学年第二学期

课程程序设计语言Ⅱ课程设计

课程设计名称收银台结算程序

学生姓名

学号0904032024

专业班级网络工程(2)班

指导教师何立新、刘洁群

2010年7月

(一)需求分析

现在某大型超市由于购物人员太多需要一个收银台结算程序,以方便消费者能够快速付账。该程序中能够各种商品的全部信息,包括商品的编号、名称、数量、进价、售价等。程序主要是用来方便消费者付账,当消费者选定商品时收银台的工作人员只要把消费者买的商品的数量输进去就可以了,该程序会自动的计算其总额并告知消费者要交多少金额。因此该程序的主要功能就是帮助收银台的工作人员实现收款的目的。所以在制作该软件时首先要有一系列的子函数:当输入商品的编号时就可以知道它的数量、进价、售价等。当工作人员收银时只要输入商品的编号,并输入其数量就可以知道消费者要付金多少,然后系统就会根据消费者给的金额会打印出相应的购物小票。小票上会显示消费者所购商品的编号、数量、以及消费者所给的金额和应该找零多少。

当消费者不能提供所购商品的编号时,系统则无法进行其各项的操作。在收银的过程中如果遇到了消费者所给的金额不够则系统会自动出现提示:所交金额不足。每当消费者买走一件商品时系统在显示时变回显示其数量减少一个,在开始设计时为了能够满足要求因此要定义空间足够大的id,name,count.分别各为100.在计算时输入商品的数量然后系统就会用该商品的单价乘以数量就得到了消费者应付的金额。

(二)设计

根据上诉需求应该定义一个DATA类,该类中定义了产品的编号id,产品名称name,商品的已售数量salecount,还有商品的进价buy,和商品的售价sale。在public中有成员函数getid,用于得到商品的编号;getname,用于得到商品的名称;getsale,用于得到商品的售价;getbuy,用于得到商品的进价。在此基础上又派生出另一个类WAY。

在WAY类中有成员函数newfile,用于新建各种商品的信息,在newfile 中会分别要求输入商品的编号、名称、数量、进价、售价。在一次输入各种商品的各种信息后可以调用另一个成员函数save,将输入的商品的各种信息储存起来。要进行收银工作时选择sale子函数进行收银工作,在输入商品的各种信息后可以调用函数showdata把商品的编号、名称、数量以及进价和售价都显示出来以方便查看。在WAY类中open函数主要是用来打开已经保存好的各种商品的

各种基本信息。在程序运行时将开始准备好的数据输入这样就变的更加方便了。在有很多商品的情况下要临时找到一个商品的基本信息一般比较困难,因此还要用到binsearch来查找商品。当要想找到摸个商品时只要将其编号输入系统就可以根据编号进行查找,从而找到所要的商品。在商品已经销售了一部分时可以计算一下这些商品的总的进价因而sumsale函数就是来计算已经销售出去的商品的总的进价,同样,当想知道已经售出的这些商品所得到的利润时就可以用函数sumgain,这些函数都是主函数countmenu中的子函数,在countmenu函数中包括已售总额、已售总进价、已得纯利润、预销售总额。在商场进行交易时便会用到函数sale来进行收银工作,开始时输入商品的编号如果没有改编号则说明仓库中没有该商品,此时便会输出“此产品已缺”,有该商品的则会提示你输入“输入数量”,在有提示:“输入收到金额”,此时如果输入的是负数或者超出该产品的库存量则系统会提示:“数量输入不真确”,等到一切都正确后系统便会输出一个购物小票:上面有商品的名称、数量、单价、应收、找零。

在该系统实现其收银功能后,我们可以对这一段时间所销售的商品做一个统计,包括对他的数量、售出量、进价、售价、盈利多少等,当选择计算的子函数时便可以对这些已经售出的商品做一个系统的统计,在统计之后会输入一个清单。上面写着这段时间所有售出的商品的各种信息,已列表的形式把商品的编号、名称、已售出量、售价、进价等。

在类的设计中主要是数据成员以及成员函数,在WAY类中我们首先要把商品的基本信息能用数据成员表示,于是便要定义编号、名称、数量、进价、售价。在主函数menu中有1.输入产品信息 2.显示 3.保存 4.打开 5.菜单 6.收银 7.计算 0.返回"这几项功能。在设计该程序时要考虑到开始时可以对商品的信息进行输入,于是在子函数newfile中便是将商品的信息输入其中。但考虑到由于商品要是太多的话临时输入这些商品的信息太麻烦并且耽误时间,所以我们考虑到用磁盘文件来处理,在磁盘文件中我们先把各种商品的基本信息保存在里面,等到要用的时候就可以直接打开,因此我们用open函数来实现这个功能。(三)用户手册

当我们把收银台结算程序编写好用于商场之后,在消费者来付账时,我们首先运行该程序,这是主页面会显示1.输入产品信息 2.显示 3.保存 4.打开 5.菜单 6.收银 7.计算 0.返回",“选择菜单”的字样。这是选择1系统就会显示id、name、count、buy、sale。这是我们依次输入商品的编号、名称、数量、进价、售价后,系统又会显示sn 这是再选择所要操作的,当选择6 时进入收银状态。这时系统会提示你输入产品编号、输入数量、输入收到金额、等全部输入完成后系统便会打印一个购物小票出来:

购物小票

名称:奶粉

数量:2

单价:140元

应收:280元

找零:12元

当输入的编号无法找到时系统便会显示:not find。

当选择7时系统便会输出:1.已售总额 2.已售总进价 3.已得纯利润 4.预销售总额 5.进价成本总额 0.返回"。这时还要进行子函数的选择,选择1时这是时在计算已经售出商品的总额,系统会显示280。选择2时这是在计算已经售出商品的总进价,系统会显示200,当选择3时这是在计算已经售出商品所得的总利润,系统会显示80,当选择4时这是在计算预销售总额,系统会显示310,当选择5时这是在计算进价成本总额,系统会显示230。当我们想结束计算着子函数的调用时选择0这是系统会自动跳出该子函数的运行然后显示:输入“选择菜单”作为提示。

当我们已经输入很多商品的信息并都已成功售出时由于看不见主菜单的内容了这时就可以选择5系统便会把住菜单显示出来:1.输入产品信息 2.显示 3.保存4.打开 5.菜单 6.收银 7.计算 0.返回",当我们选择2时系统就会把商品现在信息显示出来。

编号名称当前量已售量进价售价

12 奶粉 100 2 100 140

13 洗衣机 200 10 500 2000

等各种商品的信息。只要按照系统的提示操作就会很顺利的完成。

(四)调试及测试

由于该程序要包含各种商品的信息因此在运行该系统时首先要把各种商品的基本信息放在磁盘文件中,在应用时直接就可以读出这些商品的信息。在开始编写该程序时没有考虑到商品数量、价格的容量大小导致了在输入商品的信息时系统出现了错误,后来打开书本时看到书上的例子时想起来的从而改正了错误,在编写showdata,函数时我们要把商品的各种信息都显示出来由于商品的基本信息比较多,要考虑到输出时的整齐所以要要运用到setw函数来控制输出时的界面

开始时由于没有注意到所输出来的空格数进而导致了输出来的界面有有点乱,之

后又调整了输出时的空格数才使得输出来的界面变得相对美观,在编写sale函数时开始没考虑到输入提示,当系统运行时不知道系统要我们做什么,之后意思到后就在开始时输入了输入提示,这样当系统运行时就可以按照系统对你的提示进操作了。在有很多商品的情况下要临时找到一个商品的基本信息一般比较困难,因此还要用到binsearch来查找商品。当要想找到摸个商品时只要将其编号输入系统就可以根据编号进行查找,

从而找到所要的商品。在商品已经销售了一部分时可以计算一下这些商品的总的进价因而sumsale函数就是来计算已经销售出去的商品的总的进价,同样,当想知道已经售出的这些商品所得到的利润时就可以用函数sumgain该系统中为了使得能够把商品的各种信息都能输出来并能够显示出来因此就运用了countmenu函数来把已经售出商品和未售的出商品的各种信息输入。系统会显示1.已售总额 2.已售总进价 3.已得纯利润 4.预销售总额 5.进价成本总额。这样就可以知道未售出商品和已售出商品的数量和已经所得的盈利。当选择菜单1时系统就会让你输入各种商品的信息,这时按照要求输入时然后选择6就可以进行收银工作,我们在系统的提示下会输入商品的编号、名称、数量、和进价售价。可以

进行操作了。然后就当选择7时系统便会输出:1.已售总额 2.已售总进价 3.已得纯利润 4.预销售总额 5.进价成本总额 0.返回"。这时还要进行子函数的选择,选择1时这是时在计算已经售出商品的总额,系统会显示134。选择2时这是在计算已经售出商品的总进价,系统会显示92,当选择3时这是在计算已经售出商品所得的总利润,系统会显示42,当选择4时这是在计算预销售总额,

系统会显示6838,当选择5时这是在计算进价成本总额,系统会显示5440。当我们想结束计算着子函数的调用时选择0这是系统会自动跳出该子函数的运行然后显示:输入“选择菜单”作为提示。

(5)小结

通过一个学期C++语言的学习,现在对程序设计有了一定程度上的了解并会进行简单的程序设计,开始学习C++语言时可以说是在听天书,啥都不会,整天晕头转向的,加之老师是如此的严格,因此对C+ 语言充满了恐惧感!但由于认识到了C++语言的重要性,因此又加紧学习,上课认真听讲,课后认真看书,所以才对C++语言有了一定的了解和体会,之后才慢慢的会编写一些简单的程序,随着学习的深入,越来越难,之后又学习了数组和指针使得学习变得更难,数组的学习可以解决很多数据类型一样的数,然后又学习了结构体,结构体的学习使得程序越来越大,越来越复杂,以前的程序都是一些简单的小程序,学了结构体后就可以编写一些相对较大的程序了,结构体可以吧一些数据类型一样的集合在一起,

在编写收银台结算系统时,开始不知道怎样写,主要是前面学的不好,还有一些小的知识不知道,所以在编写相对较大的程序时会遇到很多困难,

通过一个学期的学习,现在对C++语言不再那么的害怕,一些简单的程序可以自己独立的解决,现在也可以吧学生成绩管理系统编写出来了。由此可以看出只要自己努力就可以解决很多问题,C++语言的学习主要是以动手为主,不断的自己写程序代码,然后自己上机调试,不断的写程序不断地上机调试就可以熟能生巧,收银台结算系统就是不断的上机调试的结果,只有自己认真了努力了才能不断的进步。

(六)参考文献

[1] 刘振安等编著《C++程序设计课程设计》机械工业出版社

[2] 吴乃陵等编著《C++程序设计》北京:高等教育出版社

[3] 李龙澍《C++程序设计实训教程》北京:清华大学出版社

[4] 宁正元《数据结构(C语言)》南京:东南大学出版社。2000年6月

[5] 严蔚敏等《数据结构(C语言版)》北京:清华大学出版社,1997年

[6] 胡学钢等《数据结构算法设计指导》北京:清华大学出版社,1999年

[7] 明日科技编著《Visual C++程序开发范例宝典》北京:人民邮电出版社

附录

#include

#include

#include

#include

#define LENname 100

#define LENnode 100

#define LENfname 100

class DATA

{

int id;//产品编号

char name[LENname];//产品名称

int count;//库存数量

int saleCount;//已售数量

float buy;//进价

float sale;//售价

bool delTag;

public:

int getId()

{

return id;

}

char *getName()

{

return name;

}

int getCount()

{

return count;

}

int getSaleCount()

{

return saleCount; }

float getBuy()

{

return buy;

}

float getSale()

{

return sale;

}

bool getDelTag()

{

return delTag;

}

//---------------------- void setId(int n)

{

id=n;

}

void setName(char na[]) {

strcpy(name,na);

}

void setCount(int n) {

count=n;

}

void setSaleCount(int n) {

saleCount=n;

}

void setBuy(float n) {

buy=n;

}

void setSale(float n)

{

sale=n;

}

//...................

void Del()

{

delTag=1;

}

void unDel()

{

delTag=0;

}

};

class WAY

{

DATA node[LENnode];

int LEN;

int LenWillDel;

public:

void newFile()

{

int id;

char name[LENname];

int count;

float buy;

float sale;

if(LEN<0)

LEN=0;

LenWillDel=0;

int i;

DATA temp;

for(LEN=1;LEN<3;LEN++)

{

cout<<"id:";

cin>>id;

if(id==-1)

break;

node[LEN].setId(id);

cout<<"name:";

cin>>name;

node[LEN].setName(name);

cout<<"count:";

cin>>count;

node[LEN].setCount(count);

cout<<"buy:";

cin>>buy;

node[LEN].setBuy(buy);

cout<<"sale:";

cin>>sale;

node[LEN].setSale(sale);

node[LEN].unDel();

node[LEN].setSaleCount(0);//售出此产品0个

for(i=0;i

{

if(node[i].getId()>node[LEN].getId())

{

temp=node[i];

node[i]=node[LEN];

node[LEN]=temp;

}

汇编语言课程设计

沈阳大学

2.3 MASM的介绍 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。 2.4总体设计功能 本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示 程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。 定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。 视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H中断即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。 键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。 2.5详细功能设计 2.5.1主程序功能 主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。 沈阳大学

《C程序设计语言》样卷

韩山师范学院2011年专升本插班生考试样卷 计算机科学与技术专业高级语言程序设计试卷(A卷) 一、填空题(每空1分,共10分) 1.C程序的基本单位是________。 2.C语言源程序文件的后缀是________。 3.C语言中的标识符由________、________和字母组成。 4.设y为float型变量,执行表达式y=6/5之后,y的值是________。 5.在C语言中,要求运算量必须是整型的运算符是___________。 6.如果函数值的类型与返回值的类型不一致时,应该以___________为准。7.已知int a=8,*p=&a;,则*p的值是___________。 8.把一些不同类型的数据作为一个整体来处理时,常用___________。9.若x=2,y=3,则x|y<<2的结果是___________。 二、单项选择题(每小题1.5分,共30分) A.顺序结构、选择结构、循环结构B.递归结构、循环结构、转移结构C.嵌套结构、递归结构、顺序结构D.循环结构、转移结构、顺序结构2.在一个C语言的源程序中,以下叙述正确的是()。

A.必须有除主函数外其他函数B.可以有多个主函数 C.必须有一个主函数D.可以没有主函数 3.以下叙述正确的选项是()。 A.C语言的源程序不必通过编译就可直接执行 B.C语言中的每条语句最终都将被转换成二进制的机器指令 C.C语言程序经编译形成的二进制代码可以直接执行 D.C语言中的函数不可以单独进行编译 4.算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是( )。 A.有零个输入或多个输入B.高效性C.有穷性D.确定性5.以下能正确定义且赋初值的语句是( )。 A.int n1=n2=10; B.char c=32; C.float f=f+1.1; D.double x=12.3E2.5 6.有以下程序: main() { char a='a',b; printf("%c",++a); printf("%c\n",b=a++); } 程序运行后的输出结果是( )。 A.bb B.bc C.ab D.ac 7.以下程序段的输出结果是( )。 int a=1234; printf("%2d ",a); A.12 B.34 C.1234 D.提示出错 8.有以下程序:

汇编语言课程设计安排

汇编语言课程设计安排 班级:计本1060110606 课程设计时间:15周 课程设计地点:2#机房 负责教师:程世旭、雷鸣、胡杰、林华、白凯 课设上机时间:上午:8:3011:30 下午:2:305:30 课程设计指导教师安排: 10501:程世旭10502:雷鸣10503:白凯 10504:雷鸣10505:胡杰10506:林华 时间周一周二周三周四周五周六上午10601/2/3 10601/2/3 10601/2/3 10604/5/6 10601/2/3 10601/2/3 验收下午10604/5/6 10604/5/6 10604/5/6 10604/5/6 验收

汇编语言课程设计任务书 课程设计题目:显示系统时间 一、课程设计设计目的 1. 掌握中断的使用方法 2. 掌握BIOS系统功能调用 3. 掌握基本的显存读写技术 4. 学会用汇编语言编写一个较完整的实用程序,培养自己的动手操作能力 5 .学习程序设计的基本思路和方法,编程、调试、撰写报告等 二、程序内容: 第一部分:定义显示界面。 第二部分:调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入显存区。(显存的起始地址:B8000H) 第三部分:将存在系统内存区的时间用字符串的形式显示出来。 注意:1、如果用图形方式显示更好, 2、注意设置显示时候的背景颜色 3、可以增加键盘设置的功能,设置显示颜色,显示位置 三、程序设计原理 首先在数据段开辟一显示缓冲区,用来存储系统时间。调用BIOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。分别将来小时数、分钟数、秒数存入显示缓冲区。通过写显存将时间显示出来。由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。 四、程序流程图

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

C程序设计语言 (第二版) 课后答案第一章

Chapter 1 Exercise 1-1 Run the “hello world” program on your system. Experiment with leaving out parts of the program, to see what error message you get. #include int main() { printf("hello, "); printf("world"); printf("\n"); return 0; } Exercise 1-2 Experiment to find out what happens when printf’s argument string contains \c, where c is some character not list above. Exercise 1-3 Modify the temperature conversion program to print a heading above the table. #include int main() { float fahr, celsius; float lower, upper, step; lower = 0; upper = 300; step = 20; fahr = lower; printf("Fahrenheit temperatures and their centigrade or Celsius equivalents\n"); while (fahr <= upper) { celsius = (5.0/9.0) * (fahr-32.0); printf("%3.0f %6.1f\n", fahr, celsius); fahr = fahr + step; } return 0; }

《C语言程序设计》课程设计报告

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 2.1.4调试过程及实验结果

汇编课程设计

燕山大学 汇编语言课程设计说明书 题目:计算机钢琴程序 交通灯控制系统 学院(系):信息科学与工程学院 年级专业: 10级计算机科学2班 学号: 100104010113 学生姓名:马强 学号: 100104010116 学生姓名:夏洋 指导教师:何海涛、邹晓红 完成日期: 2013年7月3日

目录 1.课程设计的目的和意义........................................................................................................... - 2 - 1.1课程设计目的................................................................................................................ - 2 - 1.2课程设计的意义............................................................................................................ - 2 - 2.题目一:计算机钢琴程序....................................................................................................... - 2 - 2.1系统的主要功能............................................................................................................ - 2 - 2.2总体设计方案................................................................................................................ - 2 - 2.2.1扬声器驱动方式................................................................................................. - 2 - 2.2.2延时原理............................................................................................................. - 3 - 2.2.3键盘控制发声程序............................................................................................. - 4 - 2.2.4设计总结............................................................................................................. - 5 - 2.3作品使用说明................................................................................................................ - 6 - 3.题目二:交通灯控制系统....................................................................................................... - 6 - 3.1系统的主要功能............................................................................................................ - 6 - 3.2 系统工作原理............................................................................................................... - 6 - 3.2.1 8259的工作原理................................................................................................ - 6 - 3.2.2 8255A的工作原理:...................................................................................... - 7 - 3.2.3 8253的工作原理:............................................................................................ - 7 - 3.3总体设计方案................................................................................................................ - 7 - 3.3.1程序流程图......................................................................................................... - 8 - 3.3.2接口电路图....................................................................................................... - 11 - 3.4交通灯的设计总结...................................................................................................... - 11 - 4.课程设计心得体会................................................................................................................. - 12 - 5.参考文献................................................................................................................................. - 12 - 6.附录:程序代码..................................................................................................................... - 12 - 6.1计算机钢琴程序代码.................................................................................................. - 12 - 6.2交通灯控制系统代码.................................................................................................. - 14 -

(完整版)C程序设计语言复习题(试题及答案版)

一.填空题 26.C#源程序的后缀名为______.cs________。 26.C#中每个int 类型的变量占用____4___个字节的内存。 26.C#的每行语句以________分号_______结尾。 26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。 26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。 26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。 26.关键字_______class________表示一个类的定义。 26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。 26.try块运行后,总是会执行_________finally_____________块中的代码。 26.一个数组如果有两个索引值,那么它是__________二维__________数组。 二.单项选择题 1.在对SQL Server 数据库操作时应选用()。 A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 2.下列选项中,()是引用类型。 A、enum类型 B、struct类型 C、string类型 D、int类型 3.C#的数据类型有() A、值和调用类型; B、值和引用类型; C、引用和关系类型; D、关系和调用类型 4.下列描述错误的是() A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口; 5.下列关于构造函数的描述正确的是() A、构造函数可以声明返回类型。 B、构造函数不可以用private修饰 C、构造函数必须与类名相同 D、构造函数不能带参数 6.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; 那么myArray3[2][2]的值是( )。 A、9 B、2 C、6 D、越界 7.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。 A、方法、属性、索引器和事件; B、方法、属性信息、属性; C、索引器和字段; D、事件和字段; 8.在https://www.360docs.net/doc/8a10335692.html,中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误 的是()。 A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C、Select操作的Sql语句只能由ExecuteReader()方法来执行; D、ExecuteReader()方法返回一个DataReder对象; 9.Winform中,关于ToolBar控件的属性和事件的描述不正确的是( )。 A、Buttons属性表示ToolBar控件的所有工具栏按钮 B、ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 C、DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭 头键 D、ButtonClick事件在用户单击工具栏任何地方时都会触发

汇编课程设计报告

汇编课程设计报告

学 号: 课程设计 题目打印水仙花数 学院计算机科学与技术 专业计算机科学与技术 班级 姓名 指导教师

武汉理工大学《汇编语言程序设计》课程设计 2012 年 6 月28 日 课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 打印水仙花数 初始条件: 理论:完成了《汇编语言程序设计》课程, 对微机系统结构和80系列指令系 统有了较深入的理解,已掌握了汇 编语言程序设计的基本方法和技 巧。 实践:完成了《汇编语言程序设计》的4 个实验,熟悉了汇编语言程序的设 计环境并掌握了汇编语言程序的 调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握较复杂程序的设计方 法,掌握子程序结构的设计和友好用户界 3

2.1简要分析 2.1.1原理说明 可以用标签来接收三位数,标签的好处在于可以限制输入的位数,并且通过实际输入位数可以直接进行一部分的异常处理。 将数存到标签后,因为是以ASCII码的形式存的,所以需要进行转换,将其变成十六进制数,转换后将数字存到申请的内存字中。在转换成十六进制数的过程中,可以对输入的数进行异常处理,判断是否输入有误。 在输出水仙花数时,设置一个计数器,从100开始循环判断,直到等于用户输入的数为止,依次判断是否为水仙花数,决定是否输出该数。 在输出时,分别取出水仙花数的个、十、百位数,转换成ASCII码再输出。 系统提示是否继续后,程序对用户输入的信息进行判断,若为y或Y则系统回到初始状态,若为n或N则退出系统,若为其他则提示输入错误并重新输入。 2.1.2程序流程图

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期

目录 目录错误!未定义书签。 1 概述错误!未定义书签。 设计目的错误!未定义书签。 设计内容错误!未定义书签。 2 系统需求分析错误!未定义书签。 系统目标错误!未定义书签。 主体功能错误!未定义书签。 开发环境错误!未定义书签。 3 系统概要设计错误!未定义书签。 系统的功能模块划分错误!未定义书签。系统流程图错误!未定义书签。 4系统详细设计错误!未定义书签。 5 测试错误!未定义书签。 测试方案错误!未定义书签。 测试结果错误!未定义书签。 6 小结错误!未定义书签。 参考文献错误!未定义书签。 附录错误!未定义书签。 附录源程序清单错误!未定义书签。

实现加减乘除四则运算的计算器 1 概述 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 开发环境 集成环境 3 系统概要设计 系统的功能模块划分 本题目实现的模块图如图3-1所示

(新)汇编语言课程设计四则运算

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制11-2班 姓名: 倪天天 学号:2011025745 指导教师:郝维来 2013年6月28日

摘要 计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。 关键词:计算器,汇编语言,四则运算,功能模块

Abstract Calculator is the easiest calculation tools, a simple calculator with addition, subtraction, multiplication, division four arithmetic functions. Want to use assembly language to achieve a simple calculator, you must pass on the data storage, register usage, addition, subtraction, and related instructions such as assembly language module calls the use of knowledge in order to achieve a basic functional, user-friendly, easy to operate easy calculator. Using assembly language to achieve a simple calculator also involves the design of input and output modules, the judgment of arithmetic operations and exit the program to judge design. Through the rational use of various commands, design various functional modules. When implementing various program modules, through a call to the ultimate realization of the program a simple calculator. Keyword:Calculator, assembly language, four arithmetic, functional modules

计算机程序设计(C语言)课程设计报告

计算机程序设计(C语言) 课程设计报告 题目:电子动画时钟 学院:机电工程学院 专业: 班级:090109班 学号: : 指导教师: 设计日期:

一、概述 选题背景:随着社会的进步和科技的发展,电子钟表逐渐成为了人们生活中不可缺少的一部分。设计思路:(一)功能模块设计,1.电子时钟执行主流程2.电子时钟界面显示3.电子时钟按键控制模块4.时钟动画处理模块(二)数据结构设计 1.time结构体 2.全局变量(三)函数功能描述1.keyhandle()2.timeupchange()3.timedownchange()4.digitclock()5.drawcursor()6. clearcursor()7.void clockhandle()8.main()(四)程序实现(五)运行结果。 二、概要设计 2.1、数据结构 此程序中,使用了C语言的time结构体和几个全局变量,1.time结构体struct time { unsigned char ti_min; /*分钟*/ unsigned char ti_hour; /*小时*/ unsigned char ti_hund; /*百分之一秒*/ unsigned char ti_sec; /*秒*/ }; time结构体定义在dos.h文件中,可用来保存系统的当前时间,其中各字段的值的含义如下。 1.unsigned char ti_min:保存分钟值。

2.unsigned char ti_hour:保存小时。 3.unsigned char ti_hund:保存百分之一秒,例如,ti_hund=500,表示1/500秒。 4.unsigned char ti_sec:保存秒数。 2.2、全局变量 下面对程序用到的全局变量及数组进行说明. 1. double h,m,s: 此3个全局变量分别用来保存小时,分钟,秒数。 2. double x,x1,x2,y,y1,y2:保存数字时钟中小时,分,秒在屏幕中显示的坐标值。 3.struct time t[1]:定义一个time结构类型的数组,此数组只有t[0]一个元素。 2.3 模块列表 1.时钟动画处理模块 时钟动画处理模块主要由clockhandle()函数来实现,程序中旧时钟指针的擦除是借助setwritemode(mode)函数设置画线的方式来实现。如果mode=1,则表示画线时用现在特性的线所画之处原有的线性异或(XOR)操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。因此,当线的特性不变时,进行两次画线操作相当于没有画线,即在当前位置处清除了原来的画线。 2.时钟按键控制模块 在电子时钟中,按键控制模块最主要的工作就是必须能读取用户按键,对按键值进行判断,并调用相应函数来执行相关操作。 3.

VB程序设计课程设计报告完整版

V B程序设计课程设计 报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

《VB程序设计》 课程设计报告(2016 — 2017 学年第 1 学期) 题目:排序演示 学院:经济与管理学院 班级:物流管理1502 学号: 姓名: 指导教师:阮冰 时间:起 2017年1月3日止 1月6日

一、课程设计基本信息 课程代码:05190124 课程名称:计算机基础课程设计 课程英文名称: Computer-based Course Design 课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群 课程面向专业:生物科学类、制药工程、制药工程(生物制药)、药物制 剂、物流管理 课程类型:必修课 先修课程:大学计算机基础通识选修课程、Visual Basic程序设计课程学分:1 总学时:16 二、课程设计目标 掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3.系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。 4.根据个人的设计调试过程,撰写设计报告。 三、课程设计内容 利用已掌握的VB程序设计语言基础,以及面向对象的程序设计方法、事件驱动的编程方式,进行应用程序和系统的开发设计。在强化巩固已有编程知识基础之上,训练新的设计与编程思路,通过综合应用所学知识设计、编制、调试实用的Visual Basic程序。 四、课程设计要求 1.要求每个同学都要认真对待,积极参与。 2.课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同 时填写并完成《课程设计报告册》。 3.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计 中完全未参与的将作不及格处理。 五、考核方式

汇编语言课程设计报告

农林大学金山学院 课程设计报告 课程名称:汇编语言课程设计 课程设计题目:动画设计“我爱大自然”姓名: 系:信息与机电工程系 专业:电子信息工程 年级:2008级 学号:082230066 指导教师:\ 职称:助教 2009~2010学年第二学期

目录 1 课程设计的目的 (2) 2 课程设计的要求 (2) 3课程设计报告容 (2) 3.1设计思路 (2) 3.2程序流程图 (2) 3.3设计源程序 (5) 3.4动画示意图 (19) 4 总结 (20) 5参考文献 (20) 6评分标准 (21)

动画设计“我爱大自然” 一、课程设计的目的 《汇编语言课程设计》是电子信息工程专业集中实践性环节之一,是学习完《汇编语言》课程后进行的一次全面的综合练习。其目的是: 培养学生熟练掌握汇编语言指令系统,深化和巩固指令系统和编程方法,提高学生的编程应用能力。为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。 二、课程设计的要求 1)具备初步的独立分析和解决问题的能力; 2)初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能; 3)提高综合运用所学的理论知识和方法的能力; 4)训练用系统的观点和软件开发一般规进行软件开发,培养科学的工作方法和作风; 5)设计的题目要求达到一定工作量,并具有一定的深度和难度; 6)编写出课程设计说明书。 三、课程设计报告容 (一)设计思路 “我爱大自然”这个程序中包含了比较多的景物,既有静态的也有动态的,其中还有一段音乐。为了节省存储空间,提高程序设计的效率和质量,使程序简洁、清晰,便于阅读,同时也为了便于修改和扩充,采用子程序设计技术和宏定义,根据程序要实现的若干主要功能及个功能块要调用的公共部分,将程序划分为若干个相对独立的模块,为每个模块编制独立的程序段,最后将这些子程序根据调用关系连成一个整体。 这样,整个程序就被分为几个子程序的有机统一。根据BIOS中断调用原理,设置80×25彩色文本显示方式,分别编写一个子程序显示“I LOVE NATURE,LET US GO AIRING”和一个子程序在屏幕上“画”树。这两个子程序所体现出来的事物都是的。为了实现小鸟

《C程序设计语言》模拟试卷二

一、单项选择题 1.以下并非C语言的特点的是____________。 A.C语言简洁紧凑 B.能够编写出功能复杂的程序 C.C语言可以直接对硬件进行操作 D.C语言移植性好 2.在C程序中,main()的位置___ ______。 A.必须作为第一个函数 B.必须作为最后一个函数 C.可以任意 D.必须放在它所调用的函数之后 3.一个C程序是由____ ________。 A.一个主程序和若干个子程序构成 B.一个或多个函数构成 C.若干过程组成 D.若干子程序组成 4.以下字符串为标识符的是___ _________。 A._MY B.2_2222 C.short D.LINE 5 5.下列符号可以作为变量名的是___ ________。 A.+a B.*p C._DAY D.next day 6.设c是字符变量,则以下表达式正确的是___ _______。 A.c=666 B.c='c' C.c="c" D.c="abcd" 7.以下说法正确的是_____ _______。 A.输入项可以为一个实型常量,如scanf("%f", 3.5) B.只有格式控制没有输入项也能进行正确输入,如scanf("%d") C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 D.当输入数据时,必须指定变量的地址,如scanf("%f", &f) 8.若a, b, c均定义为整型,要给它们输入数据,正确的输入语句是____ ________。 A.read(a, b, c); B.scanf("%d%d%d", a, b, c); C.scanf("%D%D%D", a, b, c); D.scanf(%d%d%d", &a, &b, &c); 9.若a是float变量,b是unsigned型变量,以下输入语句中合法的是____ ___。 A.scanf("%6.2f%d", &a, &b); B.scanf("%f%n", &a, &b); C.scanf("%f%3o", &a, &b); D.scanf("%f%f", &a, &b); 10.if后面的表达式之值__________。 A.只能是0或1 B.只能是正整数或负整数 C.只能是整数或字符型数据 D.可以是任何类型的数据 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与__ ___组成配对 关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其直接最近的未配对的if D.同一行上的if 12.选择出合法的if语句(设int x, a, b, c;)____ _____。 A.if(a = b0 x++; B.if (a =< b) x++; C.if(a <> b) x++; D.if (a=>b) x++; 13.语句while(!e); 中的条件!e等价于____ _______。 A. e == 0 B.e!=1 C.e!=0 D.~e 14.C语言中while和do-while循环的主要区别是____ _______。 A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格

相关文档
最新文档