c语言课程设计手机通讯录管理系统大学毕业设计论文Word文档下载推荐.docx
- 文档编号:16470614
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:28
- 大小:350.39KB
c语言课程设计手机通讯录管理系统大学毕业设计论文Word文档下载推荐.docx
《c语言课程设计手机通讯录管理系统大学毕业设计论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言课程设计手机通讯录管理系统大学毕业设计论文Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
第三天
编程及调试
第四天
写课程设计报告
第五天
提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
六、建议参考资料
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版社
目录
内蒙古科技大学课程设计任务书I
目录II
第一章需求分析3
1.1引言3
1.2任务概述3
1.3数据描述3
1.4功能需求3
1.5性能需求4
1.6运行需求4
1.7任务计划4
第二章概要设计4
2.1总体设计4
2.2数据类型设计(或数据结构设计)6
2.3接口设计//函数声明6
2.4运行界面设计7
第三章详细设计8
3.1输入模块设计8
3.2输出模块设计8
3.3查找模块设计9
3.4排序模块设计10
3.5保存及读取模块设计10
第四章测试分析12
4.1测试程序执行情况12
4.2出现的问题和解决的方法15
第五章用户手册(可选)16
5.1使用说明16
5.2运行说明16
第六章课程设计总结17
附录:
程序代码18
参考文献28
致谢28
第一章需求分析
1.1引言
学生基本信息管理系统
1.2任务概述
1、建立学生信息,信息至少包含学生姓名,学号,性别,年龄,出生日期,家庭地址,e-mail,电话地址等;
2、能够提供新建、浏览、查找、修改和删除通讯录信息的功能;
3、能够提供安不同方式查询的功能;
如按姓名或电话等查询;
1.3数据描述
structstudent
{
charNO[20];
charname[20];
intage;
charsex[3];
/*'
F'
表示性别男,'
M'
表示性别女*/
charbirthday[10];
charaddress[30];
charphone[20];
chare_mail[20];
structstudent*next;
//下个结点
};
1.4功能需求
1、输入功能:
一次可以完成自定义学生人数的学生信息记录的输入。
2、删除功能:
对指定学生的信息进行删除。
3、修改功能:
对指定学生的信息进行修改。
4、查询功能:
选择某种方式并输入该信息查询符合条件的学生信息。
5、排序功能:
以英语课程的分数为依据对学生信息进行排序。
6、显示功能:
将以上功能操作后的学生信息显示出来。
7、退出主菜单。
1.5性能需求
1.6运行需求
1、从键盘输入包括学号、姓名、性别、出生年月日、籍贯、所在院系、专业、奖惩信息等,并将其保存在磁盘文件里。
2、具有进行单项查询或多项查询的功能(即按照给定的关键字姓名等找出满足条件的纪录)。
3、具有插入、修改和删除信息的功能。
4、具有输出文件数据信息的功能。
1.7任务计划
第二章概要设计
2.1总体设计
总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。
也可根据自己对题目的理解增加新的功能模块。
系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
2.2数据类型设计(或数据结构设计)
2.3接口设计//函数声明
表2.1:
函数列表
函数名
函数格式//即函数首部
函数功能
voidshow_menu();
void
显示菜单
voidmenu();
执行菜单
voidcreat_stu();
建立链表
voidinsert_stu();
学生信息录入
voidprint_stu();
学生信息浏览
voidsearch_NO();
以学号方式查询信息
voidsearch_name();
以姓名方式查询信息
voidarrage_stu();
排序
voiddel_stu();
删除学生信息
voidrevise_stu();
修改学生信息
voidsave();
保存信息
2.4运行界面设计
主菜单模块
采用switch()函数从键盘选择相应菜单的对应功能。
switch(c)
{
getchar();
case1:
insert_stu();
break;
//学生信息录入
case2:
print_stu();
//学生信息浏览
case3:
search_NO();
break;
//以学号方式查询信息
case4:
search_name();
//以姓名方式查询信息
case5:
del_stu();
//删除学生信息
case6:
revise_stu();
//修改学生信息
case7:
arrage_stu();
//保存信息
case0:
exit(0);
//退出
}
第三章详细设计
3.1输入模块设计
数据插入模块
采用scanf()函数输入新联系人信息插入至结构数组中。
PF("
\t\t输入学生学号:
\t"
);
scanf("
%s"
p1->
NO);
//学号
PF("
\t\t输入学生姓名:
name);
//姓名
\t\t输入学生年龄:
%d"
&
p1->
age);
//年龄
\t\t输入学生性别:
sex);
//性别
\t\t输入学生出生年月:
birthday);
//出生年月
\t\t输入学生地址:
address);
//地址
\t\t输入学生电话:
phone);
//电话
\t\t输入学生E-mail:
e_mail);
n++;
3.2输出模块设计
数据浏览模块
采用分屏显示,每屏3条记录。
用fread或fscanf读文件,输出结果。
for(p=head->
next;
p!
=NULL;
p=p->
next)//读出信息
※※※※※※※※※※※※※※※※※※学生信息浏览※※※※※※※※※※※※※※※※※※\n"
\t\t学生学号:
\t%s\n"
p->
\t\t学生姓名:
\t\t学生年龄:
\t%d\n"
\t\t学生性别:
\t\t学生出生年月:
\t\t学生地址:
\t\t学生电话:
\t\t学生E-mail:
\n"
}//输出信息
}
3.3查找模块设计
1)按姓名查找模块
通过键盘输入要查找的学生姓名,然后与结构数组中的姓名信息逐一比对,找出学生信息并输出
voidsearch_name()//学生姓名信息查找
STU*p=NULL;
if(head==NULL)//判断链表是否为空
文档中无记录!
return;
输入学生姓名:
"
name);
for(p=head->
if(!
strcmp(p->
name,name))
3)按学号查找模块
通过键盘输入要查找的学生学号,然后与结构数组中的电话信息逐一比对,找出学生信息并输出
voidsearch_NO()//学生学号信息查找
请输入学生学号:
NO);
NO,NO))
3.4排序模块设计
3.5保存及读取模块设计
第四章测试分析
4.1测试程序执行情况
主菜单
输入学生信息
按学号查找学生信息
按姓名查找学生信息
退出
4.2出现的问题和解决的方法
出现的问题就是不能进行排序,解决方法为删除。
第五章用户手册(可选)
5.1使用说明
运行说明
第六章课程设计总结
在我们上机调试程序的过程中,我遇到了很多的问题,说实话这次课程设计自己没有出多大的力,大部分都是借鉴同学的设计成果,自己设计是总是觉得没有头绪,无从下手。
看到同学认真看程序的样子,还有修改程序时的熟练,我很羡慕他,我想,我要将C语言学好,在将来能为我的就业加分。
在这期末考试前期,学院给我们安排的课程设计周,总让我们觉的有些为难我们,这样一个复杂困难而又繁琐的作业,似乎弄得我们既没有时间也没有心情复习,我曾一度地抱怨过学院,在完成它之后,我发现我错了,课程设计不仅让我们巩固了所学的知识,还使得我们学习到了更多平时所忽略的,最重要的是,它磨砺了我们,让我们在大学的下一个阶段能更好的成长。
程序代码
#include<
stdio.h>
stdlib.h>
string.h>
#definePFprintf
#defineLENsizeof(structstudent)
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆定义结构体◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
typedefstructstudentSTU;
STU*head=NULL;
//全局指针
intn,i=0;
//全局变量
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆自定义函数◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
//显示菜单
//执行菜单
//建立链表
voidmain()
creat_stu();
menu();
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆创建链表◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
voidcreat_stu()
FILE*fp;
longsize;
STU*p1,*p2;
head=(STU*)malloc(sizeof(STU));
head->
next=NULL;
if((fp=fopen("
fname.txt"
"
r"
))==NULL)
printf("
这是新表\n"
return;
fseek(fp,0L,2);
size=ftell(fp);
size)
这是空表\n"
}//开始创建链表
rewind(fp);
//移动到文件首
p2=head->
//找到当前位置
while(!
feof(fp))
{
p1=(STU*)malloc(sizeof(STU));
fscanf(fp,"
%s%s%d%s%s%s%s%s\n"
NO,p1->
name,&
age,
p1->
sex,p1->
birthday,p1->
address,p1->
phone,p1->
p1->
//创建节点完
if(head->
next==NULL)
head->
next=p1;
else
p2->
p2=p1;
n++;
p2->
fclose(fp);
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆执行菜单◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
voidmenu()
intc;
show_menu();
while
(1)
scanf("
c);
switch(c)
{
getchar();
case1:
case2:
case3:
case4:
case5:
case6:
case0:
}//执行菜单选项
show_menu();
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆显示菜单◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
voidshow_menu()
\n※※※※※※※※※※※※※※※※※※菜单※※※※※※※※※※※※※※※※※※\n"
\t\t◆1.输入学生信息◆\n"
\t\t★2.浏览学生信息★\n"
\t\t◆3.以学号方式查询信息◆\n"
\t\t★4.以姓名方式查询信息★\n"
\t\t◆5.删除学生信息◆\n"
\t\t★6.修改学生信息★\n"
\t\t★0.退出★\n"
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"
\n请选择\n"
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆学生信息录入◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
voidinsert_stu()//学生信息录入
n=0;
STU*p1=NULL,*p2=NULL;
p1=(STU*)malloc(sizeof(STU));
\n※※※※※※※※※※※※※※※※※※录入学生信息※※※※※※※※※※※※※※※※※※\n"
//录入学生信息
if(head->
head=(STU*)malloc(LEN);
head->
else
for(p2=head;
p2->
next!
p2=p2->
next);
/*找到最后的结点,然后将增加的结点挂在它上面*/
p2->
p1->
save();
//保存到文件
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆学生信息浏览◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
voidprint_stu()//学生信息浏览
PF("
}//输出信息
//◆◆◆◆◆◆◆◆◆
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 手机 通讯录 管理 系统 大学 毕业设计 论文