c语言课程设计报告 西安邮电大学

上传人:第*** 文档编号:57494785 上传时间:2018-10-22 格式:PDF 页数:13 大小:527.28KB
返回 下载 相关 举报
c语言课程设计报告 西安邮电大学_第1页
第1页 / 共13页
c语言课程设计报告 西安邮电大学_第2页
第2页 / 共13页
c语言课程设计报告 西安邮电大学_第3页
第3页 / 共13页
c语言课程设计报告 西安邮电大学_第4页
第4页 / 共13页
c语言课程设计报告 西安邮电大学_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《c语言课程设计报告 西安邮电大学》由会员分享,可在线阅读,更多相关《c语言课程设计报告 西安邮电大学(13页珍藏版)》请在金锄头文库上搜索。

1、西安郵電西安郵電大大學學C 语言课程设计报告书学院名称学院名称计算机学院学 生 姓 名学 生 姓 名专 业 名 称专 业 名 称班班级级学号学号指 导 教 师指 导 教 师时间时间2013 年 06 月 03 日至2013 年 06 月 12 日实验题目:学生通讯录管理系统实验题目:学生通讯录管理系统一、实验目的一、实验目的通过本次实习,进一步巩固了我们所学过的 c 语言,具备解决综合性的问题的能力,通过系统分析、系统设计、编程调试、 ,写实验报告等环节,初步掌握了软件系统设计的方法和步骤,训练灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平,培养必要的工

2、程实践动手能力。二、实验内容二、实验内容 我设计的是我设计的是“学生通讯录管理系统学生通讯录管理系统” ,主要是针对全校学生通讯信息的管理主要是针对全校学生通讯信息的管理,适用对象适用对象 可以是学校,也可以是一个院,一个班,方便学校对学生的管理和学生之间的互相联系交可以是学校,也可以是一个院,一个班,方便学校对学生的管理和学生之间的互相联系交 流流。学生的信息主要包括学生的姓名学生的信息主要包括学生的姓名、学号学号、电话号码电话号码、qqqq 号码号码、住宿地址住宿地址(例如例如 0155701557, 代表在代表在 0101 号宿舍楼号宿舍楼,557557 宿舍宿舍) 。在编写过程中主要运

3、用在编写过程中主要运用 C C 语言的基本知识有语言的基本知识有:结构体的构结构体的构 建和使用,指针和链表的构建,链表的建立建和使用,指针和链表的构建,链表的建立, ,插入插入, ,删除等,文件的建立,保存,关闭等和删除等,文件的建立,保存,关闭等和 一些系统清屏函数的使用。一些系统清屏函数的使用。三、需求分析三、需求分析 这是一个是这是一个是由由C语言编写的一个学生通讯录语言编写的一个学生通讯录管理软件管理软件, 本程序本程序在在MicrosoftMicrosoft VisualVisual C+C+ 6.06.0 下运行下运行,其主要功能是实现对学生通讯信息的录入其主要功能是实现对学生通

4、讯信息的录入,添加添加,删除删除,保存等保存等。这是个大众这是个大众 化的软件化的软件,操作简单操作简单,占用资源少占用资源少,方便了学生之间的交流和学校对学生通讯信息的方便了学生之间的交流和学校对学生通讯信息的管理。四、实验的概要及部分截图四、实验的概要及部分截图1.方案设计方案设计密 码 登 录添加信息删除信息输入信息查询信息显示信息保存信息学生通讯录管理系统学生通讯录管理系统2.程序中数据主要是学生通讯信息,具体属于类型如下程序中数据主要是学生通讯信息,具体属于类型如下: s structtruct stustu intint num;num; charchar name10;name1

5、0; intint tel;tel; intint qq;qq; intint adradr;3、模块功能说明、模块功能说明 第一密码模块:调用字符比较函数 strcmp(),进行管理者登录操作(密码事先设定为 04112012,可以在代码中直接修改)。 第二录入模块:利用建立的动态链表直接输入,对学生通讯信息进行录入。 第三删除模块:调用 Del (),对某一学生通讯信息进行删除操作 第四添加模块:调用 Add(),对新来学生通讯信息进行添加录入。 第五显示模块:调用 xianshi(),将录入的学生通讯信息显示在屏幕上 第六查询模块:调用 chaxun(),对学生通讯信息进行查询。 第六保

