1、c语言课程设计情人网管理系统 西 安 邮 电 大 学 (计算机学院)高级语言课程设计报告题 目: 情人网找女友系统 专业名称: 班 级: 学生姓名: 学号(8位): 指导教师: 设计起止时间: 一、 设计目的1. 强化动手能力,使理论与实践的相结合,进一步巩固C语言程序设计课程学习的内容,提高分析和解决问题的能力,增加综合能力2. 使后续各种语言学习打下良好的基础3. 熟练掌握函数和指针以及链表的用法,文件的使用4. 学会结构体的定义和使用二. 设计内容设计一个情人网找女友系统。有两部分组成:客户和管理员。 客户菜单有:mm姓名查询、mm婚姻状况查询、学历查询、年龄查询、约会、所有mm信息。管
2、理员进入其主页面需要密码登陆。 管理员菜单:姓名查询、婚姻状况查询、学历查询、添加美女、删除管理员、添加美女、删除管理员、修改密码、所有美女信息。三概要设计1 情人网找女友系统功能模块图; 系统首页 登陆用户界面 q=1 q=0 q=2 再次 k=1 k=0退出系统登陆成功,进入管理员界面登陆失败添加功能(美女、管理员)查询功能(姓名、婚姻状况、学历)管理员首页界面2各个模块详细的功能描述。删除功能(美女、管理员)修改功能(管理员密码)修改功能(美女的漂亮指数 约美女)查询功能(姓名、婚姻状况、学历、年龄)客户 四详细设计1 主函数功能函数的调用关系图顾客管理员读取信息登陆读取信息修改管理员密
3、码删除管理员增加管理员删除美女增加美女查询排序约会查找 保存信息 2各功能函数的数据流程图a、创建txt文件创建链表输入数据存入缓冲区用 fprintf 将数据存入磁盘b、添加数据到磁盘在链表尾添加数据用scanf将磁盘的数据读取到缓冲区创建链表清空磁盘的数据 添加成功用 fprintf 将数据存入磁盘C、修改数据到磁盘在链表找到要修改的数据,修改。用scanf将磁盘的数据读取到缓冲区创建链表清空磁盘的数据 修改成功用 fprintf 将数据存入磁盘C、删除数据在链表找到要删除的数据,删除。用scanf将磁盘的数据读取到缓冲区创建链表清空磁盘的数据 删除成功用 fprintf 将数据存入磁盘3
4、重点设计及编码a、将磁盘的数据读取到缓冲区,将文件的读取独立出来,减少重复代码。b、将缓冲区的数据读取到磁盘,将文件的读取独立出来,减少重复代码。源代码:mm *read(char filenameN)/*将文件读取 */ FILE *fp; mm *head,*t,*end; int i=0; fp=fopen(filename,rt); if(fp=NULL) printf(nnnnn 系统 暂时无mm信息,请下次登录!nnntttt); system(pause); return; head=(mm *)malloc(sizeof(mm); head-next=NULL; end=hea
5、d; while(!feof(fp) t=(mm *)malloc(sizeof(mm); fscanf(fp,%s %s %s %d %d %d %dn,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); return head;void save(char filenameN,mm *head)/*将链表存入文件 */ FILE *fp; mm *
6、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 %dn,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 欢迎使用情人网找女友系
7、统); printf(n *nnn); printf(n 操作已成功保存!nnnttt); getch();五测试数据及运行结果1正常测试数据和运行结果a. 管理员登陆账号c、美女姓名查找 C、美女婚姻状况查询D、美女学历查询E、添加美女2异常测试数据及运行结果A.管理员登陆、B.姓名查询六调试情况,设计技巧及体会1改进方案1.合理之处:此程序主要是为了那些单身的大学生,瞒足市场要求,架构清晰,思路明确,加密函数增加里系统的安全性,能够更将清晰的使客户和管理员明白自己接下来的操作。2.不足之处:此程序模块化设计不强。3.改进方案:增强程序的可读性。增加注释,注意思路,模块化编写。2体会对设计及
8、调试过程的心得体会。本次课程设计使我很高兴,这是一次挑战,也是一次对C语言的深刻学习。实习过程中我深刻感受到自己对C语言编程的理解不够足够深刻,尤其是链表和文件的使用,完成了本次设计,让我知道必须深刻学习和理解所学知识。7参考文献C语言程序教程 和.八附录:源代码(电子版)#include#include#include#define N 40typedef struct char nameN;/*mm的姓名 管理员账号 */ char marriageN;/*婚姻状况已婚/未婚 管理员密码 */ char xueliN;/*学历小学/初中/高中/大学/研究生 */ int age;/*年龄
9、*/ int length;/*身高 */ int weight;/*体重 */ int beautiful;/*漂亮指数 */info;typedef struct mm info good; struct mm *next;mm;void welcome();/*欢迎函数 */void Amenu();/*首页菜单 */void Bmenu();/*帅哥菜单 */void Cmenu();/*管理员菜单 */void manager_key(char passwordN);/*加密函数 */mm *creat();/*创建mm链表 */void save(char filenameN,mm
10、 *head);/*将链表存入文件 */void save_b(char filenameN,mm *head);/*将链表存入文件 */mm *read(char filenameN);/*将文件读取 */void print(mm *t);/*打印结点信息 */void search(char filenameN,int i);/*查找 */void dele(char filenameN);/*删除信息 */void manager_add(char keyN);/*manager 管理员 信息 添加 */void manager_delete(char keyN);/*manager
11、管理员 信息 删除 */void manager_change(char keyN);/*manager 管理员 信息 更改 */int login(char keyN);/*返回值为0,表示已登录,1表示未登陆 */mm sort(mm *head,int k);/*漂亮指数 身高 年龄 体重 (排序) */void all(char filenameN,int i);/*全部显示 i用于表示显示的按顺序排列(漂亮指数 身高 年龄 体重*/void appointment(char filenameN);/*先生 约会 */void welcome() system(color 4F); p
12、rintf(nnnnnnntttt欢迎来到情人网nnnnnnnnnn); system(pause); system(cls);void Amenu()/*首页菜单 */ printf(ttttt情人网() nn); printf(ntttttby 西安邮电大学 网络工程1404 张帅 n); printf(nnnttt0:退出系统nttt1:管理员 n);void Bmenu()/*帅哥菜单 */ printf(n 欢迎使用情人网找女友系统); printf(n *nnn); printf(n 0:返回首页 1:姓名查找 n); printf(n 2:婚姻状况查找 3:学历查找 n); pr
13、intf(n 4:年龄查找 5:约美女 n); printf(n 6:所有美女信息 n); printf(n 先生请选择:);void Cmenu()/*管理员菜单 */ printf(n 欢迎使用情人网找女友系统); printf(n *nnn); printf(n 0:退出登录 1:姓名查找 n); printf(n 2:婚姻状况查找 3:学历查找 n); printf(n 4:添加美女 5:删除美女 n); printf(n 6:增加管理员 7:删除管理员n); printf(n 8:修改密码 9:所有美女信息n); printf(n 管理员请选择:);void manager_key(
14、char passwordN)/*加密函数 */ int i=0; flushall(); passwordi=getch(); while(passwordi!=r) if(passwordi!=b) passwordi=passwordi+0;/*加密机制 */ printf(*); else if(passwordi=b) printf(b b); i-; flushall(); password+i=getch(); passwordi=0;mm *creat()/*创建mm链表 */ mm *head,*new_,*end; char ch; int i=1; system(cls)
15、; head=(mm *)malloc(sizeof(mm); head-next=NULL; end=head; do printf(n 欢迎使用情人网找女友系统); printf(n *n); new_=(mm *)malloc(sizeof(mm); printf(第%d个mmn,i+); printf(mm的姓名:);/*mm的姓名 */ scanf(%s,new_-good.name); printf(mm的婚姻状况:);/*婚姻状况已婚/未婚 */ scanf(%s,new_-good.marriage); printf(mm的学历:);/*学历小学/初中/高中/大学/研究生 */
16、 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?);
17、 flushall(); scanf(%c,&ch); system(cls); while(ch=Y|ch=y); return head;void save(char filenameN,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 %dn,t-good.name,
18、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 *nnn); printf(n 操作已成功保存!nnnttt); getch();void save_b(char filenameN,mm *head)/*将链表存入文件 */ FILE *fp; mm *t; fp=fopen(filename,a+); if(fp=NULL) printf(先生,系统暂
19、时无mm信息,请下次登录!); system(pause); return; for(t=head-next;t!=NULL;t=t-next) fprintf(fp,%s %s %s %d %d %d %dn,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 *nnn); printf(n 操作已成功保存!nnnttt); getc
20、h(); system(cls);mm *read(char filenameN)/*将文件读取 */ FILE *fp; mm *head,*t,*end; int i=0; fp=fopen(filename,rt); if(fp=NULL) printf(nnnnn 系统 暂时无mm信息,请下次登录!nnntttt); system(pause); return; head=(mm *)malloc(sizeof(mm); head-next=NULL; end=head; while(!feof(fp) t=(mm *)malloc(sizeof(mm); fscanf(fp,%s %
21、s %s %d %d %d %dn,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); return head;void print(mm *t)/*打印结点信息 */ printf(*姓名:%st*婚姻状况:%st*学历:%st*年龄:%dt,t-good.name,t-good.marriage,t-good.xueli,t-good.age);
22、printf(*身高:%dt*体重:%dt*漂亮指数:%dnn,t-good.length,t-good.weight,t-good.beautiful);void search(char filenameN,int i)/*查找 */ char nameN,marriageN,xueliN; int ages; mm *t,*head; int flag=1;/*1表示未找到,0表示找到 */ head=read(filename); system(cls); printf(n 欢迎使用情人网找女友系统); printf(n *n 制作by germnn); if(i=1) printf(n
23、 请输入姓名:); 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
24、 请输入学历:); 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 欢迎使用情人网找女友系统 )
25、; printf(n * n); printf(n 未能找到您所需的信息,任意键返回 n); getch(); system(cls);void dele(char filenameN)/*删除信息 */ mm *head,*t1,*t2; char nameN; int flag=1;/*flag找到为0,未找到为1 */ char x; FILE *fp; system(cls); head=read(filename); printf(n 欢迎使用情人网找女友系统 ); printf(n * nnn); 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 * nnn); printf(n 未找到该mm,任意键返回 n); getch();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1