C语言程序模板设计报告课程设计.docx
- 文档编号:13744446
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:25
- 大小:107.87KB
C语言程序模板设计报告课程设计.docx
《C语言程序模板设计报告课程设计.docx》由会员分享,可在线阅读,更多相关《C语言程序模板设计报告课程设计.docx(25页珍藏版)》请在冰点文库上搜索。
C语言程序模板设计报告课程设计
C语言课程设计报告
ExperimentDesigningreporter
课程名称:
c语言课程设计
英文名称:
CProgramExperimentDesigning
专业:
工商管理类+软件工程09-2
学号:
姓名:
指导教师:
日期:
2010年7月12日至2010年7月23日
大连交通大学软件学院
课程编号:
适用专业:
〈〈C语言课程设计》报告
CProgramExperimentDesigning
0120308006学时:
40学时
软件工程专业授课单位:
软件学院
一、C语言课程设计目的及要求
目的:
根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐
渐培养学生的编程能力、用计算机解决实际问题的能力。
要求:
1.熟悉TurboC的编程环境、主要菜单功能。
2.通过上机验证运算符、表达式、运算规则、函数使用。
3.熟练使用C语言的典型语句编写简单程序。
4.调试典型例题或习题。
5.提高上机编程能力
二、实验类型
设计类型
三、实验学时
40学时
四、实验设备
微型计算机、WINDOWS98以上版本的操作系统、TurboC2.0软件一套
五、C语言课程参考教材:
1.C语言程序设计清华大学出版社马靖善主编
2.谭浩强.C语言程序设计(第三版).北京:
高等教育出版社,2002
课程设计(报告)任务书
任务及要求:
1.设计(研究)内容和要求
研究内容:
C语言课程设计题目相关内容
5个小程序都分别是什么
任务和要求:
(1)学习C语言基础知识,掌握C语言编程和程序调试的基本技能。
(2)对指导教师下达的题目进行系统分析。
(3)根据分析结果完成系统设计。
(4)编程:
在计算机上实现题目的代码实现。
(5)完成对该系统的测试和调试。
(6)提交课程设计报告。
(7)指标:
要求完成课程设计报告3千字以上(约二、三十页).
完成若干综合性程序设计题目,综合设计题目的语句行数的和在300行语句以上。
2.原始依据
了解C语言的基础知识,有一定的语言编程基础,能够熟练运用C语言进行程序设计。
通过用C语言完成的题目,提高用C语言解决实际问题的能力。
3.参考文献
[1]黄明等•C语言程序设计辅导教材•大连理工大学出版社,2006
[2]马靖善等.C语言程序设计.清华大学出版社,2005
[3]谭浩强.C语言程序设计(第二版)•北京:
高等教育出版社,2002
C语言课程设计报告1
1谁在说谎问题1
1.1功能说明1
1.2设计说明1
2排列无重复数字的三位数1
2.1功能说明1
2.2设计说明1
3已知一组数据按从小到大输出2
3.1功能说明2
3.2设计说明2
4有两个字符串S1和S2,编写程序把它们连接起来2
4.1功能说明2
4.2设计说明2
5主函数说明3
5.1功能说明3
5.2程序运行截图3
5.3源程序代码3
6通讯录系统管
1.1功能说明3
1.2设计分析3
1.3程序运行截图4
1.4程序源代码4
大连交通大学软件学院
SOFTWAREINSTITUTEOFDALIANJIAOTONGUNIVERSITY
C语言课程设计报告
EXPERIMENTDESIGNING
1谁在说谎问题
1.1系统分析
通过if语句分析谁在说谎
1.2设计说明
1、定义:
#include"stdio.h"
2、子函数,判定谁在说谎。
函数名:
g1()
返回值:
abc其中之一
参数:
inta,b,c
处理流程:
Step1:
判定a是否为假,如果为真进去下一层,如果为假直接输出;Step2:
;判定b是否为假,如果为真进去下一层,如果为假直接输出Step3:
判定c是否为假,如果为假直接输出。
2排列无重复数字的三位数
2.1功能说明
将三个数排列成无重复的三位数
2.2设计说明
1、定义:
#include"stdio.h"
#include"conio.h"
2、子函数,输出无重复的三位数。
函数名:
g2()
返回值:
i,j,k
参数:
inti,j,k处理流程:
Step1:
输入三个数;
Step2:
以for循环排列三个数;
Step3:
输出无重复的三位数。
3已知一组数据按从小到大输出
3.1功能说明
将一组数据按从小到大输出。
3.2设计说明
1、定义:
#include
#defineN10
2、子函数,将数据从大到小输出。
函数名:
g3()
返回值:
一组数据
参数:
inta[N]={6,3,42,23,71,98,67,56,38};
inti,j,t;
处理流程:
Step1:
定义一组数据;
Step2:
用for循环判断数据的大小;
Step3:
输出数据按从小到大顺序。
4有两个字符串S1和S2,编写程序把它们连接起来
4.1功能说明
将两个字符串S1和S2,编写程序把它们连接
4.2设计说明
1、定义:
#include
2、子函数,连接两个字符串
函数名:
char
int
返回值:
两个字符串
参数:
charS1[80],S2[40];inti=0,j=0;
处理流程:
Step1:
定义两个字符串
Step2:
向子函数输入两个字符串;
Step3:
按顺序输出两个字符串。
5主函数说明
5.1功能说明
主函数main()
从键盘上输入1,则运行第一个程序:
谁在说谎问题
从键盘上输入2,则运行第二个程序:
排列无重复数字的三位数
从键盘上输入3,则运行第三个程序:
5个学生,输入他们的学号、姓名、数学成绩和英语成绩
从键盘上输入4,则运行第四个程序:
有两个字符串S1和S2,编写程序把它们连接起来
5.2程序运行截图
56,
协:
退出
Ifk32
4.3
Im
■■■■
1234
'C:
\U詔rs\X\Deskta氐富用字ccc'Debua\gong 「源 1,2 、冋复聲谎重组字说无-个霍已有 字的三位数 : 6,2,42,22,35,71,99,G7, 和編写程序把它勺]连按起来 4.3.1 4.3.2 3U top言羽手讥c\Debug\gongxSangyu.exen 5.3源程序代码 1,g1() #include"stdio.h"voidg1() {inta,b,c; for(a=0;a<=1;a++) for(b=0;b<=1;b++) for(c=0;c<=1;c++) if((a&&! b||! a&&b)&&(b&&! c||! b&&c||! b&&c)&&(c&&a+b==0||! c& &a+b! =0)) printf("zhangsantolda%s\n",a? "truth": "lie"); printf("lisitolda%s\n",b? "truth": "lie"); printf("wangwutolda%s\n",c? "truth": "lie"); getchar(); } 2,g2() #include"stdio.h"#include"conio.h" g2() { inti,j,k; printf("\n"); for(i=1;i<5;i++)for(j=1;j<5;j++) for(k=1;k<5;k++) { if(i! =k&&i! =j&&j! =k)printf("%d,%d,%d\n",i,j,k); } } 3,g3() #include #defineN10 g3() { inta[N]={6,3,42,23,71,98,67,56,38};inti,j,t; printf("Thearraybeforesorted: ");for(i=0;i printf("%4d",a[i]); for(i=0;i<9;i++)for(j=1;j<10;j++) { t=a[i]; a[i]=a[j]; a[j]=t; }for(i=0;i } 4,g4() #include g4() { charS1[80],S2[40]; inti=0,j=0; printf("\nInputstring1: "); scanf("%s",S1); printf("\nInputstring2: "); scanf("%s",S2); while(S1[i]! ='\0') i++; while(S2[j]! ='\0') {S1[i++]=S2[j++]; S1[i]='\0';} printf("\nTheconnectedstringis: "); printf("%s",S1); } 5,main() #inelude"stdio.h" externg1();externg2();externg3();externg4();main() { inti; printf("0: 退出\n"); printf("1: 谁在说谎问题\n”); printf("2: 排列无重复数字的三位数\n"); printf("3: 已知一组数据: 6,3,42,23,35,71,98,6printf("4: 有两个字符串S1和S2,编写程序把它们连接起来while (1) { scanf("%d",&i); switeh(i) { case1: g1();break; case2: g2();break; case3: g3();break; case4: g4(); } } } 56,38\n"); \n"); 6通讯录管理 6.1功能说明 (1)通讯录信息和数据格式: 姓名、地址、学号、 (2)程序功能: <1>添加记录 <2>输出记录 <3>查找记录(按姓名查找) <4>删除记录 <5>保存到文件 <6>打开文件 QQ号、 号、电子邮箱号 6.2设计说明 1)数据结构 依据给定的通讯录信息和数据格式,链表结点必须用结构实现。 结构类型的层次 结构: structlist/*定义数据结构*/ charname[20];/*姓名*/ charaddr[20];/*地址*/ charnum[20];/*学号*/ charqq[1O];/*qq号*/ charphnum[20];/*电话号码*/ charemail[30];/*电子邮箱号*/ (2)模块化分 主函数 main() 添加记录 voidAdd() 输出记录 voidprint() 查找记录(按姓名查找) voidFind() 删除记录 voidDelete() 保存到文件 voidSaveFree() 打开文件 voidCreat() 主菜单函数 voidmenu() (3)功能模块图 通讯录管理系统 添 显 查 删 保 打 退 加 示 找 除 存 开 出 联 联 联 联 到 文 系 系人 系人 系人 系人 文件 件 统 通讯录管理功能模块图 (4)程序处理流程 系统的执行应从系统菜单的选择开始,允许用户输入0-4之间的数值来选择要进行 的操作,输入其它字符都是无效的,系统会给出出错的提示信息。 若用户输入1则调用 add()函数,进行添加联系人操作;若输入2,则调用print()函数,显示联系人信息;若输入3,则调用find()函数,查找联系人信息;若用户输入4,则调用delete()函数, 删除联系人信息;若输入0,则调用savefree()函数,将联系人信息保存到文件;输入其他,将退出 6.3程序运行截图 大连交通大学软件学院 SOFTWAREINSTITUTEOFDALIANJIAOTONGUNIVERSITY C语言课程设计报告 EXPERIMENTDESIGNING 6.4源程序 #include #include #include structlist charname[20]; charaddr[20]; charnum[20]; charqq[1O]; charphnum[20]; charemail[30]; structlist*next; }; typedefstructlistLIST; LIST*head二NULL; voidmenu();/*菜单*/voidAdd();/*添加记录*/voidprint();/*输出记录*/voidFind();/*查找记录(按姓名)*/voidDelete();/*删除记录*/voidSaveFree();/*保存到文件*/voidCreat();/*打开文件*/ voidmain() charc; Creat();/*打开文件*/ while (1) menu();/*显示菜单*/ seanf(”%c",&c); switch(c)case'1': Add();break;/*添加记录*/case2: print();break;/*输出条目*/case3: Find();break;/*查找条目1.按姓名*/case'4': Delete();/*删除信息*/print();break;/*输出删除后的结果*/case'O': SaveFree();/保存并释放内存*/exit(O);/*退出*/break; default: printf("选择错误r); break; /*菜单*/ voidmenu() printf("\n ***************** ********************* \n"); printf( *\t1. 添加记录 ******************* \n"); printf( *\t2. 输出记录 ******************* \n"); printf( *\t3. 查询记录 ***************** \n"); printf( *\t4. 删除记录 ******************* \n"); printf("***********\t0.保存并退出! **************** \n"); printf( H************************************************ \n") printf("\t请选择将要进行的操作: \n"); /*添加记录*/voidAdd() LIST*p仁NULL,*p2二NULL; p1=(LIST*)malloc(sizeof(LIST));/*申请结点*/ printf("输入姓名: \n");/*添加信息*/ seanf("%s",p1->name); printf("输入地址: \n"); seanf("%s",p1->addr); printf("输入学号: \n"); seanf("%s",p1->num); printf("请输入qq号: \n"); seanf("%s",p1->qq); printf("输入电话: \n”); seanf("%s",p1->phnum); printf("请输入email: 'n"); seanf("%s",p1->email); p1->next二NULL;/*保存到链表*/ if(head==NULL) head=(LIST*)malloc(sizeof(LIST));/*申请空间*/ head->next=p1; elsefor(p2=head;p2->next! 二NULL;p2=p2->next);/*找到结点尾*/ p2->next=p1; printf("此记录已添加! ”); /*输出学生信息*/ voidprint() LIST*p=NULL; if(head==NULL) printf("这是一个新记录,请添加记录\n"); return; printf( ********************* \n");/* 通讯录系 输出信息*/ printf("姓名\t\t地址\t学号\t\tqq\t\t电话\t\temail\n"); for(p二head->next;p! 二NULL;p=p->next)printf("%s\t\t%s\t%s\t%s\t%s\t%s\n",p->name,p->addr,p->num,p->qq,p->phnum,p->email); } /*查找信息1•按姓名、2、按学号*/ voidFind() LIST*p; charname1[20],num1[20]; inti; printf("请输入查找方式1、按姓名;2、按学号"); scanf("%d",&i); if(i==1) printf("请输入要查找的姓名: \n"); seanf("%s",name1); printf( 通讯录系 printf("姓名\t\t地址\t学号\tqq\t电话\t\temail\n"); for(p二head->next;p! =NULL;p=p->next) if(stremp(p->name,name1)==0) printf("%s\t\t%s\t%s\t%s\t%s\t%s\n",p->name,p->addr,p->num,p->qq,p->phnum,p->email); elseif(i==2) printf("请输入要查找人的学号: \n"); seanf("%s",num1); printf("**************通讯录系统 *********************、V、・ printf("姓名\t\t地址\t学号\tqq\t电话\temail\n"); for(p二head->next;p! 二NULL;p=p->next) if(stremp(p->num,num1)==0) printf("%s\t\t%s\t%s\t%s\t%s\t%s\n",p->name,p->addr,p->num,p->qq,p->phnum,p->email); else printf("请选择1和2两哥数字\n"); /*删除信息*/ voidDelete() charname1[20];/*先查找后删除*/ LIST*p=head->next,*pr=head->next; printf("请输入要删除的姓名: \n"); scanf("%s",name1); if(head->next==NULL) printf("无此节点! \n"); return; while((strcmp(p->name,name1)! =0)&&p->next! =NULL) pr=p; p=p->next; if(strcmp(name1,p->name)==0)/*输出删除信息*/printf("%s\t\t%s\t%s\t%s\t%s\t%s\n",p->next->name,p->next->addr,p->next->num,p->next->qq,p->next->phnum,p->next->email); if(p==head->next) head->next=p->next; else pr->next=p->next; free(p); printf("此记录已删除! "); /*保存链表信息到文件并释放内存空间*/ voidSaveFree() LIST*p=NULL; FILE*fp; char*Book二"list.txt"; if(head==NULL) printf("\n记录为空! \n"); return; else p=head->next; if((fp二fopen(Book,"wb+"))==NULL) printf("\n打不开文件! \n”); return; while(p! 二NULL)/*保存信息*/ fwrite(p,sizeof(LIST),1,fp); p=p->next; printf("保存完毕! "); fclose(fp); *****释放链表空间***** for(;head->next! 二NULL;) p=head->next; head->next二head->next->next; free(p); free(head); /*文件信息输出到链表*/ voidCreat() FILE*fp; LIST*p1二NULL,*p2二NULL,*temp二NULL; if((fp二fopen("addresslist.txt","rb+"))==NULL) printf("\n****************这是一个新的通讯录管理系统 ******************、|^||\・ return; head=(LIST*)malloc(sizeof(LIST)); head->next二NULL; temp二p2二head; while(! feof(fp))/*循环读取*/ p1=(LIST*)malloc(sizeof(LIST)); temp=p2; p2->next=p1; p2=p1; fread(p1,sizeof(LIST),1,fp); temp->next二NULL; fclose(fp);/*关闭文件*/ }代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 模板 设计 报告 课程设计