收藏 分销(赏)

大学教育作为公共品的效率分析-毕业设计.docx

上传人:可**** 文档编号:2906386 上传时间:2024-06-11 格式:DOCX 页数:39 大小:464.98KB
下载 相关 举报
大学教育作为公共品的效率分析-毕业设计.docx_第1页
第1页 / 共39页
大学教育作为公共品的效率分析-毕业设计.docx_第2页
第2页 / 共39页
大学教育作为公共品的效率分析-毕业设计.docx_第3页
第3页 / 共39页
大学教育作为公共品的效率分析-毕业设计.docx_第4页
第4页 / 共39页
大学教育作为公共品的效率分析-毕业设计.docx_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、 毕业设计(论文)题 目:大学教育作为公共品的效率分析 班 级:14级物联网应用技术(1)班 二一六年九月 目 录目 录i摘 要IAbstractII一 需求分析11.1 引言11.2 功能概述11.3 数据描述11.4 系统菜单11.5 性能概述21.6 运行需求21.7 任务计划2二 概要设计82.1 总体设计82.2 数据类型设计(或数据结构设计)82.1 接口设计92.3 运行界面设计9三 详细设计123.1 输入模块设计123.2 输出模块设计123.3 查找模块设计133.4 删除模块设计153.5 更改模块设计153.6 保存模块设计16四 测试分析194.1 测试程序执行情况1

2、94.2 出现的问题和解决的方法24五 课程设计总结25附 录26程序代码26参考文献344摘 要随着网络与信息技术的发展,人们的联系人越来越多,需要联系的人逐渐增多,需要记录的信息也逐渐增多。以前是将这些信息手写到通讯录中,这很容易造成信息的丢失,而且查找起来很不方便。本系统主要实现同学信息的管理,包括同学信息的添加、修改、查询和删除,及一些辅助项目管理,如登录系统用户管理和用户组管理。系统的组成模块主要包括数据集模块,登录窗体模块,系统管理模块,主窗体模块,通讯录模块,通讯录数据管理模块,信息管理模块,登录信息查询模块。关键词:数据结构;C语言;模块化程序设计;算法AbstractWith

3、 the development of network and information technology, people are more and more contacts, need to contact the number of people gradually increased, the need to record the information is also increasing. Before the information is written into the address book, which is very easy to cause the loss of

4、 information, but it is not easy to find.This system mainly realizes the student information management, including student information to add, modify, query and delete, and some auxiliary project management, such as login system user management and user group management.Composition module of the sys

5、tem includes data collection module, login form module, system management module, the main form module, mail list mail list module, data management module, information management module, information query module login.Keywords: data structure;C language;modular programming;algorithmII一 需求分析1.1 引言通过程

6、序设计,达到理论与实际应用相结合,提高对信息管理系统的分析能力,能够根据实际应用,初步实现系统功能模块及算法的设计,通过编程基本实现信息管理系统。1.2 功能概述1.采用结构体的形式对数据进行输入输出。2.可以对通讯录进行简单的排序,筛选,删除。3.可以对任意信息就行修改。4.可以把数据已文件的形式输入输出。5.任意浏览信息。1.3 数据描述以所示的文本数据位初始数据进行简单操作,也可另行添加。1.4 系统菜单菜单系统 图一实现以上功能需求。1.5 性能概述1.能够进行简单的数据处理。2.具有对新信息处理打印打能力。1.6 运行需求1.输入个人信息时以例如按照“编号、姓名、年龄、电话号码 、通

7、讯地址 、 电子邮箱”的顺序输入。2.输入时编号年龄、电话号码、通讯地址、电子邮箱以数字格式输入,输入姓名以文字输入。3.以(Y/N)形式判断时,仅限N或者n为否,其他字符真。4.进入排序功能后,要想见排序信息,到主菜单下见浏览信息功能。1.7 任务计划1.样例输入和输出输入信息 图二输出信息 图三2.本通讯录管理程序,可以对数据进行输入输出,集排序,修改,打印,删除等功能。下面以上述数据描述的数据为测试数据进行简单输入输出。1.未排序前的信息4).删除界面:删除界面 图四删除后,通讯录里的显示记录:删除界面2 图五5)查询界面:查询界面 图六以姓名查询方式为例:查询界面 图七6)修改界面:修

