数据结构简单教职工管理系统课程设计报告文档格式.docx
《数据结构简单教职工管理系统课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构简单教职工管理系统课程设计报告文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
%s"
fname);
//接收文件名
if((fp=fopen(fname,"
w"
))==NULL)//创建文件
{
}
fclose(fp);
……
insert();
//调用insert()函数保存信息
}
增加函数:
新增一名职工的信息,并保存到文件中。
voidinsert()
{
xinxiworker;
……//对worker进行初始化
cout<
<
"
请按以下顺序输入职工信息!
endl;
姓名性别生日工日学历职务地址电话"
%s%s%s%s%s%s%s%s"
&
worker.name,&
worker.sex,&
worker.birthday,&
worker.workday,&
worker.xueli,&
worker.zhiwu,&
worker.address,&
worker.tel);
writef(worker);
//保存信息
删除函数:
对指定的职工的信息进行删除
voiddel(linklist&
L)
{jp_c:
……
name);
while(p)//名字不匹配且未找到链尾
{if(strcmp(p->
name,name)==0)
{r->
next=p->
next;
//删除信息
……
printf("
是否继续删除(Y/N)?
\n"
);
//询问是否继续删除其他
cin>
>
c;
if(c=='
Y'
||c=='
y'
)
gotojp_c;
else
{printf("
是否输出删除后的职工信息(Y/N)?
cin>
if(c=='
)//若是,输出删除后的职工信息
{
……
}
else
return;
}
}
r=p;
p=p->
if(x==0)//若未找到,给出提示信息printf("
未找到该职工的信息!
查找函数:
查询符合某些条件的职工信息
voidsearch(linklist&
{jp_c3:
printf("
1、姓名2、电话3、综合查找\n"
//查找方式选择
%d"
choose);
switch(choose)
{case1:
default:
输入错误!
;
if(ch=='
||ch=='
)//是否继续查找
gotojp_c3;
修改函数:
对指定的某职工的某些属性进行修改
voidxiugai(linklist&
//接收要修改的职工的名字
while(p)
{printf("
1、姓名2、性别3、生日4、工日5、学历6、职务7、地址8、电话\n"
//修改选择
jp_c4:
scanf("
for(intj=0;
j++)
{switch(choose)
{case1:
default:
if(ch=='
)//询问是否继续进行其他修改
gotojp_c4;
……//退出循环
i++;
if(i)//输入修改后的该职工的信息
……
else//若不存在给出提示信息
cout<
不存在职工信息,无法修改!
排序函数:
按照某种需要对职工信息进行排序
voidrank(linklist&
{jp_c2:
1、姓名2、性别3、生日4、工日\n"
//排序需求选择
)//询问是否继续按照其他需求排序
gotojp_c2;
显示函数:
对所有的职工信息输出
voidShow_all(linklistL)
{cout<
//设置显示效果
while(p)//显示职工信息
printf("
%-9s"
p->
name);
%-7s"
sex);
%-13s"
birthday);
workday);
%-8s"
xueli);
%-10s"
zhiwu);
address);
%-11s"
tel);
结果与分析(可以加页):
进入程序,显示的界面
创建文件,录入信息,并保存到文件中
添加职工信息,并保存到文件中
按姓名查找姓名为zhu的职工的信息
以修改生日为例,修改职工的某些属性
程序结束时的提示界面
设计体会与建议:
此次课程设计是我们第一次自己完成一个可以实现对信息录入、储存、读取、并对这些信息进行相关操作的程序。
在源代码的编写中,使用了不同的函数来达到不同的功能,也让我们体会到,在使用函数分工后整个程序变得条理清楚,用不同的功能来划分函数使得排错轻松了很多,让我们体会到,当编写稍大一些的程序时,条理清楚是多么重要。
同时,我们也对那些外观精美的程序非常好奇,希望以后也可以将界面美化,使得程序更具使用价值。
C语言是编程语言中非常经典非常基础的一种,我们差的还很远,这次编程让我们认识到,想编出好程序,就必须吃透书本,这样才能更轻松地跨过书本与电脑之间的障碍。
只有思路明确才能有条不紊。
所以,我们应当更加努力,注重思维模式的培养和迁移,争取在不久的将来可以熟练掌握这一工具,为接下来的学习打好基础。
课程设计的题目是求最短路径,本来是想通过算法的实现把这个程序与交通情况相连,但是因为来不及查找各地的信息,所以,这个计划就没有实现,我相信在以后有更长时间的情况下,我会做出来的。
1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。
培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。
通过此次课程设计,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,
根据我在实习中遇到得问题,我将在以后的学习过程中注意以下几点:
1、认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
数据结构是一门非常有用的课程,尤其是在编程序时,一定要认真有耐心,不要浮躁。
在以后的学习中也要认真积极的去对待!
不仅仅是学习,也是人生的生活的态度!
附录:
源程序代码
#include<
stdio.h>
stdlib.h>
#include<
windows.h>
//Sleep()函数的头文件功能:
执行挂起一段时间
#include<
conio.h>
//getch()函数的头文件
string.h>
iostream.h>
typedefstruct
charname[18];
charsex[8];
//性别;
男male,女female
charbirthday[11];
charworkday[11];
charxueli[10];
charzhiwu[10];
charaddress[10];
chartel[12];
}xinxi;
typedefstructXX
structXX*next;
}node,*linklist;
charfname[15]="
work10.txt"
//不重新创建文件时,对文件work10.txt进行操作;
若创建新文件则其值改变
//--------------------------------------------------------------------------------------
//辅助函数
voidmenu()
cout<
|------------------------------------------------------------------------------|"
//-80个
|欢迎使用职工管理系统|"
|0、结束操作|"
|1、创建职工文件|"
|2、添加职工信息|"
|3、删除职工信息|"
|4、查找职工信息|"
|5、修改职工信息|"
|6、排序职工信息|"
|7、显示所有职工信息|"
voidEXIT()
\n\n\n\n\n\n"
|谢谢使用!
|"
||"
|欢迎下次使用!
|再见!
|"
voidwritef(xinxiworker0)
FILE*fp;
a"
))==NULL)
文件不存在!
请先创建!
exit(0);
if(fwrite(&
worker0,sizeof(xinxi),1,fp)!
=1)
filewriteerror!
信息保存成功!
voidprint(linklistL)
{
linklistq;
q=L->
while(q)
{
姓名%s\n"
q->
性别%s\n"
生日%s\n"
工日%s\n"
学历%s\n"
职务%s\n"
地址%s\n"
电话%s\n"
q=q->
voidreadall(linklist&
L,xinxiworker0)
inti;
L=newnode;
L->
next=NULL;
linklistu,p;
p=L;
FILE*fp;
r"
无法打开此文件!
while(!
feof(fp))
if(fread(&
{
if(feof(fp))
{
fclose(fp);
break;
printf("
readfileerror!
}
u=newnode;
for(i=0;
i<
18;
i++)
u->
name[i]=worker0.name[i];
8;
sex[i]=worker0.sex[i];
11;
birthday[i]=worker0.birthday[i];
workday[i]=worker0.workday[i];
10;
xueli[i]=worker0.xueli[i];
zhiwu[i]=worker0.zhiwu[i];
address[i]=worker0.address[i];
tel[i]=worker0.tel[i];
u->
tel[i]=NULL;
p->
next=u;
p=u;
p->
//功能函数
voidinsert();
intnum,i;
请输入文件名:
strcat(fname,"
.txt"
//串连接函数,把第二个字符串添加到第一个字符串后面
打开文件出错!
文件创建成功!
下面开始输入职工信息!
endl<
任意键继续..."
getch();
system("
cls"
你想输入多少个职工信息?
请输入:
cin>
num;
for(i=0;
worker.name[i]='
'
worker.sex[i]='
worker.birthday[i]='
worker.workday[i]='
worker.xueli[i]='
worker.zhiwu[i]='
worker.address[i]='
12;
worker.tel[i]='
linklistp,r;
jp_c:
charname[10],c;
intx=0;
p=L->
r=L;
colorf0"
请输入删除职工的名字:
if(strcmp(p->
r->
free(p);
x++;
删除成功!
cout<
*****************************"
print(L);
输出完成!
getch();
if(x==0)
voidsearch_name(linklistL)
node*p;
charname[10];
intn=0;
请输入要查找职工的姓名:
正在进行查找,请稍候...\n"
intk=3;
350000000*k;
i++)//延时3秒
{}
该职工的信息如下:
********************************\n"
生日%s\n