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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(昆明理工大学 程序设计语言课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

昆明理工大学 程序设计语言课程设计.docx

1、昆明理工大学 程序设计语言课程设计课程设计课程名称: 程序设计语言课程设计 设计题目: 万年历的设计 通讯录的设计 学 院: 信息工程与自动化学院 专 业: 计算机科学与技术 年 级: 2012 级 学生姓名: 邹华宇(201210405204) *日 期: 2013年 7月9日 教 务 处 制1、课程设计目的和要求 11.1 课程设计的目的11.2 课程设计的要求12、课程设计的内容 2 2.1 基础程序设计22.2 万年历的设计22.3 通讯录的设计23、解决问题的思路和方法 43.1 基础程序设计思路43.2 万年历的设计思路43.3 通讯录的设计思路74、程序实现94.1基础程序设计源

2、代码 94.2 万年历的程序源代码 124.3 通讯录的程序源代码 165、结果展示和程序分析 235.1基础程序的运行结果及分析 235.2 万年历的运行结果及分析 255.3通讯录的运行结果及分析 296、总结与体会341、课程设计目的和要求1.1 课程设计的目的:(1)复习、巩固C语言的基础知识,掌握C语言的编程技巧和上机调试程序的方法,进一步加深对C语言的理解和掌握。(2)为学生提供了一个既动手又动脑,独立实践的机会,掌握通过程序设计语言解决实际问题的方法、步骤,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。(3)培养学生在

3、项目开发中团队合作精神、创新意识及能力。1.2 课程设计的要求:(1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;(2)系统设计要实用,编程简练,可用,功能全面(3)说明书、流程图要清楚(4)记录设计情况(备查,也为编写设计说明书作好准备);(5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。(6)设计上交内容:设计报告一份(按格式书写);源程序盘一张(能编译成可执行文件并能正常运行,可一个班交一张光盘)。2、课程设计的内容2.1基础程序设计本设计部分主要完成与链表操作相关的基本运算,其中

4、包含:链表的建立、链表的输出、链表的插入、链表的删除等运算。2.2万年历的设计:要求:模仿现实生活中的挂历,能够显示年历、月历、日历,并具备退出功能。当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。当系统日期变到下一月时,系统自动翻页到下一月。2.3 通讯录设计制作一个通讯录程序,该程序具有查找、添加、修改、删除功能。通讯录包括:姓名,电话,街道,城市,省,邮编等。模块设计参考: 第一个模块主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块Menu()的功能是:显示英文提示选单。第三个模块Quit()的功能是:退出选单。 第四个模块

5、Create()的功能是:创建新的通讯录。第五个模块Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。第六个模块Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。第七个模块Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。第八个模块Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。第九个模块List()的功能是:显示通讯录中的所有记录。3、解决问题的思路和方法3.1基础程序设计思路 用尾插法完成新建链表

6、,反复调用menu()函数使用菜单,调用各个子函数实现对链表的初始化,删除,输出等操作。3.2万年历的程序流程图: 主要程序流程图: 具体对于月份和年份的程序图如下: 上图为计算星期方法 上图为打印日历程序图 3.3 通讯录的设计流程图:程序结构:4、程序实现:4.1基础程序设计的源代码:#include #include typedef struct node char data; struct node *next; Node,*linklist;linklist H;void print(linklist L) Node *a; a=L-next;while(a!=NULL) print

7、f(%c-,a-data); a=a-next;printf(n); linklist CreateFromTail () linklist L; Node *s,*r; char c; int flag=1; L=(linklist)malloc(sizeof(Node); L-next=NULL; r=L; while(flag) c=getchar(); if(c!=$) s=(Node*)malloc(sizeof(Node); s-data=c; r-next=s; r=s; else flag=0; r-next=NULL; return L;int DelList(linklis

8、t L,int i) Node *p,*r; int k; p=L; k=0; printf(未删除时的链表); print(L); while(p-next!=NULL&knext; k=k+1; if(k!=i-1) printf(删除节点的位置i不合理!); return 0; r=p-next; p-next=p-next-next; free(r); return 1;int InsList(linklist L,int i,char e) Node *p,*s; int k; p=L; k=0; printf(未插入时的链表:); print(L); printf(n); whil

9、e(p!=NULL&knext; k=k+1; if(k!=i-1) printf(插入节点的位置i不合理!); return 0; s=(Node*)malloc(sizeof(Node); s-data=e; s-next=p-next; p-next=s; return 1;void menu() char ch,e; int i,j; do 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

10、#n); printf(请输入1-5的数据n); scanf(n%2c,&ch); while (ch5|ch1); switch(ch) case 1: H=CreateFromTail(); print(H); break; case 2: scanf(%d_%c,&i,&e); InsList(H,i,e); printf(插入后的链表:); print(H); break; case 3: scanf(%d,&j); DelList(H,j); printf(删除后的链表); print(H); break; case 4: printf(输出链表为); print(H); break

11、; case 5:exit(0); void main() do menu(); while(1);4.2 万年历的设计的程序源代码:#include #include #include void f()int day,month,year,sum,leap,S;printf(n请输入年月日n);scanf(%d%d%d,&year,&month,&day);while(1) if(month12|month31|day1) printf(输入错误,重新输入); scanf(%d%d%d,&year,&month,&day); else break;switch(month)case 1:su

12、m=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf(data error);break;sum=sum+day;if(year%400=0|(year%4=0&year%100!=0)leap=1;else leap=0;

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

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