c语言课设Word下载.docx
《c语言课设Word下载.docx》由会员分享,可在线阅读,更多相关《c语言课设Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
很好
好
比较好
一般
不好
报告完成情况
纪律表现
程序创意
所选模块完成情况
较差
所选算法难易程度
复杂
比较复杂
简单
很简单
程序可操作性
答辩表现
最后成绩
优秀
A>
=5
B<
=3
C<
=0
D=0
E=0
良好
=4
=1
中等
B>
=2
C>
D<
及格
A=0
B=0
D>
不及格
C=0
E>
负责指导教师:
(签名)
指导教师:
自本102班C语言课程设计任务书
一、设计目的
通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。
二、设计要求
1、认真查阅参考书、资料2、遵守课程设计时间安排
3、按时上机,认真调试程序4、认真完成课程设计报告
三、课设报告装订内容及顺序
1、课程设计封皮2、目录
3、课程设计成绩评定表4、课程设计任务书
5、程序基本框架图6、程序设计说明书
7、源代码清单8、课设总结与心得
四、设计题目
●通讯录管理系统
五、时间安排(一周:
从6月13日到6月17日)
1、查阅资料及程序设计(1天)2、程序编制及调试(3天)
3、成绩评定(0.5天)3、打印报告(0.5天)
六、参考文献
1、《C语言程序设计》李淑华/李贞编大连理工大学出版社
2、《C语言程序设计》孙连科/姚大鹏编辽海出版社
3、《C++时尚编程百例》网冠科技编.机械工业出版社
4、《TURBOC实用大全》徐金梧等编.机械工业出版社
程序基本框架结构图
程序设计说明书
一、程序运用的语句:
Switch语句,
For语句,
If语句。
二、程序构思:
程序通过运用switch语句实现各种功能的选择,通过for(;
;
)有限循环实现联系人的添加,通过for循环语句实现联系人的显示,通过字符串的比较实现联系人的查找。
程序的亮点在于其简单易于操作,便于各种功能的顺利运行,而且程序的所有函数都在我们的知识范围之内,便于程序的调试和完善。
可移植性良好。
三、程序功能简介
本程序有添加联系人,查找联系人,删除联系人,显示,编辑,读取保存功能。
(一)、添加联系人:
定义全局变量,结构体指针,采用for有限循环进行输入。
(二)、查找联系人:
利用字符串的比较功能(strcmp),For循环语句和输出函数(printf)实现该功能。
(三)、删除联系:
利用字符串的比较,字符串拷贝,If语句,For循环实现该功能,全局变量n自减改变记录条数。
(四)、显示:
利用全局变量n,For循环语句实现该功能。
(五)、编辑:
利用字符串的比较,字符串的拷贝,switch语句,全局变量n和for循环,把记录内容显示。
(六)、读取:
利用文件指针,文件打开函数fopen(),switch语句,fseek()函数,定位函数rewind()来实现。
(七)、保存:
利用文件指针,switch语句,以及一些文件操作实现该功能。
源代码清单
#include<
stdio.h>
string.h>
stdlib.h>
conio.h>
typedef
structTongxun
{
charname[40];
charage[40];
charphone[40];
charqq[40];
charemail[40];
charaddress[40];
}TX;
TXstu[400];
TX*p=stu;
intn=0;
charS[50];
charS1[50];
voidAdd(TXstu[])
inti,m;
printf("
添加联系信息\n"
);
请输入添加联系人的个数:
"
scanf("
%d"
&
m);
for(i=n;
i<
m+n;
i++)
{printf("
输入序号:
%d\n"
i+1);
姓名:
%s"
(p+i)->
name);
年龄:
age);
电话:
phone);
QQ:
qq);
邮箱:
email);
家庭住址:
address);
}
n=n+m;
添加成功,按任意键返回"
getch();
voidSearch(TXstu[])
{inti,j,k=1;
charName[40];
请输入要查询的姓名:
Name);
for(i=0;
n;
j=strcmp(Name,stu[i].name);
if(j==0)
成功找到\n"
%s,年龄:
%s,电话:
%s,QQ:
%s,邮箱:
%s,家庭住址:
%s\n"
name,(p+i)->
age,(p+i)->
phone,(p+i)->
qq,(p+i)->
email,(p+n)->
k=0;
if(k!
=0)
对不起,未发现要查找的信息\n"
按任意键返回"
voidDelete(TXstu[])
{inti,j,m,k=1,judge;
请输入要删除的姓名:
确实要删除此条信息?
是:
1;
否:
其他:
judge);
if(judge==1)
for(m=n-1;
m>
i;
m--)
strcpy(stu[m-1].name,stu[m].name);
strcpy(stu[m-1].age,stu[m].age);
strcpy(stu[m-1].phone,stu[m].phone);
strcpy(stu[m-1].qq,stu[m].qq);
strcpy(stu[m-1].email,stu[m].email);
strcpy(stu[m-1].address,stu[m].address);
保存文件后删除成功\n"
n=n-1;
对不起,未发现要删除的信息\n"
voidEdit(TXstu[])
inti,j,k=1,num,num1;
charEditor[40];
请输入要修改的信息姓名:
\n"
选择修改项目\n"
1、姓名\n"
2、年龄\n"
3、电话\n"
4、QQ\n"
5、邮箱\n"
6、家庭住址\n"
0、返回\n"
while(num1!
您要选择:
num);
switch(num)
case0:
num1=0;
break;
case1:
{
输入新的名字:
Editor);
strcpy(stu[i].name,Editor);
Editor[0]='
\0'
;
}break;
case2:
输入新的年龄:
strcpy(stu[i].age,Editor);
case3:
输入新的电话:
strcpy(stu[i].phone,Editor);
case4:
输入新的QQ:
strcpy(stu[i].qq,Editor);
case5:
输入新的邮箱:
strcpy(stu[i].email,Editor);
case6:
输入新的家庭住址:
strcpy(stu[i].address,Editor);
voidDisplay(TXstu[])
{inti;
记录:
%s\n电话:
%s\n家庭住址:
(p+i)->
email,(p+i)->
voidType(TXstu[])
inti,j;
FILE*fp;
输入原通讯录的文件名以及路径:
S);
fp=fopen(S,"
rb"
if(fp==NULL)
没有找到文件是否建立新文件:
1、是2、否:
j);
switch(j)
case2:
exit
(1);
break;
case1:
{S[0]='
请输入要新建的文件名以及路径:
wb"
else
{rewind(fp);
fscanf(fp,"
n);
n+1;
{fseek(fp,2+i*240,SEEK_SET);
fread(p+i,1,240,fp);
}
fclose(fp);
voidSave(TXstu[])
{intx,y;
FILE*fp1;
1、保存2、另存为"
x);
switch(x)
fp1=fopen(S,"
请输入要保存的文件名以及路径:
S1);
fp1=fopen(S1,"
rewind(fp1);
fprintf(fp1,"
n);
for(y=0;
y<
y++)
{fseek(fp1,2+y*240,SEEK_SET);
fwrite(p+y,1,240,fp1);
fclose(fp1);
voidMenu()
:
:
∴★∵**☆欢迎来到通讯录**☆.∴★∵**☆\n"
∴★∵**☆.∴★∵*主菜单∴★∵**☆.∴★∵**☆∴.\n"
1、添加联系人\n"
2、查找联系人\n"
3、删除联系人\n"
4、显示通讯录\n"
5、编辑通讯录\n"
6、读取通讯录\n"
7、保存通讯录\n"
0、退出\n"
voidmain()
{inti=1,a,j;
Type(stu);
while(i!
{system("
cls"
Menu();
请输入要操作的选项:
a);
switch(a)
Add(stu);
Search(stu);
Delete(stu);
Display(stu);
Edit(stu);
Type(stu);
case7:
Save(stu);
i=0;
是否要保存修改:
1、是2、否"
exit(0);
exit(0);
课程设计总结
在忙碌的学习和工作后,我们终于完成了属于我们自己的C语言程序设计。
在本次课程设计,使我对计算机C语言内容有了更深一步的熟悉深化,在理论的基础上,进行实践研究。
我们通过自己亲自动手实践中查缺补漏,完善学习。
分工合作进行,大家互帮互助,并且在组长的领导下,我们的工作完成得很顺利,也条学会了更多的知识。
深深的懂得了编程不是一见很容易的事情。
学习C语言,它对于我们,特别是初学者的我们来说更是有一顶挑战性的课程,但是只要我们努力的去学习研究,一切问题终究会被我们所解决,我们只要是用心去学习了,我们就会有收获。
在大家密切的配合下,同学之间取长补短,顺利的完成了所分配的任务.虽然期间有很多波折,但在团体精神的鼓舞下,在组长的带动下,我负责的是通讯录的读取顺利完成,组员的努力合作充分发挥团队的力量,集体的作用,使本次设计圆满的完成了。
这次实训设计,在程序设计的中,我遇到了好多的问题,有时竟会因为一个小小的疏忽让以前所有的设计都前功尽弃。
但是我没有放弃,我的组员们也尽力的帮助我,让我在重重困境里获得了成功。
虽然一些问题的出现阻碍了设计的进度,但在解决问题的过程中让我明白了好多新知识,从而也锻炼了自己的耐力,更加深了我和同学之间的友谊一周的实训,不仅仅检验了我一直以来的学习情况,还加深了我对这门知识的进一步理解,在今后的学习中,我们不仅要牢记书本知识,掌握理论,而且还应学会把理论联系实际中,充分运用所学到的知识,让我们所学的知识能够更好的发挥起作用。
这次实训不仅增强了我对计算机程序设计这门科学的热情和信心,同时更加增强了我们的动手能力和应用能力,丰富了我们的实践经验,让我们在今后的学习和工作中能更好的发挥自己的能力.。
在老师的指导和组员同学的帮助下,虽然出现的问题都被一一解决了,但也让我清楚的明白:
自己对这门知识的掌握还不够,还有很多不足的地方,以后应更加的努力学习.
在以后的生活中、,我们会学习更多的知识,也会运用更多的知识,
在课程设计过程中,我学到了很多书本上没有的知识,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,无论面对什么问题,都以平常心去对待,因为黑夜终将过去,我们收获的会是黎明。