计算机程序设计基础谌卫军大作业_第1页
计算机程序设计基础谌卫军大作业_第2页
计算机程序设计基础谌卫军大作业_第3页
计算机程序设计基础谌卫军大作业_第4页
计算机程序设计基础谌卫军大作业_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大作业大作业说明:以下题目可任选一题,也可自己出题。语言必须采用c,代码量不作硬性要求,在200500行即可,也允许更少一些。请注意程序的友好性,实现的功能要符合思维习惯。作业提交说明:大作业在网络学堂提交,不是在tsinsen系统上提交!大作业必须包括以下部分:1. 说明文档:说明选择的题目,程序的设计,实现的功能,主要代码的相应说明和总结。(注意:代码需要有注释)2. 用户手册:说明用户应该怎样使用你的程序中的所有功能,并给出各步骤运行结果截图。3. 可执行的.exe文件(即工程中debug或release文件夹下的exe文件)。4. 整个工程(包含所有源程序,请删除debug文件夹)整个

2、作业压缩包命名使用“学号_姓名” 如:2003013258_张兰选题如下:(题目中的需求描述只是一个参考,大家可以自己决定程序的功能。)(一) 个税计算器(难度系数:)根据2011年9月1日实施的新个税法设计一个个人所得税计算器。【功能要求及评分】1 实现个税计算功能。 85%2 程序友好性:5%3 代码风格以及文档:10%(二) gre单词记忆软件(难度系数:)设计一款软件,帮助自己记单词。【功能要求及评分】1. 能读取单词库;10%2. 单词库中的条目包含单词、音标、释义、备注等信息(备注信息根据自己的需要来设定,可以是该单词的熟练程度,或者重要级别等。) 5%3. 能增加、修改和删除单词

3、库中的条目; 30%4. 能够按多种方式练习,如随机出题、按单词重要级别出题、按单词熟练程度出题等。 40%5. 程序友好性:5%6. 代码风格以及文档:10%(三) 通讯录管理(难度系数:)设计一个通讯录管理系统。【功能要求及评分】1. 通讯录包含姓名、电话、家庭地址、email、qq、备注等信息;5%2. 能建立、修改和增删个人通讯录; 30%3. 能够按多种方式进行查询、排序。 50%4. 程序友好性:5%5. 代码风格以及文档:10%(四) 车票管理系统(难度系数:)系统基本信息:班次、发车时间、起点站、终点站、行车时间、车型、座位数、剩余票数【功能要求及评分】1 录入班次信息(信息用

4、文件保存) 10%2 浏览班次信息,可显示出所有班次。 10%3 修改班次信息。10%4 查询路线:可按日期和班次号查询 ,按日期和站站查询,按日期和车型查询等. 35%5 售票和退票功能。 20%6 程序友好性:5%7 代码风格以及文档:10%(五) 课堂点名器(难度系数:)【系统说明】程序运行时,显示备选的课堂信息,待用户输入选项后,从文件中读入相应课堂的学生信息。需要实现随机点名功能:即从键盘接收字符'b'开始翻号,从键盘接收字符's'停止翻号,显示被点名同学的学号和姓名,并能记录该同学的课堂记录信息,如是否到课、回答问题得分等。还需要实现指定点名功能:即

5、从键盘接收字符'f',指定被点名的同学,并能记录该同学的课堂记录信息。从键盘接收字符'o',表示下课,保存点名信息到文件中,程序运行结束。【功能要求及评分】1 录入课堂信息、学生信息(信息分别用文件保存) 20%2 浏览课堂信息,可显示出所有课堂。 10%3 修改、删除课堂信息。10%4 查询、修改、删除课堂学生信息。 25%5 实现随机点名功能并记录。 20%6 程序友好性:5%7 代码风格以及文档:10%备注:此题若能做成界面形式,将加分。(六) 游戏:彩色泡泡 (难度系数:)规则:1 游戏规模为n*n(n分为两种规模,10、20)2 一共包括红黄蓝绿四种颜

