c语言程序设计.docx

上传人:b****8 文档编号:9652226 上传时间:2023-02-05 格式:DOCX 页数:15 大小:17.68KB
下载 相关 举报
c语言程序设计.docx_第1页
第1页 / 共15页
c语言程序设计.docx_第2页
第2页 / 共15页
c语言程序设计.docx_第3页
第3页 / 共15页
c语言程序设计.docx_第4页
第4页 / 共15页
c语言程序设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

c语言程序设计.docx

《c语言程序设计.docx》由会员分享,可在线阅读,更多相关《c语言程序设计.docx(15页珍藏版)》请在冰豆网上搜索。

c语言程序设计.docx

c语言程序设计

石家庄贴四方学院

C语言课程设计报告书

 

系部名称

 电信系

学生姓名

 

专业名称

电子信息工程

班级

 电子0901

学号

 

指导教师

时间

2010年7月14日

 

实验题目职工信息管理系统

一、实验目的:

(1)本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。

将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。

(2)C语言的实践。

掌握C语言函数的定义方法,函数的声明及函数的调用过程。

掌握结构体类型变量的定义和使用,综合应用C语言的知识,实现一个完整的系统,提高编程能力,体会软件程序的开发过程。

 

二、实验内容:

(1)运用结构体数组编辑一个简单的职工信息管理系统。

(2)执行编译操作,并根据提示调试此程序,排除所有的错误和警告。

直到编译成功为止。

(3)请老师检查,向老师演练此程序,并能回答老师提出的相关问题。

三、需求分析:

(1)根据职工信息管理的需要,建立一个“职工信息管理系统”,系统具有输入、查询、修改、删除、等基本功能;以方便对职工信息的各项管理操作。

每一条记录包括一个职工的工号、姓名、性别,年龄,职位。

系统的各个功能模块都用函数的形式来实现;可以将职工信息保存在文件中,并从文件中读取出来。

有一个清晰美观界面来调用各个功能。

(2)创建该职工信息管理系统目的就是能够对学生基本信息进行创建、追加、查询、修改、删除、等功能,这样可以简化许多人工做起来很复杂的问题。

譬如:

“排序”,有了此程序只需将信息输入,计算机就可自动执行,省时、省力。

另外,它还可以重复使用,方便、快捷。

 

四、概要设计

(1)主函数结构图:

#include

#include

#defineMAX200

structemployee

{

charno[10];//职工号

charname[15];//姓名

charsex[10];//性别

intage;//年龄

intgongzi;//工资

inttele;//电话号码

charxueli[20];//学历

charaddr[50];//住址

};

structdata

{

intcount;//当前职工数组中职工的个数

structemployeeem[MAX];//职工数组

}dd;

voidmenu()

{

system("cls");

printf("\n");

printf("\t\t\t****************\n");

printf("\t\t\t**\n");

printf("\t\t\t*职工信息管理系统*\n");

printf("\t\t\t**\n");

printf("\t\t\t*0909-1*\n");

printf("\t\t\t**\n");

printf("\t\t\t*[0]退出*\n");

printf("\t\t\t*[1]查看职工信息*\n");

printf("\t\t\t*[2]输入职工信息*\n");

printf("\t\t\t*[3]删除职工信息*\n");

printf("\t\t\t*[4]修改职工信息*\n");

printf("\t\t\t*[5]按职工号查询职工信息*\n");

printf("\t\t\t*[6]按学历查询职工信息*\n");

printf("\t\t\t**\n");

printf("\t\t\t****************\n");

}

//等待用户按回车后回到主菜单

voidto_menu()

{

charc1,c2;

printf("\n\n\n按回车键返回主菜单...");

scanf("%c%c",&c1,&c2);

menu();

}

//查看所有信息

voidview_data()

