C语言程序模板设计报告课程设计.docx

上传人:b****1 文档编号:13744446 上传时间:2023-06-17 格式:DOCX 页数:25 大小:107.87KB
下载 相关 举报
C语言程序模板设计报告课程设计.docx_第1页
第1页 / 共25页
C语言程序模板设计报告课程设计.docx_第2页
第2页 / 共25页
C语言程序模板设计报告课程设计.docx_第3页
第3页 / 共25页
C语言程序模板设计报告课程设计.docx_第4页
第4页 / 共25页
C语言程序模板设计报告课程设计.docx_第5页
第5页 / 共25页
C语言程序模板设计报告课程设计.docx_第6页
第6页 / 共25页
C语言程序模板设计报告课程设计.docx_第7页
第7页 / 共25页
C语言程序模板设计报告课程设计.docx_第8页
第8页 / 共25页
C语言程序模板设计报告课程设计.docx_第9页
第9页 / 共25页
C语言程序模板设计报告课程设计.docx_第10页
第10页 / 共25页
C语言程序模板设计报告课程设计.docx_第11页
第11页 / 共25页
C语言程序模板设计报告课程设计.docx_第12页
第12页 / 共25页
C语言程序模板设计报告课程设计.docx_第13页
第13页 / 共25页
C语言程序模板设计报告课程设计.docx_第14页
第14页 / 共25页
C语言程序模板设计报告课程设计.docx_第15页
第15页 / 共25页
C语言程序模板设计报告课程设计.docx_第16页
第16页 / 共25页
C语言程序模板设计报告课程设计.docx_第17页
第17页 / 共25页
C语言程序模板设计报告课程设计.docx_第18页
第18页 / 共25页
C语言程序模板设计报告课程设计.docx_第19页
第19页 / 共25页
C语言程序模板设计报告课程设计.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序模板设计报告课程设计.docx

《C语言程序模板设计报告课程设计.docx》由会员分享,可在线阅读,更多相关《C语言程序模板设计报告课程设计.docx(25页珍藏版)》请在冰点文库上搜索。

C语言程序模板设计报告课程设计.docx

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);/*关闭文件*/

}代码

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2