6、色的泡泡,如下图:3 游戏开始初始化随机生成n*n个四种颜色的彩色泡泡,充满n*n的格子4 用户可以输入坐标,格式为x y(x、y取值从1到n),如“3 4”,表示用户点击第三行第四列。如图所示:5 程序需要判断用户点击泡泡的颜色(该示例中“3 4”为红色),如果该泡泡从水平和垂直方向(不考虑斜线方向)上有与其颜色相同且连通的泡泡,则消去所有这些泡泡(如下图中由白色线框框住的泡泡):消去的规则为:下方泡泡被消去,则上方泡泡将竖直下落,若一列完全被消去,则其左方的所有泡泡整体向右平移一列。用户每次消去泡泡后,程序需要提示用户该次操作得分。6 如果用户点击的为一个被其他颜色包围的单一的泡泡(如“1

7、 2”),则无法消去。7 当游戏中已经没有可以消去的泡泡时,游戏结束(需判断游戏结束),告知用户最终得分和排名。提示用户输入用户名,并在文件中记录该用户用户名和得分。用户可以查看用户得分排名榜。8 用户得分计算方式:一次操作消掉x(2=<x<=n*n)个相连的同色泡泡,其得分为x2。用户最终得分为所有操作得分之和。【程序界面说明】该程序可以完全用控制台实现,无需任何图形库。需要注意以下几点:1 程序中用到的圆形图案为"",该符号为宽字符,需要占4bytes。打印时实际上一个图案是一个字符串。2 图形颜色的设置:需要在文件中#include "windo

8、ws.h"在程序中设置颜色:handle handle = getstdhandle(std_output_handle);word att;/每次绘制符号之前,设置该符号颜色att = foreground_red|foreground_intensity;/这里示例为红色setconsoletextattribute(handle, att);红色:att = foreground_red|foreground_intensity;黄色:att = foreground_red|foreground_green|foreground_intensity;绿色:att = fore

9、ground_green|foreground_intensity;蓝色:att = foreground_blue|foreground_intensity;【给分说明】1 正确实现程序的功能部分:同色相连泡泡的判断,泡泡的消去,游戏结束判断,用户分数计算。70%2 得分榜:文件操作和用户得分排名。5%3 代码效率10%每次点击的处理时间。(判断算法的好坏)4 程序友好性:5%a) 用户错误提示b) 用户设置:允许用户设置游戏规模,提示用户得分,输入用户名称等。5 代码风格以及文档:10%请务必在文档中说清楚你采用的算法和代码结构。代码请注意必须添加必要的注释。(七) group sched

10、ule (难度系数:)背景: 每个同学都有很多事情需要安排,上课,社团活动,班级活动,个人事务这些事情常常发生冲突,但是不同的事情有不同的优先级,如何更科学的安排个人的时间是一个很重要的问题。同时在安排班级活动的时候很难协调大家的时间,如何挑选一个与大家冲突最少的时间段来安排班级活动也是一个需要考虑的问题。【程序要求及评分】1. 每一项时间安排都应该包含日期,星期,起始时间,终止时间,优先级(重要程度),事件描述等信息。 5%2. 个人可以输入指定日期,指定时间段(程序中时间的精度必须小于半小时)的安排,并且程序会自动判断当前安排是否与已经存在的安排冲突,如果存在冲突会提醒用户两件冲突事件的优

11、先级。10%3. 可以查询,删除,修改个人安排。 30%4. 指定条件(上午/下午/晚上,星期,时间长短),程序可以为你查询能满足该条件的空余时间段。 20%5. 所有这些信息都必须保存在文件中。 5%6. 程序可以读入多个用户的时间安排文件,查找指定条件(上午/下午/晚上,星期,时间长短)的大家的共同空闲的时间段,如果不存在则找出冲突人数最少的时间段。 15%7. 程序友好性:5%a) 用户输入提示b) 时间冲突提示等。8. 代码风格以及文档:10%(八) 表达式计算器 (难度系数:)表达式计算器,允许用户输入计算表达式,计算出相应结果。【表达式定义】表达式采用符号请严格按照以下规定处理。1

