c语言课程设计情人网管理系统.docx

上传人:b****7 文档编号:9659141 上传时间:2023-02-05 格式:DOCX 页数:42 大小:121.13KB
下载 相关 举报
c语言课程设计情人网管理系统.docx_第1页
第1页 / 共42页
c语言课程设计情人网管理系统.docx_第2页
第2页 / 共42页
c语言课程设计情人网管理系统.docx_第3页
第3页 / 共42页
c语言课程设计情人网管理系统.docx_第4页
第4页 / 共42页
c语言课程设计情人网管理系统.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

c语言课程设计情人网管理系统.docx

《c语言课程设计情人网管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计情人网管理系统.docx(42页珍藏版)》请在冰豆网上搜索。

c语言课程设计情人网管理系统.docx

c语言课程设计情人网管理系统

 

西安邮电大学

(计算机学院)

高级语言课程设计报告

题目:

情人网找女友系统

专业名称:

班级:

学生姓名:

学号(8位):

指导教师:

设计起止时间:

 

一、设计目的

1.强化动手能力,使理论与实践的相结合,进一步巩固《C语言程序设计》课程学习的内容,提高分析和解决问题的能力,增加综合能力

2.使后续各种语言学习打下良好的基础

3.熟练掌握函数和指针以及链表的用法,文件的使用

4.学会结构体的定义和使用

二.设计内容

设计一个情人网找女友系统。

有两部分组成:

客户和管理员。

客户菜单有:

mm姓名查询、mm婚姻状况查询、学历查询、年龄查询、约会、所有mm信息。

管理员进入其主页面需要密码登陆。

管理员菜单:

姓名查询、婚姻状况查询、学历查询、添加美女、删除管理员、添加美女、删除管理员、修改密码、所有美女信息。

三.概要设计

1.

情人网找女友系统

功能模块图;

系统首页

登陆

用户界面

q=1q=0q=2

再次

k=1k=0

退出系统

登陆成功,进入管理员界面

登陆失败

 

添加功能(美女、管理员)

查询功能(姓名、婚姻状况、学历)

管理员

 

首页界面

2.各个模块详细的功能描述。

 

删除功能(美女、管理员)

修改功能(管理员密码)

修改功能(美女的漂亮指数约美女)

查询功能(姓名、婚姻状况、学历、年龄)

四.详细设计

1.

主函数

功能函数的调用关系图

顾客

管理员

读取信息

登陆

读取信息

修改管理员密码

 

删除管理员

增加管理员

删除美女

增加美女

查询

排序

查找

 

保存信息

2.各功能函数的数据流程图

a、创建txt文件

创建链表

输入数据存入缓冲区

用fprintf将数据存入磁盘

 

b、添加数据到磁盘

在链表尾添加数据

用scanf将磁盘的数据读取到缓冲区

创建链表

 

清空磁盘的数据

添加成功

用fprintf将数据存入磁盘

 

C、修改数据到磁盘

 

在链表找到要修改的数据,修改。

用scanf将磁盘的数据读取到缓冲区

创建链表

 

清空磁盘的数据

修改成功

用fprintf将数据存入磁盘

 

C、删除数据

在链表找到要删除的数据,删除。

用scanf将磁盘的数据读取到缓冲区

创建链表

 

清空磁盘的数据

删除成功

用fprintf将数据存入磁盘

 

3.重点设计及编码

a、将磁盘的数据读取到缓冲区,将文件的读取独立出来,减少重复代码。

b、将缓冲区的数据读取到磁盘,将文件的读取独立出来,减少重复代码。

源代码:

mm*read(charfilename[N])/*将文件读取*/

