《程序设计课程设计》指导书2017(1)
《程序设计课程设计》指导书()
程序设计课程设计指导书软件学院计算机工程系2015年6月15日前言《程序设计课程设计》是计算机科学与技术专业的重要实践性课程。
目的在于培养学生分析问题和解决问题的能力,为学生提供了一个既动手又动脑,独立实践的机会。
将课本上的数据结构、离散数学和C语言的理论知识和实际应用问题进行有机结合,提高学生程序设计、程序调试及项目开发能力。
为后续课程:操作系统、软件工程,编译原理等课程的学习奠定必要的实践基础。
本课程设计是利用数据结构、离散数学、C语言理论和实验课中学到的编程知识和编程技巧,通过布置具有一定难度、一定编程量的课程设计题目,利用C语言作为开发工具,使学生通过课程设计掌握高级编程语言的知识和编程技术,掌握程序设计的思想和方法,初步具备利用计算机求解实际问题的能力。
通过《程序设计课程设计》课程的学习,能够帮助学生加深理解数据结构、离散数学、C语言基本概念,达到培养学生良好程序设计的习惯和运用 C 语言编写程序解决实际问题的能力。
使学生学会把书本知识用于解决实际问题,起到深化理解和灵活掌握教学内容的目的。
同时使学生在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
通过该课程设计,学生应该掌握C或C++语言程序设计的方法、数据结构和离散数学理论知识,熟悉C或C++程序的开发环境及C或C++程序的调试过程,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力;学生应该具有如下基本技能:①培养学生查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。
②通过对所选题目方案分析比较,确立方案,编制程序与调试程序。
③能熟练调试程序,在教师的指导下,完成课题任务。
④根据个人的设计调试过程,按课程设计报告的要求撰写设计报告。
选用教材及主要参考书:1 教材呼克佑. C语言程序设计电子工业出版社,2013严蔚敏. 数据结构(C语言版) 清华大学出版社,20122、主要参考书[1] 谭浩强. 程序设计题解与上机指导(三版) . 清华大学出版社,2005[2] 邱仲潘. C语言参考手册. 机械工业出版社,2004[3] 谭浩强. C语言程序设计(三版). 清华大学出版社,2005[4] 丁亚涛. C语言程序设计.高等教育出版社,2003目录前言 (1)一.课程设计报告要求 (1)二.课程设计报告示例——迷宫问题(参考) (2)三.设计题目(6选4) (9)1.谁拿了最多奖学金 (9)2.统计数字 (10)3.文本文件单词的计数 (11)4.构造可以使n个城市连接的最小生成树 (13)5.交通咨询系统(最短路径问题) (14)6.学生管理系统 (18)一.课程设计报告要求课程设计报告封面应给出专业、班级、姓名、学号、指导教师和完成日期,报告开头给出题目,内容包括以下五项:1.【问题描述】简要描述问题,然后说明程序设计的任务,程序要做什么。
《JAVA程序设计》课程设计指导书.doc
《JAVA程序设计》课程设计指导书一、目的和意义《JAVA语言课程设计》是学完《程序设计语言一JAVA》课程Z后,让学生综合运用所学到的JAVA编稈基础以及应用,进行较大规模的、具有一定综合性、复杂性的软件开发,对理解JAVA稈序设计语言以及应用的精龍,具有重要实践意义。
能够通过实践来巩固、加深对JAVA的理解和运用,同时通过理论联系实际,能够培养学生的动手设计和实践能力,能够提高学生的学习兴趣,并且能够培养和增强学生通过自己独立解决实际问题所带来的“成就感”。
此外,通过木课程设计学生能够掌握软件开发的过程,在软件开发的备个过程有切身体会。
二、选题要求选题要符合木课程的教学要求,通常应包含面向对象程序设计思想(类设计、继承、多态性的应用)、异常处理、图形用户界面设计,并注重数据结构类的自觉使用,此外,多线程技术、网络编稈技术(Socket编程、基于WEB的JSP开发、Applet开发)可以兼顾。
注意选题内容的先进性、综合性、实践性,应适合实践教学和启发创新,选题内容不应太简单, 难度要适屮;最好结合软件开发实际情况进行选题,反映JAVA的语言特性和应用特点,并且有一定的实用价值;软件成果具有相对完整功能,并易于使用,易于理解,具有良好的可维护性。
三、任务及要求1.任务%1能够掌握JAVA的基木编程技术,如循环、递推、递归;%1理解面向对彖的思想,熟悉类、对象、继承及多态性概念;%1熟悉异常处理的特点和用法;%1掌握图形界面的设计;%1熟悉数据结构类的应用;%1对于多线程技术、网络编程技术(Socket编稈、基于Web的JSP开发、Applet开发)知识根据课程设计课题的需要进行选择。
2.要求%1选定设计课题,下达设计任务;选题可由指导教师选定,或由指导教师提供几个选题供学生选择;也可由学生自己选题, 但学生选题需通过指导教师批准。
课题应在设计周之前提前公布,并尽量早些,以便学生有充分的设计准备时间。
《程序设计》课程介绍及要求
学习建议与提高途径
学习建议
建议学生注重理论与实践相结合,多进行编程实践, 加深对知识点的理解和掌握。同时,积极参加课程讨 论和小组活动,提高团队协技创新活动,拓展编 程视野,提高编程技能和创新能力。同时,积极利用 网络资源和学习平台,自主学习相关知识和技术。
了解不同计算机体系结构的特点和优 劣
软件系统
包括操作系统、编程语言、应用程序 等
编程语言概述
1 2
编程语言分类
了解机器语言、汇编语言、高级语言等
编程语言特点
了解不同编程语言的特点、适用场景和优缺点
3
编程语言发展趋势
了解当前和未来编程语言的发展趋势和新技术
程序设计思想与方法
面向过程程序设计
01
了解结构化程序设计的基本思想和方法
面向对象程序设计
02
了解面向对象程序设计的基本思想和方法,如类、对象、封装、
继承、多态等
程序设计风格
03
了解不同程序设计风格的特点和优劣,如简洁明了、易于维护
等
算法与数据结构基础
算法基本概念
了解算法的定义、特性和评价 标准
常用算法介绍
了解并熟悉排序、查找、图论 等常用算法
数据结构基本概念
了解数据结构的定义、分类和 基本操作
THANKS FOR WATCHING
感谢您的观看
课程时间
每学时通常为45分钟,具体根据学校 的课程时间安排而定。建议学生合理 安排课余时间进行预习和复习,以保 证学习效果。
02 教材与参考资料
教材简介
《程序设计基础》
本课程主要教材,系统介绍了程序设 计的基本概念、语言基础、算法与数 据结构、程序设计方法等内容,适合 初学者入门和提高。
《C语言程序设计课设》课程设计指导书
《C语言程序设计课设》课程设计指导书一、课程设计的目的(1)加深对讲授内容的理解,尤其是一些语法规则。
(2)熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用。
(3)能够综合运用所学知识,编程解决实际问题。
(4)培养团队分工合作的意识,最终使学生提高编程技能和解决实际问题的能力。
二、课程设计基本要求2.1.组织管理1.由院、系指派经验丰富的专业教师担任指导教师。
2.课程设计实行课程负责人与指导教师共同负责制。
3.课程负责人主要进行课设的命题、指导教师的考核、技术把关和全面管理。
4.指导教师全面负责所承担班级的课程设计指导、管理和考核评定工作。
2.2设计要求1.自选题目、小组管理、团队合作、小组评测。
2.模块化程序设计。
3.锯齿型书写格式。
4.必须上机调试通过。
三、选题要求:每个题目限定1-2人,每人必须负责一部分功能,并独立完成,推举出一个组长,负责任务分工,汇总到班长处,然后交给指导教师。
四、设计报告格式及要求:1、题目2、设计目的3、总体设计(程序设计组成框图、流程图)4、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)5、运行结果及分析6、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施7、课程设计心得及体会8、源程序清单和执行结果:清单中应有足够的注释五、课程设计成绩评定5.1基本要求:(1)每个人必须有程序运行结果;(2)每个人必须交《C语言课程设计》报告5.2、成绩评定和打分标准由指导教师对学生在课程设计期间的表现,所完成的设计报告的质量、设计结果的验收和答辩情况进行综合考核。
具体评定标准如下:(1)上机考勤:注重平时上机考勤与遵守纪律情况20%(2)结果验收:学生能运行、讲述或调试自己的程序,回答教师提问,每个人必须有程序运行结果40%(3)小组自评成绩结果10%(4)设计报告:每个人必须交《C语言课程设计》报告和《C语言课程设计》日志30%以上四项缺一不可,否则不能到得相应学分依据上述考核内容,最后采用优(>90分)、良(80~89分)、中(70~79分)及格(60~69分)、不及格(<60分)五级记分制评定学生课程设计成绩。
《C#程序设计》PPT实训指导书
《C#程序设计》实训指导书学号:姓名:班级:小组成员:指导教师:学年第学期目录使用说明 (3)实训指导一 (4)实训指导二 (6)实训指导三 (9)实训指导四 (12)使用说明1、本实训指导书主要供学生进行C#程序设计学习之用。
2、每项实训均需要多次训练完成,每次训练一般均需要填写相应的训练情况记录。
3、对于每个实训,教师对每个学生都要随堂检查记录成绩至少一次,每堂课抽检若干个学生,成绩可以考虑速度,并结合相应训练结果记录评定训练项目成绩(0-5分)。
4、封面中的小组成员名单上用星号(*)注明谁是小组长。
5、记录本一般要上交五次,课程结束必须上交,否则影响总评成绩。
实训指导一[实训目的要求]1.掌握Visual Studio C#.Net 2010 的集成开发环境;2.掌握开发控制台应用程序的方法;3.掌握开发windows应用程序的方法;4.掌握窗体、标签、按钮、文本框的使用。
[相关知识与准备]1.开发控制台应用程序的步骤创建控制台应用程序包括Visual Studio 2010启动、创建项目、编写代码和编译并运行等步骤。
2.开发windows应用程序的步骤创建Windows应用程序的步骤包括启动Microsoft Visual Studio 2010、创建项目、设计控件、编写代码和调试程序等步骤。
3.控件的常用属性(1)Name属性,用于设置控件的名称,控件名是作为对象的标识而引用,不会显示在窗体上。
(2)Text属性,用于设置控件上显示的内容。
(3)Enabled属性,用于设置控件是否可操作。
当设置为False时,呈暗淡色,禁止用户进行操作。
(4)Visible属性,用于设置控件是否可见。
当设置为False时,用户看不到,但控件本身存在。
(5)Font属性,用于设置字体。
[实训内容]题目一:熟悉Visual Studio C#.Net 2010 的集成开发环境。
题目二:设计一个应用程序,通过单击按钮在窗体上显示“这是我的第一个C#应用程序”。
2017年10月Java语言程序设计(一)真题答案+解析+知识点
2017年10月高等教育自学考试全国统一命题考试Java语言程序设计(一)试卷课程代码04747一、单项选择题:本大题共10小题,每小题l分,共10分。
1.编译Java应用程序源程序会产生字节码文件,字节码文件的扩展名为()A..javaB..classC..htmlD..exe【答案】B【解析】java文件通过jvm虚拟机编译后会生成二进制码,显示的文件格式就是“.class”.【知识点】java应用程序和小应用程序2.表达式-1>>1的值是()A.232-1B.-1C.216-1D.2147483647【答案】B【解析】>>是算术右移位运算符,按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1. -1java表示就是32个1,右移1位后还是-1.【知识点】移位运算3.为类C定义一个int类型的变量x,使得只有同类和同包的其它类能使用代码C.x就可引用它,则定义x的形式为()A.static int x;B.public int x;C.protected static int x;D.public static int x;【答案】A【解析】用关键字static修饰的是类变量,静态变量被所有的对象所共享,都可以引用它。
【知识点】类变量4.设有字符串变量String s1="abc", s2=new String("abc"),则以下表达式的值为true 的是()A.pareToIgnoreCase(s2)B.pareTo(s2)C.s1==s2D.s1.equals(s2)【答案】D【解析】因为“==”指的是两个对象的引用相同,而“equals()”指的是两个对象的值相等。
【知识点】字符串变量5.在以下Swing的类中,属于容器的是()A.JDialogB.JButtonC.JTextAreaD.JList【答案】A【解析】swing顶层容器有JFrame,JDialog,JApplet【知识点】swing组件6.在以下叙述中,属于CardLayout布局特点之一的是()A.多个组件从上到下排列B.容器只能放置一个组件C.容器被分成网格状D.多个组件拥有同一个显示空间【答案】D【解析】CardLayout布局可以容纳多个组件,但多个组件拥有同一个显示空间,某一时刻只能显示一个组件。
课程设计(程序设计)指导书
《课程设计(程序设计)》指导书一、指导思想以技能训练为教学手段,以项目驱动为训练模式,以知识结构为评价标准,以小组协作为组织形式,以培养学生的工程意识和实际操作能力为宗旨目标,提高学生进行工程设计的基本技能及分析、解决实际问题的能力,为毕业设计和以后的工程实践打下良好的基础。
二、基本要求(一)对指导教师的要求①教师应能够灵活运用程序设计的基本思想、基本方法对实际问题进行分析,并用C/C++语言编写程序解决实际问题的能力,熟悉TC、VC、QT等开发环境的使用,熟悉程序调试的方法和技巧以及程序测试的方法和技巧。
②提供本课程设计题目,编写各个课程设计题目的任务书,做好课程设计的各项准备工作。
③组织学生选择课程设计题目,学习课程设计指导书,提供相关参考资料,讲解课程设计要求、进度安排、注意事项、成绩评定方式、强调课程设计的纪律等。
④每天指导时间不少于4小时,在指导过程中教师应做好学生考勤、答疑、个别辅导、进度控制、质量检查等工作。
⑤认真审查学生的全部课程设计文件,应根据学生完成课程设计情况、课程设计报告情况及学生在课程设计期间的表现等客观公正评定学生成绩,并做好课程设计总结报告。
(二)对学生的要求①学生应积极认真的态度参加课程设计工作,按要求完成课程设计任务。
②学生两人一个小组,根据自己情况,从老师所提供的题目中,选择一个难度适合自己的题目作为课程设计的题目。
③学生除可以选择老师提供的课程设计题目外,也可以自选课程设计题目,如果自选,需将自选课程设计题目的详细内容以及实现要求提供给老师,老师批准后方可采用。
④要求利用结构化程序设计方法以及C/C++语言编程思想来完成课程设计。
⑤要求在课程设计的过程中,按功能划分各个模块,各模块用函数的形式进行实现。
⑥各个系统要求要有友好界面、并通过菜单控制整个程序的运行。
⑦采用良好程序设计风格,并遵守《C语言程序设计规范》要求。
⑧设计的系统必须实现所要求的功能,并能在计算机上运行。
《C语言程序设计》课程实验指导书
三、预习内容
预习教材第3章。
实验四 选择结构程序设计
一、实验目的
1.了解C语言表示逻辑值的方法。
2.学会正确使用逻辑运算符和逻辑表达式的方法。
3.熟悉if语句和switch语句。
4.结合程序掌握一些简单的算法。
5.学习调试程序的方法。
二、实验内容
本实验要求编程解决以下问题,然后上机调试运行程序。
d=f;e=g;
p=a=m=50000;q=b=n=-60000;
运行程序,分析运行结果。
(3)将9-14行改为以下的scanf语句,即用scanf函数接收从键盘输入的数据:
scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u",&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q);
{int z;
if(x>y) z=x;
else z=y;
return(z);
}
(1)运行程序,若程序有错,则修改错误后继续运行程序,当没有错误信息时输入:2,5并按Enter键,查看运行结果。
(2)将程序的第三行改为:int a;b;c;然后按F9看结果如何,将其修改为int a,b,c;将子程序max的第3,4行合并为一行,运行程序,看结果是否相同。
printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q);
}
(1)运行此程序并分析运行结果。
(2)在此基础上,修改程序的第9-14行:
Java身份证号分析身份信息属相星座
《Java程序设计》课程设计指导书一、课程设计的目的二、课程设计题目、结构及要求第一部分小程序练习10.编写程序,利用身份证号分析身份信息,要求输出此人省份、年龄、属相、星座、性别等信息。
package dd;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.HashMap;import java.util.Map;import java.util.Scanner;import java.util.Calendar;public class CheckIdCardUtils {public static final int CHINA_ID_MIN_LENGTH = 15;public static final int CHINA_ID_MAX_LENGTH = 18;public static final String cityCode[] = { "11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37", "41", "42", "43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62", "63", "64", "65", "71", "81", "82", "91" };public static final int power[] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };public static final String verifyCode[] = { "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2" };public static final int MIN = 1930;public static Map<String, String> cityCodes = new HashMap<String, String>();public static Map<String, Integer> twFirstCode = new HashMap<String,Integer>();public static Map<String, Integer> hkFirstCode = new HashMap<String, Integer>();static {cityCodes.put("11", "北京");cityCodes.put("12", "天津");cityCodes.put("13", "河北");cityCodes.put("14", "山西");cityCodes.put("15", "内蒙古");cityCodes.put("21", "辽宁");cityCodes.put("22", "吉林");cityCodes.put("23", "黑龙江");cityCodes.put("31", "上海");cityCodes.put("32", "江苏");cityCodes.put("33", "浙江");cityCodes.put("34", "安徽");cityCodes.put("35", "福建");cityCodes.put("36", "江西");cityCodes.put("37", "山东");cityCodes.put("41", "河南");cityCodes.put("42", "湖北");cityCodes.put("43", "湖南");cityCodes.put("44", "广东");cityCodes.put("45", "广西");cityCodes.put("46", "海南");cityCodes.put("50", "重庆");cityCodes.put("51", "四川");cityCodes.put("52", "贵州");cityCodes.put("53", "云南");cityCodes.put("54", "西藏");cityCodes.put("61", "陕西");cityCodes.put("62", "甘肃");cityCodes.put("63", "青海");cityCodes.put("64", "宁夏");cityCodes.put("65", "新疆");cityCodes.put("71", "台湾");cityCodes.put("81", "香港");cityCodes.put("82", "澳门");cityCodes.put("91", "国外");twFirstCode.put("A", 10);twFirstCode.put("B", 11);twFirstCode.put("C", 12);twFirstCode.put("D", 13);twFirstCode.put("E", 14);twFirstCode.put("F", 15);twFirstCode.put("G", 16);twFirstCode.put("H", 17);twFirstCode.put("J", 18);twFirstCode.put("K", 19);twFirstCode.put("L", 20);twFirstCode.put("M", 21);twFirstCode.put("N", 22);twFirstCode.put("P", 23);twFirstCode.put("Q", 24);twFirstCode.put("R", 25);twFirstCode.put("S", 26);twFirstCode.put("T", 27);twFirstCode.put("U", 28);twFirstCode.put("V", 29);twFirstCode.put("X", 30);twFirstCode.put("Y", 31);twFirstCode.put("W", 32);twFirstCode.put("Z", 33);twFirstCode.put("I", 34);twFirstCode.put("O", 35);hkFirstCode.put("A", 1);hkFirstCode.put("B", 2);hkFirstCode.put("C", 3);hkFirstCode.put("R", 18);hkFirstCode.put("U", 21);hkFirstCode.put("Z", 26);hkFirstCode.put("X", 24);hkFirstCode.put("W", 23);hkFirstCode.put("O", 15);hkFirstCode.put("N", 14);}public static String conver15CardTo18(String idCard) { String idCard18 = "";if (idCard.length() != CHINA_ID_MIN_LENGTH) {return null;}if (isNum(idCard)) {String birthday = idCard.substring(6, 12);Date birthDate = null;try {birthDate = new SimpleDateFormat("yyMMdd").parse(birthday); } catch (ParseException e) {e.printStackTrace();}Calendar cal = Calendar.getInstance();if (birthDate != null)cal.setTime(birthDate);String sYear = String.valueOf(cal.get(Calendar.YEAR));idCard18 = idCard.substring(0, 6) + sYear + idCard.substring(8);char[] cArr = idCard18.toCharArray();if (cArr != null) {int[] iCard = converCharToInt(cArr);int iSum17 = getPowerSum(iCard);String sVal = getCheckCode18(iSum17);if (sVal.length() > 0) {idCard18 += sVal;} else {return null;}}} else {return null;}return idCard18;}public static boolean validateCard(String idCard) {String card = idCard.trim();if (validateIdCard18(card)) {return true;}if (validateIdCard15(card)) {return true;}String[] cardval = validateIdCard10(card);if (cardval != null) {if (cardval[2].equals("true")) {return true;}}return false;}public static boolean validateIdCard18(String idCard) {boolean bTrue = false;if (idCard.length() == CHINA_ID_MAX_LENGTH) {String code17 = idCard.substring(0, 17);String code18 = idCard.substring(17, CHINA_ID_MAX_LENGTH); if (isNum(code17)) {char[] cArr = code17.toCharArray();if (cArr != null) {int[] iCard = converCharToInt(cArr);int iSum17 = getPowerSum(iCard);String val = getCheckCode18(iSum17);if (val.length() > 0) {if (val.equalsIgnoreCase(code18)) {bTrue = true;}}}}}return bTrue;}public static boolean validateIdCard15(String idCard) {if (idCard.length() != CHINA_ID_MIN_LENGTH) {return false;}if (isNum(idCard)) {String proCode = idCard.substring(0, 2);if (cityCodes.get(proCode) == null) {return false;}String birthCode = idCard.substring(6, 12);Date birthDate = null;try {birthDate = new SimpleDateFormat("yy").parse(birthCode .substring(0, 2));} catch (ParseException e) {e.printStackTrace();}Calendar cal = Calendar.getInstance();if (birthDate != null)cal.setTime(birthDate);if (!valiDate(cal.get(Calendar.YEAR),Integer.valueOf(birthCode.substring(2, 4)),Integer.valueOf(birthCode.substring(4, 6)))) {return false;}} else {return false;}return true;}public static String[] validateIdCard10(String idCard) {String[] info = new String[3];String card = idCard.replaceAll("[\\(|\\)]", "");if (card.length() != 8 && card.length() != 9 && idCard.length() != 10) {return null;}if (idCard.matches("^[a-zA-Z][0-9]{9}{1}")) { // 台湾info[0] = "台湾";System.out.println("11111");String char2 = idCard.substring(1, 2);if (char2.equals("1")) {info[1] = "M";System.out.println("MMMMMMM");} else if (char2.equals("2")) {info[1] = "F";System.out.println("FFFFFFF");} else {info[1] = "N";info[2] = "false";System.out.println("NNNN");return info;}info[2] = validateTWCard(idCard) ? "true" : "false";} else if (idCard.matches("^[1|5|7][0-9]{6}\\(?[0-9A-Z]\\)?{1}")) { info[0] = "澳门";info[1] = "N";} else if (idCard.matches("^[A-Z]{1,2}[0-9]{6}\\(?[0-9A]\\)?{1}")) { info[0] = "香港";info[1] = "N";info[2] = validateHKCard(idCard) ? "true" : "false";} else {return null;}return info;}public static boolean validateTWCard(String idCard) {String start = idCard.substring(0, 1);String mid = idCard.substring(1, 9);String end = idCard.substring(9, 10);Integer iStart = twFirstCode.get(start);Integer sum = iStart / 10 + (iStart % 10) * 9;char[] chars = mid.toCharArray();Integer iflag = 8;for (char c : chars) {sum = sum + Integer.valueOf(c + "") * iflag;iflag--;}return (sum % 10 == 0 ? 0 : (10 - sum % 10)) == Integer.valueOf(end) ? true: false;}public static boolean validateHKCard(String idCard) {String card = idCard.replaceAll("[\\(|\\)]", "");Integer sum = 0;if (card.length() == 9) {sum = (Integer.valueOf(card.substring(0, 1).toUpperCase().toCharArray()[0]) - 55)* 9+ (Integer.valueOf(card.substring(1, 2).toUpperCase() .toCharArray()[0]) - 55) * 8;card = card.substring(1, 9);} else {sum = 522 + (Integer.valueOf(card.substring(0, 1).toUpperCase() .toCharArray()[0]) - 55) * 8;}String mid = card.substring(1, 7);String end = card.substring(7, 8);char[] chars = mid.toCharArray();Integer iflag = 7;for (char c : chars) {sum = sum + Integer.valueOf(c + "") * iflag;iflag--;}if (end.toUpperCase().equals("A")) {sum = sum + 10;} else {sum = sum + Integer.valueOf(end);}return (sum % 11 == 0) ? true : false;}public static int[] converCharToInt(char[] ca) {int len = ca.length;int[] iArr = new int[len];try {for (int i = 0; i < len; i++) {iArr[i] = Integer.parseInt(String.valueOf(ca[i])); }} catch (NumberFormatException e) {e.printStackTrace();}return iArr;}public static int getPowerSum(int[] iArr) {int iSum = 0;if (power.length == iArr.length) {for (int i = 0; i < iArr.length; i++) {for (int j = 0; j < power.length; j++) {if (i == j) {iSum = iSum + iArr[i] * power[j];}}}}return iSum;}public static String getCheckCode18(int iSum) { String sCode = "";switch (iSum % 11) {case 10:sCode = "2";break;case 9:sCode = "3";break;case 8:sCode = "4";break;case 7:sCode = "5";break;case 6:sCode = "6";break;case 5:sCode = "7";break;case 4:sCode = "8";break;case 3:sCode = "9";break;case 2:sCode = "x";break;case 1:sCode = "0";break;case 0:sCode = "1";break;}return sCode;}public static int getAgeByIdCard(String idCard) { int iAge = 0;if (idCard.length() == CHINA_ID_MIN_LENGTH) { idCard = conver15CardTo18(idCard);}String year = idCard.substring(6, 10);Calendar cal = Calendar.getInstance();int iCurrYear = cal.get(Calendar.YEAR);iAge = iCurrYear - Integer.valueOf(year);return iAge;}public static String getBirthByIdCard(String idCard) { Integer len = idCard.length();if (len < CHINA_ID_MIN_LENGTH) {return null;} else if (len == CHINA_ID_MIN_LENGTH) {idCard = conver15CardTo18(idCard);}return idCard.substring(6, 14);}public static Short getYearByIdCard(String idCard) { Integer len = idCard.length();if (len < CHINA_ID_MIN_LENGTH) {return null;} else if (len == CHINA_ID_MIN_LENGTH) {idCard = conver15CardTo18(idCard);}return Short.valueOf(idCard.substring(6, 10));}public static Short getMonthByIdCard(String idCard) { Integer len = idCard.length();if (len < CHINA_ID_MIN_LENGTH) {return null;} else if (len == CHINA_ID_MIN_LENGTH) {idCard = conver15CardTo18(idCard);}return Short.valueOf(idCard.substring(10, 12));}public static Short getDateByIdCard(String idCard) { Integer len = idCard.length();if (len < CHINA_ID_MIN_LENGTH) {return null;} else if (len == CHINA_ID_MIN_LENGTH) {idCard = conver15CardTo18(idCard);}return Short.valueOf(idCard.substring(12, 14));}public static String getGenderByIdCard(String idCard) {String sGender = "N";if (idCard.length() == CHINA_ID_MIN_LENGTH) {idCard = conver15CardTo18(idCard);}String sCardNum = idCard.substring(16, 17);if (Integer.parseInt(sCardNum) % 2 != 0) {sGender = "男";} else {sGender = "女";}return sGender;}public static String getProvinceByIdCard(String idCard) {int len = idCard.length();String sProvince = null;String sProvinNum = "";if (len == CHINA_ID_MIN_LENGTH || len == CHINA_ID_MAX_LENGTH) { sProvinNum = idCard.substring(0, 2);}sProvince = cityCodes.get(sProvinNum);return sProvince;}public static boolean isNum(String val) {return val == null || "".equals(val) ? false : val.matches("^[0-9]*{1}");}public static boolean valiDate(int iYear, int iMonth, int iDate) { Calendar cal = Calendar.getInstance();int year = cal.get(Calendar.YEAR);int datePerMonth;if (iYear < MIN || iYear >= year) {return false;}if (iMonth < 1 || iMonth > 12) {return false;}switch (iMonth) {case 4:case 6:case 9:case 11:datePerMonth = 30;break;case 2:boolean dm = ((iYear % 4 == 0 && iYear % 100 != 0) || (iYear % 400 == 0))&& (iYear > MIN && iYear < year);datePerMonth = dm ? 29 : 28;break;default:datePerMonth = 31;}return (iDate >= 1) && (iDate <= datePerMonth);}public static String getConstellationById(String idCard) {if (!validateCard(idCard))return "";int month = CheckIdCardUtils.getMonthByIdCard(idCard);int day = CheckIdCardUtils.getDateByIdCard(idCard);String strValue = "";if ((month == 1 && day >= 20) || (month == 2 && day <= 18)) {strValue = "水瓶座";} else if ((month == 2 && day >= 19) || (month == 3 && day <= 20)) { strValue = "双鱼座";} else if ((month == 3 && day > 20) || (month == 4 && day <= 19)) { strValue = "白羊座";} else if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) { strValue = "金牛座";} else if ((month == 5 && day >= 21) || (month == 6 && day <= 21)) { strValue = "双子座";} else if ((month == 6 && day > 21) || (month == 7 && day <= 22)) { strValue = "巨蟹座";} else if ((month == 7 && day > 22) || (month == 8 && day <= 22)) { strValue = "狮子座";} else if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) {strValue = "处女座";} else if ((month == 9 && day >= 23) || (month == 10 && day <= 23)) { strValue = "天秤座";} else if ((month == 10 && day > 23) || (month == 11 && day <= 22)) { strValue = "天蝎座";} else if ((month == 11 && day > 22) || (month == 12 && day <= 21)) { strValue = "射手座";} else if ((month == 12 && day > 21) || (month == 1 && day <= 19)) { strValue = "魔羯座";}return strValue;}public static String getZodiacById(String idCard) {if (!validateCard(idCard))return "";String sSX[] = { "猪", "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗" };int year = CheckIdCardUtils.getYearByIdCard(idCard);int end = 3;int x = (year - end) % 12;String retValue = "";retValue = sSX[x];return retValue;}public static String getChineseEraById(String idCard) {if (!validateCard(idCard))return "";String sTG[] = { "癸", "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "任" };String sDZ[] = { "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌" };int year = CheckIdCardUtils.getYearByIdCard(idCard);int i = (year - 3) % 10;int j = (year - 3) % 12;String retValue = "";retValue = sTG[i] + sDZ[j];return retValue;}public static void main(String[] args) {System.out.print("输入身份证号码:");Scanner snr = new Scanner(System.in);String idCard = snr.nextLine();int year = Integer.parseInt(idCard.substring(6, 10));System.out.println("省份:"+CheckIdCardUtils.getProvinceByIdCard(idCard));System.out.println("年龄:" + (Calendar.getInstance().get(Calendar.YEAR) - year));System.out.println("性别:"+CheckIdCardUtils.getGenderByIdCard(idCard));System.out.println("出生年月:"+CheckIdCardUtils.getBirthByIdCard(idCard));System.out.println("月::"+CheckIdCardUtils.getMonthByIdCard(idCard));System.out.println("日:"+CheckIdCardUtils.getDateByIdCard(idCard)); System.out.println("星座:"+CheckIdCardUtils.getConstellationById(idCard));System.out.println("生肖:"+CheckIdCardUtils.getZodiacById(idCard)); System.out.println("天干地支:"+CheckIdCardUtils.getChineseEraById(idCard));}}。
课程设计指导书
东莞理工学院课程设计
《C程序设计》课程设计指导
《C程序设计》课程设计是理工类非计算机专业本科学生在学习完《C语言程序设计》课程之后的一个综合性、设计性实践教学课程。
要求学生在教师的指导下,综合运用已学过的程序设计知识和技能,完成一项较为完整、并具有一定难度的课程设计任务。
通过本课程设计,使学生掌握应用软件开发的基本方法和基本步骤,培养学生的程序设计综合能力,为培养学生结合专业进行应用软件开发的能力打下良好的基础。
一、时间及地点
时间:一周
机房安排:待定
二、课程设计任务和要求
本次课程设计是在完成“自主实验”基础题的基础上,进一步完成“自主实验”中的较高内容,并运用“结构化程序设计”方法,将“自主实验”中的每个实验组合起来,构建一个完整的“《C程序设计》实验运行系统”。
整个课程设计历时1周。
最后,课程设计的程序要求运行通过,并要求学生按课程设计文档的格式要求写出课程设计报告。
学生完成实验后,找老师检查,检查的方法为:
(1) 检查文档;
(2) 检查运行结果。
(3)回答老师的相关问题
1。
STK指导书
篇一:基于stk的卫星总体任务分析与设计实验指导书航天课程实验平台:基于stk的卫星总体任务分析与设计实验指导书2006.04.01前言实验背景随着我国航天事业的蓬勃发展,为了培养高层次的专业化航天人才,本学科拟建成航天类课程实验平台,并准备为研究生开设相关实验课程。
本平台是利用国际先进的stk软件进行二次开发而形成的,satellite tool kit即卫星工具包,是航天工业领先的商品化分析软件,它可以快速方便地分析复杂的陆、海、空、天任务,并提供易于理解的图表和文本形式的分析结果,确定最佳解决方案。
它支持航天任务周期的全过程,包括政策、概念、需求、设计、制造、测试、发射、运行和应用。
实验目的及任务该实验平台的建设目标是培养学生对飞行器设计理论与实验方法的掌握,对仿真实验的理解与操作,提高动手能力,为将来毕业走上工作岗位打下扎实的基础。
因此,本实验平台将成为航天类课程教学的一个重要内容。
本实验平台集教学与实验为一体,充分发挥学生的创造性,培养学生实际应用能力。
使学生能将所学的专业知识具体化、形象化、可视化,达到全方位立体化的教学效果。
实验组成实验平台主要由以下五个部分组成: 1. 太阳同步/回归轨道设计与分析 2. 地面站测控方案设计与分析 3. 地面目标覆盖特性分析 4. 卫星太阳电池阵光照特性分析 5. 卫星机动轨道的斯基与分析实验设备硬件:标配计算机一台,其它仿真设备若干软件:windows xp操作系统,4.0版本以上stk软件实验1:太阳同步/回归轨道设计与分析1.1 实验目的? 了解stk软件的一般功能 ? 掌握stk软件的基本操作 ? 学会如何建立新场景 ? 学会如何创建设置新卫星1.2 实验步骤一.建立与设置场景在创建卫星之前,我们要学会如何建立基本场景(scenario)。
1. 启动stk,点击scenario 图标创建新场景,命名为1scenario。
2. 在对象浏览器窗口选中1scenario,然后从properties菜单中选择basic 也可以右键点击场景1scenario,在弹出的快捷菜单中选择basic。
精品课程《C语言程序》电子教案(全)
精品课程《C语言程序设计》电子教案(一)一、课程简介1.1 课程背景1.2 课程目标(1)掌握C语言的基本语法和数据类型;(2)熟悉运算符、表达式和语句的结构;(3)掌握函数的定义和调用;(4)了解常用的库函数和头文件;(5)学会使用C语言进行程序设计和调试;(6)培养编程思维和解决问题的能力。
二、教学内容2.1 课程安排本课程共分为五个部分,具体安排如下:第一部分:C语言基础知识(2周)第1周:C语言概述、变量和数据类型第2周:运算符、表达式和语句第二部分:程序控制结构(3周)第3周:顺序结构第4周:选择结构第5周:循环结构第三部分:函数与数组(3周)第6周:函数的定义和调用第7周:数组和字符串第8周:指针第四部分:指针与引用(2周)第9周:指针的应用第10周:引用第五部分:综合练习与课程设计(2周)第11周:综合练习第12周:课程设计2.2 教学方法采用讲授、实验、讨论相结合的教学方法,通过案例分析和编程实践,使学生掌握C语言的基本知识和编程技巧。
三、教学资源3.1 教材《C语言程序设计》,作者:谭浩强3.2 实验环境配置有C语言编译器的计算机实验室,如:Visual Studio、Code::Blocks等。
3.3 网络资源精品课程网站:提供课程讲义、实验指导、习题库、在线测试等功能。
四、课程考核4.1 考核方式课程考核分为过程考核和期末考试两部分,其中过程考核占60%,期末考试占40%。
4.2 过程考核包括课堂表现、实验报告、课后作业和在线测试等。
4.3 期末考试采取闭卷考试的方式,试题包括选择题、填空题、简答题和编程题等。
五、教学反馈5.1 学生反馈学生可通过课程网站、邮件等方式向教师反馈学习过程中遇到的问题和建议。
5.2 教师反馈教师根据学生的课堂表现、实验报告和作业等情况,及时给予反馈和指导。
精品课程《C语言程序设计》电子教案(二)六、第一部分:C语言基础知识6.1 第1周:C语言概述、变量和数据类型教学目标:了解C语言的发展历程、特点和应用领域;掌握基本数据类型、变量定义和初始化。
01课设指导书(苗)
面向对象程序设计(C++)课程设计任务书一、设计目的通过本次课程设计,深入理解类和对象、继承和派生、重载和多态,熟练掌握面向对象的程序设计思想和方法,能够对现实世界中的实际问题进行分析、设计,并学会熟练运用面向对象的编程方法(OOP)——C++语言进行编程实现。
二、课程设计题目1、高校人员信息管理系统开发一个简易的高校人员信息管理系统,主要针对高校人员的基本信息进行管理。
采用对象链表或对象数组存放各个对象,实现新增、修改、删除、查询以及统计等功能。
2、银行账户管理系统开发一个简易的银行账户管理系统,主要针对银行业务中的储户存款、取款、查询余额、统计储户指定信息等功能。
采用对象链表或对象数组存放各个对象,实现新增、修改、删除、查询以及统计等功能。
3、工资管理系统开发一个企业人力资源管理系统—工资管理,主要针对企业员工信息和工资进行管理。
采用对象链表或对象数组存放各个对象,实现新增、修改、删除、查询以及统计等功能。
上述题目任选一个来做。
三、设计思路1. 高校人员信息管理系统根据高校人员的特点,先设计一个高校人员抽象类,应包含编号、姓名、年龄、性别、系部、联系方式等数据成员,以及显示、统计等成员函数。
然后分别设计教师类、学生类和机关人员类,它们的基类均为高校人员抽象类。
创建人员对象,通过链表或对象数组的形式组织全体高校人员(可以定义一个管理类,该类具有新增、修改、删除、查询、统计及保存文件功能)。
利用多态理论统一处理高校人员的信息。
2.银行账户管理系统根据银行帐户的特点,先将银行中所有储户的相同信息提取出来定义成一个银行账户抽象类,该类包括储户的账号、账户名、存款金额等属性,包括对储户存款、取款、显示等行为。
然后分别设计定期储户类、活期储户类和信用卡储户类,它们的基类均为银行账户抽象类。
创建银行账户类对象,通过链表或对象数组的形式组织银行账户(可以定义一个管理类,该类具有新增、修改、删除、查询、统计及保存文件功能)。
CVCVB语言课程设计指导书
福建林业职业技术学院自动化工程系计算机教研室2012年 6 月《程序设计》课程设计指导书《程序设计》课程设计指导一、前言课程设计是课程学习后的一个综合性实践教学环节,是对课程理论和课程实验的综合和补充。
它主要培养学生综合运用已学过的理论和技能去分析和解决实际问题的能力,对加深课程理论的理解和应用、切实加强学生的实践动手能力和创新能力具有重要意义。
课程设计是计算机应用专业必不可少的一个综合性理论实践环节。
二、课程设计目的与要求课程设计是使学生融会贯通本课程所学专业理论知识,完成一个较完整的C/VC/VB应用程序和软件的制作过程,以加深学生对所学理论的理解与应用,进一步认识和熟悉VC++/TC/VB软件的强大功能和用途,了解解决实际问题的一般过程,培养学生综合运用基础理论知识和专业知识去解决实际应用设计问题的能力。
通过综合性课程设计训练,使学生达到以下的目的和要求:1、结合该课程中所学的理论知识,按要求独立设计软件方案,培养学生独立分析与解决问题的能力;2、学会查阅相关手册和资料,通过查阅手册和资料,进一步熟悉常用方法的用途和技巧,并掌握这些方法的具体含义和如何使用这些方法解决实际问题;3、掌握综合性C/VC/VB应用程序开发的基本过程。
4、掌握综合性C/VC/VB应用程序的开发方法。
5、认真撰写课程设计说明书,培养严谨的作风和科学的态度。
三、时间安排根据专业计划和该课程教学大纲的要求,本课程设计开课时间为本学期第17周(2012年6月4-10日),总学时30学时(1周)。
具体安排如下:《课程设计》项目时间(天)地点资料的收集、准备与整理0.5机房项目分析(数据库设计)1机房应用程序界面设计0.5机房应用程序代码设计2机房应用程序的调试、运行与打包1机房撰写设计文档2机房四、指导教师由担任本课程的教师担任指导教师,指导教师具体负责课程设计的任务布置、实践指导和成绩评定。
指导教师在公布课程设计课题时应包括以下内容:课题名称;设计任务;主要方法;主要参考文献等内容。
Java课程设计指导书
《Java程序设计》课程设计指导书2013-2014学年第二学期计科11级学生计算机学院2013-12一、课程设计目的1、复习、巩固所学过的Java语言基础知识,进一步加深对Java语言的理解和掌握;2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生分析、解决实际问题的能力,提高学生适应实际、实践编程的能力。
3、培养学生在项目开发中团队合作精神、创新意识及能力。
二、课程设计要求1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其它功能或修饰,使程序更加完善、合理;2、系统设计要实用,编程简练、可用、功能全面;3、说明书、流程图要清楚;4、记录设计情况(备查,也为编写设计说明书作好准备);5、要求采用模块化程序设计方法及锯齿型的标准代码书写格式,要求上机调试通过并按设计报告格式书写报告;6、要求标识符命名遵循命名规范,代码多加注释;注意各种可能遇到的异常处理,注重提高程序运行效率;7、图形界面要符合日常软件使用规范来设计菜单和界面。
8、上交内容:打印课程设计报告一份(按格式书写)、源程序文件。
每人给学习委员上传含报告和代码的压缩包,文件名形如"张三.rar"(学号加姓名组成),由课代表刻录。
三、课程设计题目●设计题目知识点:程序控制语句编程设计题目1.1编写程序从键盘输入10个整数,找出最大、最小的整数并输出。
设计题目1.2输入某一个班级学生的Java程序设计期末考试成绩,以-1作为结束标记:(1)统计班级学生中,不及格、及格、中等、良好、优秀的人数;(2)求该班级学生这门课的考试平均分数。
设计题目1.3某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析:1A、B至少有一人作案;A、E、F三人中至少有两人参与作案;A、D不可能是同案犯;B、C或同时作案,或与本案无关;C、D中有且仅有一人作案;如果D没有参与作案,则E也不可能参与作案。
c语言程序设计实验指导书
《C 语言程序设计》实验指导书实验一C 程序的运行环境一、实验目的1、了解所用的计算机系统的基本操作方法,学会独立使用该系统;2、了解在该系统上如何编辑、编译、连接和运行一个C 程序;3、通过运行简单的C 程序,初步了解C 程序二、实验预习1、认真阅读简单的C 程序介绍,C 程序上机步骤部分内容;2、编写好所需要的程序,程序的书写应该清楚整洁,一般检查应该是没有明显的错误。
如果在程序中有疑问的地方,可以标记起来,以便于上机调试时予以注意。
初学者特别忌讳上机前自己不编写程序,到时随便地抄别人的程序。
三、实验指导1、输入并运行一个简单的程序,从而熟悉所用系统的上机方法与步骤。
(1)选择“File”—“New”—“Win32 console application”,输入工程名称,确定。
直接选择第一项“An empty project”,点击“Finish”。
“File”—“New”—File框下面选择文件类型“C++ Source File” ,输入文件名称,点击“OK”。
(2)输入下面的程序(例题1.1)#include <stdio.h>void main( ){printf("This is a C program.\n");}(3)选择“Build”菜单下“Compile”选项,快捷键为Ctrl+F7。
编译过程将源代码转化成目标文件格式,后缀名为.o。
选择“Build”菜单下“Build”选项,快捷键为F7。
如果出现“出错信息”,则应找出原因并改正之,再进行编译构建。
(4)如果编译无错误,选择“Build”菜单“Execute”选项,运行程序,快捷键为Ctrl+F5,观察分析运行结果。
2、输入并编辑一个C 程序(1)同上,新建工程和文件。
(2)输入以下程序(例题1.2,但故意漏打或打错几个字符)#include <stdio.h>void main( ){int a,b,sum ;a=123 ;b=456 ;sum=a+b ;printf("sum is %d\n",sum);}(3)以下步骤同上一例题3、输入并运行一个需要在运行时输入数据的程序(1)清空编辑窗口,输入下面的程序(例题1.3)。
《java程序设计》实验指导书
实验一Java实验环境的建立一、实验目的1.掌握Java编程环境的搭建过程;2.掌握Jcreator pro软件的使用方法;3.能使用Java doc文档。
二、实验内容1.下载并安装JDK1.6,配置JDK环境变量;2.下载Javadoc压缩包并解压在JDK安装路径下;3.下载Jcreator pro 4.0并安装和配置使用环境;4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。
①Java application程序代码如下:public class HelloJava{public static void main(String args[]){System.out.println("Hello Java!");}}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){g.drawString("Hello!",30,30);}}三、试验要求1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验二Java语言程序设计训练一、实验目的:1.输入、输出操作实现原理和方法2.掌握程序流程控制的实现方法3.掌握数组的定义和操作方法二、实验内容1.计算Result=1!+2!+3!+ (10)public class TestJieC{public static void main(String arg[]){long result=1;for(int i=1;i<=10;i++){ result=i*result;result+=result;}System.out.println(" "+result);}}2.计算1---50之间所有素数的和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计课程设计
指导书
软件学院软件工程系
2017 年 6 月 1 日
太原理工大学课程设计任务书
1.课程设计完成后,学生提交的归档文件应按照:封面—任务书—说明书—图纸的顺序进行装订上交(大张图纸不必装订)。
2.可根据实际内容需要续表,但应保持原格式不变。
指导教师签名:日期:2017.6.3
前言
《程序设计课程设计》是计算机科学与技术专业的重要实践性课程。
目的在于培养学生分析问题和解决问题的能力,为学生提供了一个既动手又动脑,独立实践的机会。
将数据结构、算法设计与分析、离散数学和C(C++)语言等课本上的的理论知识和实际应用问题进行有机结合,提高学生问题分析、程序设计、程序调试及项目开发能力。
为后续课程:操作系统、软件工程,
编译原理等课程的学习奠定必要的实践基础。
本课程设计是利用数据结构、算法设计与分析、离散数学、C语言理论知识和实验课中学到
的编程知识和编程技巧,通过布置具有一定难度、一定编程量的课程设计题目,利用C(C++)语言作为开发工具,使学生通过课程设计掌握高级编程语言的知识和编程技术,掌握程序设计的思想和方法,初步具备利用计算机求解实际问题的能力。
通过《程序设计课程设计》课程的学习,能够帮助学生加深理解数据结构、离散数学、C语
言基本概念,达到培养学生良好程序设计的习惯和运用C语言编写程序解决实际问题的能力。
使学生学会把书本知识用于解决实际问题,起到深化理解和灵活掌握教学内容的目的。
同时使学生在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
通过该课程设计,学生应该掌握C或C++语言程序设计、结构化程序和面向对象程序设计方法、数据结构和离散数学理论知识,熟悉C或C++程序的开发环境及C或C++程序的调试过程,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。
通过本课程设计训练,学生应该具备如下基本技能:
①培养学生查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。
②通过对所选题目方案分析比较,确立方案,编制程序与调试程序。
③能熟练调试程序,在教师的指导下,完成课题任务。
④根据个人的设计调试过程,按课程设计报告的要求撰写设计报告。
选用教材及主要参考书:
1 教材
呼克佑. C 语言程序设计电子工业出版社,2013
严蔚敏. 数据结构(C 语言版) 清华大学出版社,2012
- 1 -
设计题目(6选4)
1. 相邻数对
1.1【问题描述】
给定 n 个不同的整数,问这些数中有多少对整数,它们的值正好相差 1。
输入格式
输入的第一行包含一个整数 n,表示给定整数的个
数。
第二行包含所给定的 n 个整数。
输出格式
输出一个整数,表示值正好相差 1 的数对的个数。
1.2【测试数据】
测试数据输出说明
值正好相差 1 的数对包括(2, 3), (6, 7), (7, 8)。
所以输出:3
数据约定
1<=n<=1000,给定的整数为不超过 10000 的非负整数。
2. ISBN 识别码
2.1【问题描述】
每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。
ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。
识别码的计算方法如下:
首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。
例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即
0×1+6×2+……+2×9=158,然后取 158 mod 11 的结果 4 作为识别码。
编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出是正确的ISBN号码。
输入格式
输入只有一行,是一个字符序列,表示一本书的 ISBN 号码(保证输入符合 ISBN 号码的格式要求)。
输出格式
输出一行,假如输入的 ISBN 号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的 ISBN 号码(包括分隔符“-”)。
- 2 -
2.2【测试数据】
3. 文本文件单词统计
3.1【问题描述】
假设有如下的英文文本文档:(此处为太原理工大学学校简介英文版)
TAIYUAN UNIVERSITY OF TECHNOLOGY
Taiyuan University of Technology (TUT) has its history traced all the way back to the Western Learning School of Shanxi Grand Academy (1902), which was one of the three earliest national universities in China. With the tradition and development of over 100 years, TUT is now a general university with engineering as the major, sciences and technology integrated and coordinate development of multiple disciplines. It is a university that is included in the “Project 211” ---
the national higher education promotion program for 100 top universities in China.
……
Recollecting the centennial history, generations of TUT have created its mission and glory of a century with responsibility and confidence; expecting the promising tomorrow, over 30,000 TUT students and faculty are producing splendor and perspectives by their wisdom and diligence. In the new era, Taiyuan University of Technology, following the Conception of Scientific Development, is determined to further the reformation on education, to reinforce the teaching management so as to upgrade its teaching and researching levels. Taiyuan University of Technology will be turning itself into a research-based university.
设计C或C++程序,统计在这样的英文文本文件中,出现了多少个单词,每个单词出现了几次。
连续的英文字符都认为单词(不包括数字),单词之间用空格或标点符号分隔。
3.2【设计需求及分析】
要统计英文文本文件中出现了哪些单词,就要从文件中读取字符,读取出来的连续英文字符认为是一个单词,遇空格或标点符号单词结束。
使用线性表记录单词以及每个单词出现的次数。
线性表中的单词按字典顺序存储。
线性表的顺序存储结构如下:
#define LIST_INIT_SIZE 100//线性表存储空间的初始分配量
#define LISTINCREMENT 10//线性表存储空间的分配增量
typedef struct{
char word[21]//存储单词,不超过 20 个字符
int count;//单词出现的次数
} ElemType;
typedef struct{
ElemType *elem;//存储空间基址
int length;//当前长度
int listsize;//当前分配的存储容量
- 3 -。