MM的考试题。。大家1天内写代码帮我。。100相送

gnawdong 2003-12-27 11:51:55
《程序设计课程》(公共课)综合性、设计性实验指导大纲


根据学校的要求,有实验的课程80%以上必须开出“综合性、设计性实验”,而且学校每个学期都要求对此进行验收。本课程已被学校正式列入开出“综合性、设计性实验”的课程目录,希望各位任课教师按照如下要求执行。如果教师个人有合适的实验题目可报严尚维备案后实行,但课程结束后统一上交的材料必须遵照学校的统一要求。

一、 指导思想
1. 一般程序设计教材的作业,程序的规模偏小,学生对编写较大型程序所必须具备的综合训练不足。
2. 本课程属于基础课程,每周只能安排2节实验课,除此以外不可能再安排更多的上机时间,也不可能在课程结束以后让学生集中完成1个综合性的实验。
3. 为此,应该设计一个“渐进式”的题目,学生每周根据课程进度完成1个小题目,每个小题目作为1个模块将来能够合成为1个大题目,从而达到“综合性训练”的目的。
4. 围绕本题目,可以让学生以课程及教材讲述的知识为基础,开展一些“探讨性”的实验内容,从而训练学生的“创造能力”的目的。

二、 实验题目
学生信息处理。

三、 每次实验的内容及所涉及的知识
1. 建立题目的原型——确定基本的数据结构以及进行简单的数据处理
1) 题目
① 数据结构
以1个二维整型数组描述某个班的学生信息,属性包括学号及数学、英语、计算机等3门课程的考试成绩;另外再以1个一维实型数组描述每个学生的“平均考试成绩”。其中,前者属于原始数据,在程序运行时输入;后者属于程序对输入数据的计算结果。
② 功能要求
逐个输入学生的学号以及3门课程的考试成绩,计算每个学生的平均考试成绩,最后以类似于列表输出的方式显示每个学生的学号及平均考试成绩。

2) 实验时间
在讲述完数组的内容(即教材7.2)以后。

3) 实验目的
数组的基本知识与编程、数据的输入/输出。


2. 增加字符串的处理内容
1) 题目
① 数据结构
在题目1数据结构的基础上,增加1个描述每个学生姓名的字符型数组。为简化程序的调试,所有原始数据可以使用“初始化”的方法输入。
② 功能要求
编写“查询学生成绩”的程序。要求输入学生的姓名,程序据此查询学生记录并显示该学生的平均成绩及不及格课程门数。

2) 实验时间
在讲述完字符串的内容(即教材7.3)以后。

3) 实验目的
① 字符串处理知识的运用(输入、存储、比较等);
② 引入计算机程序对数据进行“查询”的算法知识


3. 用函数实现不同的功能
1) 题目要求
① 数据结构
与实验2相同,要求将有关数组定义为“全局数组”。
② 功能要求
围绕该“全局数据结构”,分别以不同的“函数”实现如下功能:
▲ 计算每个学生的“平均成绩”。
▲ 对学生数组的“记录顺序” 按照“平均考试成绩”从高到低的顺序重新排列。
▲ 以类似于列表输出的方式显示每个学生的学号、姓名、平均考试成绩。
③ 备注
▲ 由于使用“全局数组”,上述函数可以不需要I/O参数。
▲ 本题目的数据结构及程序与实验1、2类似(排序算法除外)。

2) 实验时间
在函数的内容全部讲述完毕以后。按照教学计划,“函数”的教学内容需用2周完成,建议第1周做教材的常规的实验,重点训练学生对函数I/O接口的理解;第2周再继续此综合性实验。

3) 实验目的
① 训练学生对“模块化”及“全局数据结构”知识的理解,即针对一个“关键的数据结构”,以不同的函数实现不同的操作,并以此构建1个完整的程序。
② 训练学生的“探索”能力,关于“排序”算法课本上有针对单独一维数组的例题,需要加以改造才能满足本题目的要求。


4. 结构体的应用
1) 题目要求
① 将实验3描述学生信息的多个“全局数组”改为1个“结构体数组”。
② 功能要求:与实验3相同,但需要修改程序以适应数据结构的变换。

2) 实验时间
在讲述完“结构体”内容以后。

3) 实验目的
训练学生对“结构体”的数据结构及用途的理解。


5. 变量指针的应用
1) 题目要求
① 在实验4的基础上增加1个“查询”函数,该函数的功能要求与实验2相同,但所基于的数据结构需要调整。
② 该“查询”函数只负责数据的输入/输出,处理过程(包括对学生记录的“检索”,对不及格课程门数的“计算”)另外编写1个函数完成(本文档简称为X)。
③ 该“查询”函数的实现过程如下:
▲ 查询函数:输入姓名——调用函数X——输出查询结果
▲ 函数X:
以“姓名”作为传入参数,返回结果包括该学生的平均成绩与不及格课程门数。

2) 实验时间
在讲述完“指针变量”以后。

3) 实验目的
① 训练学生对“变量的指针以及指针变量”的原理与用途的理解,因为函数X的返回结果不止1个,需要使用变量指针实现。
② 多层的函数结构