12、 数值:包括int,long,float,double和biginteger(需自己实现大数的基本运算)。2 括号,只支持()。3 运算符号包括加+、减-、乘*、除/、平方、阶乘!4 支持的数学函数:(函数不考虑大数计算)cos(), sin(), tg(), ctg(), abs(), sign(), sqrt(), ln(), sinh(), cosh(), tanh(), coth()(注意:当使用三角函数时,需要提示用户当前的输入的角度是弧度还是角度,默认为弧度,允许用户进行设置,将弧度变为角度)5 特殊的常数pi为3.1415926,e为2.718286 表达式可以是常数,加+、减-

13、、乘*、除/、平方、括号(),以及数学函数的组合【计算器功能】1、 用户输入表达式,回车,计算器计算出相应结果,允许用户设置结果精度。2、 程序可提示用户保存表达式的计算结果,通过选择菜单的相应选项,也可以将保存结果显示给用户。(需进行文件读写)【计算结果输出】如果计算结果为整数,则直接输出整数。若计算结果为小数则根据用户设置精度进行输出。(默认保留小数点后三位)示例:用户输入1+sin(30)程序输出结果0.012又如,用户输入23+56/(102-100)*(36-24)/(8-6)程序输出结果:191【给分说明】1 表达式解析正确,计算结果正确 60%2 用户错误输入判断:10%能判断用

14、户输入的非法表达式,包括括号不配对,除数为0等错误。3 对大数运算的支持:10%4 文件读写的正确性:5%5 程序友好性:5%a) 用户错误提示b) 用户设置:允许设置角度表示方法,允许设置计算结果精度c) 用户计算结果存储和查询是否方便使用6 代码风格以及文档:10%(九) 文件加密和数据压缩(难度系数:)该程序可以对需要处理的文件进行加密,解密,压缩,解压缩。要求用户可以选择对指定文件进行加密和压缩操作,自己设定密钥,并通过该程序实现解密和解压缩得到原本的文件。【加密】基本的文件加密算法方法:替代:根据替代规则,用替换表中的相应字符串替换原来的字符或者字符串,但是不打乱原来的信息顺序换位:

15、按照一定的规则打乱原来信息的顺序。常用的对称加密算法:des,3des,aes在这该作业中,你可以根据基本的加密思路自己设计规则,也可以实现一种经典的对称加密算法,要求允许用户设定密钥,可以正确解密自己加密的文件。【压缩】通常压缩的基本思想是用尽可能少的位来存储多个字。关于压缩算法的理解,可以参考一个例子:一种常见的无损压缩算法是huffman 压缩:用二进制描述来替代每个符号,二进制描述的长度由相应符号出现的频率决定。常见的符号可以用很少的位来表示,不常见的符号则需要用较多的位来表示。此外常见的无损压缩算法还包括rice,lz77,rle等。在该作业中,所有测试文本只包括26个英文字母加上最

16、常见的英文标点符号,不包括任何中文字符。要求自己设计一种压缩算法,或者实现经典的压缩算法,必须为无损压缩,即解压缩后文件能完全恢复到压缩前(包括空格,换行)。【程序功能】1 提示用户输入需要处理的文件路径。如:d:input.txt2 程序提示用户选择需要进行的操作。3 进行相应的文件处理,并正确保存在用户指定的输出路径。【给分说明】1 正确实现文件加密:20%2 正确实现文件压缩:35%3 代码质量20%a) 处理时间:10%b) 压缩比:压缩后文件大小/源文件大小 10%因此希望同学能实现处理时间短,效果好的代码。4 容错性:5%进行解密和解压缩操作时能判断用户输入的文件是否是合法的文件格

17、式(即是否为本程序加密或压缩)。5 程序友好性:5%a) 用户错误提示b) 用户设置:允许用户选择所需操作6 代码风格以及文档:15%请务必在文档中说清楚你采用的算法和代码结构。代码请注意必须添加必要的注释。选题说明题目有难易差别,为了公平起见,各题给出了难度系数,作为成绩计算的权重值,五颗星为正常难度。难度系数权重值七颗星1.3六颗星1.2五颗星1.0四颗星0.9三颗星0.7除了以上备选题外,大家也可以自己出题,自己确定程序的功能,充分发挥自己的创造力,尤其鼓励结合各自专业的内容,用编程来解决实际的问题。自出题的评分原则:1. 选题新颖或者实用;2. 程序结构合理,实现的功能要符合思维习惯;

