欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    学生通讯录管理系统(C语言课程设计实验报告).doc

    • 资源ID:2385330       资源大小:120KB        全文页数:28页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生通讯录管理系统(C语言课程设计实验报告).doc

    C语言课程设计姓名:刘显学号:09041131班级:090411专业:计算机科学与技术学院:信息工程学院设计题目:学生通讯录管理系统指导教师:宋文琳提交时间:2010年9月4日课程题目:学生通讯录管理系统要求:学生通讯录信息包括:学号、姓名、班机、联系电话、E-mail、宿舍等主要功能:1、 通讯录信息录入功能2、 通讯录信息删除功能3、 通讯录信息浏览功能4、 通讯录信息查询功能5、 按学号排序功能一、总体设计首先,整个系统必须有一个主函数,为了尽量提高程序的易修改性,且不至于相互干扰,将每一个功能分成不同的模块,用不同的函数来实现,例如在我写的这个程序中,一共用了11个函数,分别是:主菜单函数menu()、关于函数gaunyu()、帮助函数help()、输出单个学生信息函数shuchu()、输入函数shuru()、输出所有学生信息函数findall()、按姓名查找函数findname()、按学号查找函数findnum()、删除函数shanchu()、排序函数paixu()、主函数main(),这样在整个程序的设计过程中也就一目了然,写起来也相对轻松了不少。这个程序我只是总体上参考了一下网上程序的架构,具体的各个函数是参照课本上链表那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,其中排序功能虽没有原版的,但是在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的,总之整个程序中蕴含了我很多的汗水。二、具体设计关于这个程序的具体设计,也不是一两句话就能说完的,所以我也不想再在这里赘述了,因为程序里都可以看的到,几乎每个函数都倾注了我的大量汗水,我在这上面花了不少的时间,不过从中也收获了很多,因为不停地修改不停的调试,总之还是直接看源程序吧,因为也没必要在这里重复地说废话。三、源代码以下是整个程序的源代码,其中我的主菜单函数是很美观的,但由于这里字体和板式的限制,不能很好的显现,可以看我下面程序运行的截图就知道了。#include<stdio.h>#include<string.h>#include<malloc.h>#include<stdlib.h>#include<conio.h>#define NULL 0struct studentlong num;char name20;int banji;char tel11;char Email20;int sushe;struct student *next;struct student *stu;int n;void menu(void) /*主菜单函数*/system("cls");puts("*");puts("* _学生通讯录管理系统_ *");puts("*");puts("* 计 *");puts("* *");puts("* 算 *");puts("* 0 1=录入学生通讯录信息 *");puts("* 9 刘 2=列出所有学生通讯录 机 *");puts("* 0 3=按姓名查询信息 *");puts("* 4 显 4=按学号查询信息 科 *");puts("* 1 5=删除学生信息 *");puts("* 1 安 6=按学号将通讯录排序 学 *");puts("* 3 7=关于 *");puts("* 1 8=帮助 与 *");puts("* 0=退出 *");puts("* 技 *");puts("* *");puts("* 术 *");puts("*");void guanyu() /*关于函数*/system("cls");puts("n * ");puts(" * 版权所有,翻版必究! *");puts("* copyright刘显安! *");puts(" * 20092010 *");puts(" *");puts("n返回主菜单请按【9】");if(getche()='9') menu();struct student *shuru(void) /*输入函数*/system("cls");struct student *s1,*s2;n=1;int num;puts("请输入学生个数(提示:个数不能输入0!):");scanf("%d",&num);s1=s2=(struct student *)malloc(sizeof(struct student);puts("*");puts("请输入学号:");scanf("%ld",&s1->num);puts("请输入学生姓名:");scanf("%s",s1->name);puts("请输入班级:");scanf("%d",&s1->banji);puts("请输入电话号码:");scanf("%s",s1->tel);puts("请输入电子邮件:");scanf("%s",s1->Email);puts("请输入学生宿舍号:");scanf("%d",&s1->sushe);stu=s1;while(n<num)s2->next=s1;s2=s1;s1=(struct student *)malloc(sizeof(struct student);puts("*");puts("请输入学号:");scanf("%ld",&s1->num);puts("请输入学生姓名:");scanf("%s",s1->name);puts("请输入班级:");scanf("%d",&s1->banji);puts("请输入电话号码:");scanf("%s",s1->tel);puts("请输入电子邮件:");scanf("%s",s1->Email);puts("请输入学生宿舍号:");scanf("%d",&s1->sushe);n=n+1;puts("*");s2->next=s1;s2=s1;s2->next=NULL;return(stu);/system("cls");void shuchu(struct student *s) /*输出单个学生信息*/printf("* %-8ld",s->num);printf("%-15s",s->name);printf("%-8d",s->banji);printf("%-15s",s->tel);printf("%-15s",s->Email);printf("%-5d *n",s->sushe);void findall() /*输出所有学生信息*/ system("cls");struct student *s;/if(n=2)/printf("n现在有%d个学生信息,分别是:n",n);/elseprintf("n现在有%d个学生信息,分别是:n",n);puts("_");puts("* 学号 姓名 班级 电话 电子邮件 宿舍 *");s=stu;while(s!=NULL) shuchu(s); s=s->next;puts("_");puts("返回主菜单请按【9】");if(getche()='9') menu();void findname() /*按姓名查找函数*/system("cls");struct student *s;char name20;printf("n请输入你要查询的学生姓名:n");scanf("%s",name);s=stu;while(strcmp(s->name,name)!=0)s=s->next;if(s=NULL)puts("查无此学生姓名!");goto end;elseputs("该学生的信息为:"); puts("* 学号 姓名 班级 电话 电子邮件 宿舍 *");shuchu(s);end:;puts("返回主菜单请按【9】");if(getche()='9') menu();void findnum() /*按学号查找函数*/system("cls");struct student *s;puts("请输入你要查询的学生学号:");long i;scanf("%ld",&i);s=stu;while(s->num!=i)s=s->next;if(s=NULL)puts("查无此学生学号!");goto end;elseputs("该学生的信息为:");puts("* 学号 姓名 班级 电话 电子邮件 宿舍 *");shuchu(s);end:;puts("返回主菜单请按【9】");if(getche()='9') menu();struct student *shanchu(struct student*stu) /*删除函数*/system("cls");long num;char s;struct student *s1,*s2;if(stu=NULL)puts("傻冒!没有任何学生信息,还删个屁啊,删删删!");goto end;puts("请输入你要删除的学生学号:");scanf("%ld",&num);s1=stu;puts("警告:你确定要删除这个学生的信息吗(Y/N)?");scanf("%s",&s);if(s='Y')|(s='y') while(num!=s1->num)&&(s1->next!=NULL) s2=s1;s1=s1->next; if(num=s1->num) puts("该学生的信息为:"); puts("* 学号 姓名 班级 电话 电子邮件 宿舍 *"); shuchu(s1);if(s1=stu) stu=s1->next; else s2->next=s1->next; puts("注意哟,该学生的信息已经删除了!剩下的学生通讯录信息如下:"); n=n-1; findall();return(stu);end:;puts("返回主菜单请按【9】");if(getche()='9') menu();void paixu() /*排序函数*/struct student *p, *p1,*p2;int i,j;int temp; char b20; if(stu=NULL) printf("n学生信息不存在n"); goto end; for(i=0;i<n-1;i+) p1=stu; for(j=0;j<n-1;j+) p2=p1->next; if(p1->num>p2->num) temp=p1->num;p1->num=p2->num;p2->num=temp; strcpy(b,p1->name);strcpy(p1->name,p2->name);strcpy(p2->name,b); temp=p1->banji;p1->banji=p2->banji;p2->banji=temp; strcpy(b,p1->tel);strcpy(p1->tel,p2->tel);strcpy(p2->tel,b); strcpy(b,p1->Email);strcpy(p1->Email,p2->Email);strcpy(p2->Email,b); temp=p1->sushe;p1->sushe=p2->sushe;p2->sushe=temp; p1=p1->next; p=stu; puts("已按学生学号顺序排序完毕!重新排序如下:"); puts("*"); puts("* 学号 姓名 班级 电话 电子邮件 宿舍 *");while(p!=NULL)printf("* %-8ld",p->num);printf("%-15s",p->name);printf("%-8d",p->banji);printf("%-15s",p->tel);printf("%-15s",p->Email);printf("%-5d *n",p->sushe);p=p->next;end:;puts("返回主菜单请按【9】"); if(getche()='9') menu();void help() /*帮助函数*/system("cls");puts("n1、请按提示操作,第一次进入本系统时请按“1”录入学生信息,");puts(" 否则有可能造成程序运行错误!");puts("2、添加、修改功能本系统暂不提供,还有待以后完善,谢谢合作!");puts("3、请注意查看“Num Lock”是否打开,如果没有打开,则按数字n 键可能导致程序错误!");puts("4、版权所有,翻版必究!请按“7”键查看关于。");puts("n返回主菜单请按【9】");if(getche()='9') menu();void main() /*主函数*/char a;menu();puts("n您为首次使用本系统,强烈建议您按1开始录入学生信息,");puts("否则有可能导致程序运行错误!您可以按8查看帮助.");a=getche();while(a) puts(""); switch(a) case'0':goto end;break; case '1': puts("n好了,您可以开始向本系统录入学生通讯录信息了:"); stu=shuru(); system("cls"); menu(); puts("n学生信息录入完毕,请输入你的选择(06):n"); break; case '2':findall();puts("n请输入你的选择(06):"); break; case '3':findname();puts("n请输入你的选择(06):"); break; case '4':findnum();puts("n请输入你的选择(06):"); break; case '5':stu=shanchu(stu);puts("n请输入你的选择(06):"); break; case '6':paixu();puts("n请输入你的选择(06):"); break; case '7':guanyu();puts("n请输入你的选择(06):"); break; case '8':help();puts("n请输入你的选择(06):"); break; default:puts("输错了!笨蛋!快点按数字1键录入学生信息吧!"); break; a=getche(); end:;puts("谢谢您使用本系统,欢迎再次使用!");四、调试主要是通过截图来显示运行过程以下是程序运行的主界面:按1后,开始录入信息,程序会提示你输入学生个数(例如本例中输入4个),当输完4个学生的信息时,程序会提示你已输入完毕:学生信息录入完毕,提示输入(0到6)进行选择:这时我选择按2输出所有学生信息,按9返回:按3按姓名查询信息:按4按学号查询信息:按5删除学生信息,这是按学号删除学生信息,本例中,删除学号为41212的学生信息:删除成功后,系统自动将剩下的学生信息列出:按6按学号从小到大进行排序,可以发现,排序成功:按8查看帮助函数:呵呵,这是我设置的关于函数,满足一下敝人的虚荣心嘛_,版权所有,翻版必究哦!最后按0退出系统:呵呵,怎么样?我写的程序还行吧。嘿嘿三、总结这个程序我只是总体上参考了一下网上程序的架构,具体的各个函数是参照课本上链表那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,其中排序功能虽没有原版的,但是在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的,总之整个程序中蕴含了我很多的汗水。

    注意事项

    本文(学生通讯录管理系统(C语言课程设计实验报告).doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开