当前位置:文档之家› 2015程序设计语言课程设计

2015程序设计语言课程设计

程序设计语言强化课程设计任务:

(一)学生成绩排名

采用选择法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。

步骤、方法与要求

1.定义一个数组a[11],用以存放学生的成绩。

2.从键盘输入10个学生成绩。

3.采用选择法,将学生成绩按照从高到低进行排序。

4.再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组。

5.将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。

6.将以上每一步骤的结果均打印输出,验证程序是否正确实现题目要求。

(二)根据条件进行学生成绩排名

在函数中进行10个学生成绩从高到低排名,再改进函数,进行n个学生成绩从高到低排名, 排名方式根据函数的style参数进行,如style为‘a'按升序排,style为' d ' 按降序排。(a:ascending 升,d:descending 降)

编写多个不同函数,使之能实现不同的排序算法(3种以上),再编写一个通用输出函数,(要求用函数指针做参数)能分别打印不同排序算法的结果。

步骤、方法与要求

1.在函数中进行10个学生成绩从高到低排名 sort(int a[10])

2.改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名,

3.改进第二步的函数为sort(int a[],int n, char style), 将n个学生成绩从

高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按

升序排,style为’d’按降序排。

(a:ascending 升,d:descending 降)

4.编写4个排序函数,实现4种不同的排序算法(用冒泡法进行升序排序,用冒

泡法进行降序排序,选择法进行升序排序,选择法进行降序排序等),函数返

回指向排好序的数组的指针。

5.编写通用输出函数 show(int a[ ],int n,int *(* fun)(a[ ], int n )),

其中a[]为成绩数组,n为数组元素个数。fun为函数指针,函数的特点为有两

个参数,一个为整型数组,一个为整数,返回值为指向整型变量的指针)

6.编写主函数调用以上函数。

(三)链表的操作(链表的建立,访问,删除链表指定结点,增加结点)建立一个动态链表,将学生数据(学号,成绩)存入链表结构中,实现链表的访问(求学生成绩的平均分,找到最高分,最低分,将其数据输出)。删除指定学号的学生数据,对学生数据进行排序,分别在链表头部,中间,末尾插入学生数据。

(四)学生成绩文件管理

定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩,输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩,输出三门课程的平均分数最高的学生的学号、姓名及其平均分,将10个学生的相关数据,存入文件中,再从文件中读出,按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件中,再从文件中读取第 1 ,3 ,5 ,7,9个学生的数据。

内容、步骤、方法与要求

1.定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩

2.从键盘输入10个学生的以上内容

3.输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩

4.输出三门课程的平均分数最高的学生的学号、姓名及其平均分

5.从键盘输入10个学生的以上内容,存入文件stud.dat,关闭文件

6.打开stud.dat文件,将数据读出,查看是否正确写入,关闭文件。

7.打开文件stud.dat文件,读出数据,将10个学生按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件studsort.dat中。

8.从studsort.dat 文件中读取第1,3,5,7,9个学生的数据。

(五)一个综合系统(五选一)

1、学生成绩管理系统

数据库的数据项主要数据包括:学号、姓名、年级、专业、成绩1、成绩2、成绩3、平均成绩、总成绩。

要求具有以下功能:

(1)添加、删除任意个记录。

(2)修改任意个记录。

(3)显示、保存记录。

(4)排序功能:打开学生数据库,计算每个学生的平均成绩和总成绩,用冒泡法或选择排序法将平均成绩和总成绩排序后生成两个新文件(从大到小),存盘并显示这两个文件的全部记录。

(5)查询功能:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。

要求:

(1)设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。

(2)程序运行时,首先进行口令检查,再显示菜单。并能根据菜单调用相应的函数功能。

口令程序段的功能要求:

《1》提示用户输入一个口令。

《2》用户输入口令后,若口令对,则提示用户通过,可执行后续程序;否则不通过。

《3》可对用户的口令输入进行次数限制(如:重复输入3次都不对),则自动退出系统。

(3)显示数据时,一页显示不下,可分页显示。

2、教师信息管理系统设计

教师信息包括教师号、姓名、性别、年龄、学历、职称、工资、住址、电话等(教师号不重复)。试设计一教师信息管理系统,使之能提供以下功能:

(1)系统以菜单方式工作

(2)教师信息录入功能--输入

(3)教师信息删除功能

(4)教师信息浏览功能--输出

(5)查询和排序功能:(至少一种查询方式) --算法

按教师号查询

按职称查询等

要求:

(1)设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。

(2)程序运行时,首先进行口令检查,再显示菜单。并能根据菜单调用相应的函数功能。

口令程序段的功能要求:

《1》提示用户输入一个口令。

《2》用户输入口令后,若口令对,则提示用户通过,可执行后续程序;否则不通过。

《3》可对用户的口令输入进行次数限制(如:重复输入3次都不对),则自动退出

系统。

(3)显示数据时,一页显示不下,可分页显示。

3、图书信息管理系统设计

图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:

(1)系统以菜单

