通讯录管理系统1.docx

上传人:b****5 文档编号:8527293 上传时间:2023-01-31 格式:DOCX 页数:24 大小:571.03KB
下载 相关 举报
通讯录管理系统1.docx_第1页
第1页 / 共24页
通讯录管理系统1.docx_第2页
第2页 / 共24页
通讯录管理系统1.docx_第3页
第3页 / 共24页
通讯录管理系统1.docx_第4页
第4页 / 共24页
通讯录管理系统1.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

通讯录管理系统1.docx

《通讯录管理系统1.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统1.docx(24页珍藏版)》请在冰豆网上搜索。

通讯录管理系统1.docx

通讯录管理系统1

沈阳航空航天大学

 

课程设计报告

 

课程设计名称:

C语言课程设计

课程设计题目:

图书信息管理系统设计

 

院(系):

计算机学院

专业:

计算机科学与技术

班级:

24010102

学号:

2012040101051

姓名:

李驰

指导教师:

高利军

完成日期:

2013年3月12日

目录

第1章需求分析2

1.1需求概述2

1.2系统功能需求分析2

第2章总体设计2

第3章详细设计3

第4章程序源代码16

参考文献25

第1章需求分析

1.1需求概述

Ø图书信息包括:

登陆号,书名,作者名,分类号,出版单位,出版时间,价格等;

Ø图书信息录入功能;

Ø图书信息分类浏览功能;

Ø查询和排序功能:

(1)按书名查询;

(2)按登陆号查询;

Ø图书信息的删除和修改;

Ø系统的各个功能模块要求用函数的形式实现;

Ø完成设计任务并书写课程设计报告;

1.2系统功能需求分析

主要包含以下多种功能:

●新建:

添加图书信息

●浏览:

显示图书信息

●查询:

查询图书信息

●修改:

修改图书信息

●删除:

删除图书信息

●保存:

将信息保存到文件

 

第2章总体设计

整个系统可以设计为主菜单模块、数据插入模块、数据浏览模块、数据查找模块、数据修改模块、数据删除模块、文件导入模块和文件保存模块。

voidmainmenu();/*主菜单*/

voidinput();/*输入图书信息*/

voidsearchbookname();/*根据书名查询*/

voidsearchloginnum();/*根据登录号查询*/

voidinsert();/*插入图书信息*/

voiddelet();/*删除图书信息*/

voidchange();/*改变图书信息*/

voidmyexit();/*返回主菜单*/

voidmain();/*主函数*/

总体模块流图:

第3章详细设计

采用结构体数组。

Struct

{longloginnum;/*登录号*/

charbookname[100];/*书名*/

charwritername[20];/*作者名*/

longbookid;/*书号*/

charunit[100];/*出版社地址*/

floatprice;/*图书价格*/

chartime[15];/*出版时间*/

}cbook;/*信息结构体数组*/

(1)主菜单模块

采用switch()函数从键盘选择相应菜单的对应功能。

switch(num)

{

case1:

input();break;/*图书信息录入*/

case2:

searchbookname();break;/*按书名查找*/

case3:

searchloginnum();break;/*按登陆号查找*/

case4:

insert();break;/*图书信息插入*/

case5:

change();break;/*图书信息修改*/

case6:

delet();break;/*图书信息删除*/

case7:

my_exit();break;/*退出*/

default:

printf("您输入的数字有误,请重新输入\n");}

(2)数据录入模块

