C语言计算机学生通讯录课程设计.docx
《C语言计算机学生通讯录课程设计.docx》由会员分享,可在线阅读,更多相关《C语言计算机学生通讯录课程设计.docx(22页珍藏版)》请在冰豆网上搜索。
![C语言计算机学生通讯录课程设计.docx](https://file1.bdocx.com/fileroot1/2023-2/2/50c4cf39-8ce7-49c5-9890-9de3a42b564e/50c4cf39-8ce7-49c5-9890-9de3a42b564e1.gif)
C语言计算机学生通讯录课程设计
数学与计算机学院
课程设计说明书
课程名称:
计算机科学与技术程序设计语言-课程设计
课程代码:
题目:
学生通讯录管理系统
年级/专业/班:
学生姓名:
学 号:
开始时间:
年月日
完成时间:
年月日
课程设计成绩:
学习态度及平时成绩(30)
技术水平与实际能力(20)
创新(5)
说明书撰写质量(45)
总分(100)
指导教师签名:
年月日
摘要
随着计算机的普及,人们可以使用计算机做很多事事。
计算机科学及其应用的发展十分迅猛,计算机被广泛地应用于人类生产、生活的各个领域,推动了社会的进步与发展。
特别是随着国际互联网(Internet)日益深入千家万户,传统的信息收集、传输及交换方式正被革命性地改变,我们已经难以摆脱对计算机的依赖,计算机已将人类带入了一个新的时代—信息时代。
而在信息时代对计算机的应用程序编写是尤为重要的,C语言是重要的编程语言。
分析“学生通讯录管理系统”,运用C语言编程实现“学生通讯录管理系统”,该系统具有创建通讯录的功能并把创建的通讯录保存到文件中,具有显示通讯录的功能,具有随时增添信息的功能,具有查询的功能并可以通过姓名学号等多种查询功能,具有删除通讯录的功能。
关键词:
学生通讯录管理系统;计算机;录入、查询、显示、删除。
1引言
1.1问题的提出
在现代化教学中,学生通讯录管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。
某学校与这种目的制作了这个学生通讯录管理系统。
1.2国内外研究的现状
国内外对学生通讯录系统程序编写基本上建立在大型,以及超大型学生通讯录的基础上但对小型的学生通讯录系统则没有太多的介入。
1.5任务与分析
本课题主要的目的是编译学生通讯录管理系统,可以录入、查询、显示、删除学生通讯信息。
(1)录入通讯信息——建立一个函数,可以添加学生通讯信息,添加完后返回主菜单;
(2)查询通讯信息——建立二个函数,可以分别通过学号、姓名查询通讯信息,查询完后返回主菜单。
(3)显示通讯信息——建立一个函数,可以显示全部学生的通讯信息,实现后可返回主菜单。
(4)删除学生通讯信息—建立二个函数,可以通过学生姓名、学号删除学生通讯信息,实现后返回主菜单。
2程序的主要功能
2.1添加功能
添加一个学生的基本通讯信息,包括姓名,学号,电话号码。
2.2删除功能
能够对一个学生的通讯信息进行删除按姓名、学号进行删除。
2.3删除全部职员信息
能够对于全部学生的通讯信息进行删除!
2.4显示功能
显示所有学生的信息包括姓名、学号、电话号码。
2.5查询功能
根据你键入的学生姓名或学号,显示其详细信息。
3程序运行平台
vC++6.0。
具体操作如下:
新建文件,编写代码,把程序分成若干模块。
分别编写各模块,编写好后编译,纠错,改正错误后,连接,然后运行程序。
4总体设计
图4.1系统总体框架图
图4.2系统流程图
5模块分析
5.1添加模块
系统将提示用户输入新添加的学生的信息,根据提示输入学生姓名、学号、电话号码。
输入完后,系统将提示是否继续输按n停止按y继续。
程序流程如图5.1
、
图5.1
关键代码:
//添加纪录
voidnewrecord()
{
printf("\n\t\t****************请输入学生信息****************\n");
printf("\n\t\t输入学号:
");
scanf("%s",&student[num].id);
printf("\n\t\t输入姓名:
");
scanf("%s",&student[num].name);
printf("\n\t\t输入电话号码:
");
scanf("%s",&student[num].phone);
num++;
printf("\n\t\t是否继续添加?
(Y/N):
");
if(getch()=='y')
newrecord();
return;
}
5.2显示模块
显示模块将输出所有学生的通讯信息。
按系统的提示按相应按键系统将调用已录如的学生通讯信息,并全部输出。
关键代码:
//显示所有
voidshowall()
{
inti;
if(num!
=0)
{
printf("\n\t\t***************以下为通讯录所有信息************");
for(i=0;i{
printf("\n\t\t学号:
%s",student[i].id);
printf("\n\t\t姓名:
%s",student[i].name);
printf("\n\t\t电话:
%s",student[i].phone);
}
printf("\n\t\t************************************************");
}
else
printf("\n\t\t通讯录中无任何纪录");
printf("\n\t\t按任意键返回主菜单:
");
getch();
return;
}
5.3查询模块
首先由用户输入要查找的学生的姓名或学号,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的学生资料。
程序流程图:
图5.3
关键代码//按电话查询
voidsearchbyphone()
{
intmark=0;
inti;
inta=0;
printf("\n\t\t******************按电话查找******************");
charphone[10];
printf("\n\t\t请输入学号:
");
scanf("%s",phone);
for(i=0;i{
if(strcmp(student[i].phone,phone)==0)
{
printf("\n\t\t**************以下是您查找的学生信息**********");
printf("\n\t\t学号:
%s",student[i].id);
printf("\n\t\t姓名:
%s",student[i].name);
printf("\n\t\t电话:
%s",student[i].phone);
printf("\n\t\t************************************************");
printf("\n\t\t按任意键返回主菜单:
");
mark++;
getch();
return;
}
}
if(mark==0)
{
printf("\n\t\t没有改学生的信息");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
//按姓名查询
voidsearchbyname()
{
intmark=0;
inti;
inta=0;
printf("\n\t\t*****************按姓名查找*******************");
charname[20];
printf("\n\t\t请输入姓名:
");
scanf("%s",name);
for(i=a;i{
if(strcmp(student[i].name,name)==0)
{
printf("\n\t\t*************以下是您查找的学生信息***********");
printf("\n\t\t学号:
%s",student[i].id);
printf("\n\t\t姓名:
%s",student[i].name);
printf("\n\t\t电话:
%s",student[i].phone);
printf("\n\t\t************************************************");
mark++;
if((i+1){
printf("\n\t\t是否继续查找相同名字的学生信息:
(y/n)");
if(getch()=='y')
{
a=i;
continue;
}
else
return;
}
else
{
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
}
if(mark!
=0)
{
printf("\n\t\t没有相同姓名的学生纪录");
printf("\n\t\t按任意键返回主菜单");
getchar();
return;
}
else
{
printf("\n\t\t没有相同姓名的学生纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
//按学号查询
voidsearchbyid()
{
intmark=0;
inti;
inta=0;
printf("\n\t\t******************按学号查找******************\n");
charid[10];
printf("\n\t\t请输入学号:
");
scanf("%s",id);
for(i=0;i{
if(strcmp(student[i].id,id)==0)
{
printf("\n\t\t**************以下是您查找的学生信息**********");
printf("\n\t\t学号:
%s",student[i].id);
printf("\n\t\t姓名:
%s",student[i].name);
printf("\n\t\t电话:
%s",student[i].phone);
printf("\n\t\t************************************************");
printf("\t\t按任意键返回主菜单:
");
mark++;
getch();
return;
}
}
if(mark==0)
{
printf("\n\t\t没有改学生的信息");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
5.5删除模块
首先由用户输入要删除的单个学生姓名或学号或电话,然后调用删除函数,删除该名学生的资料。
程序流程图:
关键代码
//删除单个
//按姓名删除
voiddeletebyname()
{
inta=0;
intj;
intdeletemark=0;
inti;
charname[20];
printf("\n\t\t请输入要删除学生姓名:
");
scanf("%s",name);
for(i=a;i{
if(strcmp(student[i].name,name)==NULL)
{
printf("\n\t\t以下是您要删除的学生纪录:
");
printf("\n\t\t学号:
%s",student[i].id);
printf("\n\t\t姓名:
%s",student[i].name);
printf("\n\t\t电话:
%s",student[i].phone);
printf("\n\t\t是否删除?
(y/n)");
if(getch()=='y')
{
for(j=i;jstudent[j]=student[j+1];
deletemark++;
printf("\n\t\t删除成功");
if((i+1){
printf("\n\t\t是否继续删除相同姓名的同学信息?
(y/n)");
if(getch()=='y')
{
a=i;
continue;
}
}
printf("\n\t\t是否继续删除?
(y/n)");
if(getch()=='y')
deletebyname();
return;
}
if((i+1){
printf("\n\t\t是否继续删除相同姓名的同学信息?
(y/n)");
if(getch()=='y')
{
a=i;
continue;
}
}
}
else
continue;
}
if(deletemark==0)
{
printf("\n\t\t没有该同学的纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
voiddeletebyid()
{
inti,j;
intdeletemark=0;
charid[20];
printf("\n\t\t请输入要删除学生学号:
");
scanf("%s",id);
if(num==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
for(i=0;i{
if(strcmp(student[i].id,id)==NULL)
{
printf("\n\t\t以下是您要删除的学生纪录:
");
printf("\n\t\t学号:
%s",student[i].id);
printf("\n\t\t姓名:
%s",student[i].name);
printf("\n\t\t电话:
%s",student[i].phone);
printf("\n\t\t是否删除?
(y/n)");
if(getch()=='y')
{
for(j=i;jstudent[j]=student[j+1];
num--;
deletemark++;
printf("\n\t\t删除成功");
printf("\n\t\t是否继续删除?
(y/n)");
if(getch()=='y')
deletebyid();
return;
}
else
return;
}
if(deletemark==0)
{
printf("\n\t\t没有该同学的纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
}
5.6清空模块
系统将会把所有学生的资料全部全部丛文件中删除。
6系统测试
首先进入VC++6.0,打开学生通讯录.cpp文件运行
1-进入界面如下图
2-按任意键进入主菜单如下图
3-按菜单提示进入相应功能按1键新添记录,按提示输入学生姓名、学号、电话号码。
输入完后,系统将提示是否继续输按n停止按y继续。
这样建立新通讯录。
2-查询功能按2键即可进入查询菜单
3-按1键现实所有学生通讯信息
4-按2键可按学号查询,输入相应学号,系统即输出该学号学生的信息。
5-按3键4键可分别按姓名、电话查询,输入相应姓名、电话,系统即会输出相应学生信息。
查询完毕按5键返回主菜单。
6-进入主菜单按3键进入删除菜单。
7-删除菜单下按1键可以删除所有记录的学生的信息。
按y确认删除所有。
8-删除菜单下按1键可以单个删除
9-进入以上界面按1键按学号删除如图9.1,按2键按姓名删除如图9.2
图9.1
图9.2
8-最后按返回主菜单按4键可退出系统系统提示通讯录文件已保存按任意键击退出这样即可安全退出程序
7结论
本次课程设计的学生通讯录管理系统是队c语言编程的综合应用,程序需实现录入学生通讯信息,并保存到文件中。
可以查询保存的学生信息,可以删除学生信息等多种功能。
本次的程序我运用了结构体储存学生的信息,运用了文件的知识可以把信息保存到文件中供以后使用。
程序中业存在许多不足比如界面还不是很友好,给操作带来不变。
文件的打开写入存在问题。
对于界面问题可以运用各种符号使界面优化。
文件问题可以重新建立一文件用来保存学生信息。
通过本次课程设计的过程,了解了c语言的基本应用数据的处理,函数的调用,通过函数调用实现程序模块化的思想。
通过文件保存数据。
参考文献
[1]谭浩强.程序设计题解与上机指导.北京:
清华大学出版社,2005.10
[2]黄明,梁旭等编著.C语言课程设计.北京:
电子工业出版社,2006.6
[3]陈清华,朱红主编.VisualC++课程设计案例精选与编程指导.南京:
东南大学出版社,2003.06
[4]李春葆.C语言习题与解析A级.北京:
清华大学出版社,2006.10