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

2020-02-27 其他范文 下载本文

学生通讯录管理系统(C语言课程设计实验报告)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言通讯录实验报告”。

C语言课程设计报告——刘显安

C语言课程设计

姓名:刘显安 学号:09041131 班级:090411 专业:计算机科学与技术 学院:信息工程学院 设计题目:学生通讯录管理系统

指导教师:宋文琳 提交时间:2010年9月4日

第1页(共25页)

C语言课程设计报告——刘显安

课程题目:学生通讯录管理系统

要求:学生通讯录信息包括:学号、姓名、班机、联系电话、E-mail、宿舍等 主要功能:1、2、3、4、5、通讯录信息录入功能 通讯录信息删除功能 通讯录信息浏览功能 通讯录信息查询功能 按学号排序功能

一、总体设计

首先,整个系统必须有一个主函数,为了尽量提高程序的易修改性,且不至于相互干扰,将每一个功能分成不同的模块,用不同的函数来实现,例如在我写的这个程序中,一共用了11个函数,分别是:

主菜单函数menu()、关于函数gaunyu()、帮助函数help()、输出单个学生信息函数shuchu()、输入函数shuru()、输出所有学生信息函数findall()、按姓名查找函数findname()、按学号查找函数findnum()、删除函数shanchu()、排序函数paixu()、主函数main(),这样在整个程序的设计过程中也就一目了然,写起来也相对轻松了不少。

这个程序我只是总体上参考了一下网上程序的架构,具体的各个函数是参照课本上《链表》那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,其中排序功能虽没有原版的,第2页(共25页)

C语言课程设计报告——刘显安

但是在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的,总之整个程序中蕴含了我很多的汗水。

二、具体设计

关于这个程序的具体设计,也不是一两句话就能说完的,所以我也不想再在这里赘述了,因为程序里都可以看的到,几乎每个函数都倾注了我的大量汗水,我在这上面花了不少的时间,不过从中也收获了很多,因为不停地修改不停的调试,总之还是直接看源程序吧,因为也没必要在这里重复地说废话。

三、源代码

以下是整个程序的源代码,其中我的主菜单函数是很美观的,但由于这里字体和板式的限制,不能很好的显现,可以看我下面程序运行的截图就知道了。—————————————————— #include #include #include #include #include #define NULL 0

struct student{

第3页(共25页)

C语言课程设计报告——刘显安

long num;char name[20];int banji;char tel[11];char Email[20];int sushe;struct student *next;};

struct student *stu;int n;

void menu(void){ /*主菜单函数*/ system(“cls”);puts(“****************************************************************************”);puts(“** ^_^学生通讯录管理系统^_^ **”);puts(“****************************************************************************”);puts(“******** 计 ********”);

第4页(共25页)

C语言课程设计报告——刘显安

puts(“******* *******”);puts(“****** 算 ******”);puts(“***** 0 1=录入学生通讯录信息 *****”);puts(“**** 9 机 ****”);puts(“*** ***”);puts(“** 科 **”);puts(“*

*”);puts(“** 1 学 **”);puts(“*** ***”);puts(“**** 与 ****”);puts(“***** *****”);0 4

刘 2=

安 6=

第5页(共25页)

列出所有学生通讯录 3=按姓名查询信息 4=按学号查询信息

5=删除学生信息 按学号将通讯录排序

7=关于

8=帮助

0=退出

C语言课程设计报告——刘显安

puts(“****** 技 ******”);puts(“******* *******”);puts(“******** 术 ********”);puts(“****************************************************************************”);} void guanyu()/*关于函数*/ { system(“cls”);puts(“n ************************** ”);puts(“ *** 版权所有,翻版必究!***”);puts(“**** copyright◎刘显安!****”);puts(“ *** 2009~2010 ***”);puts(“ **************************”);puts(“n返回主菜单请按【9】”);if(getche()=='9')menu();}

struct student *shuru(void)/*输入函数*/

第6页(共25页)

C语言课程设计报告——刘显安

{ 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;

第7页(共25页)

C语言课程设计报告——刘显安

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->banji);puts(“请输入电话号码:”);scanf(“%s”,s1->tel);puts(“请输入电子邮件:”);scanf(“%s”,s1->Email);puts(“请输入学生宿舍号:”);scanf(“%d”,&s1->sushe);n=n+1;} puts(“*************************************************”);s2->next=s1;

第8页(共25页)

C语言课程设计报告——刘显安

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);//else

第9页(共25页)

C语言课程设计报告——刘显安

printf(“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 name[20];printf(“n请输入你要查询的学生姓名:n”);

第10页(共25页)

C语言课程设计报告——刘显安

scanf(“%s”,name);s=stu;while(strcmp(s->name,name)!=0){ s=s->next;} if(s==NULL){ puts(“查无此学生姓名!”);goto end;} else { puts(“该学生的信息为:”);puts(“* 学号

姓名

电子邮件 宿舍 *”);shuchu(s);} end:;puts(“返回主菜单请按【9】”);if(getche()=='9')menu();}

第11页(共25页)

班级

电话

