c语言报告Word下载.docx
- 文档编号:19651497
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:21
- 大小:195.75KB
c语言报告Word下载.docx
《c语言报告Word下载.docx》由会员分享,可在线阅读,更多相关《c语言报告Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
完成全部人信息的显示。
(4)、查询功能:
完成按姓名和电话号码查找信息并显示。
(5)、通讯信息的删除:
按姓名进行删除某人的通讯信息.
(6)、排序功能:
按姓名进行排序。
(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。
四.课程设计应完成的工作
(1)编写算法;
(2)算法测试,并有具体的测试结果和结果分析;
1
(3)撰写课程设计报告。
内容包括:
1)封面扉页
2)设计任务书
3)目录
4)总体设计方案
5)使用说明及运行实例(包括界面)
6)设计内容简介
7)项目源程序代码(注意注释的使用)
8)指导教师评语
五.总体设计(包含几大功能模块)
1、信息录入功能
2、信息输出功能
3、信息查询功能
4、删除模块
5、排序功能
6、统计功能
7、退出系统
六.源程序及运行结果
1.源程序
#include<
stdio.h>
stdlib.h>
//定义杂项函数及内存分配函数
string.h>
//字符串处理
conio.h>
//通过控制台进行数据输入和数据输出的函数
structrecord
{
charname[20];
//姓名
charphone[12];
//电话
charadress[50];
//地址
charpostcode[8];
//邮政编码
chare_mail[20];
//电子邮件。
}student[100];
//假设最大数为100.
//定义全局变量num,表示已经输入的人数。
2
intnum;
//这里使用数组解决通讯录的问题,实际上使用链表更好。
intmenu_select()
chars[80];
inta;
/*定义整形变量*/
system("
cls"
);
printf("
\t\t***********欢迎进入通讯管理界面********\n\n"
\t\t\t0.输入记录\n"
\t\t\t1.显示记录\n"
\t\t\t2.按姓名查找\n"
\t\t\t3.按电话号码查找\n"
\t\t\t4.插入记录\n"
\t\t\t5.按姓名排序\n"
\t\t\t6.删除记录\n"
\t\t\t7.Quit\n"
\t\t***********************************************\n\n"
do{
printf("
Enteryouchoice(0~7):
"
scanf("
%s"
s);
a=atoi(s);
}
while(a<
0||a>
7);
returna;
}
intadduser()
\t\t\t****************请输入用户信息****************\n"
\t\t\t输入姓名:
\n"
scanf("
student[num].name);
\t\t\t输入电话号码:
student[num].phone);
\t\t\t输入地址:
student[num].adress);
\t\t\t输入邮编:
student[num].postcode);
\t\t\t输入e-mail:
student[num].e_mail);
num++;
\t\t\t是否继续添加?
(Y/N):
3
if(getch()=='
y'
||getch()=='
Y'
)
adduser();
return(0);
voidlist()
inti;
if(num!
=0)
{
\t\t\t***************以下为通讯录所有信息************\n"
for(i=0;
i<
num;
i++)
\t\t\t姓名:
%s\n"
student[i].name);
\t\t\t电话:
student[i].phone);
\t\t\t地址:
student[i].adress);
\t\t\t邮编:
student[i].postcode);
\t\t\te-mail:
student[i].e_mail);
if(i+1<
num)
system("
pause"
\t\t\t************************************************\n"
else
\t\t\t通讯录中无任何纪录\n"
\t\t\t按任意键返回主菜单:
getch();
//这里是无回显的输入字符,你输入的字符不会显示在屏幕上。
return;
intsearchbyname()
intmark=0;
\t\t\t*****************按姓名查找*******************\n"
4
printf("
\t\t\t请输入姓名:
name);
for(i=0;
if(strcmp(student[i].name,name)==0)
{
\t\t\t*************以下是您查找的用户信息***********\n"
printf("
%s"
mark++;
if((i+1)<
\t\t\t是否继续查找相同名字的用户信息:
(y/n)\n"
if(getch()=='
{
continue;
}
else
return(0);
}
else
\t\t\t按任意键返回主菜单"
getch();
return(0);
if(mark==0)
\t\t\t没有相同姓名的用户纪录\n"
\t\t\t按任意键返回主菜单\n"
getch();
return(0);
5
return0;
intsearchbyphone()
\t\t\t******************按电话查找******************\n"
charphone[10];
\t\t\t请输入电话号码:
phone);
if(strcmp(student[i].phone,phone)==0)
\t\t\t**************以下是您查找的用户信息**********\n"
mark++;
if(mark==0)
\t\t\t没有改用户的信息\n"
voiddeletebyphone()
6
inti,j;
intdeletemark=0;
charphone[20];
\t\t\t请输入要删除用户电话号码:
if(num==0)
\t\t\t对不起,文件中无任何纪录\n"
if(strcmp(student[i].phone,phone)==0)
\t\t\t以下是您要删除的用户纪录:
\t\t\t是否删除?
(y/n)"
if(getch()=='
for(j=i;
j<
num-1;
j++)
student[j]=student[j+1];
num--;
deletemark++;
printf("
\t\t\t删除成功"
\t\t\t是否继续删除?
if(getch()=='
deletebyphone();
return;
return;
continue;
if(deletemark==0)
7
\t\t\t没有该用户的纪录"
if(getch()=='
deletebyphone();
return;
voiddeletebyname()
inta=0;
intfindmark=0;
intj;
\t\t\t请输入要删除用户姓名:
for(i=a;
if(strcmp(student[i].name,name)==0)
findmark++;
\t\t\t________________________________"
if(getch()=='
||getch()=='
for(j=i;
student[j]=student[j+1];
num--;
deletemark++;
if((i+1)<
\t\t\t是否继续删除相同姓名的用户信息?
8
a=i;
continue;
deletebyname();
if((deletemark==0)&
&
(findmark==0))
deletebyphone();
elseif(findmark!
\t\t\t没有重名信息"
9
intdele()
charchoic;
\t\t\t1-按电话号码删除2-按姓名删除"
\t\t\t请选择:
choic=getch();
switch(choic)
case'
1'
:
deletebyphone();
break;
2'
deletebyname();
intsortbyname()//按姓名进行排序
inti,j;
structrecordtmp;
for(i=1;
if(strcmp(student[i].name,student[i-1].name)<
0)
tmp=student[i];
j=i-1;
do
student[j+1]=student[j];
j--;
}while((strcmp(tmp.name,student[j].name)<
0&
j>
=0));
student[j+1]=tmp;
\t\t\t排序成功,是否显示?
list();
intmain()
\t\t************************************************\n"
\t\t********欢迎进入通讯录系统*******************\n"
10
\t\t###########制作人仇睿###################\n"
\t\t*************************************************\n"
按任意键进入主菜单\n"
intselectnum;
while
(1)
selectnum=menu_select();
switch(selectnum)
case0:
adduser();
break;
case1:
break;
case2:
searchbyname();
case3:
searchbyphone();
case4:
//这里插入,应该能指定位置,不过意义不大,所以和添加记录一样了。
case5:
sortbyname();
11
case6:
dele();
case7:
BYEBYE!
system("
getchar();
exit(0);
getchar();
2.运行结果
运行开始
按任意键入主菜单
12
添加界面
显示界面
13
查找界面
14
排序界面
删除界面
15
八.总结
由于本课题中的许多知识点都没有学过都要靠自己到课外的资料中去查找。
在用的时候难免出现这样那样的错误。
如开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱。
解决的这个问题的办法是调整。
一个系统的菜单和提示信息非常重要。
如果没有这些用户根本不知道怎么用你设计的这个系统。
在设计的调试过程中也无法顺利的完成调试工作。
有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。
回顾起此次课程设计,我感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在整整一个礼拜的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过这次课程设计之后,一定把以前所学过的知识熟悉了,本次课程设计结束了,我通过这次实践学到了许多知识。
学到了设计一个简单的系统。
要注意哪些方面。
也使我们知道自己哪些方面做得还不够。
这不仅是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵.编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!
在编写程序的过程中,错误不断出现,不同的类型(如少
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 报告