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

上传人:仙人指路1688 文档编号:2385330 上传时间:2023-02-17 格式:DOC 页数:28 大小:120KB
返回 下载 相关 举报
学生通讯录管理系统(C语言课程设计实验报告).doc_第1页
第1页 / 共28页
学生通讯录管理系统(C语言课程设计实验报告).doc_第2页
第2页 / 共28页
学生通讯录管理系统(C语言课程设计实验报告).doc_第3页
第3页 / 共28页
学生通讯录管理系统(C语言课程设计实验报告).doc_第4页
第4页 / 共28页
学生通讯录管理系统(C语言课程设计实验报告).doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《学生通讯录管理系统(C语言课程设计实验报告).doc》由会员分享,可在线阅读,更多相关《学生通讯录管理系统(C语言课程设计实验报告).doc(28页珍藏版)》请在三一办公上搜索。

1、C语言课程设计姓名:刘显学号:09041131班级:090411专业:计算机科学与技术学院:信息工程学院设计题目:学生通讯录管理系统指导教师:宋文琳提交时间:2010年9月4日课程题目:学生通讯录管理系统要求:学生通讯录信息包括:学号、姓名、班机、联系电话、E-mail、宿舍等主要功能:1、 通讯录信息录入功能2、 通讯录信息删除功能3、 通讯录信息浏览功能4、 通讯录信息查询功能5、 按学号排序功能一、总体设计首先,整个系统必须有一个主函数,为了尽量提高程序的易修改性,且不至于相互干扰,将每一个功能分成不同的模块,用不同的函数来实现,例如在我写的这个程序中,一共用了11个函数,分别是:主菜单

2、函数menu()、关于函数gaunyu()、帮助函数help()、输出单个学生信息函数shuchu()、输入函数shuru()、输出所有学生信息函数findall()、按姓名查找函数findname()、按学号查找函数findnum()、删除函数shanchu()、排序函数paixu()、主函数main(),这样在整个程序的设计过程中也就一目了然,写起来也相对轻松了不少。这个程序我只是总体上参考了一下网上程序的架构,具体的各个函数是参照课本上链表那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,其中排序功能虽没有原版的,但是在第六章中有一个用冒泡法排序的例题,我就是仿照这

3、个模式来对结构体进行排序的,总之整个程序中蕴含了我很多的汗水。二、具体设计关于这个程序的具体设计,也不是一两句话就能说完的,所以我也不想再在这里赘述了,因为程序里都可以看的到,几乎每个函数都倾注了我的大量汗水,我在这上面花了不少的时间,不过从中也收获了很多,因为不停地修改不停的调试,总之还是直接看源程序吧,因为也没必要在这里重复地说废话。三、源代码以下是整个程序的源代码,其中我的主菜单函数是很美观的,但由于这里字体和板式的限制,不能很好的显现,可以看我下面程序运行的截图就知道了。#include#include#include#include#include#define NULL 0stru

4、ct 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=按姓名查询信

5、息 *);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返

6、回主菜单请按【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(请输入班级:);s

7、canf(%d,&s1-banji);puts(请输入电话号码:);scanf(%s,s1-tel);puts(请输入电子邮件:);scanf(%s,s1-Email);puts(请输入学生宿舍号:);scanf(%d,&s1-sushe);stu=s1;while(nnext=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-b

8、anji);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-t

9、el);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) men

10、u();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 f

11、indnum() /*按学号查找函数*/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

12、) /*删除函数*/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(

13、* 学号 姓名 班级 电话 电子邮件 宿舍 *); 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);

14、 goto end; for(i=0;in-1;i+) p1=stu; for(j=0;jnext; if(p1-nump2-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

15、-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(%-5

16、d *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(

17、getche()=9) menu();void main() /*主函数*/char a;menu();puts(n您为首次使用本系统,强烈建议您按1开始录入学生信息,);puts(否则有可能导致程序运行错误!您可以按8查看帮助.);a=getche();while(a) puts(); switch(a) case0:goto end;break; case 1: puts(n好了,您可以开始向本系统录入学生通讯录信息了:); stu=shuru(); system(cls); menu(); puts(n学生信息录入完毕,请输入你的选择(06):n); break; case 2:find

18、all();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):); b

19、reak; default:puts(输错了!笨蛋!快点按数字1键录入学生信息吧!); break; a=getche(); end:;puts(谢谢您使用本系统,欢迎再次使用!);四、调试主要是通过截图来显示运行过程以下是程序运行的主界面:按1后,开始录入信息,程序会提示你输入学生个数(例如本例中输入4个),当输完4个学生的信息时,程序会提示你已输入完毕:学生信息录入完毕,提示输入(0到6)进行选择:这时我选择按2输出所有学生信息,按9返回:按3按姓名查询信息:按4按学号查询信息:按5删除学生信息,这是按学号删除学生信息,本例中,删除学号为41212的学生信息:删除成功后,系统自动将剩下的学生信息列出:按6按学号从小到大进行排序,可以发现,排序成功:按8查看帮助函数:呵呵,这是我设置的关于函数,满足一下敝人的虚荣心嘛_,版权所有,翻版必究哦!最后按0退出系统:呵呵,怎么样?我写的程序还行吧。嘿嘿三、总结这个程序我只是总体上参考了一下网上程序的架构,具体的各个函数是参照课本上链表那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,其中排序功能虽没有原版的,但是在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的,总之整个程序中蕴含了我很多的汗水。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号