printf("请输入图书信息:

\n");

printf("登录号--书名--作者名--书号--出版社名--图书价格--出版时间\n");

while

(1)

{scanf("%ld",&loginnum);

if(loginnum==-1)

break;

scanf("%s%s%ld%s%s%f",bookname,writername,&bookid,unit,time,&price);

book[book_n].loginnum=loginnum;

strcpy(book[book_n].bookname,bookname);

strcpy(book[book_n].writername,writername);

book[book_n].bookid=bookid;strcpy(book[book_n].unit,unit);

book[book_n].price=price;

strcpy(book[book_n].time,time);book_n++;}save();//调用文件保存模块将联系人信息

(3)数据浏览模块

由于本程序新建立文件book.txt,因此图书信息的查询即可到D盘book.txt文件中查找。

voidsave()

{

FILE*fp;

inti;

if((fp=fopen("D:

\\book.txt","w+"))==NULL)

{

printf("cannotopenthefile\n");

return;}

for(i=0;i<3;i++)

{

fprintf(fp,"%ld%s%s%ld%s%s%f\n",book[i].loginnum,book[i].bookname,book[i].writername,book[i].bookid,book[i].unit,book[i].time,book[i].price);

}

fclose(fp);}

(3)数据查询模块

a.按图书名查询

voidsearchbookname()

{

intmark=0;

charbookname[100];

printf("\n按书名查找\n");

printf("\n请输入书名:

");

scanf("%s",bookname);

for(inti=0;i

{

if(strcmp(book[i].bookname,bookname)==0)

{printf("\n以下是您查找的图书信息\n");

printf("\n登录号:

%ld\n",book[i].loginnum);

printf("\n书名:

%s\n",book[i].bookname);

printf("\n作者名:

%s\n",book[i].writername);

printf("\n书号:

%ld\n",book[i].bookid);

printf("\n出版社地址:

%s\n",book[i].unit);

printf("\n图书价格:

%f\n",book[i].price);

printf("\n出版时间:

%s\n",book[i].time);

mark++;

}

}

if(mark==0)

printf("\n没有该书名的图书纪录\n");

printfmenu();

}

b.按登陆号查找

voidsearchloginnum()

{

intmark=0,i;

longloginnum;

printf("\n按登录号查找\n");

printf("\n请输入登录号:

");

scanf("%ld",&loginnum);

for(i=0;i

{

if(book[i].loginnum=loginnum)

{printf("\n以下是您查找的图书信息\n");

printf("\n登录号:

%ld\n",book[i].loginnum);

printf("\n书名:

%s\n",book[i].bookname);

printf("\n作者名:

%s\n",book[i].writername);

printf("\n书号:

%ld\n",book[i].bookid);

printf("\n出版社地址:

%s\n",book[i].unit);

printf("\n图书价格:

%f\n",book[i].price);

printf("\n出版时间:

%s\n",book[i].time);

mark++;

}

}

if(mark==0)

printf("\n\t\t没有该图书信息");

printfmenu();

}

为了保证图书信息修改与删除后图书信息的直接动态,本程序又将文件读了出来,并在最后关闭文件的后面又打开了文件,防止文件的丢失与程序的不正常结束。

(4)图书信息插入

intcmp(constvoid*a,constvoid*b)

{

cbook*p1;

cbook*p2;

p1=(cbook*)a;

p2=(cbook*)b;

returnp1->loginnum-p2->loginnum;

}

intinsert()

{printf("请输入要插入的图书信息\n");

printf("登录号--书名--作者名--书号--出版社名--图书价格--出版时间\n");

scanf("%ld%s%s%ld%s%s%f",&loginnum,bookname,writername,&bookid,unit,time,&price);

book[book_n].loginnum=loginnum;

strcpy(book[book_n].bookname,bookname);

strcpy(book[book_n].writername,writername);

book[book_n].bookid=bookid;

strcpy(book[book_n].unit,unit);

book[book_n].price=price;

strcpy(book[book_n].time,time);

book_n++;

qsort(book,book_n,sizeof(book[0]),cmp);

in();

return0;}

(5)图书信息修改

intchange()

{

printf("请输入要修改的图书的书号\n");

scanf("%ld",&loginnum);

for(inti=0;i

{if(loginnum==book[i].loginnum)

break;

if(i==book_n)

{

printf("没有这本书\n");

return0;

}

}

printf("请输入要修改的图书信息\n");

printf("登录号--书名--作者名--书号--出版社名--图书价格--出版时间\n");

scanf("%ld%s%s%ld%s%s%f",&loginnum,bookname,writername,&bookid,unit,time,&price);

book[i].loginnum=loginnum;

strcpy(book[i].bookname,bookname);

strcpy(book[i].writername,writername);

book[i].bookid=bookid;

strcpy(book[i].unit,unit);

book[i].price=price;

strcpy(book[i].time,time);

in();

return0;

}

(6)图书信息删除

intdelet()

{

printf("请输入要删除的图书的书号\n");

scanf("%ld",&loginnum);

inti;

for(i=0;i

{if(loginnum==book[i].loginnum)

break;

if(i==book_n)

{

printf("没有这本书\n");

return0;

}

intj;

for(j=i;j

copystruct(j,j+1);

book_n--;

}

in();

return0;

}

(7)退出并返回主菜单

voidmy_exit()

{FILE*fp;

fp=fopen("D:

\\book.txt","r+");

inti;

for(i=0;i

fprintf(fp,"%ld%s%s%ld%s%f",book[i].loginnum,book[i].bookname,book[i].writername,book[i].bookid,book[i].unit,book[i].price,book[i].time);

fclose(fp);

printfmenu();

exit(0);

}

第4章程序源代码

#include

#include

#include

typedefstruct

{longloginnum;

charbookname[100];

charwritername[20];

longbookid;

charunit[100];

floatprice;

chartime[15];

}cbook;

cbookbook[1000];

intbook_n=0;

longloginnum;

charbookname[100];

charwritername[20];

longbookid;

charunit[100];

floatprice;

chartime[15];

voidprintfmenu();

intcmp(constvoid*a,constvoid*b)

{

cbook*p1;

cbook*p2;

p1=(cbook*)a;

p2=(cbook*)b;

returnp1->loginnum-p2->loginnum;

}

voidcopystruct(inta,intb)

{

book[a].loginnum=book[b].loginnum;

strcpy(book[a].bookname,book[b].bookname);

strcpy(book[a].writername,book[b].writername);

book[a].bookid=book[b].bookid;

strcpy(book[a].unit,book[b].unit);

book[a].price=book[b].price;

strcpy(book[a].time,book[b].time);

}

voidsave()

{

FILE*fp;

inti;

if((fp=fopen("D:

\\book.txt","w+"))==NULL)

{

printf("cannotopenthefile\n");

return;

}

for(i=0;i<3;i++)

{

fprintf(fp,"%ld%s%s%ld%s%s%f\n",book[i].loginnum,book[i].bookname,book[i].writername,book[i].bookid,book[i].unit,book[i].time,book[i].price);

}

fclose(fp);

}

voidinput()

{

printf("请输入图书信息:

\n");

printf("登录号--书名--作者名--书号--出版社名--图书价格--出版时间\n");

while

(1)

{scanf("%ld",&loginnum);

if(loginnum==-1)

break;

scanf("%s%s%ld%s%s%f",bookname,writername,&bookid,unit,time,&price);

book[book_n].loginnum=loginnum;

strcpy(book[book_n].bookname,bookname);

strcpy(book[book_n].writername,writername);

book[book_n].bookid=bookid;

strcpy(book[book_n].unit,unit);

book[book_n].price=price;

strcpy(book[book_n].time,time);

book_n++;}

save();

printfmenu();

}

voidsearchbookname()

{

intmark=0;

charbookname[100];

printf("\n按书名查找\n");

printf("\n请输入书名:

");

scanf("%s",bookname);

for(inti=0;i

{

if(strcmp(book[i].bookname,bookname)==0)

{printf("\n以下是您查找的图书信息\n");

printf("\n登录号:

%ld\n",book[i].loginnum);

printf("\n书名:

%s\n",book[i].bookname);

printf("\n作者名:

%s\n",book[i].writername);

printf("\n书号:

%ld\n",book[i].bookid);

printf("\n出版社地址:

%s\n",book[i].unit);

printf("\n图书价格:

%f\n",book[i].price);

printf("\n出版时间:

%s\n",book[i].time);

mark++;

}

}

if(mark==0)

printf("\n没有该书名的图书纪录\n");

printfmenu();

}

voidsearchloginnum()

{

intmark=0,i;

longloginnum;

printf("\n按登录号查找\n");

printf("\n请输入登录号:

");

scanf("%ld",&loginnum);

for(i=0;i

{

if(book[i].loginnum==loginnum)

{printf("\n以下是您查找的图书信息\n");

printf("\n登录号:

%ld\n",book[i].loginnum);

printf("\n书名:

%s\n",book[i].bookname);

printf("\n作者名:

%s\n",book[i].writername);

printf("\n书号:

%ld\n",book[i].bookid);

printf("\n出版社地址:

%s\n",book[i].unit);

printf("\n图书价格:

%f\n",book[i].price);

printf("\n出版时间:

%s\n",book[i].time);

mark++;

}

}

if(mark==0)

printf("\n\t\t没有该图书信息");

printfmenu();

}

voidin()

{

FILE*fp;

inti;

if((fp=fopen("D:

\\book.txt","w"))!

=NULL)

{

for(i=0;i

{

fprintf(fp,"%ld%s%s%ld%s%s%f\n",book[i].loginnum,book[i].bookname,book[i].writername,book[i].bookid,book[i].unit,book[i].time,book[i].price);

}

}

fclose(fp);

fp=fopen("D:

\\book.txt","r");

printfmenu();

exit(0);

}

intinsert()

{

printf("请输入要插入的图书信息\n");

printf("登录号--书名--作者名--书号--出版社名--图书价格--出版时间\n");

scanf("%ld%s%s%ld%s%s%f",&loginnum,bookname,writername,&bookid,unit,time,&price);

book[book_n].loginnum=loginnum;

strcpy(book[book_n].bookname,bookname);

strcpy(book[book_n].writername,writername);

book[book_n].bookid=bookid;

strcpy(book[book_n].unit,unit);

book[book_n].price=price;

strcpy(book[book_n].time,time);

book_n++;

qsort(book,book_n,sizeof(book[0]),cmp);

in();

return0;

}

intchange()

{

printf("请输入要修改的图书的书号\n");

scanf("%ld",&loginnum);

for(inti=0;i

{if(loginnum==book[i].loginnum)

break;

if(i==book_n)

{

printf("没有这本书\n");

return0;

}

}

printf("请输入要修改的图书信息\n");

printf("登录号--书名--作者名--书号--出版社名--图书价格--出版时间\n");

scanf("%ld%s%s%ld%s%s%f",&loginnum,bookname,writername,&bookid,unit,time,&price);

book[i].loginnum=loginnum;

strcpy(book[i].bookname,bookname);

strcpy(book[i].writername,writername);

book[i].bookid=bookid;

strcpy(book[i].unit,

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

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1