ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:464.98KB ,
资源ID:2906386      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2906386.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(大学教育作为公共品的效率分析-毕业设计.docx)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

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

1、 毕业设计(论文) 题 目:大学教育作为公共品的效率分析 班 级:14级物联网应用技术(1)班 二〇一六年九月 目 录 目 录 i 摘 要 I Abstract II 一 需求分析 1 1.1 引言 1 1.2 功能概述 1 1.3 数据描述 1 1.4 系统菜单 1 1.5 性能概述 2 1.6 运行需求 2 1.7 任务计划 2 二 概要设计 8 2.1 总体设计 8 2.2 数据类型设计(或数据结构设计) 8 2.1 接口设计 9 2.3 运行

2、界面设计 9 三 详细设计 12 3.1 输入模块设计 12 3.2 输出模块设计 12 3.3 查找模块设计 13 3.4 删除模块设计 15 3.5 更改模块设计 15 3.6 保存模块设计 16 四 测试分析 19 4.1 测试程序执行情况 19 4.2 出现的问题和解决的方法 24 五 课程设计总结 25 附 录 26 程序代码 26 参考文献 34 4 摘 要 随着网络与信息技术的发展,人们的联系人越来越多,需要联系的人逐渐增多,需要记录的信息也逐渐增多。以前是将这些信息手写到通讯录中,这很容易造成信息的丢失,而且查找起来很不

3、方便。  本系统主要实现同学信息的管理,包括同学信息的添加、修改、查询和删除,及一些辅助项目管理,如登录系统用户管理和用户组管理。  系统的组成模块主要包括数据集模块,登录窗体模块,系统管理模块,主窗体模块,通讯录模块,通讯录数据管理模块,信息管理模块,登录信息查询模块。 关键词:数据结构;C语言;模块化程序设计;算法 Abstract With the development of network and information technology, people are more and more contacts, need to contact the nu

4、mber 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 information, but it is not easy to find. This system mainly realizes the student information management, includ

5、ing 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 system includes data collection module, login form module, system management module, the main form module, mail

6、list mail list module, data management module, information management module, information query module login. Keywords: data structure;C language;modular programming;algorithm II 一 需求分析 1.1 引言 通过程序设计,达到理论与实际应用相结合,提高对信息管理系统的分析能力,能够根据实际应用,初步实现系统功能模块及算法的设计,通过编程基本实现信息管理系统。 1.2 功能概述 1.

7、采用结构体的形式对数据进行输入输出。 2.可以对通讯录进行简单的排序,筛选,删除。 3.可以对任意信息就行修改。 4.可以把数据已文件的形式输入输出。 5.任意浏览信息。 1.3 数据描述 以所示的文本数据位初始数据进行简单操作,也可另行添加。 1.4 系统菜单 菜单系统 图一 实现以上功能需求。 1.5 性能概述 1.能够进行简单的数据处理。 2.具有对新信息处理打印打能力。 1.6 运行需求 1.输入个人信息时以例如按照“编号、姓名、年龄、电话号码 、通讯地址 、 电子邮箱”的顺序输入。 2.输入时编号年龄、电话号码、通讯地址、电子邮箱以数字格

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

9、 查询界面 图七 6).修改界面: 修改界面 图八 修改后,通讯录里的显示记录: 修改界面 图九 7).保存界面: 保存界面 图十 tongxunlu.txt文件截图: 文件截图 图十一 二 概要设计 2.1 总体设计 主菜单 保存 修改 查询 显示 删除 添加 添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。

10、显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 2.2 数据类型设计(或数据结构设计) typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15

11、]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; 以结构体数组类型输入数据。 2.1 接口设计 表2.1:函数列表 函数名 函数首部 函数功能 int menu_select() void 运行界面 int Input (Person per[],int n) int 输入函数 void Display (Person per[],int n) Void 输出函