18、3. 程序友好性;4. 代码风格以及文档;5. 涉及到数组、指针、结构体、函数调用、文件读写等操作。#include<stdio.h>int main()int income,base,fbase,rest,frest;double tax,ftax,save;int n;char result,fresult;base=3500;fbase=2000;for(n=1;n<=22;n+)printf("*");printf("n");printf("*欢迎使用新个税计算器*n");for(n=1;n<=22;n

19、+)printf("*");printf("n");printf("n"); for(n=1;n<=22;n+)printf("*");printf("n");printf("*新个税起征点为3500元*n");for(n=1;n<=22;n+)printf("*");printf("n");printf("n");for(n=1;n<=41;n+)printf("*");pri

20、ntf("n");printf("*请问单位是否为您承担个人所得税? *n");printf("*(“是”请输入“y”/“否”请输入“n”) *n");for(n=1;n<=41;n+)printf("*");printf("n");scanf("%c",&result);for(n=1;n<=18;n+)printf("*");printf("n");printf("*请输入您的月收入*n");

21、for(n=1;n<=18;n+)printf("*");printf("n");printf("n");scanf("%d",&income);if(result='y')if(income<=3500)printf("您的收入低于征税点,国家不对您征收税额。n");printf("n");for(n=1;n<=15;n+)printf("*");printf("*谢谢您的使用!*n");fo

22、r(n=1;n<=15;n+)printf("*");elserest=income-base;if(rest<=1500)tax=rest*0.03;else if(rest<=4500)tax=1500*0.03+(rest-1500)*0.1;else if(rest<=9000)tax=1500*0.03+3000*0.1+(rest-4500)*0.2;else if(rest<=35000)tax=1500*0.03+3000*0.1+4500*0.2+(rest-9000)*0.25;else if(rest<=55000)

23、tax=1500*0.03+3000*0.1+4500*0.2+26000*0.25+(rest-35000)*0.3;else if(rest<=80000)tax=1500*0.03+3000*0.1+4500*0.2+26000*0.25+20000*0.3+(rest-55000)*0.35;elsetax=1500*0.03+3000*0.1+4500*0.2+26000*0.25+20000*0.3+25000*0.35+(rest-80000)*0.45;printf("您应缴纳的税额为 %f 元n",tax);elserest=income-base;

24、if(rest<=1455)tax=rest*0.03;else if(rest<=4155)tax=1455*0.03+(rest-1455)*0.1;else if(rest<=7755)tax=1455*0.03+2700*0.1+(rest-4155)*0.2;else if(rest<=27255)tax=1455*0.03+2700*0.1+3600*0.2+(rest-7755)*0.25;else if(rest<=41255)tax=1455*0.03+2700*0.1+3600*0.2+19500*0.25+(rest-27255)*0.30;

25、else if(rest<=57505)tax=1455*0.03+2700*0.1+3600*0.2+19500*0.25+14000*0.30+(rest-41255)*0.35;elsetax=1455*0.03+2700*0.1+3600*0.2+19500*0.25+14000*0.30+16250*0.35+(rest-57505)*0.45;printf("您的单位为您缴纳的税额为 %.2f 元n",tax);for(n=1;n<=42;n+)printf("*");printf("n");printf(&q

26、uot;*您想知道该有新税法后您少交了多少税额吗?(y/n)*n");scanf("%c",&fresult);if(fresult='y')if(income<=2000)printf("您的收入低于原征税点,国家不对您征收税额。n");printf("n");for(n=1;n<=15;n+)printf("*");printf("n");printf("*谢谢您的使用!*n");for(n=1;n<=15;n+)printf("*");printf("n");elsefrest=income-fbase;if(frest<=500)ftax=frest*0.05;else if(frest<=2000)ftax=500*0.05+(frest-500)*0.1;else if(frest<=5000)ftax=500*0.05+1500*0.1+(frest-2000)*0.15;else if(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论