C语言大作业内容及要求一、目的1、掌握C语言的基本编程原理以及基本语法;2、熟练运用VC++6.0、Dev-C++、Xcode、GCC等其中一个开发环境;3、初步完成一个控制台应用程序(ConsoleApplication)的编辑、编译、连接和运行,掌握程序设计的完整过程,锻炼实际动手操作能力;4、掌握断点调试的方法和变量值的跟踪,能够解决动态语义错误(运行结果与理论值不符)。二、可选题目第1大题:银行ATM机功能实现实现ATM机的基本操作与界面。基本功能:(1)主菜单:新建账户、存钱、取钱、查询、转账(2)新建账户功能:要求输入以下信息:账号、账户名、账户余额。(3)存钱功能:要求输入以下信息:账号、账户名、存钱金额、存钱日期。系统将记录以上信息,并计算余额输出。(4)取钱功能:要求输入以下信息:账号、账户名、取钱金额、取钱日期。系统将记录以上信息,并计算余额输出。(5)查询功能:要求输入以下信息:账号、账户名、查询的记录类型(存钱还是取钱还是包含两者)、查询的日期范围(从哪个日期到哪个日期)。系统将输出对应信息。以下是扩展功能,选做:(6)转账功能:要求输入以下信息:转出账号、转出账户名、转入账号、转入账号名,金额。系统将记录以上信息,并计算计算转出账号的余额输出,同时改变转入账号的余额但不输出。(7)在查询功能中,查询的记录类型一项增加转账记录。第2大题:学生成绩与奖学金评定系统问题描述:学生成绩与奖学金评定系统主要实现对学生的成绩进行查询和管理。要求用结构体完成。基本功能:(1)学生基本数据的管理(包括学号、姓名、班级)。可以实现对学生信息的添加、删除和修改功能。(2)成绩的管理(科目包括英语、数学和C++语言等)(3)要求可添加、删除、查询、修改学生的信息,以及浏览学生的全部信息。(4)总成绩统计(每个学生的总成绩、平均成绩)(5)奖学金评定(本系统可评定两个奖项:1.“学习标兵”评定方法为:单科成绩必须达75分以上(包括75分)、总分成绩居本班第一者;2.“三好学生”评定方法为满足以下所有条件者:单科成绩必须达75分以上(包括75分)、总成绩居本班前5%、评定为“学习标兵”的学生不能参与此项评比)。以下是扩展功能,选做:(6)统计每个学生在班级中的成绩排名,并输出结果。(7)对学生信息按学号排序、或按姓名排序、或按班级排序、或按总成绩排序。(8)把学生信息导出到文件中保存。(9)把学生信息从文件导入到系统中。(10)将奖学金的评定结果保存到一个文本文件中。第3大题:计算器基本功能:(1)使用选择结构,使用户可以利用菜单来选择对应的加减乘除或转换等操作。(2)使用函数实现算术运算功能,能够实现十进制数据(包括整数和小数)的+-*/,求余等运算;(3)使用函数进制之间的转换功能,能够实现二、八、十和十六进制之间的相关转换;(4)通过键盘对输入的数字和字符进行控制,不合理的输入要给出提示信息;如进行算术运算时,要求必须是数据;输入二进制数时,能够输入的数字只能是0和1;以下是扩展功能,选做:(1)可以进行二进制的加减运算(2)给出一个二进制数,可以计算它的原码、补码和反码。第4大题:七夕活动今年的七夕异常的热闹,很多对新人都把结婚日子选在了那天。于是,他们决定一起举办“天上地下姻缘一线牵”活动,在广场上举行集体婚礼。为了活跃气氛,司仪想出了一个很有意思的游戏:会场有n(1≤n≤500)对新人,司仪在地上画出一排(共2n个)格子,每个格子里都写着一个随机的整数Ai(1≤Ai≤500)。游戏开始后,让新人们任意地站成一排(可能会有两个人站在了同一个格子里)。等他们都站好以后,司仪开始计算他们每个人自己的得分,记分规则是:男方的分数等于从自己所站的位置开始一直累加到开头,女方的分数等于从自己所站位置开始一直累加到末尾。如果某一对新人的得分数是相同的,那你们就获胜。可以得到一份司仪精心准备的礼物。^_^比如,有3对新人,地上的那一排数字为:3,6,2,4,5,2。如果男方站在第三个位置(2),他的得分为:3+6+2=11;女方站在第4个位置(4),她的得分为4+5+2=11。两人得分相同,可以获胜。或者男方站第6个位置(2),女方站第1个位置(3),他们的得分都等于22,也可以获胜。这么高兴的日子不能太扫兴,所以我们发现,无论地上的数字填成什么样子,女方站在开头和男方站在末尾就一定可以获奖。我们不得不感叹司仪的用心良苦。呵呵。碰巧,redraiment的姐姐和姐夫也在那天结婚,为了帮姐姐夺得奖品,redraiment来请你帮忙,计算一下他姐姐获得奖品有多少种站法。---------------------------------------------------------------------------------------------------------------------------------输入格式:每组测试数据包括两行。第一行为一个数据n,即新人的对数。第二行有2n个数据,代表地上的数字。输出格式:输出共有几种站法。样例输入3362452样例输出2第5大题:寄居蟹与海葵寄居蟹与海葵是一对合作互助的共栖伙伴。海葵是寄居蟹最称职的门卫。它用有毒的触角去蜇那些敢来靠近它们的所有动物,保护寄居蟹。而寄居蟹则背着行动困难的海葵,四出觅食,有福同享。但并不是所有寄居蟹和海葵都可以做搭档的。那就要看海葵的身体是不是符合寄居蟹的螺壳。海葵的身体是有褶皱的,而寄居蟹的螺壳同样凹凸不平,我们可以用一个大写字母组成的字符串来表示它们的高低程度,其中A代表0,B代表1,依次类推。我们称两者相加等于25的就算是吻合,比如A和Z相吻合,B与Y吻合,依次类推。只要海葵身体的部分序列与寄居蟹外壳的序列相吻合,就称他们可以一起生活。比如:1)海葵的褶皱是ABCDEFG,寄居蟹是ZYXWVUT。这样,它们就可以完全吻合了。2)海葵的褶皱是AHBICJDKELFMGN,寄居蟹是ZYXWVUT。这样,寄居蟹可以和海葵的部分序列ABCDEFG相吻合(注意:部分序列不改变字符原来的先后顺序,比如ACB就不是它的部分序列)。3)海葵的褶皱是ABCD,寄居蟹是ZYXWVUT。这样,虽然海葵可以和寄居蟹前面一段完全吻合,但它比寄居蟹要小,不能完全保护寄居蟹的安全,所有它们是不适合的。4)海葵的褶皱是HIJKLMNOPQ,寄居蟹是ZYXWVUT。这样,它们就可以完全不吻合了。现给你两段字符串S1、S2,分别代表海葵和寄居蟹的外壳,为了它们以后各都能快乐地生活,请你帮忙计算一下它们是不是吻合的。---------------------------------------------------------------------------------------------------------------------------------输入格式:输入包括多组测试数据。每组测试数据包括两个字符串H、J,分别代表海葵的外壳和寄居蟹的外壳。可以保证它们的长度都小于100000。输入以00结束。输出格式:如果寄居蟹和海葵的外壳能吻合,就输出Yes,否则输出No。样例输入:ABCDEFGZYXWVUTAHBICJDKELFMGNZYXWVUTABCDZYXWVUTHIJKLMNOPQZYXWVUT00样例输出:YesYesNoNo第6大题:行李寄存crq最近喜得千金,但随之而来的就是财力入不敷出,为了养家糊口,做起了行李寄存的小买卖。小店面做生意难啊,于是寄存店规定:每件行李寄存第一天2元,不足1天按1天算,超过24小时按2天算,第二天存放费为1.5元,最多不得超过2天。行李尺寸超过60公分每件增收20%。为了占点小便宜,零头全部进位到“角”,也就是实际金额2.11元也要收顾客2.2元哦,这些小零头多了也是不小的金额啊^_^。为了照顾一些特殊人群,小店对所有残疾人员打5折,学生打7折,现役军人打8折,当然得出示证件,如果你有多样证件,再给你折上折,够照顾了吧^_^,欢迎各位的光临啊!不过要注意了,部队规定现役军人不得是学生或者残疾的,你要是这样,crq就不客气的拒绝了,直接输出Error,说不定你小子是骗子呢!crq人老了,算不动了,现在就让你来写个程序,自动的计算一个顾客寄存一件行李所需的费用。每件行李寄存费不足1元按1元计。--------------------------------------------------------------------------------------------------------------------------------输入输入数据有多组,每组占一行,每行有5个整数:m、w、x、c和j,他们分别代表寄存时间(单位;小时)、行李尺寸(公分)、学生证(0表示无,1表示有)、残疾证(0表示无,1表示有)、军人证(0表示无,1表示有)。输入直到文件结束为止。输出输出顾客一件行李所需的费用(单位:元),精确到“角”。如果数据有问题,输出Error样例输入12610001463100样例输出2.41.7第7大题:Email地址给定一个Email地址,判断其是否合法。Email地址的格式要求如下:(1)Email地址包含2个部分,分别是用户名和域名,中间用符号“@”分隔,且要求用户名和域名均至少有1个字符。(2)用户名和域名只能由大小写字母、0至9的数字、下划线“_”或点号“.”组成。(3)用户名和域名中的点号“.”都要求前后必须有其他合法的字符,如carter.chen@163.com是合法的,但carter.chen.@163.com和carter..chen@163.com是不合法的。--------------------------------------------------------------------------------------------------------------------------------输入输入数据包含多组,第一行为数据的组数T,接下来有T组数据,每组占一行,每行是一个字符串,长度不超过100个字符。输出如果是合法的Email地址,则输出Yes,否则输出No。样例输入3carter.chen@163.comcarter.chen.@163.comcarter..chen@163.com样例输出YesNoNo第8大题:看病排队看病要排队这个是地球人都知道的常识。不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,则选择最早来排队的病人。现在就请你帮助医院模拟这个看病过程。--------------------------------------------------------------------------------------------------------------------------------输入输入数据包含多组测试,请处理到文件结束。每组数据第一行有一个正整数N(0N2000)表示发生事件的数目。接下来有N行分别表示发生的事件。一共有两种事件:1:INAB,表示有一个拥有优先级B的病人要求医生A诊治。(0A=3,0B=10)2:OUTA,表示医生A进行了一次诊治,诊治完毕后,病人出院。(0A=3)输出对于每个OUTA事件,请在一行里面输出被诊治人的编号ID。如果该事件时无病人需要诊治,则输出EMPTY。诊治人的编号ID的定义为:在一组测试中,INAB事件发生第K次时,进来的病人ID即为K。从1开始编号。样例输入7IN11IN12OUT1OUT2IN23OUT2OUT12IN11OUT1样