完整版C语言课程设计报告212899Word文件下载.docx
《完整版C语言课程设计报告212899Word文件下载.docx》由会员分享,可在线阅读,更多相关《完整版C语言课程设计报告212899Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
能给出被删除的信息,输出没有找到的信息;
如果已经是空表,上出时应给出信息并返回主菜单;
如果没有要删除的信息,输出没有找到的信息;
删除操作仅限于内存,只有执行记录时,才能覆盖原记录;
4查询记录
可以按“姓名”或“电话”或“宿舍”方式查询记录
能给出查询记录的信息;
如果查询的信息不存在,输出没有找到的信息;
5整体功能
a可以随时检索、删除、或增加新记录,保存或取消新的记录
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.h:
头文件
系统功能模块结构图:
Main—menu—Creat.c
Add.c
Del.c
Modify.c
Read.c
Save.c
Search.c
Skim.c
三.详细设计
程序清单:
headyy.h
#ifndefNULL
#defineNULL0
#endif
#include<
stdio.h>
malloc.h>
conio.h>
string.h>
stdlib.h>
#defineLENsizeof(structaddbok)
#definePRprintf("
%-12s%-12s%-12s%-10s%-10s%-10s%-12s\n"
"
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<
headyy.h>
externintn=0;
voidmain()
{intc,color,i=0;
structaddbok*head;
head=NULL;
for(color=0;
color<
6;
color++)
{
textcolor(color);
/*字体颜色*/
textbackground(color+2);
/*屏幕颜色*/
clrscr();
printf("
\n\n\n\n\n\n\n\n\n\n\t\t\tWelcometoStudents'
AddressSystem"
\n\n"
\t\t\t\t\t\tDesignbyYangYing"
sleep
(1);
/*延时1秒*/
}
while(i==0)
{
system("
cls"
============================Students'
AddressSystem============================"
****************************************\n"
*NO.:
Name:
YangYingClass:
ScienceOfComputerClass1*\n"
================================================================================"
c=meun();
switch(c)
case1:
head=creat();
break;
/*指向creat.c*/
case2:
head=add(head);
/*指向add.c*/
case3:
skim(head);
/*指向skim.c*/
case4:
head=modify(head);
/*指向modify.c*/
case5:
search(head);
/*指向search.c*/
case6:
head=del(head);
/*指向del.c*/
case7:
head=read();
/*指向read.c*/
case8:
save(head);
/*指向save.c*/
case0:
exit(0);
/*退出系统*/
default:
\Discorrect!
Pleaseenteragain.\n\n"
getch();
}
设置了开始的欢迎词,并且对照参考书设置了背景色和字体颜色,每种颜色延时1秒,在此函数中输入了自己的学号班级姓名,并且用switch语句实验了选择功能操作的函数指向。
menu.c
externintn;
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,*head;
floata;
p1=p2=(structaddbok*)malloc(LEN);
\n========================Enteranewrecord,STOPby\"
0\"
==========================="
\n"
NO.1:
\n"
Num.:
%ld"
p1->
num);
if(p1->
num==0)
{printf("
\nWrittenover\n"
return(head);
Name:
%s"
p1->
nam);
Tel.:
tel);
Sex:
sex);
Age:
age);
Birthday:
bir);
Dormitory:
dor);
while(p1->
num!
=0)
n=n+1;
if(n==1){head=p1;
elsep2->
next=p1;
p2=p1;
p1=(structaddbok*)malloc(LEN);
NO.%d:
i);
i=i+1;
{p2->
next=NULL;
s