12、数 int Delete_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() /*主函数*/ { i

13、nt n=0; for(;;) { switch(menu_select()) { case 1: printf("\n\t添加记录到通讯录\n"); /*添加记录*/ n=Input(pe,n); break; case 2: printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/ Display(pe,n); break; case 3: printf("\n\t从通讯录中

14、删除记录\n"); n=Delete_a_record(pe,n); /*删除记录*/ printf("\t"); system("pause"); break; case 4: printf("\n\t在通讯录中查找记录\n"); Query_a_record(pe,n); /*查找记录*/ printf("\t"); system("pause"); break; case 5: printf("\n\t修改通讯录中的记录\n"); Cha

15、nge(pe,n); /*修改数据*/ printf("\t"); system("pause"); break; case 6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存数据*/ printf("\t"); system("pause"); break; case 0: printf("\n\t\t谢谢使用,再见!\n"); /*结束程序*/ pri

16、ntf("\n\t\t"); system("pause"); exit(0); } } } 以switch为关键控制选着要调用函数的开关,然后以主菜单为主界面,其他功能为扩展界面来运行通讯录管理系统。 主菜单代码为: int menu_select() { char c; do{ system("cls"); printf("\t\t *****通讯录***** \n"); printf("\t\t |-------------------

17、\n"); printf("\t\t│ 1. 添加记录 │\n"); printf("\t\t│ 2. 显示记录 │\n"); printf("\t\t│ 3. 删除记录 │\n"); printf("\t\t│ 4. 查询记录 │\n"); printf("\t\t│ 5. 修改记录 │\n"); printf("\t\t│ 6. 保存记录 │\n"); printf("\t\

18、t│ 0. 退出程序 │\n"); printf("\t\t\|----------------------------------|n"); printf("\t\t请您选择(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); } 如图所示为主要运行界面: 主程序 图十二 35 三 详细设计 3.1 输入模块设计 int Input(Person per[],int n) { int i=0;

19、 char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t编号:"); scanf("\t%d",&per[n+i].score); printf("\t姓名:"); scanf("\t%s",per[n+i].name); printf("\t年龄:"); scanf("\t%s",per[n+i].age); printf("\t电话号码:"); scanf("\t%s",per[n+i].num); prin

20、tf("\t通讯住址:"); scanf("\t%s",per[n+i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[n+i].email); gets(x); printf("\n\t是否继续添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i); } 3.2 输出模块设计 void Display(Person per[],int n)

21、 { int i; printf("----------------------------------------------------------------------\n"); /*格式*/ printf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n"); printf("----------------------------------------------------------------------\n"); for(i=1;i

22、 { printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); if(i>1&&i%10==0) { printf("\t------------

23、\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } 3.3 查找模块设计 void Query_a_record(Person per[],int

24、n) { int m; printf("\t\n请选择查询方式:\n"); printf("\t┌──────┐\n"); printf("\t│1------姓名 │\n"); printf("\t│2------电话 │\n"); printf("\t│3------地址 │\n"); printf("\t│4------返回 │\n"); printf("\t└──────┘\n"); printf("请选择:"); scanf("%d",&m); while(m!=1&&m!=

25、2&&m!=3&&m!=4) { printf("输入错误,请重新选择:"); scanf("%d",&m); } if(m==1) { char s[20]; int i=0; printf("\t请输入想查询的姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i

26、d\n",per[i].score); printf("\t此人年龄: %s\n",per[i].age); printf("\t电话号码: %s\n",per[i].num); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); } ; if(m==2) { char s[20]; int i=0; printf("\t请输入想查询的电话:"); scanf("\t%s",s); while(strcmp(per[i]

27、num,s)!=0&&i

28、f(m==3) { char s[20]; int i=0; printf("\t请输入想查询的地址:"); scanf("\t%s",s); while(strcmp(per[i].adds,s)!=0&&i

29、 %s\n",per[i].age); printf("\t电话号码: %s\n",per[i].num); printf("\t电子邮箱: %s\n",per[i].email); } ; } 3.4 删除模块设计 int Delete_a_record(Person per[],int n) { char s[20]; int i=0,j; printf("\t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i

30、n) { printf("\t通讯录中没有此人!\n"); return(n); } for(j=i;j

31、ore; } printf("\t\t\t已经成功删除!\n"); return(n-1); } 3.5 更改模块设计 void Change(Person per[],int n) { char s[20]; int i=0; printf("\t请输入想修改的记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i

32、intf("\t编号:"); scanf("\t%d",&per[i].score); printf("\t姓名:"); scanf("\t%s",per[i].name); printf("\t年龄:"); scanf("\t%s",per[i].age); printf("\t电话号码:"); scanf("\t%s",per[i].num); printf("\t通讯住址:"); scanf("\t%s",per[i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[i].email);

33、 printf("\t修改成功!"); } 3.6 保存模块设计 void WritetoText(Person per[],int n) { int i=0; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf("\t保存到文件\n"); /*输入文件名*/ prin

34、tf("\t请输入所保存的文件名:"); scanf("\t%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("\t无法打开文件\n"); system("pause"); return; } fprintf(fp,"******************************************通讯录******************************************\n"); fprintf(fp,"编号

35、 姓名 年龄 电话号码 通讯地址 电子邮箱\n"); fprintf(fp,"------------------------------------------------------------------------------------------\n"); while(i

36、per[i].email); i++; } fprintf(fp,"------------------------------------------------------------------------------------------\n"); fprintf(fp,"***************************************共有%d条记录****************************************\n",n); fclose(fp);

37、 /*关闭文件*/ printf("保存成功!\n"); } void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select()) { case 1: printf("\n\t添加记录到通讯录\n"); /*添加记录*/ n=Input(pe,n); break; case 2: prin

38、tf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/ Display(pe,n); break; case 3: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(pe,n); /*删除记录*/ printf("\t"); system("pause"); break; case 4: printf("\n\t在通讯录中查找记录\n"); Query_a_record(pe,n);

39、 /*查找记录*/ printf("\t"); system("pause"); break; case 5: printf("\n\t修改通讯录中的记录\n"); Change(pe,n); /*修改数据*/ printf("\t"); system("pause"); break; case 6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存数据*/ printf("\

40、t"); system("pause"); break; case 0: printf("\n\t\t谢谢使用,再见!\n"); /*结束程序*/ printf("\n\t\t"); system("pause"); exit(0); } } } 四 测试分析 4.1 测试程序执行情况 1).显示的主菜单界面 主菜单 图十三 2).添加界面: 添加界面 图十四 3).显示界面: 显示菜单 图十五 4).删除界面: 删除

41、界面 图十六 删除后,通讯录里的显示记录: 显示界面 图十七 5).查询界面: 查询界面 图十八 以姓名查询方式为例: 查询界面 图十九 6).修改界面: 修改界面 图二十 修改后,通讯录里的显示记录: 显示界面 图二十一 7).保存界面: 保存界面 图二十二 大部分功能以按上面图文描述,有不足的地方请老师批评指正。 您的建议将帮我走得更好。 4.2 出现的问题和解决的方法 1.当我在进行删除、查询、修改、保存等功能时,以查询为例,输入名字按回

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

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

44、感谢学校为我们提供这次实验机会,也要感谢老师的教导和好心人对我的帮助与支持。 附 录 程序代码 #include #include #include typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/

45、 char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; Person pe[80]; int menu_select() { char c; do{ system("cls"); printf("\t\t *****通讯录***** \n"); printf("\t\t |----------------------------------|\n");

46、 printf("\t\t│ 1. 添加记录 │\n"); printf("\t\t│ 2. 显示记录 │\n"); printf("\t\t│ 3. 删除记录 │\n"); printf("\t\t│ 4. 查询记录 │\n"); printf("\t\t│ 5. 修改记录 │\n"); printf("\t\t│ 6. 保存记录 │\n"); printf("\t\t│ 0. 退出程序 │\n

47、"); printf("\t\t\|----------------------------------|n"); printf("\t\t请您选择(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); } int Input(Person per[],int n) { int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t

48、编号:"); scanf("\t%d",&per[n+i].score); printf("\t姓名:"); scanf("\t%s",per[n+i].name); printf("\t年龄:"); scanf("\t%s",per[n+i].age); printf("\t电话号码:"); scanf("\t%s",per[n+i].num); printf("\t通讯住址:"); scanf("\t%s",per[n+i].adds); printf("\t电子邮箱:"); scanf("\t%s",per

49、[n+i].email); gets(x); printf("\n\t是否继续添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i); } void Display(Person per[],int n) { int i; printf("----------------------------------------------------------------------\n");

50、 /*格式*/ printf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n"); printf("----------------------------------------------------------------------\n"); for(i=1;i

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服