C语言课程设计Word下载.docx
《C语言课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
4.5删除模块12
4.6修改模块13
4.7退出模块13
五、程序运行结果14
5.1主菜单15
5.2录入模块16
5.3浏览模块17
5.4查询模块17
5.5修改模块18
5.6删除模块19
5.7退出19
六、源程序20
七、编程中遇到的困难及解决方法27
八、总结心得27
九、致谢27
一、课程设计的目的与要求
1.1目的
1.掌握C语言编程的基础知识较熟练的编写C语言应用程序。
2.能够利用所学的基本知识和技能,解决简单的程序设计问题,增强独立完成工作的能力。
3.通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。
1.2要求
1、应提供一个清晰美观的界面来调用各个功能。
2、输入功能:
职工信息录入可以一次完成若干条记录的输入。
3、浏览功能:
完成对全部职工信息的显示。
4、查找功能:
完成按职工的职工号查询职工的相关信息,并显示。
5、删除功能:
通过输入职工的职工号完成对该名职工的信息进行删除。
6、修改功能:
通过输入职工的职工号完成对该名职工的信息进行修改。
7、退出职工信息管理系统。
二、程序设计思路
(1)根据题目要求,应该把职工信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;
(2)在程序中需实现职工信息浏览、查询、删除、修改等功能的操作,所以需要建立相应的功能模块来实现;
(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
三、功能模块图
3.1主菜单
3.2录入模块
3.3浏览模块
3.4查询模块
3.5修改模块
3.6删除模块
四、算法设计
4.1功能模块选择
显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的intmenu()函数来实现。
intmenu()
{
inta;
printf("
***************************************************************************\n\n"
);
\t\t\t欢迎进入职工信息管理系统\n"
\t\t\t1、职工信息录入\n"
\t\t\t2、职工信息浏览\n"
\t\t\t3、职工信息查询\n"
\t\t\t4、职工信息删除\n"
\t\t\t5、职工信息修改\n"
\t\t\t6、管理系统退出\n"
\n***************************************************************************\n"
请输入对应的操作数:
"
scanf("
%d"
&
a);
returna;
}
4.2录入模块
录入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的voidin()函数来实现。
voidin()
inti,n,m,j,t,flag=0;
FILE*fp;
m=load();
文件中现有%d条信息\n"
m);
请输入你需要录入的人数:
n);
for(;
;
)
{
if(n>
100)
{
printf("
输入的人数超出了范围,请重新输入:
scanf("
}
else
break;
}
for(i=0;
i<
n;
i++)
{
printf("
请输入工号:
scanf("
wo[i].num);
请输入姓名:
%s"
wo[i].name);
请输入性别:
wo[i].sex);
请输入年龄:
wo[i].age);
请输入学历:
wo[i].edu);
请输入工资:
wo[i].salary);
请输入地址:
wo[i].add);
请输入电话:
wo[i].tel);
fp=fopen("
hao.txt"
"
a"
fprintf(fp,"
%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n"
wo[i].num,wo[i].name,wo[i].sex,wo[i].age,wo[i].edu,wo[i].salary,wo[i].add,wo[i].tel);
//fprintf(fp2,"
%d\t%s\t%s\t%d\t%d\t%d\t%.4f\n"
stu[i].id,stu[i].name,stu[i].sex,stu[i].score_computer,stu[i].score_english,stu[i].score_math,stu[i].average);
fclose(fp);
文件写入成功!
\n"
4.3加载模块
将内存中职工的信息输出到磁盘文件中,可以通过自己定义的
intload()函数来实现
intload()
inti=0;
if((fp=fopen("
rt"
))==NULL)
文件打开出错!
return0;
while(!
feof(fp))
fscanf(fp,"
wo[i].num,wo[i].name,wo[i].sex,&
wo[i].age,wo[i].edu,&
wo[i].salary,wo[i].add,&
if(wo[i].num>
=1)
i++;
returni;
4.3浏览模块
浏览所有职工的相关信息,通过自己定义的voidbrowse()函数来实现。
voidbrowse()
inti,m;
职工号:
姓名:
性别:
年龄:
学历:
工资:
地址:
电话:
\n"
m;
%-10d%-10s%-7s%-7d%-9s%-8d%-11s%-13s\n"
4.4查询模块
可以按职工号来查询职工的相关信息,通过自己定义的voidquery()
函数来实现。
voidquery()
inti,m,a,flag=0;
if(m==0)
文件中暂无信息可查询!
else
请输入你需要查询的工号:
printf("
for(i=0;
if(a==wo[i].num)
{
printf("
flag=1;
}
if(flag==0)
您需要查询的工号不存在!
4.5删除模块
删除需要删除的职工的所有信息,通过自己定义的voiddel()函数来实现。
voiddel()
charch;
文件中暂无信息可供操作!
请输入员工号:
退出请按任意键,确认删除请输入Y:
getchar();
scanf("
%c"
ch);
if(ch=='
Y'
{
for(;
m-1;
{
wo[i].num=wo[i+1].num;
strcpy(wo[i].name,wo[i+1].name);
strcpy(wo[i].sex,wo[i+1].sex);
wo[i].age=wo[i+1].age;
strcpy(wo[i].edu,wo[i+1].edu);
wo[i].salary=wo[i+1].salary;
strcpy(wo[i].add,wo[i+1].add);
strcpy(wo[i].tel,wo[i+1].tel);
}
fp=fopen("
wt"
for(i=0;
fprintf(fp,"
fclose(fp);
printf("
信息删除成功!
}
你输入的员工号不存在!
4.6修改模块
可以修改需要修改的职工的相关信息,通过自己定义的voidmodify()函数来实现。
voidmodify()
charch[20];
文件中暂无信息可操作!
请输入你需要修改的信息的工号:
1、工号\n2、姓名\n3、性别\n4、年龄\n5、学历\n6、工资\n7、地址\n8、电话\n请输入对应修改的操作数:
switch(a)
case1:
请输入职工号:
scanf("
wo[i].num=a;
break;
case2:
ch);
strcpy(wo[i].name,ch);
case3:
strcpy(wo[i].sex,ch);
case4:
wo[i].age=a;
case5:
strcpy(wo[i].edu,ch);
case6:
wo[i].salary=a;
case7:
strcpy(wo[i].add,ch);
case8:
strcpy(wo[i].tel,ch);
default:
输入的信息有误!
fp=fopen("
for(i=0;
fprintf(fp,"
fclose(fp);
信息修改成功!
输入的员工号不存在!
4.7退出模块
退出职工信息管理系统,通过exit(0)来实现。
voidquit()
谢谢使用!
exit(0);
五、程序运行结果
5.1主菜单
5.2录入模块
5.3浏览模块
5.4查询模块
5.5修改模块
5.6删除模块
5.7退出
六、源程序
#include<
stdio.h>
stdlib.h>
string.h>
intmenu();
voidin();
voidbrowse();
voidquery();
voiddel();
voidmodify();
voidquit();
intload();
structworker
intnum;
charname[20];
charsex[3];
intage;
charedu[10];
intsalary;
charadd[20];
chartel[11];
wo[100];
main()
system("
pause"
cls"
switch(menu())
case1:
in();
case2:
browse();
case3:
query();
case4:
del();
case5:
modify();
case6:
quit();
default:
输入的信息有误,请重新输入!
工资