C语言课程设计报告——刘显安

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;} else { puts(“该学生的信息为:”);puts(“* 学号 姓名 班级 邮件 宿舍 *”);shuchu(s);

第12页(共25页)

子电话 电C语言课程设计报告——刘显安

} 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);

第13页(共25页)

C语言课程设计报告——刘显安

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:;

第14页(共25页)

C语言课程设计报告——刘显安

puts(“返回主菜单请按【9】”);if(getche()=='9')menu();}

void paixu(){ /*排序函数*/ struct student *p, *p1,*p2;int i,j;int temp;char b[20];if(stu==NULL){printf(“n学生信息不存在n”);goto end;} for(i=0;inext;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->nam

第15页(共25页)

C语言课程设计报告——刘显安

e,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)

第16页(共25页)

C语言课程设计报告——刘显安

{ 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(“n

1、请按提示操作,第一次进入本系统时请按“1”录入学生信息,”);puts(“ 否则有可能造成程序运行错误!”);puts(“

2、添加、修改功能本系统暂不提供,还有待以后完善,谢谢

第17页(共25页)

C语言课程设计报告——刘显安

合作!”);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好了,您可以开始向本系统录入学生通讯录信息了:

第18页(共25页)

C语言课程设计报告——刘显安

”);stu=shuru();system(“cls”);menu();puts(“n学生信息录入完毕,请输入你的选择(0~6):n”);

break;case '2':findall();puts(“n请输入你的选择(0~6):”);break;case '3':findname();puts(“n请输入你的选择(0~6):”);break;case '4':findnum();puts(“n请输入你的选择(0~6):”);break;case '5':stu=shanchu(stu);puts(“n请输入你的选择(0~6):”);break;case '6':paixu();puts(“n请输入你的选择(0~6):”);break;case '7':guanyu();puts(“n请输入你的选择(0~6):”);break;case '8':help();puts(“n请输入你的选择(0~6):”);break;default:puts(“输错了!笨蛋!快点按数字1键录入学生信息吧!”);break;} a=getche();} end:;puts(“谢谢您使用本系统,欢迎再次使用!”);

第19页(共25页)

C语言课程设计报告——刘显安

} —————————————————————————

四、调试

主要是通过截图来显示运行过程 以下是程序运行的主界面:

按1后,开始录入信息,程序会提示你输入学生个数(例如本例中输入4个),当输完4个学生的信息时,程序会提示你已输入完毕:

第20页(共25页)

C语言课程设计报告——刘显安

学生信息录入完毕,提示输入(0到6)进行选择:

第21页(共25页)

C语言课程设计报告——刘显安

这时我选择按2输出所有学生信息,按9返回:

按3按姓名查询信息:

按4按学号查询信息:

第22页(共25页)

C语言课程设计报告——刘显安

按5删除学生信息,这是按学号删除学生信息,本例中,删除学号为41212的学生信息:

删除成功后,系统自动将剩下的学生信息列出:

按6按学号从小到大进行排序,可以发现,排序成功:

第23页(共25页)

C语言课程设计报告——刘显安

按8查看帮助函数:

呵呵,这是我设置的关于函数,满足一下敝人的虚荣心嘛^_^,版权所有,翻版必究哦!

最后按0退出系统:

第24页(共25页)

C语言课程设计报告——刘显安

呵呵,怎么样?我写的程序还行吧。嘿嘿……

三、总结

这个程序我只是总体上参考了一下网上程序的架构,具体的各个函数是参照课本上《链表》那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,其中排序功能虽没有原版的,但是在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的,总之整个程序中蕴含了我很多的汗水。

第25页(共25页)

C语言课程设计通讯录管理

课程设计报告课程设计题目:通讯录管理学生姓名:专业:班级:指导教师:2009年6月16日 实验题目:《通讯录管理》实验时间、地点:2009-6-8到2009-6-12日信工楼307 实验目的:本次课程......

C语言通讯录管理系统

#include #include #include struct record{ charnum[12]; char name[10]; char birthday[10]; char post[10]; char phone[15]; }data[100]; intmenu_select( ); intcreat......

C语言程序设计学生通讯录管理系统

#include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" #include "stdlib.h" #define null 0 struct record { char name[20]; char p......

湖南工业大学 通讯录管理系统课程设计报告书(C语言)

湖南工业大学二〇〇九 ~ 二〇一〇学年 第 二 学期计算机与通信学院课程设计报告书课程名称: C语言课程设计 班 级: 学 号:姓 名: 指导老师: 二〇〇九 年 九 月通讯录管理系统......

C语言大作业——学生通讯录管理系统

#include #include //#define NULL 0 #define LEN sizeof(struct meage) struct meage//定义结构体{char name[15];char number[15];char phone[15];char qq[13];char add......

《学生通讯录管理系统(C语言课程设计实验报告).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
学生通讯录管理系统(C语言课程设计实验报告)
点击下载文档
相关专题 c语言通讯录实验报告 管理系统 学生 实验报告 c语言通讯录实验报告 管理系统 学生 实验报告
[其他范文]相关推荐
[其他范文]热门文章
下载全文