四、 课程结束时要求上交计算机系统一保管的材料及格式要求
每个学生学期结束前就最后一次实验所完成的内容上交1份书面的实验报告,每份实验报告采用统一印制的封面装订,封面上要求附有教师的评语与评分,任课教师将学生的实验报告以班为单位装订上交。每份实验报告要求具备的内容包括:
1. 题目要求
2. 设计方案
1) 对全局数据结构的说明。
2) 以层次图形式描述程序的函数构成及相互调用关系。
3) 列出每个函数的功能、函数参数、返回值。
3. 源程序清单
4. 测试报告
5. 小结(题材不限,由任课教师根据实际情况提出具体要求)。

...全文
39 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodluckyxl 2004-01-02
  • 打赏
  • 举报
回复
/*
-----------------------------------------------------------------------------------------
* build c Vc++6.0 编译通过 共240行
-----------------------------------------------------------------------------------------
*/
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

struct stuinfo
{
char stu_name[10];
char stu_sex[4];

int stu_age;
int stu_num;
int stu_english_grade;
int stu_math_grade;

struct stuinfo *next;
};

struct stuinfo *pStuInfoNode;
/*
-------------------------------------------------------------
* Name buildlist
-------------------------------------------------------------
*/
struct stuinfo* buildlist( int studentnum )
{
int i = 0;
struct stuinfo *pCurrentPos = NULL;
struct stuinfo *ptemp, *listhead;

listhead = NULL;

while( i != studentnum )
{
pStuInfoNode = malloc( sizeof( struct stuinfo ) );
{
scanf( "%s", &pStuInfoNode->stu_name );
scanf( "%d", &pStuInfoNode->stu_num );
scanf( "%s", &pStuInfoNode->stu_sex );
scanf( "%d", &pStuInfoNode->stu_age );
scanf( "%d", &pStuInfoNode->stu_english_grade);
scanf( "%d", &pStuInfoNode->stu_math_grade);
}
if( i == 0 )
{
listhead = pStuInfoNode;
ptemp = listhead;
pStuInfoNode->next = NULL;
}
else
{
pCurrentPos = listhead;
while( pCurrentPos != NULL )
{
if( pCurrentPos->stu_num == pStuInfoNode->stu_num )
{
printf("学号不能重复!请从新输入\n");
free( pStuInfoNode );
return 0;
}
pCurrentPos = pCurrentPos->next;
}
ptemp->next = pStuInfoNode;
ptemp = ptemp->next;
pStuInfoNode->next = NULL;
}
i++;
}

return listhead;
}

/*
-----------------------------------------------------------------------------------------
* Name: ListInsert
-----------------------------------------------------------------------------------------
*/
void ListInsert( struct stuinfo **head, int nPosition )
{
struct stuinfo *ListHead = *head;
struct stuinfo *pCurrentPos = *head;
struct stuinfo *pTemp = NULL ;
int nComparePos = 0;

while( pCurrentPos != NULL )
{
nComparePos++;
pCurrentPos = pCurrentPos->next;
}

if( nComparePos < nPosition || nPosition < 0 )
{
printf("wrong position where u want to insert data!\n");
return;
}
else
{
pStuInfoNode = malloc( sizeof( struct stuinfo ) );
printf("请输入你要插入的学生信息!\n");
{
scanf( "%s", &pStuInfoNode->stu_name );
scanf( "%d", &pStuInfoNode->stu_num );
scanf( "%s", &pStuInfoNode->stu_sex );
scanf( "%d", &pStuInfoNode->stu_age );
scanf( "%d", &pStuInfoNode->stu_english_grade);
scanf( "%d", &pStuInfoNode->stu_math_grade);
}

{
pTemp = *head;
while( pTemp != NULL )
{
if( pTemp->stu_num == pStuInfoNode->stu_num )
printf("你插入的学生号已经存在!请重新插入!\n");
return ;
}

}
if( nPosition == 0 )
{
pStuInfoNode->next = *head;
*head = pStuInfoNode;
}
else
{
pCurrentPos = ListHead ;
for( nComparePos = 0; nComparePos < nPosition - 1; nComparePos++ )
pCurrentPos = pCurrentPos->next;
pStuInfoNode->next = pCurrentPos->next;
pCurrentPos->next = pStuInfoNode;
}
}
}