(2

(3)图书信息浏览功能--输出。

(4)查询和排序功能:(至少一种查询方式)

按书名查询

按作者名查询

(5)图书信息的删除与修改。

要求:

(1)设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。

(2)程序运行时,首先进行口令检查,再显示菜单。并能根据菜单调用相应的函数功能。

口令程序段的功能要求:

《1》提示用户输入一个口令。

《2》用户输入口令后,若口令对,则提示用户通过,可执行后续程序;否则不通过。

《3》可对用户的口令输入进行次数限制(如:重复输入3次都不对),则自动退出系统。

(3)显示数据时,一页显示不下,可分页显示。

4、电话簿管理程序

数据库的主要数据包括:姓名、工作单位、电话号码、E-mail地址。

要求具有以下功能:

(1

(2)添加、删除、修改任意个记录。

(3)显示、保存记录。

(4)排序功能:按电话号码排序和按照姓名字母序排序。

(5)查询功能:按人名查询电话号码和按电话号码查询人名。

要求:

(1)设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。

(2)程序运行时,首先进行口令检查,再显示菜单。并能根据菜单调用相应的函数功能。

口令程序段的功能要求:

《1》提示用户输入一个口令。

《2》用户输入口令后,若口令对,则提示用户通过,可执行后续程序;否则不通过。

《3》可对用户的口令输入进行次数限制(如:重复输入3次都不对),则自动退出

系统。

(3)显示数据时,一页显示不下,可分页显示。

5.多维函数寻优(加分)

现有函数

f(x,y) = 10.2 + [x2 - 10cos(2πx)] + [y2 - 10cos(2πy)] 其函数图像如下图所示,请编程寻找函数最小值。

要求:

查找相关书籍文献,采用相关的算法(如粒子群算法,遗传算法,蚁群算法等)寻找

该问题的最小解。

具体要求

围绕课程设计的目的和意义,基本要求如下:

1、认真阅读《C语言课程设计》指导书,明确课程设计的目的、意义和要求;

2、快速总结C程序设计语言的精髓,如:函数的概念、函数的设计和函数的调用;

3、快速熟悉Tuber C 或C++的上机环境。能熟练进行高级编辑操作(特别是字块操作);

熟悉步进式、断点跟踪的程序调试方法,提高工作效率。

4、根据“课程设计题目”,采用结构化的程序设计思想,确定系统的总体设计方案、

确定时间进度。本次课程设计单人独立完成。

5.学习并了解良好的程序设计风格。按质、按量、并按时间完成课程设计的任务。6.提供可运行的课程设计系统,参加上机面试答辩。

本次课程设计的重点是:学会设计并编写函数,掌握好各函数之间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各种操作;掌握几种典型算法的应用(如:冒泡法、选择排序法和折半查找法)。同时锻炼学生根据题目进行分析、设计、编码、调试程序和书写必要文档的综合处理能力,从实践中学习并体会程序设计的结构化思想和设计方法。

进度安排

依照教学计划,课程设计时间为2周。按照软件工程的思想,软件系统的分析设计至关重要,并要充分重视书写“文档”。避免甚至杜绝“拿到题目就编码”的现象。建议将时间分为三个阶段:

第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各程序模块的算法,并画出相应的N-S图,同时编写相应的文档;

第二阶段,根据N-S图编写程序代码并单独调试,再将调试通过的各个子模块进行集成调试;

第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。

三个阶段时间分配的大概比例是:35:45:20。

完成后应上交的材料

1.课程设计的题目、系统的总功能和各子模块的功能;

2.题目的设计思想(或算法)简述;

3.主要程序的框图(要求用N-S图);

4.源程序代码(要求在关键的位置有注释,从而增加程序的可读性);

5.课程设计的总结报告,主要包括以下内容:

(1)课程设计中遇到的主要问题和解决方法;

(2)你的创新和得意之处;

(3)设计中存在的不足及改进的设想;

(4)本次课程设计的感想和心得体会。

以上完成的源程序及相关文档,填写在《课程设计说明书》上,要求干净整洁,符合课程设计的要求和规范。(各班发电子文件给我li-bh@https://www.doczj.com/doc/5618028385.html,,文件夹里文件名统一为学号姓名)。

总评成绩

课程设计的成绩根据学生在课程设计期间的态度,课程设计的完成情况和难易程度,文档的质量及系统演示情况综合评定。不符合要求的设计报告,抄袭的设计报告或者在设计中完全未参与者将按不及格处理。

课程设计的成绩采用百分制记分,成绩评定标准是:

90至100分:能独立完成设计工作,在设计中体现出较强的综合运用知识能力和一定的创新能力。设计符合规范要求,说明书叙述透彻,体现一定的创新能力。

设计过程中表现好,无违纪现象。

80分至89分:能独立完成设计工作,在设计中体现出较强的综合运用知识的能力。

设计符合规范要求,说明书叙述清楚。设计过程中表现较好,无违纪现象。

70至79分:能完成设计工作,在设计中体现出一定的综合运用知识的能力,设计符合规范要求,说明书叙述比较清楚。设计过程中表现较好,无违纪现象。

60至69分:能基本完成设计工作,结果基本正确,设计符合规范要求,说明书叙述基本清楚,设计过程表现一般,无违纪现象。

60分以下:达不到上述水平。

其中,程序设计占65%,文档占20%,面试答辩占15%。

课程设计指导老师时间安排:

周数星期一星期二星期三星期四星期五19周李娅任卫东李娅胡明余智豪

20周胡明任卫东(上午)李娅检查

余智豪(下午)

注意:每个星期一下午老师开会,不用到机房来做课程设计。

20周星期四上午8点开始四个老师一起检查课程设计的程序。

1月19日学习委员将2个班的课程设计报告汇总电子邮件发给我。

相关主题
文本预览
相关文档 最新文档