8、改界面 图八修改后,通讯录里的显示记录:修改界面 图九7)保存界面:保存界面 图十tongxunlu.txt文件截图:文件截图 图十一二 概要设计2.1 总体设计主菜单保存修改查询显示删除添加添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存

9、到文件2.2 数据类型设计(或数据结构设计)typedef struct char score; /*编号*/char name10; /*姓名*/ char num15; /*号码*/ char email20;/*邮箱*/char age8;/*年龄*/char adds20;/*住址*/Person;以结构体数组类型输入数据。2.1 接口设计 表2.1:函数列表函数名函数首部函数功能int menu_select()void运行界面int Input(Person per,int n)int输入函数void Display(Person per,int n)Void输出函数int Del

10、ete_a_record(Person per,int n)int删除数据void Query_a_record(Person per,int n)void查询数据void Change(Person per,int n)void更改数据void WritetoText(Person per,int n)void把数据写到文件2.3 运行界面设计void main() /*主函数*/ int n=0; for(;) switch(menu_select() case 1: printf(nt添加记录到通讯录n); /*添加记录*/ n=Input(pe,n); break; case 2: p

11、rintf(nttt 通讯录记录表n); /*显示记录*/ Display(pe,n); break;case 3: printf(nt从通讯录中删除记录n); n=Delete_a_record(pe,n); /*删除记录*/ printf(t); system(pause); break; case 4: printf(nt在通讯录中查找记录n); Query_a_record(pe,n); /*查找记录*/ printf(t); system(pause); break;case 5: printf(nt修改通讯录中的记录n); Change(pe,n); /*修改数据*/ printf

12、(t); system(pause); break; case 6: printf(nt保存功能n); WritetoText(pe,n); /*保存数据*/ printf(t); system(pause); break; case 0: printf(ntt谢谢使用,再见!n); /*结束程序*/ printf(ntt); system(pause); exit(0); 以switch为关键控制选着要调用函数的开关,然后以主菜单为主界面,其他功能为扩展界面来运行通讯录管理系统。主菜单代码为:int menu_select() char c; do system(cls); printf(t

13、t *通讯录* n); printf(tt |-|n); printf(tt 1. 添加记录 n); printf(tt 2. 显示记录 n); printf(tt 3. 删除记录 n); printf(tt 4. 查询记录 n); printf(tt 5. 修改记录 n); printf(tt 6. 保存记录 n);printf(tt 0. 退出程序 n); printf(tt|-|n); printf(tt请您选择(0-6):); c=getchar(); while(c6); return(c-0); 如图所示为主要运行界面:主程序 图十二35三 详细设计3.1 输入模块设计int In

14、put(Person per,int n) int i=0; char sign,x10; while(sign!=n&sign!=N) printf(t编号:); scanf(t%d,&pern+i.score); printf(t姓名:); scanf(t%s,pern+i.name); printf(t年龄:); scanf(t%s,pern+i.age);printf(t电话号码:); scanf(t%s,pern+i.num); printf(t通讯住址:); scanf(t%s,pern+i.adds);printf(t电子邮箱:);scanf(t%s,pern+i.email);

15、gets(x); printf(nt是否继续添加?(Y/N); scanf(t%c,&sign); i+; return(n+i); 3.2 输出模块设计void Display(Person per,int n) int i; printf(-n); /*格式*/ printf(编号 姓名 年龄 电话号码 通讯地址 电子邮箱n); printf(-n); for(i=1;i1&i%10=0) printf(t-n); printf(t); system(pause); printf(t-n); printf(-n);system(pause); 3.3 查找模块设计void Query_a_

16、record(Person per,int n) int m;printf(tn请选择查询方式:n); printf(tn); printf(t1-姓名 n); printf(t2-电话 n); printf(t3-地址 n); printf(t4-返回 n); printf(tn); printf(请选择:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(输入错误,请重新选择:);scanf(%d,&m);if(m=1)char s20; int i=0; printf(t请输入想查询的姓名:); scanf(t%s,s); while(s

17、trcmp(peri.name,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人编号: %dn,peri.score);printf(t此人年龄: %sn,peri.age); printf(t电话号码: %sn,peri.num); printf(t通讯地址: %sn,peri.adds);printf(t电子邮箱: %sn,peri.email); ;if(m=2)char s20; int i=0; printf(t请输入想查询的电话:); scanf(t%s,s); while(strcmp(peri.num,s

18、)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人编号: %dn,peri.score);printf(t此人姓名: %sn,peri.name);printf(t此人年龄: %sn,peri.age); printf(t通讯地址: %sn,peri.adds);printf(t电子邮箱: %sn,peri.email); ;if(m=3)char s20; int i=0; printf(t请输入想查询的地址:); scanf(t%s,s); while(strcmp(peri.adds,s)!=0&in) i+; if(

19、i=n) printf(t通讯录中没有此人!n); return; printf(t此人编号: %dn,peri.score);printf(t此人姓名: %sn,peri.name);printf(t此人年龄: %sn,peri.age); printf(t电话号码: %sn,peri.num); printf(t电子邮箱: %sn,peri.email); ;3.4 删除模块设计int Delete_a_record(Person per,int n) char s20; int i=0,j; printf(t请输入想删除记录中的名字:); scanf(%s,s); while(strcm

20、p(peri.name,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.num,perj+1.num); strcpy(perj.name,perj+1.name); strcpy(perj.age,perj+1.age);strcpy(perj.adds,perj+1.adds);strcpy(perj.email,perj+1.email);perj.score=perj+1.score; printf(ttt已经成功删除!n); return(n-1); 3.5 更改模块

21、设计void Change(Person per,int n) char s20; int i=0; printf(t请输入想修改的记录中的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t编号:); scanf(t%d,&peri.score); printf(t姓名:); scanf(t%s,peri.name); printf(t年龄:); scanf(t%s,peri.age);printf(t电话号码:); scanf(t%s,per

22、i.num); printf(t通讯住址:); scanf(t%s,peri.adds);printf(t电子邮箱:);scanf(t%s,peri.email);printf(t修改成功!);3.6 保存模块设计void WritetoText(Person per,int n) int i=0; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ printf(t保存到文件n); /*输入文件名*/ printf(t请输入所保存的文件名:); scanf(t%s,filename); if(fp=fopen(filename,w)=NULL) p

23、rintf(t无法打开文件n); system(pause); return; fprintf(fp,*通讯录*n);fprintf(fp,编号 姓名 年龄 电话号码 通讯地址 电子邮箱n);fprintf(fp,-n);while(in) fprintf(fp,%-3dt%-6st%-3st%-13st%-20st%-20sn,peri.score,peri.name,peri.age,peri.num,peri.adds,peri.email); i+; fprintf(fp,-n);fprintf(fp,*共有%d条记录*n,n); fclose(fp); /*关闭文件*/ printf

24、(保存成功!n); void main() /*主函数*/ int n=0; for(;) switch(menu_select() case 1: printf(nt添加记录到通讯录n); /*添加记录*/ n=Input(pe,n); break; case 2: printf(nttt 通讯录记录表n); /*显示记录*/ Display(pe,n); break;case 3: printf(nt从通讯录中删除记录n); n=Delete_a_record(pe,n); /*删除记录*/ printf(t); system(pause); break; case 4: printf(n

25、t在通讯录中查找记录n); Query_a_record(pe,n); /*查找记录*/ printf(t); system(pause); break;case 5: printf(nt修改通讯录中的记录n); Change(pe,n); /*修改数据*/ printf(t); system(pause); break; case 6: printf(nt保存功能n); WritetoText(pe,n); /*保存数据*/ printf(t); system(pause); break; case 0: printf(ntt谢谢使用,再见!n); /*结束程序*/ printf(ntt);

26、 system(pause); exit(0); 四 测试分析4.1 测试程序执行情况1)显示的主菜单界面主菜单 图十三2)添加界面:添加界面 图十四3)显示界面:显示菜单 图十五4)删除界面:删除界面 图十六删除后,通讯录里的显示记录:显示界面 图十七5)查询界面:查询界面 图十八以姓名查询方式为例:查询界面 图十九6)修改界面:修改界面 图二十修改后,通讯录里的显示记录:显示界面 图二十一7)保存界面:保存界面 图二十二大部分功能以按上面图文描述,有不足的地方请老师批评指正。您的建议将帮我走得更好。4.2 出现的问题和解决的方法1.当我在进行删除、查询、修改、保存等功能时,以查询为例,输入

