C语言课程设计报告8822207Word文档下载推荐.docx
- 文档编号:17823849
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:20
- 大小:19.58KB
C语言课程设计报告8822207Word文档下载推荐.docx
《C语言课程设计报告8822207Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告8822207Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
b使姓名可由16位字符和数字的混合编码组成
c使电话号码可由18位字符和数字组成
d将输出信息加上输出信息信息栏,例如
姓名电话性别年龄生日宿舍
李四1234男217月1日东二333
e使用菜单实现功能的正确的选择
f所有节点信息都是动态生成。
6测试程序
应列出测试大纲对程序进行测试;
应保证测试用例测试到程序的各种边缘情况
二.总体设计
系统包括的函数有
Main.c:
整个系统的主函数
Menu.c:
系统的主界面
Creat.c:
创建链表
Add.c:
追加记录
Del.c:
删除记录
Modify.c:
修改记录
Read.c:
从外部文件读取记录
Save.c:
保存记录到外部文件
Search.c:
查找记录
Skim.c:
浏览记录
Headyy.—menu—Creat.c
Add.c
Del.c
Modify.c
Read.c
Save.c
Search.c
Skim.c
三.详细设计
程序清单:
"
"
Num."
Name"
Tel."
Sex"
Age"
Birtday"
Dormitory"
);
structaddbok*声明结构体类型*
{longnum;
charnam[16];
*储存编号*
chartel[18];
*储存电话*
charsex[4];
*学生性别*
intage;
*学生年龄*
charbir[10];
*学生生日*
chardor[13];
*学生宿舍*
structaddbok*next;
};
voidprint(structaddbok*);
具体实现:
创建了结构体变量addbok
main.c
#include<
intn=0;
voidmain()
{intc,color,i=0;
structaddbok*\n\n\n\n\n\n\n\n\n\t\t\tWelcometoStudents'
AddressSystem"
printf("
\n\n"
\t\t\t\t\t\tDesignbyYangYing"
sleep
(1);
*延时1秒*
clrscr();
}
while(i==0)
{
system("
cls"
============================Students'
AddressSystem============================"
****************************************\n"
*NO.:
Name:
YangYingClass:
ScienceOfComputerClass1*\n"
================================================================================"
c=meun();
switch(c)
{
case1:
.\n\n"
getch();
}
设置了开始的欢迎词,并且对照参考书设置了背景色和字体颜色,每种颜色延时1秒,在此函数中输入了自己的学号班级姓名,并且用switch语句实验了选择功能操作的函数指向。
menu.c
intn;
intmeun(void)
{
inti;
#####menu#####\n"
************************************************************\n"
|1:
Creat2:
Additem3:
Skimitems|\n"
|4:
Modifyitem5:
Searchitem6:
Deleteitem|\n"
|7:
Readfile8:
Saveitem0:
Exitsystem|\n"
\n\tPleasechoosethenumberwhichyouWANT:
scanf("
%d"
&
i);
return(i);
主要表现了主函数的菜单,供用户选择。
1选项是建立链表并且创建多个新记录
2选项是在链表后面追加若干个记录
3选项是浏览存储的记录
4选项是修改已有的记录
5选项是查找记录
6选项是删除系统中的记录
7选项是从外部文件读取记录
8选项是保存记录到外部文件
0选项是推出系统
creat.c
structaddbok*creat(void)*引用结构体addbok*
inti=2;
structaddbok*p1,*p2,*========================Enteranewrecord,STOPby\"
0\"
==========================="
\n"
NO.1:
\n"
Num.:
%ld"
p1->
num);
if(p1->
num==0)
{printf("
\nWrittenover\n"
return(=n+1;
if(n==1){"
NO.%d:
i);
i=i+1;
{p2->
next=NULL;
return(\n"
return(intn;
structaddbok*add(structaddbok*"
while(yy!
=0)
p1=(structaddbok*)malloc(LEN);
p0=p2="
p1->
Name:
%s"
nam);
Tel.:
tel);
Sex:
sex);
Age:
age);
Birthday:
bir);
Dormitory:
dor);
if(p2==NULL)
n=n+1;
=n+1;
p2->
next=p1;
p1->
else
while(p2->
next!
=NULL)
p0=p2;
p2=p2->
next;
\n----Writtenover----\n"
\nEnter\"
tothemenu,Anykeygoon:
"
yy);
system("
return(intn;
structaddbok*del(structaddbok*=================================Deleterecord=================================\n"
while(yy!
=0)
if("
gotoend;
\nEnterthenum.youwanttodelete:
p1==n-1;
printf("
\n-----~Delete~------\n"
gotoend;
else
next=p1->
n=n-1;
else{printf("
\nSorry,cannotfindtherecord!
end:
{printf("
tothemenu,Anynumbergoon:
scanf("
structaddbok*modify(structaddbok*================================Modifyarecord================================\n"
if(===Norecordnow===\n"
return("
%-12s%-12s%-12s%-10s%-10s%-10s%-12s"
Birthday"
%-12ld%-12s%-12s%-10s%-10d%-10s%-12s\n"
num,p1->
nam,p1->
tel,p1->
sex,p1->
age,p1->
bir,p1->
\n================================================================================\n"
{printf("
\n*************WhichonedoyouwanttoModify?
***************\n"
1:
Num.2:
Name\n"
3:
Tel.4:
Age\n"
\n************************************************************\n"
yourchoose:
x);
switch(x)
OriginNum.:
%ld\n"
PleaseinputanewNum.:
num=num;
\n**Success!
**\n"
break;
case2:
Originname\n"
\nPleaseinputanewname:
case3:
OriginTel.:
%s===\n"
\nPleaseinputanewTel.:
case4:
printf("
Originage:
%d===\n"
\nPleaseinputthenewage:
scanf("
}
\nSorry,cannotfindtherecordyouwant!
getch();
structaddbok*read(void)
structaddbok*p1,*p2,*kt;
FILE*fp;
fp=fopen("
addbok.txt"
rb"
n=getw(fp);
p1=p2=(structaddbok*)malloc(LEN);
kt=p1;
fread(p1,sizeof(structaddbok),1,fp);
for(i=0;
i<
(n-1);
i++)*此语句可以这样用我不知道,网上翻来的*
p2=p1;
*读写一个数据块*
fclose(fp);
\n===AlreadyReading===\n\n"
return(kt);
从外部文件读取addbok.txt,addbok.txt是保存了用户所输入的记录的文件。
其中for语句有点顺序的问题,可是我不知道怎么改。
save.c
voidsave(structaddbok*"
*1:
AutoSaveasaddbook_yy.txt*\n"
*2:
Coveratxt*\n"
*3:
Renameatxt*\n"
************************************************************\n"
v=getch();
switch(v)
{case'
1'
:
if((fp=fopen("
wb"
))==NULL)
cannotopenthefile\n"
return;
putw(n,fp);
n;
i++)
if(fwrite(p,sizeof(structaddbok),1,fp)!
=1)
Writeerror\n"
p=p->
\n===Success!
===\n\n"
break;
case'
2'
\n\n\n\n\t\tEnterthefilename:
tr);
if((fp=fopen(tr,"
Cannotopenthefile\n"
3'
保存记录到外部文件addbook_yy.txt。
search.c
voidsearch(structaddbok******************************SearchRecord*********************************\n"
\n===========================NoRecord!
=======================================\n"
while(j!
\n*****************************SearchRecord*********************************\n"
Choosewahtyouwant:
\n1:
Num.\n2:
Name\n3:
Tel.\n4:
Dormitry\n\t\t"
b=getch();
switch(b)
PleaseinputtheNum.:
t);
for(i=0,k=0;
if((p->
num)==t)
{k=1;
}p=p->
if(k==0)
****Sorry,cannotfind!
****\n"
\n================================================================================"
PR;
p->
num,p->
nam,p->
tel,p->
sex,p->
age,p->
bir,p->
================================================================================\n"
j);
p="
if((0==strcmp(p->
nam,tr)))
%-12ld%-12s%-12s%-10s%-10d%-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 8822207