2014《程序设计技能训练》课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计技能训练》课程设计要求
一、教学目标
《程序设计技能训练》课程设计是程序设计基础课程的一个关键环节。
它是根据教学计划的要求,在教师的指导下,对学生实施程序设计训练的必要过程,是对前期课堂教学效果的检验。
其目标在于培养学生综合运用理论知识来分析和解决实际问题的能力、严谨的科学态度和良好的程序设计习惯,最终实现由知识向技能的初步转化。
通过课程设计,要求学生能够遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,独自地完成设计、编写、调试和测试应用程序及编写文档的任务。
二、教学要求
在本课程设计过程中要求学生:
(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
(2)按照课程设计的题目要求,独立地完成各项任务;
(3) 上交源程序:每位同学按照课程设计的具体要求所开发的所有源程序;
(4) 上交程序的说明文件:(保存在.txt文本文件或WORD文档中)在说明文档中应该写
明上交程序主程序文件名,程序的运行数据例子;
(5)认真编写课程设计报告。
课程设计报告:(保存在word 文档中,文件名要求按照"
姓名-学号-课程设计报告"起名,如文件名为"张三-*****-课程设计报告".doc ),课程设计报告的书写格式见附录2。
(6)课程设计总结:(保存在word 文档中)总结可以包括: 课程设计过程的收获、遇
到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对程序设计基础这门课程的思考和认识等内容
三、课程题目安排
1、必做题共26题,见附录1
2、选做题:课程题目共13道题目,题目的详细内容见后面附录2。
课程题目共9道题目,题目的详细内容见后面附录1。
第1题学生证管理程序
第2题图书登记管理程序
第3题学分管理程序
第4题学生作业完成情况管理程序
第5题职工工资信息管理系统
第6题学生宿舍管理
第7题人事管理程序
第8题通讯录的管理系统
第9题车票管理程序设计
注意:四人一组,选一个题目
四、考核方式和成绩评定
根据学生完成任务的情况(必须进行系统演示)、课程设计报告书的质量和课程设计过程中的工作态度等按照加权综合打分。
成绩评定实行优秀、良好、中等、及格和不及格五个等级。
不及格者需重新做课程设计
考核分为三个部分:
●出勤情况(占25%);
●程序运行及答辩情况(占50%):运行程序,由老师检查运行情况,并回答老师提出
的问题;
●课程设计报告书(占25%):是否按规定书写课程设计报告书的各项内容。
五、时间安排
第四周--- 第13周周二9-12
附录1
附录2
附录3
附录4
附录1
基本编程题
1、有1、
2、
3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是
多少?
2、输入某年某月某日,判断这一天是这一年的第几天?
3、输出9*9口诀。
4、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长
到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
5、判断101-200之间有多少个素数,并输出所有素数。
6、输入两个正整数m和n,求其最大公约数和最小公倍数。
7、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
8、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
9、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
10、求1+2!+3!+...+20!的和
11、对10个数进行排序(要求从大到小)
12、求一个4*4矩阵主对角线元素之和。
13、有一个已经排好序的数组。
现输入一个数,要求按原来的规律将它插入数组中。
14、将一个数组逆序输出。
15、打印出杨辉三角形(要求打印出10行)
16、输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
17、写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
18、编写主函数,当输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1!+1/3!+...+1/n!
19、已知一个学生的信息有两项:学生姓名,学生成绩,从键盘上输入10个学生的信息,然后按学生成绩从小到大排序(排序方法不限),最后输出排序过的学生信息。
20、编程计算从N各元素取出M个元素的组合数。
21、编写程序,输入三角型的三条边长,求其面积。
注意:对于不合理的边长输入要输出数据错误的提示信息。
22、按要求编写程序:
(1)编写求N阶乘的函数JACK()
(2)编写判断素数的函数ISPRIME();
(3)编写主函数,输入一个整数N,调用ISPRIME(),如果是素数就调用JACK ()求出N的阶乘并输出,否则显示该数不是素数。
23、编写程序计算下列序列的值:
要求最后一项小于0.001时、或者当N=20时尚未达到精度要求,则停止计算。
24、利用结构:
struct complx
{ int real;
int im;
};
编写求两个复数之积的函数cmult,并利用该函数求下列复数之积:
⑴(3+4i)×(5+6i) ⑵(10+20i)×(30+40i
25、搜索一个字符在字符串中的位置(例如:’I’在”CHINA”中的位置为3)。
如果没有搜索到,则位置为-1。
26、按要求编写程序:
假设学生有:学号,姓名,年龄,四门课成绩,总分等信息请先定义结构体student来描述学生信息。
(1)编写输入n个学生信息存入数组a的函数void shur(studen a[],int n);
(2)编写输出数组a中n个学生的函数void shuc(student a[],int n);
(3) 编写del函数的作用是删除数组a中的指定学生x,n为数组a的学生个数。
void
del(student a[],int,n, student x)
(4) 编写查找search函数的作用是查找数组a中的指定学生元素x,n为数组a的学生个数,如果找到,函数返回找到学生的序号,否则函数返回-1, int search(student a[],student x)
(5)编写插入元素insert函数的作用是将指定学生x插入到数组a中的指定位置w, n为数组a的学生个数。
void insert(student a[],int,n,student x,int w)
(6)编写排序sort函数,其功能是,按学号排序,void sort(student a[],int,n)
(7)编写主函数,调用void shur(student a[],int n)输入n个学生信息存入数组,然后调用shur(student a[],int n)输出;实现删除学生信息操作并显示,实现查找学生操作,显示查找结果,实现插入学生操作,并显示结果实现按学号排序并显示。
(提示,可将n设置为全局变量)
附录2 课程设计题目
第1题学生证管理程序
【题目描述】
请设计一个学生证的管理程序,该程序应该具有下列功能:
(1) 通过键盘输入某位学生的学生证信息。
学生证包含的信息请参看自己的学生证;
(2) 给定学号,显示某位学生的学生证信息;
(3) 给定某个班级的班号,显示该班所有学生的学生证信息;
(4) 给定某位学生的学号,修改该学生的学生证信息;
(5) 给定某位学生的学号,删除该学生的学生证信息;
(6) 提供一些统计各类信息的功能或排序功能。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 学生证应该包含的信息请参看自己的学生证;
(3) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存学生证的内容。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。
第2题图书登记管理程序
【题目描述】
请设计一个图书登记管理程序。
该程序应该具有下列功能:
(1) 通过键盘输入某本图书的信息;
(2) 给定图书编号,显示该本图书的信息;
(3) 给定作者姓名,显示所有该作者编写的图书信息;
(4) 给定图书编号,修改该本图书的信息;
(5) 给定图书编号,删除该本图书的信息;
(6) 提供一些统计各类信息的功能或排序功能。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 图书信息应该包含:编号、书名、作者姓名、出版社、价格、数量等;
(3) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存图书信息。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。
第3题学分管理程序
【题目描述】
请设计一个学生的学分管理程序。
假设每位学生必须完成基础课50学分、专业课50学分、选修课24学分、人文类课程8学分、实验性课程20学分才能够毕业。
因此在管理学分时,要考虑每个学分所属于的课程类别。
该程序应该具有下列功能:
(1) 通过键盘输入某位学生的学分;
(2) 给定学号,显示某位学生的学分完成情况;
(3) 给定某个班级的班号,显示该班所有学生学分完成情况;
(4) 给定某位学生的学号,修改该学生的学分信息;
(5) 按照某类课程的学分高低进行排序;
(6) 提供一些统计各类信息的功能。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 学分信息应该包括学号、姓名、课程类别、学分等;
(3) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存学分信息。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。
第4题学生作业完成情况管理程序
【题目描述】
请设计一个学生作业完成情况管理程序。
假设某门课程一学期要完成10次作业,每次老师要进行批改,给出分数后还要进行登记。
学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。
该程序应该具有下列功能:
(1) 通过键盘输入某位学生某次作业的分数;
(2) 给定学号,显示某位学生作业完成情况;
(3) 给定某个班级的班号,显示该班所有学生的作业完成情况;
(4) 给定某位学生的学号,修改该学生的作业完成信息;
(5) 给定某位学生的学号,删除该学生的信息;
(6) 提供一些统计各类信息的功能或排序功能。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 作业登记信息应该包含:学号、姓名、10次作业的完成情况;
(3) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存作业登记信息。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。
第5题职工工资信息管理系统
【题目描述】
各种基本数据的录入、修改、删除、插入、查询、统计(应发工资=基本工资+职务工资+各种补助,实发工资=应发工资-水电费-公积金-税金,税金(按先行税率公式计算))基本功能有:
(1)添加功能:
添加一个职工的基本信息,包括工资卡号、身份证号、姓名、基本工资、职务工资、各种补助、应发工资、水电费、公积金、税金、实发工资等
(2)删除功能:能够对一个职工的信息进行删除,例如按姓名进行删除、
(3)显示功能:
显示所有职工的主要信息包括工资卡号、身份证号、姓名、基本工资、职务工资、各种补助、应发工资、水电费、公积金、税金、实发工资等
(4)查找功能:
根据你键入的职工姓名,显示其详细信息!
(5)修改功能:
根据你键入的职工姓名,对该职工工资信息进行修改。
(6)排序功能:
对职工的信息按照实发工资进行排序。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 职工工资信息应该包含:工资卡号、身份证号、姓名、基本工资、职务工资、各种补助、应发工资、水电费、公积金、税金、实发工资等;
(3) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存职工工资登记信息。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。
第6题学生宿舍管理
【题目描述】
该程序应该具有下列功能:
1)录入:录入信息(学号,宿舍号,性别,姓名,所属院系等)
2)插入:给出姓名或学号执行插入后,查询是否被插入;
3)删除:给出姓名或学号执行删除后,查询是否被删除;
4)交换:给出两学生的姓名或学号执行交换后,查询是否被交换;
5)查询:给出房间号,列出该房间的入住学生即可;
6)统计:宿舍没住满情况显示。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存学生宿舍登记信息。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。
第7题人事管理程序
【题目描述】
请设计一个人事管理程序。
1、添加功能:
添加一个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址,家庭电话号码,部门,薪水,性别,职务等
2、删除功能:
能够对一个职员的信息进行删除,例如按姓名进行删除。
3、显示功能:
显示所有职员的主要信息包括姓名,身份证号码,工作证号,生日等
4、查找功能:
根据你键入的职员姓名,显示其详细信息。
5、修改功能:
根据你键入的职员姓名,对该职员的信息进行修改。
6、排序功能:
对职员的信息按照薪水进行排序。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存职工登记信息。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。
第8题通讯录的管理
【题目描述】
请设计一个通讯录管理程序。
该程序应该具有下列功能:
(1) 插入好友信息;
(2) 显示好友的相关信息;
(3) 给定姓名,查找该好友的信息;
(4) 给定姓名,修改相关信息;
(5) 给定姓名,删除该好友的信息;
(6) 按照姓名进行排序。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 每个记录包含姓名、电话号码、住址等个人信息;
(3) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存信息。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。
第9题车票管理程序
【题目描述】
一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。
如
班次发车时间起点站终点站行车时间额定载量已定票人数
1 8:00 凤阳合肥
2 45 30
2 6:30 凤阳蚌埠0.5 40 40
3 7:00 凤阳定远 1 40 20
4 10:00 凤阳南京 3 40 2
能提供下列服务:
(1)录入班次信息(信息用文件保存),可不定时地增加班次数据
(2)浏览班次信息,可显示出所有班次当前状态(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
(3)查询路线:可按班次号查询,可按终点站查询
(4)售票和退票功能
A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数
B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数(5)根据输入班次,删除某班次。
(6)按发车时间排序。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2)车次登记信息应该包含:班次、发车时间、起点站、终点站、行车时间、额定载量、已定票人数等
(3) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存信息。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。
附录3
第二部分(参考)
下面是一个职工信息管理程序,请阅读分析过程,并编写相应模块。
1 需求分析
1.1 编写目的
通过对用户需求进行调查分析,写出需求分析文档。
需求分析文档可作为项目设计的基本准则要求,也可作为系统分析员进行系统分析和测试人员进行测试时的手册。
1.2 需求概述
设计一个职工信息管理系统,使之能提供以下功能:
(1)职工信息录入功能
(2)职工信息浏览功能
(3)职工信息查询(或排序)功能
(4)职工信息删除功能
(5)职工信息修改功能
1.3 需求说明
((1)职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,并且要求职工号不重复;
(2)录入的职工信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作;
(3)职工信息的显示要求有一定的规范格式;
(4)对职工信息应能够分别按工资及按学历两种方式进行,要求能返回所有符合条件的职工的信息;
(5)对职工信息的修改应逐个地进行,一个职工信息的更改不应影响其他的职工记录;
(6)所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并要求在此过程中能够尽可能的兼容用户使用过程中的异常情况。
2 总体设计
2.1 编写目的
根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案并写出书面文档总体设计说明书,为下一步进行详细设计做准备。
2.2 总体设计
1.功能划分
该系统可以按功能进行模块划分,如图1所示:。