6、存模块:调用 save(),保存输入的学生通讯信息。五、详细设计及运行结果五、详细设计及运行结果1.部分模块运行结果图示部分模块运行结果图示登入界面登入界面主页界面主页界面录入界面(学号输入为零时退出)录入界面(学号输入为零时退出)查询界面(学号输入为零退出)查询界面(学号输入为零退出)添加模块界面添加模块界面显示显示/ 打印界面打印界面保存界面保存界面删除界面删除界面六、说明情况六、说明情况 及心得体会及心得体会 1、重要说明 (密码输入模块 : 密码初始为 04112012,当然密码可以在修改(因为是补考,还要上本专业的课,所以做的有点仓促,密码模块并没有做那么复杂) 当输入正确密码,系统

7、显示“登陆成功”,然后提示按任意键进入主界面,不 过当密码输入三次错误密码时,会提示你输入密码错误已达三次,再按任意键 会自动退出系统。2、实验中的心得体会 心得体会:通过这次课程设计,我对 C 语言有了更深刻的了解, 增强了程序的编写能力,巩固了专业知识,对程序的模块化观念也 又模糊逐渐变的清晰了。在程序的运行与调试过程中出现了很多错 误,通过反复地复习课本上的相关知识,不停地修改与调试,我终 于完成了这段程序,而且有个很大的收获,c 语言程序必须要精炼, 许多人代码写得很长,但是执行起来却很浪费时间和内存空间,尤 其在大型程序,软件的编写和测试中,所以我们要尽量做到简单, 精炼,多试试是否

8、能用一种更简单和实用的程序来代替。在调试过 程中,我认识到了 C 语言的灵活性与严谨性,同一个功能可以由不 同的语句来实现,但编写程序时要特别注意细节方面的问题,因为 一个小小的疏忽就能导致整个程序不能运行。当然我也认识到了自 己的薄弱之处,如对链表相关知识的欠缺,文件运用的不熟练,在 以后的学习中我要集中精力、端正态度,争取把知识学得更扎实、 更全面。参考文献: 语言程序设计 (第二版)王曙燕科学出版社 : 语言程序设计高涛,陆丽娜 编西安交通大学出版社七、源程序清单七、源程序清单 #include #include #include #define N sizeof(struct stu)

9、 #include int n,k; struct stu/定义结构体数组 int num;/定义学生学号类型 char name10;/学生名字类型为字符型 int tel;/学生电话类型为整形 int qq;/qq 号也为整形 int adr;/学生住宿地址也为整形 struct stu *next;/创建带头结点的动态链表 struct stu *creat(void) struct stu *p1,*p2,*head;n=0;head=p2=(struct stu *)malloc(N);/head,p2 指向头结点 system(“cls“); printf(“请输入资料,输 0 退

10、出!n“); while(1) if(n=1) head=p1; else p2-next=p1;/将新结点链接到表尾 p2=p1;/p2 指向新的表尾 p1=(struct stu *)malloc(N);/p1 指向新申请的节点 printf(“请输入学号:“); scanf(“%d“,if(p1-num=0)/学号为 0 时跳出循环 break; printf(“请输入名字:“); scanf(“%s“, printf(“请输入电话:“); scanf(“%d“, printf(“请输入 qq 号:“); scanf(“%d“, printf(“请输入地址(前面的为楼,后三位是宿舍*#*

11、形式) :“); scanf(“%d“, n+;/n 自加 p2-next=NULL;/将表尾节点 next 域置空 free(p1);/释放无效节点 printf(“输入的学生数为:%d 个!n“,n); printf(“按任意键返回主菜单.“); getchar(); return(head);/保存文件函数 save(struct stu *p1) FILE *fp; char dizhi20; system(“cls“); printf(“请输入文件路径及文件名:“); scanf(“%s“,dizhi); if(fp=fopen(dizhi,“w+“)=NULL) printf(“不

12、能打开文件!n“); return 0; while(p1!=NULL) /将输入项表中的变量值按照格式字符串指定的格式输入到文件指针 fp 所指向的文件位置 fprintf(fp,“%dt%st%dt%dt%dtn“,p1-num,p1-name,p1-tel,p1-qq,p1-adr); p1=p1-next;/保存下一个学生信息 fclose(fp);printf(“文件已经保存!n“); fflush(stdin); printf(“按任意键返回主菜单.“); getchar(); return (0);/删除学生信息函数 DEL(struct stu *head) struct st

13、u *p1,*p2; int num; system(“cls“); printf(“输入要删除学生的学号:“); scanf(“%d“, p1=head; while(num!=p1-num/p2 为 p1 的前驱 p1=p1-next; if(num=p1-num) if(p1=head) head=p1-next;/删除 head 头结点,再次产生头结点 else p2-next=p1-next; printf(“已删除:%dn“,num); n=n-1; else printf(“%d 不存在!n“,num); printf(“现在数为:%d 个!n“,n); fflush(stdin

14、); printf(“按任意键返回主菜单.“); getchar(); return(0); /添加学生信息函数 Add(struct stu *head) while(1) struct stu *p, *q; q = head; p=(struct stu *)malloc(N); printf(“请输入添加学生的信息!“); printf(“-n“); printf(“请输入学生学号:n“); scanf(“%d“, printf(“请输入学生姓名:n“); scanf(“%s“,p-name); printf(“请输入学生电话:n“); scanf(“%d“,printf(“请输入学生

15、 qq:n“); scanf(“%d“, printf(“请输入学生住址:n“); scanf(“%d“,while(q-next!=NULL) q = q-next; q-next = p; p-next = NULL; p=head; p=p-next; n+; printf(“,添加完成!现在学生数为:%d 个!n“,n); fflush(stdin); printf(“按任意键返回菜单.“); getchar(); return(head); / 显示学生信息 void xianshi(struct stu *head) struct stu *p;system(“cls“); printf(“学号t 名字t 电话tqqt 地址tn“); printf(“-n“); p=head; while(p!=NULL) printf(“%dt%st%dt%dt%dtn“,p-num,p-name,p-tel,p-qq,p-adr); p=p-next; fflush(stdin); printf(“按任意键返回主菜单.“);getchar();/ 查询学生信息 chaxun(struct stu *head) int num; struct stu *p1; system(“cls“); printf(“

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号