{

inti;

printf("职工号\t姓名\t性别\t年龄\t工资\t电话\t学历\t住址");

printf("\n-------------------------------------------------------------------\n");

for(i=0;i

printf("%s\t%s\t%s\t%d\t%d\t%d\t%s\t%s\n",dd.em[i].no,dd.em[i].name,dd.em[i].sex,dd.em[i].age,dd.em[i].gongzi,dd.em[i].tele,dd.em[i].xueli,dd.em[i].addr);

}

//将数据从结构体数组保存到文件中

voidsave_data()

{

FILE*fp;

inti,k;

k=dd.count;

fp=fopen("c:

/dada.txt","w");

fwrite(&k,sizeof(int),1,fp);

for(i=0;i

fwrite(&dd.em[i],sizeof(structemployee),1,fp);

fclose(fp);

}

//输入记录

voidadd_data()

{

structemployeeemp;

intb;

intk;

inti,j;

while

(1)

{

j=0;

printf("\n请输入职工信息:

");

printf("\n职工号\t姓名\t性别\t年龄\t工资\t电话\t学历\t住址");

printf("\n---------------------------------------------------------------\n");

scanf("%s%s%s%d%d%d%s%s",&emp.no,&emp.name,&emp.sex,&emp.age,&emp.gongzi,&emp.tele,&emp.xueli,&emp.addr);

for(i=0;i

{

if(strcmp(dd.em[i].no,emp.no)==0)

{

printf("\n输入职工号重复,请重新输入!

\n");

j=1;

break;

}

}

if(j==1)

continue;

if(j==0)

{

k=dd.count;

strcpy(dd.em[k].no,emp.no);

strcpy(dd.em[k].name,emp.name);

strcpy(dd.em[k].sex,emp.sex);

dd.em[k].age=emp.age;

dd.em[k].gongzi=emp.gongzi;

dd.em[k].tele=emp.tele;

strcpy(dd.em[k].xueli,emp.xueli);

strcpy(dd.em[k].addr,emp.addr);

dd.count++;

}

printf("\n\n继续添加职工信息[1-yes0-no]:

\n");

scanf("%d",&b);

if(b==0)break;

}

save_data();

}

//将数据从文件读到结构体数组中

voidread_data()

{

FILE*fp;

inti,k;

structemployeeemp;

k=0;

if(access("c:

/dada.txt",0)==-1)//如果文件不存在

{

fp=fopen("c:

/dada.txt","w");

fwrite(&k,sizeof(int),1,fp);

fclose(fp);

}

fp=fopen("c:

/dada.txt","r");

fread(&k,sizeof(int),1,fp);

dd.count=k;

for(i=0;i

{

fread(&emp,sizeof(structemployee),1,fp);

strcpy(dd.em[i].no,emp.no);

strcpy(dd.em[i].name,emp.name);

strcpy(dd.em[i].sex,emp.sex);

dd.em[i].age=emp.age;

dd.em[i].gongzi=emp.gongzi;

dd.em[i].tele=emp.tele;

strcpy(dd.em[i].xueli,emp.xueli);

strcpy(dd.em[i].addr,emp.addr);

}

fclose(fp);

}

voiddelete_data()

{

inti,k;

charno[10];

printf("\n请输入要删除职工号:

");

scanf("%s",&no);

k=-1;

for(i=0;i

{

if(strcmp(dd.em[i].no,no)==0)

{

k=i;

break;

}

}

if(k==-1)

{

printf("\n\n没有找到该职工(职工号-%s)!

",no);

}

else

{

for(i=k;i

{

strcpy(dd.em[i].no,dd.em[i+1].no);

strcpy(dd.em[i].name,dd.em[i+1].name);

strcpy(dd.em[i].sex,dd.em[i+1].sex);

dd.em[i].age=dd.em[i+1].age;

dd.em[i].gongzi=dd.em[i+1].gongzi;

dd.em[i].tele=dd.em[i+1].tele;

strcpy(dd.em[i].xueli,dd.em[i+1].xueli);

strcpy(dd.em[i].addr,dd.em[i+1].addr);

}

dd.count--;

save_data();

printf("\n\n删除(职工号-%s)成功!

",no);

}

}

//修改职工记录

voidedit_data()

{

inti,k,age=0,gongzi=0,tele=0;

charno[10],name[15],sex[10],addr[50],xueli[20];

printf("\n请输入要修改职工的职工号:

");

scanf("%s",&no);

k=-1;

for(i=0;i

{

if(strcmp(dd.em[i].no,no)==0)

{

k=i;

break;

}

}

if(k==-1)

{

printf("\n\n没有找到该职工(职工号-%s)!

",no);

}

else

{

printf("\n请输入职工数据:

\n");

printf("\n姓名\t性别\t年龄\t工资\t电话\t学历\t住址");

printf("\n--------------------------------------------------------------------\n");

scanf("%s%s%d%d%d%s%s",&name,&sex,&age,&gongzi,&tele,&xueli,&addr);

strcpy(dd.em[k].no,no);

strcpy(dd.em[k].name,name);

strcpy(dd.em[k].sex,sex);

dd.em[k].age=age;

dd.em[k].gongzi=gongzi;

dd.em[k].tele=tele;

strcpy(dd.em[k].xueli,xueli);

strcpy(dd.em[k].addr,addr);

save_data();

printf("\n\n修改职工记录(职工号-%s)成功!

",no);

}

}

//查询(职工号)

voidquery_data_no()

{

inti,k;

charno[10];

printf("\n请输入要查询的职工号:

");

scanf("%s",&no);

k=-1;

for(i=0;i

{

if(strcmp(dd.em[i].no,no)==0)

{

if(k==0)

{

printf("\n职工号\t姓名\t性别\t年龄\t工资\t电话\t学历\t住址");

printf("\n-----------------------------------------------------------------\n");

}

k=i;

printf("%s\t%s\t%s\t%d\t%d\t%d\t%s\t%s\n",dd.em[i].no,dd.em[i].name,dd.em[i].sex,dd.em[i].age,dd.em[i].gongzi,dd.em[i].tele,dd.em[i].xueli,dd.em[i].addr);

}

}

if(k==-1)

{

printf("\n\n没有找到该职工(职工号-%s)!

",no);

}

}

//查询(学历)

voidquery_data_xueli()

{

inti,k;

charxueli[20];

printf("\n请输入要查询的职工学历:

");

scanf("%s",&xueli);

k=-1;

for(i=0;i

{

if(strcmp(dd.em[i].xueli,xueli)==0)

{

if(k==0)

{

printf("\n职工号\t姓名\t性别\t年龄\t工资\t电话\t学历\t住址");

printf("\n-----------------------------------------------------------------\n");

}

k=i;

printf("%s\t%s\t%s\t%d\t%d\t%d\t%s\t%s\n",dd.em[i].no,dd.em[i].name,dd.em[i].sex,dd.em[i].age,dd.em[i].gongzi,dd.em[i].tele,dd.em[i].xueli,dd.em[i].addr);

}

}

if(k==-1)

{

printf("\n\n没有找到该职工(学历-%s)!

",xueli);

}

}

 

//主函数

voidmain()

{

intfun;

read_data();

menu();

while

(1)

{

printf("请输入功能号[0-6]:

",&fun);

scanf("%d",&fun);

switch(fun)

{

case0:

break;

case1:

view_data();

break;

case2:

add_data();

break;

case3:

delete_data();

break;

case4:

edit_data();

break;

case5:

query_data_no();

break;

case6:

query_data_xueli();

break;

}

if(fun==0)break;

to_menu();

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

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1