c语言程序设计.docx
- 文档编号:9652226
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:15
- 大小:17.68KB
c语言程序设计.docx
《c语言程序设计.docx》由会员分享,可在线阅读,更多相关《c语言程序设计.docx(15页珍藏版)》请在冰豆网上搜索。
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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计