C语言课程设计报告.docx
《C语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告.docx(33页珍藏版)》请在冰豆网上搜索。
![C语言课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-11/15/b23ed1c8-1ac7-432f-94d3-fe45d7b7147d/b23ed1c8-1ac7-432f-94d3-fe45d7b7147d1.gif)
C语言课程设计报告
山东建筑大学计算机科学与技术学院
课程设计说明书
题目:
任务三:
单个字符串的基本操作
任务五:
万年历程序
任务七:
数据文件格式变换程序
课程:
C语言课程设计
院(部):
计算机科学与技术学院
专业:
计算机软件工程
班级:
软件091
学生姓名:
赵德昌
学号:
2009111123
指导教师:
徐遵义
完成日期:
2010.6.18
山东建筑大学计算机科学与技术学院
课程设计任务书三
设计题目
单个字符串的基本操作
已知技术参数和设计要求
1、主要参数:
一个字符串,子字串长度,待查找字符或字符串。
2、完成以下功能:
计算字符串的长度;获取字符串的左、右给定长度的字符子串,给定始点和长度的字符子串;字符或字符串的查找,字符串的全部变换为大写字符;
3、要应用以下知识点:
字符串基本输入、输出;循环控制结构;字符数组。
设计内容与步骤
1、将字符串的最大长度定义为符号常量;
2、定义字符串为一维数组或一块连续内存空间;
3、分析设计所有的操作;
4、程序设计、实现、调试;
5、课程设计说明书;
设计工作计划与进度安排
1、设计工作4学时;
2、实现与调试4学时;
3、课程设计说明书2学时;
设计考核要求
1、考勤20%;
2、课程设计说明书50%,完成基本的操作可以获得40分,如果能实现要求的矩阵的所有操作功能则可得满分;
3、答辩30%;
指导教师(签字):
教研室主任(签字)
山东建筑大学计算机科学与技术学院
课程设计任务书五
设计题目
万年历程序
已知技术参数和设计要求
1、主要参数:
输入日期或月份。
2、完成以下功能:
已知2000年1月1日是星期六,请根据给定的日期(格式为YYYY/MM/DD或YYYY.MM.DD)显示该日是星期几,根据输入的月份(格式为YYYY/MM或YYYY.MM)以日历形式显示本月各日所对应星期,要考虑日期以程序命令行参数方式输入。
3、要应用以下知识点:
字符数组基本输入、输出;分支结构;循环控制结构;命令行参数。
设计内容与步骤
1、设计可识别的日期格式如2009/04/08,2009.04.08,2009/04,2009.04等;
2、分析设计所有的操作;
3、程序设计、实现、调试;
4、课程设计说明书;
设计工作计划与进度安排
1、设计工作4学时;
2、实现与调试4学时;
3、课程设计说明书2学时;
设计考核要求
1、考勤20%;
2、课程设计说明书50%,完成基本的操作可以获得40分,如果能实现要求的矩阵的所有操作功能则可得满分;
3、答辩30%;
指导教师(签字):
教研室主任(签字)
山东建筑大学计算机科学与技术学院
课程设计任务书七
设计题目
简单的数据文件格式变换
已知技术参数和设计要求
1、主要参数:
输入用空格分割的数据文件,输出为逗号分割的数据文件。
2、完成以下功能:
完成将用空格分割的数据文件转化为逗号分割的数据文件;将原文件中的每两行合并为一行输出,合并行之间用分号分割;
3、要应用以下知识点:
文件的读写;字符的操作;命令行参数的使用。
设计内容与步骤
1、分析给定文件中存在的数据分割格式,定义两个字符数组作为文件读写缓冲区;
2、分析设计所有的操作;
3、程序设计、实现、调试;
4、课程设计说明书;
设计工作计划与进度安排
1、设计工作8学时;
2、实现与调试8学时;
3、课程设计说明书4学时;
设计考核要求
1、考勤20%;
2、课程设计说明书50%,完成基本的操作可以获得40分,如果能实现要求的文件格式转换功能则可得满分;
3、答辩30%;
指导教师(签字):
教研室主任(签字)
题目三:
单个字符串的基本操作
一、问题描述
字符和字符串处理是现实生活中很多问题的基本处理之一,如字典管理、姓名查询等。
本任务书要求:
1、接收输入任意长度的字符串,但在输入前大体知道要输入串的总长度;2、获取已知字符串的实际长度;3、获取已输入字符串左端或右端长度为n的字符串,若n大于字符串总长度则获取整个字符串;4、根据给定的起始位置和长度获取已知字符串中间部分子串;5、判断给定字符是否在已知字符串中,若存在给出所在位置;6、将已知字符串反转;7、将字符串中所有字符变换为大写字符;
二、基本要求
完成基本的操作可以获得40分,如果能实现要求的字符串的所有操作功能则可得满分;
三、程序结构流程图
四、主要函数描述
Str1:
输出字符串左端或右端长为n的字符串
Str2:
输出给定起始位置与长度的字符串
Str3:
在已知字符串中找所输入的字符
Str4:
将字符串中的字符全变换为大写字符
Str5:
将输入的字符串反转
五、测试数据及测试情况
要求说明为什么使用这些测试数据,测试情况需要拷贝屏幕执行结果。
题目五:
万年历程序
一、问题描述
根据给定的日期(格式为YYYY/MM/DD或YYYY.MM.DD)显示该日是星期几,根据输入的月份(格式为YYYY/MM或YYYY.MM)以日历形式显示本月各日所对应星期,要考虑日期以程序命令行参数方式输入。
若输入:
2009/04
thecalendarofthismonthasfollowing
*********************************
SUNMONTUEWENTHUFRISTA
1234
567891011
12131415161718
19202122232425
2627282930
*********************************
OK!
若输入:
2009/04/01则输出
Thisday(2009/04/01)isWEDNESDAY(3)
OK!
二、基本要求
完成基本的操作可以获得40分,如果能实现要求的万年历的所有操作功能则可得满分;
三、程序结构流程图
四、主要函数描述
DataTrans:
将字符串表示的日期变换为整数分别表示的年、月、日
IsLeapYear:
判断给定的年份是否是闰年
GetWeekOfFirstday:
相对于2000年1月1日是星期六,计算查询年nYear1月1日是星期几
GetWeek:
计算查询日是星期几
PrintCalendar:
根据查询日、星期几打印日历
五、测试数据及测试情况
要求说明为什么使用这些测试数据,测试情况需要拷贝屏幕执行结果。
题目七:
数据文件格式变换程序
一、问题描述
完成将用空格分割的数据文件转化为逗号分割的数据文件;将原文件中的每两行合并为一行输出,合并行之间用分号分割,如下所示
二、基本要求
完成基本的操作可以获得40分,如果能实现要求的文件格式转换功能则可得满分;
三、程序结构流程图
四、主要函数描述
fgets:
输入指定文件
fopen:
打开指定文件
fclose:
关闭指定文件
feof:
是否读文件到尾部
fread:
每次从被读文件读取指定大小的数据存到指定的文件
fprintf:
从一个文件以指定的方式写入另一个文件
五、测试数据及测试情况
结论
本次课程设计你学到了那些东西,有何不足和体会;
回想学习C语言的过程中,既有快乐又有烦恼。
从领到书的那一刻,我就很郁闷,《C语言程序设计》到底事学什么的,有什么用。
刚开始上课时,还在迷茫这门课程是用来做什么的。
不过,这些感受都是在对这门课程不了解的情况下产生的。
后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。
尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。
通过半个学期的学习,我掌握了基本知识。
下学期开始时,被通知要进行课程设计。
当时有点懵,感觉学的东西很少,很零散,不知该怎么练到一起,就要课程设计,是不是太难为我们了。
前几周基本上都是在看书,把基本知识再熟悉一边。
老师发过来十道练习题,从中选了三道,从这几道练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。
过了几周,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。
虽然设计时完成了,但是我觉得其中还是由一些不足之处:
1.警告句。
程序中缺少一些警告句,例如:
“是否继续(y/n)?
”。
2.重名的情况。
由于考虑的不周全,没有设计遇到重名的情况该怎么处理。
3.选择单一。
我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。
整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。
课程设计结束了,但是这段时间里,我又学到了更多C知识,如:
对象数组,string类,文件流等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全。
,也看到了团队精神和互帮互助的重要性。
这一点会让我终生受益。
通过几周的课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这几周过的挺充实!
参考文献
[1].《C语言程序设计》
[2].《电脑知识与技术》
[3].网络查询
山东建筑大学计算机科学与技术学院
课程设计指导教师评语
班级:
软件091学生姓名:
赵德昌学号:
2009111123
指导教师评语(包括工作态度,遵守纪律;基本理论、知识、技能;独立工作能力和分析解决问题的能力;完成任务情况及水平):
学生成绩(百分制):
指导教师签名:
年月日
附件
//任务三单个字符串的基本操作
(代码名:
3.cpp)
#include
#include
#include
#defineN80
voidStr1(intm,intn,charmemblock[]);
voidStr2(intp,intq,intm,charmemblock[]);
voidStr3(charc,intm,charmemblock[]);
voidStr4(charmemblock[],intm);
voidStr5(intm,charmemblock[]);
//目录函数
voidmnuMain()
{
printf("\n");
printf("*********************程序功能目录********************\n");
printf("********程序功能******************与功能对应的选择***\n");
printf("输出字符串左端或右端长为n的字符串1\n");
printf("输出给定起始位置与长度的字符串2\n");
printf("在已知字符串中找所输入的字符3\n");
printf("将字符串中的字符全变换为大写字符4\n");
printf("将输入的字符串反转5\n");
printf("退出程序0\n");
printf("****************************************************\n");
printf("\n");
}
voidmain()
{
charstr[N],c;
intm,n,p,q,Q;
printf("请输入一个字符串:
");
scanf("%s",st