程序设计语言强化课程设计任务:
(一)学生成绩排名
采用选择法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。
步骤、方法与要求
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个班的课程设计报告汇总电子邮件发给我。