{

FILE*fp;

mm*head,*t,*end;

inti=0;

fp=fopen(filename,"rt");

if(fp==NULL)

{

printf("\n\n\n\n\n系统暂时无mm信息,请下次登录!

\n\n\n\t\t\t\t");

system("pause");

return;

}

head=(mm*)malloc(sizeof(mm));

head->next=NULL;

end=head;

while(!

feof(fp))

{

t=(mm*)malloc(sizeof(mm));

fscanf(fp,"%s%s%s%d%d%d%d\n",t->good.name,t->good.marriage,t->good.xueli,&t->good.age,&t->good.length,&t->good.weight,&t->good.beautiful);

end->next=t;

end=t;

}

end->next=NULL;

fclose(fp);

returnhead;

}

voidsave(charfilename[N],mm*head)/*将链表存入文件*/

{

FILE*fp;

mm*t;

fp=fopen(filename,"w");

if(fp==NULL)

{

printf("先生,系统暂时无mm信息,请下次登录!

");

system("pause");

return;

}

for(t=head->next;t!

=NULL;t=t->next)

fprintf(fp,"%s%s%s%d%d%d%d\n",t->good.name,t->good.marriage,t->good.xueli,t->good.age,t->good.length,t->good.weight,t->good.beautiful);

fclose(fp);

system("cls");

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n\n\n");

printf("\n操作已成功保存!

\n\n\n\t\t\t");

getch();

}

五.测试数据及运行结果

1.正常测试数据和运行结果

a.管理员登陆账号

c、美女姓名查找

C、美女婚姻状况查询

D、美女学历查询

E、添加美女

 

2.异常测试数据及运行结果

A.管理员登陆

B.姓名查询

 

六.调试情况,设计技巧及体会

1.改进方案

1.合理之处:

此程序主要是为了那些单身的大学生,瞒足市场要求,架构清晰,思路明确,加密函数增加里系统的安全性,能够更将清晰的使客户和管理员明白自己接下来的操作。

 

2..不足之处:

此程序模块化设计不强。

3.改进方案:

增强程序的可读性。

增加注释,注意思路,模块化编写。

 

2.体会

对设计及调试过程的心得体会。

本次课程设计使我很高兴,这是一次挑战,也是一次对C语言的深刻学习。

实习过程中我深刻感受到自己对C语言编程的理解不够足够深刻,尤其是链表和文件的使用,完成了本次设计,让我知道必须深刻学习和理解所学知识。

7.参考文献

《C语言程序教程》和<贪吃蛇的代码>.

八.附录:

源代码(电子版)

#include

#include

#include

#defineN40

typedefstruct

{

charname[N];/*mm的姓名管理员账号*/

charmarriage[N];/*婚姻状况《已婚/未婚》管理员密码*/

charxueli[N];/*学历《小学/初中/高中/大学/研究生》*/

intage;/*年龄*/

intlength;/*身高*/

intweight;/*体重*/

intbeautiful;/*漂亮指数*/

}info;

typedefstructmm

{

infogood;

structmm*next;

}mm;

voidwelcome();/*欢迎函数*/

voidAmenu();/*首页菜单*/

voidBmenu();/*帅哥菜单*/

voidCmenu();/*管理员菜单*/

voidmanager_key(charpassword[N]);/*加密函数*/

mm*creat();/*创建mm链表*/

voidsave(charfilename[N],mm*head);/*将链表存入文件*/

voidsave_b(charfilename[N],mm*head);/*将链表存入文件*/

mm*read(charfilename[N]);/*将文件读取*/

voidprint(mm*t);/*打印结点信息*/

voidsearch(charfilename[N],inti);/*查找*/

voiddele(charfilename[N]);/*删除信息*/

voidmanager_add(charkey[N]);/*manager管理员信息添加*/

voidmanager_delete(charkey[N]);/*manager管理员信息删除*/

voidmanager_change(charkey[N]);/*manager管理员信息更改*/

intlogin(charkey[N]);/*返回值为0,表示已登录,1表示未登陆*/

mmsort(mm*head,intk);/*漂亮指数身高年龄体重(排序)*/

voidall(charfilename[N],inti);/*全部显示i用于表示显示的按顺序排列(漂亮指数身高年龄体重*/

voidappointment(charfilename[N]);/*先生约会*/

voidwelcome()

{

system("color4F");

printf("\n\n\n\n\n\n\n\t\t\t\t欢迎来到情人网\n\n\n\n\n\n\n\n\n\n");

system("pause");

system("cls");

}

voidAmenu()/*首页菜单*/

{

printf("\t\t\t\t\t情人网()\n\n");

printf("\n\t\t\t\t\tby西安邮电大学网络工程1404张帅\n");

printf("\n\n\n\t\t\t0:

退出系统\n\t\t\t1:

管理员\n");

}

voidBmenu()/*帅哥菜单*/

{

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n\n\n");

printf("\n0:

返回首页1:

姓名查找\n");

printf("\n2:

婚姻状况查找3:

学历查找\n");

printf("\n4:

年龄查找5:

约美女\n");

printf("\n6:

所有美女信息\n");

printf("\n先生请选择:

");

}

voidCmenu()/*管理员菜单*/

{

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n\n\n");

printf("\n0:

退出登录1:

姓名查找\n");

printf("\n2:

婚姻状况查找3:

学历查找\n");

printf("\n4:

添加美女5:

删除美女\n");

printf("\n6:

增加管理员7:

删除管理员\n");

printf("\n8:

修改密码9:

所有美女信息\n");

printf("\n管理员请选择:

");

}

voidmanager_key(charpassword[N])/*加密函数*/

{

inti=0;

flushall();

password[i]=getch();

while(password[i]!

='\r')

{

if(password[i]!

='\b')

{

password[i]=password[i]+0;/*加密机制*/

printf("*");

}

elseif(password[i]=='\b')

{

printf("\b\b");

i--;

}

flushall();

password[++i]=getch();

}

password[i]='\0';

}

mm*creat()/*创建mm链表*/

{

mm*head,*new_,*end;

charch;

inti=1;

system("cls");

head=(mm*)malloc(sizeof(mm));

head->next=NULL;

end=head;

do

{

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n");

new_=(mm*)malloc(sizeof(mm));

printf("第%d个mm\n",i++);

printf("mm的姓名:

");/*mm的姓名*/

scanf("%s",new_->good.name);

printf("mm的婚姻状况:

");/*婚姻状况《已婚/未婚》*/

scanf("%s",new_->good.marriage);

printf("mm的学历:

");/*学历《小学/初中/高中/大学/研究生*/

scanf("%s",new_->good.xueli);

printf("mm的年龄:

");/*年龄*/

scanf("%d",&new_->good.age);

printf("mm的身高:

");/*身高*/

scanf("%d",&new_->good.length);

printf("mm的体重:

");/*体重*/

scanf("%d",&new_->good.weight);

printf("mm的漂亮指数:

");/*漂亮指数*/

scanf("%d",&new_->good.beautiful);

new_->next=NULL;

end->next=new_;

end=new_;

printf("countinue?

");

flushall();

scanf("%c",&ch);

system("cls");

}while(ch=='Y'||ch=='y');

returnhead;

}

voidsave(charfilename[N],mm*head)/*将链表存入文件*/

{

FILE*fp;

mm*t;

fp=fopen(filename,"w");

if(fp==NULL)

{

printf("先生,系统暂时无mm信息,请下次登录!

");

system("pause");

return;

}

for(t=head->next;t!

=NULL;t=t->next)

fprintf(fp,"%s%s%s%d%d%d%d\n",t->good.name,t->good.marriage,t->good.xueli,t->good.age,t->good.length,t->good.weight,t->good.beautiful);

fclose(fp);

system("cls");

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n\n\n");

printf("\n操作已成功保存!

\n\n\n\t\t\t");

getch();

}

voidsave_b(charfilename[N],mm*head)/*将链表存入文件*/

{

FILE*fp;

mm*t;

fp=fopen(filename,"a+");

if(fp==NULL)

{

printf("先生,系统暂时无mm信息,请下次登录!

");

system("pause");

return;

}

for(t=head->next;t!

=NULL;t=t->next)

fprintf(fp,"%s%s%s%d%d%d%d\n",t->good.name,t->good.marriage,t->good.xueli,t->good.age,t->good.length,t->good.weight,t->good.beautiful);

fclose(fp);

system("cls");

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n\n\n");

printf("\n操作已成功保存!

\n\n\n\t\t\t");

getch();

system("cls");

}

mm*read(charfilename[N])/*将文件读取*/

{

FILE*fp;

mm*head,*t,*end;

inti=0;

fp=fopen(filename,"rt");

if(fp==NULL)

{

printf("\n\n\n\n\n系统暂时无mm信息,请下次登录!

\n\n\n\t\t\t\t");

system("pause");

return;

}

head=(mm*)malloc(sizeof(mm));

head->next=NULL;

end=head;

while(!

feof(fp))

{

t=(mm*)malloc(sizeof(mm));

fscanf(fp,"%s%s%s%d%d%d%d\n",t->good.name,t->good.marriage,t->good.xueli,&t->good.age,&t->good.length,&t->good.weight,&t->good.beautiful);

end->next=t;

end=t;

}

end->next=NULL;

fclose(fp);

returnhead;

}

voidprint(mm*t)/*打印结点信息*/

{

printf("*姓名:

%s\t*婚姻状况:

%s\t*学历:

%s\t*年龄:

%d\t",t->good.name,t->good.marriage,t->good.xueli,t->good.age);

printf("*身高:

%d\t*体重:

%d\t*漂亮指数:

%d\n\n",t->good.length,t->good.weight,t->good.beautiful);

}

voidsearch(charfilename[N],inti)/*查找*/

{

charname[N],marriage[N],xueli[N];

intages;

mm*t,*head;

intflag=1;/*1表示未找到,0表示找到*/

head=read(filename);

system("cls");

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n制作bygerm\n\n");

if(i==1)

{

printf("\n请输入姓名:

");

flushall();

gets(name);

for(t=head->next;t!

=NULL;t=t->next)

if(strcmp(t->good.name,name)==0)/*姓名比对*/

{

print(t);

flag=0;

}

}

if(i==2)

{

printf("\n请输入婚姻状况:

");

flushall();

gets(marriage);

for(t=head->next;t!

=NULL;t=t->next)

if(strcmp(t->good.marriage,marriage)==0)/*婚姻状况比对*/

{

print(t);

flag=0;

}

}

if(i==3)

{

printf("\n请输入学历:

");

flushall();

gets(xueli);

for(t=head->next;t!

=NULL;t=t->next)

if(strcmp(t->good.xueli,xueli)==0)/*学历比对*/

{

print(t);

flag=0;

}

}

if(i==4)

{

printf("\n请输入年龄:

");

scanf("%d",&ages);

for(t=head->next;t!

=NULL;t=t->next)

if(t->good.age==ages)/*年龄比对*/

{

print(t);

flag=0;

}

}

if(flag==1)

{

system("cls");

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n");

printf("\n未能找到您所需的信息,任意键返回\n");

}

getch();

system("cls");

}

voiddele(charfilename[N])/*删除信息*/

{

mm*head,*t1,*t2;

charname[N];

intflag=1;/*flag找到为0,未找到为1*/

charx;

FILE*fp;

system("cls");

head=read(filename);

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n\n\n");

printf("\n请输入要删除mm的姓名:

");

flushall();

gets(name);

t1=head;

t2=head->next;

if(t2==NULL)printf("\n无mm需要删除\n");

while(t2!

=NULL)

{

if(strcmp(t2->good.name,name)==0)

{

t1->next=t2->next;

free(t2);

flag=0;

break;

}

t1=t2;

t2=t2->next;

}

system("cls");

if(flag==1)

{

printf("\n欢迎使用情人网找女友系统");

printf("\n***************************************\n\n\n");

printf("\n未找到该mm,任意键返回\n");

getch();

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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