27、名字按回车后,虽然会显示该人的所有记录,但是显示后,它马上自动消失了,还没来得及等我看内容。因此,向别人请教后,在一些地方加入了system(pause);这个语言,用来对某项操作完成后进行暂停。五 课程设计总结这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对C的操作有了进一步的掌握,还了解到了程序设计的书写风格及其注释的格

28、式。当我选择通讯录这个题目时,一开始想运用大量链表及指针来完成,但是在慢慢琢磨之后,觉得这个不一定要用链表,于是改变了编程思路。当然还有不少文件的读写问题,不过还是通过不断测试之后顺利解决了。另外一点要说的就是这个程序用了很多的循环,因此对于循环的控制要十分小心,有时while和do-while的区别也是十分重要的。还有一点体会就是,书上和老师教的内容是有限的,我们需要不断地靠自己去学习,向他人请教,了解和掌握更多的知识,这样我们才能编出更好的C程序。总体来说,这次C语言程序设计实验还是比较成功的,虽然最终程序还存在一些不足,但能取得这样的成绩我还是比较高兴的。最后,要感谢学校为我们提供这次实

29、验机会,也要感谢老师的教导和好心人对我的帮助与支持。 附 录程序代码#include #include#include typedef struct char score; /*编号*/char name10; /*姓名*/ char num15; /*号码*/ char email20; /*邮箱*/char age8; /*年龄*/char adds20; /*住址*/Person; Person pe80; int menu_select() char c; do system(cls); printf(tt *通讯录* n); printf(tt |-|n); printf(tt 1.

30、 添加记录 n); printf(tt 2. 显示记录 n); printf(tt 3. 删除记录 n); printf(tt 4. 查询记录 n); printf(tt 5. 修改记录 n); printf(tt 6. 保存记录 n);printf(tt 0. 退出程序 n); printf(tt|-|n); printf(tt请您选择(0-6):); c=getchar(); while(c6); return(c-0); int Input(Person per,int n) int i=0; char sign,x10; while(sign!=n&sign!=N) printf(t编

31、号:); scanf(t%d,&pern+i.score); printf(t姓名:); scanf(t%s,pern+i.name); printf(t年龄:); scanf(t%s,pern+i.age);printf(t电话号码:); scanf(t%s,pern+i.num); printf(t通讯住址:); scanf(t%s,pern+i.adds);printf(t电子邮箱:);scanf(t%s,pern+i.email);gets(x); printf(nt是否继续添加?(Y/N); scanf(t%c,&sign); i+; return(n+i); void Display(Person per,int n) int i; printf(-n); /*格式*/ printf(编号 姓名 年龄 电话号码 通讯地址 电子邮箱n); printf(-n); for(i=1;in+1;i+) printf(%-5d%-8s%-6s%-13s%-15s%-15s

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服