/*
-----------------------------------------------------------------------------------------
* Name DeleteItem
-----------------------------------------------------------------------------------------
*/
void RemoveItem( struct stuinfo **head, int Stu_Num )
{
struct stuinfo *ListHead = *head;
struct stuinfo *pCurrentNode = *head;
struct stuinfo *pTemp = NULL;
int nPosition = 0, nCompare = 0;
int nDeleteInfo = 0;

if( Stu_Num < 0 )
{
printf("it's wrong data\n");
return;
}
else
{
while( ListHead != NULL )
{
if( ListHead->stu_num == Stu_Num )
{
if( nPosition == 0 )
*head = ListHead->next;
else
{
pCurrentNode = *head;
while( nCompare < nPosition - 1 )
{
pCurrentNode = pCurrentNode->next;
}
pCurrentNode->next = pCurrentNode->next->next;
}
nDeleteInfo++;
}
ListHead = ListHead->next;
nPosition++;
}
}
if( nDeleteInfo != 0 )
printf("删除成功!\n");
else
printf("找不到要删除的对象!\n");
}
/*
-----------------------------------------------------------------------------------------
* Name SearchInfo
-----------------------------------------------------------------------------------------
*/
void SearchInfo( struct stuinfo* head, int Stu_Num )
{
struct stuinfo *ListHead = head;
struct stuinfo *pCurrentPos = NULL;

while( ListHead != NULL )
{
if( ListHead->stu_num == Stu_Num )
{
pCurrentPos = ListHead;
{
printf("查询到记录:\n");
printf("姓名 学号 性别 年龄 英语成绩 数学成绩\n");
printf("%s ", pCurrentPos->stu_name);
printf("%d ", pCurrentPos->stu_num);
printf("%s ", pCurrentPos->stu_sex);
printf("%d ", pCurrentPos->stu_age);
printf("%d ", pCurrentPos->stu_english_grade);
printf("%d ", pCurrentPos->stu_math_grade);
printf("\n");
return;
}
}
ListHead = ListHead->next;
}
printf("没有找到记录请继续操作!\n");
return;
}
main()
{
int StudentNum, i = 0;
int StudentPos, Stu_Remove_Num, Stu_Search_Num;
int nOperateState = 0;
struct stuinfo *head;

printf("请输入学生个数:\n");
scanf( "%d", &StudentNum );
printf("姓名 学号 性别 年龄 英语成绩 数学成绩\n");
ReWrite:
head = buildlist( StudentNum );
if( head == NULL )
goto ReWrite;
ChooseOperate:
printf("选择你要操作的方法,1为插入,2为删除,3为查询!4为退出\n");
scanf( "%d", &nOperateState );
if( nOperateState < 1 || nOperateState > 4 )
{
printf("sorry, please choose again!\n");
goto ChooseOperate;
}
if( nOperateState == 1 )
{
printf("请输入你要插入的学生信息的位置!\n");
scanf( "%d", &StudentPos );
ListInsert( &head, StudentPos );
goto ChooseOperate;
}
if( nOperateState == 2 )
{
printf("请输入你要删除的学生的学号!\n");
scanf( "%d", &Stu_Remove_Num );
RemoveItem( &head, Stu_Remove_Num );
goto ChooseOperate;
}
if( nOperateState == 3 )
{
printf("请输入你要查询学生的学号!\n");
scanf( "%d", &Stu_Search_Num );
SearchInfo( head, Stu_Search_Num );
goto ChooseOperate;
}
if( nOperateState == 4 )
{
printf("欢迎下次继续使用本系统!\n");
free( pStuInfoNode );
}

}
comefirst 2004-01-01
  • 打赏
  • 举报
回复
这可是不对的~~

-------------------------------------------------------------
新年快乐,楼主快乐。
元旦快乐,大家快乐。
能接分,最快乐了~
祝大家在新的一年里:
事业有成,学习进步。
美满幸福,家人安康。
MagiSu 2004-01-01
  • 打赏
  • 举报
回复
我考,这个你mm也做不完啊!我在初四就可以搞定了!
finalhunter 2004-01-01
  • 打赏
  • 举报
回复
水帖
gnawdong 2004-01-01
  • 打赏
  • 举报
回复
楼上的你什么意思?不懂.最宝贵的是生命
极速小王子 2004-01-01
  • 打赏
  • 举报
回复
我要你最宝贵的东西,如何!?
days1 2003-12-31
  • 打赏
  • 举报
回复
哈哈,又有人在偷懒了。.....
gnawdong 2003-12-31
  • 打赏
  • 举报
回复
晕哦
czyf2001 2003-12-31
  • 打赏
  • 举报
回复
!!太强了!
xiaocai365 2003-12-31
  • 打赏
  • 举报
回复
YYYYYYYYYYYYYYYYYYYYYYYYYYUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
datablader 2003-12-31
  • 打赏
  • 举报
回复
不知所云。我同情你MM。
Jinhao 2003-12-31
  • 打赏
  • 举报
回复
好象过了N天了吧
glacierrr 2003-12-31
  • 打赏
  • 举报
回复
我不要分,作业我不做
jhwh 2003-12-31
  • 打赏
  • 举报
回复
太难了,我走
163lzm 2003-12-31
  • 打赏
  • 举报
回复
to post this subject is to be damned
langzi8818 2003-12-31
  • 打赏
  • 举报
回复
这些题太难了!我不会啊!
gnawdong 2003-12-30
  • 打赏
  • 举报
回复
ok..我看看啊..
pureqi 2003-12-30
  • 打赏
  • 举报
回复
建议大家不要这么乐于助人,也看看问题的性质再说。
mxp2002 2003-12-30
  • 打赏
  • 举报
回复
哈哈~
joec 2003-12-30
  • 打赏
  • 举报
回复
晕ing
加载更多回复(27)

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