哈理工计算机实践B16.docx
- 文档编号:27429490
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:13
- 大小:179.29KB
哈理工计算机实践B16.docx
《哈理工计算机实践B16.docx》由会员分享,可在线阅读,更多相关《哈理工计算机实践B16.docx(13页珍藏版)》请在冰豆网上搜索。
哈理工计算机实践B16
计算机实践
C/C++程序设计报告
指导教师
学号
学生姓名
专业
班级
电话
成绩
二〇一五年七月六日
一.设计题目
题目编号:
B16
题目名称:
输入任意个电影名字,按字典次序排序,直到输入的电影名字为999。
要求:
(1)使用字符型数组处理电影名字
(2)使用动态内存分配
(3)在主函数中输入电影名字
(4)建立一个子函数,实现将电影名字按字典次序排列
二.题目的意义
该程序可以随意输入任意个电影名字,并且实现按字典次序排列顺序,终止命令为输入电影名999。
电影名字在主函数中输入,先用动态内存分配,再用字符型数组处理,最后由一个子函数实现它们的排序。
可以用于电影查找,检索的快速、方便,从而节约人们的时间。
三.程序设计功能图
程序由4个条件要求(函数)组成,要求流程图如下:
图3-1程序条件流程图
表3-1主函数main()说明
模块名称
main
模块功能
主函数
模块说明
字符型数组,动态内存,排序,键入内容
类型
变量名
初值
值域
变量说明
int
n
1
[1-999]
选择后执行不同语句
string
s
50
执行指向命令的数组s
int
i
1
用于循环的数
int
j
1
参与运算的随机数
main()函数程序代码如下:
/************************
*学号:
*姓名:
*电话:
*班级:
*题目代码:
B16
*程序功能:
输入任意个电影名字,按字典次序排序,直到输入的电影名字为999。
*编程语言:
C++
************************/
#include
usingnamespacestd;
#include
structstring
//声明函数类型,主函数,数组函数
{
charstr[50];
//个字符型数组,其长度为50
}astr[1000];
voidsort(structstringas[],intlenth)
{//输入长度
inti;
structstringtemp;//用字符型数组处理电影名字
for(i=0;i { for(intj=i+1;j { if(strcmp(as[i].str,as[j].str)>0) { strcpy(temp.str,as[j].str); strcpy(as[j].str,as[i].str); strcpy(as[i].str,temp.str); }//使用动态内存分配 } } cout<<"排好的顺序为: "< for(i=0;i cout< } voidmain() { intn=999,num=0;//键入电影名为999,结束输入 while (1) { cout<<"输入电影名,输入999结束输入: "< cin>>astr[num].str; if(n==atoi(astr[num].str)) break; num++; } cout< sort(astr,num); } 表3-2主函数中输入电影名字说明 模块名称 voidmain()intn=999,num=0; 模块功能 主函数输入数据 模块说明 使电影名字在主函数中输出 类型 变量名 初值 值域 变量说明 int n [1-999] 循环,依次输入数据 int num0 [1-10] 形参: 参与运算的随机数0 int l 条件输入内容 输入电影名程序代码如下: //voidmain() { intn=999,num=0;//键入电影名为999,结束输入 while (1) { cout<<"输入电影名,输入999结束输入: "< 表3-3定义一个子函数,实现将电影名字按字典次序排列 模块名称 structstringfor(i=0;i 模块功能 用子函数将输入数据进行排序 模块说明 创建子函数,用排序法将输入数据按字典顺序排序 类型 变量名 初值 值域 变量说明 int j 1 形参: 参与运算的随机数1 int num2 [1-10] 形参: 参与运算的随机数2 int i 1 全局变量: 题号 str as[i] 全局变量: 练习者输入的答案 struct函数程序代码如下: structstringtemp; for(i=0;i { for(intj=i+1;j { if(strcmp(as[i].str,as[j].str)>0) { strcpy(temp.str,as[j].str); strcpy(as[j].str,as[i].str); strcpy(as[i].str,temp.str); } } } cout<<"排好的顺序为: "< 表3-4使用动态内存分配 模块名称 Voidmain();intn=999,num=0; 模块功能 动态内存分配 模块说明 用动态内存对输入数据进行同类分配 类型 变量名 初值 值域 变量说明 int n [1-999] 循环量 int num 0 形参: 参与运算的随机数2 int i [1,10] 全局变量: 题号 内存分配函数程序代码如下: //voidmain() { intn=999,num=0;//键入电影名为999,结束输入 while (1) { cout<<"输入电影名,输入999结束输入: "< cin>>astr[num].str; if(n==atoi(astr[num].str)) break; num++; } cout< sort(astr,num); } 表3-5使用字符型数组处理电影名字 模块名称 structstringcharstr[50]; 模块功能 字符处理数据 模块说明 用字符型数组将电影名字进行分类,整理 类型 变量名 初值 值域 变量说明 int i [1-10] 参与运算的随机数 str s 控制长度的数组 int lenth 长度变量 char 50 字符数组 strcmp()函数程序代码如下: //structstring { charstr[50]; //个字符型数组,其长度为50 }astr[1000]; voidsort(structstringas[],intlenth) {//输入长度 inti; structstringtemp cin>>astr[num].str; if(n==atoi(astr[num].str)) break; num++; } 四.详细设计 图4-1主程序流程图 五.程序运行界面 图5-1代码编辑界面截图 图5-2运行界面截图 图5-3原始数据图 六.调试、分析及总结 No 遇到问题 解决措施 1 对函数了解还不够深刻 问老师,多看书 2 输入数据时候容易重复 插入新函数防止重复 3 4 5 对本次设计的收获,对本课程的认识及思考。 对C语言有了更加深刻的了解,学会了指针的运用,字符数组,以及动态内存分配的意义。 六.参考资料 1.中国知网。 2. 七.综合评分 以下内容任课教师填写 序号 考察主项 教师评语 得分 备注 1 完成题目情况 2 代码格式规范 3 题目难度系数 4 创新性 5 实验报告文档 6 平时成绩 7 成绩合计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 理工 计算机 实践 B16
![提示](https://static.bdocx.com/images/bang_tan.gif)