求C语言编程程序

1、职工信息管理系统职工信息数据,包括职工编号、姓名、性别、工资、出生日期、参加工作时间和年龄(要通过计算得到)。要求:1.用C语言实现系统;2.利用数组或结构体实现上述... 1、职工信息管理系统
职工信息数据,包括职工编号、姓名、性别、工资、出生日期、参加工作时间和年龄(要通过计算得到)。

要求:
1. 用C语言实现系统;
2. 利用数组或结构体实现上述题目的数据结构设计;
3. 系统具有数据的浏览、增加、修改、删除、排序、查询和存储和读取磁盘数据文件等基本功能,有的系统还要具有统计功能(如学生信息管理系统)。这些功能可以通过菜单进行选择。
展开
 我来答
佛说有轮回7a
推荐于2016-05-14 · 超过46用户采纳过TA的回答
知道答主
回答量:144
采纳率:0%
帮助的人:101万
展开全部
给你个模型你自己修改把
有问题可以找我
这是一个c和c++的你该该就可以了,用vc6.0运行就可以了
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define add 3
#define N 2
struct student
{
char num[10];
char name[10];
char en[10];
char mt[10];
char comp[10];
double av;
}stu[N];
void creatfile();
void insert();
void search1();
void search2();
void show();
void average();
void fail();
void del();
void sortlist();
void sortlist1();
void sortlist2();
void add_show(void);
FILE *fp;
void main()
{ int k;
system("cls"); /*清屏*/
while (1) /*主菜单*/
{printf("\n\n\n\n\n");

printf("\t\t\t\t 学生成绩管理系统 \n\n");
printf("\t\t\t***********************************\n");
printf("\t\t\t*\t1--输入数据 *\n");
printf("\t\t\t*\t2--插入数据 *\n");
printf("\t\t\t*\t3--查询功能(姓名/学号) *\n");
printf("\t\t\t*\t4--计算平均分 *\n");
printf("\t\t\t*\t5--显示不及格人数 *\n");
printf("\t\t\t*\t6--删除学生记录 *\n");
printf("\t\t\t*\t7--排序功能(学号/成绩) *\n");
printf("\t\t\t*\t8--显示功能 *\n");
printf("\t\t\t*\t9--增加之后的显示 *\n");
printf("\t\t\t*\t0--退出系统 *\n");
printf("\t\t\t***********************************\n");

cin>>k;
switch(k)
{
case 1: creatfile();break; // 输入数据
case 2: {
printf("请输入增加的3组学生信息:\n\n\n\n");
insert();
}
break; //插入数据
case 3:
{ int m;
system("cls");
while(1)
{
printf("\t\t\t************************************\n");
printf("\t\t\t*\t1--姓名查找 *\n");
printf("\t\t\t*\t2--学号查找 *\n");
printf("\t\t\t*\t0--退出系统 *\n");
printf("\t\t\t************************************\n");
printf("请输入选项\n");
cin>>m;
switch(m)
{
case 1:search1();break;
case 2:search2();break;
case 0: return;break;//退出
default:puts("\t\t\t输入错误选项");
printf("\t\t\t按任意键返回");
getchar();
}
system("cls");
}
}
break; // 查询功能
case 4: average();break; //计算平均分
case 5: fail();break; //显示不及格人数
case 6: del();break; // 删除学生记录
case 7:
{
int n;
system("cls");
while(1)
{
printf("\t\t\t************************************\n");
printf("\t\t\t*\t1--学号排序 *\n");
printf("\t\t\t*\t2--成绩排序 *\n");
printf("\t\t\t*\t0--退出系统 *\n");
printf("\t\t\t************************************\n");
printf("请输入选项\n");
cin>>n;
switch(n)
{
case 1:sortlist1();break;//学号排序
case 2:sortlist2();break;//成绩排序
case 0:return;break;//退出
default:puts("\t\t\t输入错误选项");
printf("\t\t\t按任意键返回");
getchar();
}
system("cls");
}
}
case 8: show();
break;
case 9: add_show();
break;
case 0: exit(1); break;
default: puts("\t\t\t输入错误选项!");
printf("\t\t\t按任意键返回...");
getchar(); }
system("cls");
}
}
void creatfile() //输入学生信息
{
int i;
if((fp=fopen("tt.txt","wb"))==NULL) //调用库函数fopen() 检测文件是否正常打开
{
printf("不能打开文件!\n");
exit(1);
}
printf("请输入学生信息:\n");
printf("学号\t姓名\t英语得分\t数学得分\t计算机得分\n");
for(i=0;i<N;i++)
{
scanf("%s%s%s%s%s",stu[i].num,stu[i].name,stu[i].en,stu[i].mt,stu[i].comp);
int en=atoi(stu[i].en);
int mt=atoi(stu[i].mt);
int comp=atoi(stu[i].comp);
stu[i].av=double( (en+mt+comp)/3.0);
cout<<"平均值="<<stu[i].av<<endl;
if( fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("文件写入错误\n");

}
getchar();
fclose(fp);
}
void insert()
{
int i;
if((fp=fopen("tt.txt","ab+"))==NULL) //调用库函数fopen() 检测文件是否正常打开
{
printf("不能打开文件!\n");
exit(1);
}
printf("学号\t姓名\t英语得分\t数学得分\t计算机得分\n");
struct student g[add];
for(i=0;i<add;i++)
{
scanf("%s%s%s%s%s",g[i].num,g[i].name,g[i].en,g[i].mt,g[i].comp);
if( fwrite(&g[i],sizeof(struct student),1,fp)!=1)
printf("文件写入错误\n");
}
getchar();
fclose(fp);
add_show();
}
void average() //计算平均值
{
int i;
if((fp=fopen("tt.txt","rb+"))==NULL)
{
printf("can't open the file!\n");
exit(1);
}
printf("学号\t姓名\t英语得分\t数学得分\t计算机得分\t平均成绩\n");
for(i=0;i<N;i++)
{
int en=atoi(stu[i].en);
int mt=atoi(stu[i].mt);
int comp=atoi(stu[i].comp);
stu[i].av=double( (en+mt+comp)/3.0);
}
for(i=0;i<N;i++)
{
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t\t"<<stu[i].en<<"\t\t"<<stu[i].mt<<"\t\t"<<stu[i].comp<<"\t\t"<<stu[i].av<<endl;
}
getchar();
fclose(fp);
}
void fail() //不及格人数
{ int v=0;
if((fp=fopen("tt.txt","rb"))==NULL)
{
printf("can't open the file!\n");
exit(1);
}
printf("学号\t姓名\t英语得分\t数学得分\t计算机得分\n");
for(int i=0;i<N;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].en<<"\t"<<stu[i].mt<<"\t"<<stu[i].comp<<"\t"<<stu[i].av<<endl;
}
cout<<"**********平均成绩不及格的学生***********"<<endl;
for(i=0;i<N;i++)
{ double p;
p=stu[i].av;
if(p<60.0){
v++;
fread(&stu[i],sizeof(struct student),1,fp);
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].en<<"\t"<<stu[i].mt<<"\t"<<stu[i].comp<<"\t"<<stu[i].av<<endl;
}
}
cout<<"不及格的人数是"<<v<<"人:";
getchar();
fclose(fp);
}
void del() //删除
{ show();
int j,w,i;
if((fp=fopen("tt.txt","wb+"))==NULL)
{
printf("can't open the file!\n");
exit(1);
}
cout<<"请输入删除的学号:";
cin>>w;
for(j=0;j<N;j++){
int num=atoi(stu[j].num);
if(num==w)
{stu[j].num[0]='\0';
stu[j].name[0]='\0';
stu[j].mt[0]='\0';
stu[j].en[0]='\0';
stu[j].comp[0]='\0';
(char)stu[j].av;
stu[j].av='\0';}
cout<<"\n";

}
printf("学号\t姓名\t英语得分\t数学得分\t计算机得分\n");

for(i=0;i<N;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].en<<"\t"<<stu[i].mt<<"\t"<<stu[i].comp<<"\t"<<stu[i].av<<endl;
}

getchar();
fclose(fp);
}

void sortlist1() //按学号排序
{
int i,j;
if((fp=fopen("tt.txt","rb+"))==NULL)
{
printf("can't open the file!\n");
exit(1);}
cout<<"排序之前的顺序是\n";
for(i=0;i<N;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("%s\t%s\t%s\t%s\t%s",stu[i].num,stu[i].name,stu[i].en,stu[i].mt,stu[i].comp);
cout<<endl;
}
cout<<"*********************排序之后的顺序*********************\n";
cout<<"\n\n\n";
printf("学号\t姓名\t英语得分\t数学得分\t计算机得分\n");
struct student t;
for( i=0;i<N-1;i++)
for( j=0;j<N-1-i;j++)
if(stu[j].num>stu[j+1].num)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t; // 冒泡
}
for(i=0;i<N;i++)
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].en<<"\t"<<stu[i].mt<<"\t"<<stu[i].comp<<"\t"<<stu[i].av<<endl;
getchar();
fclose(fp);
}
void sortlist2() //按成绩排序
{
int i,j;
printf("学号\t姓名\t英语得分\t数学得分\t计算机得分\n");
cout<<"***********按成绩排序之后的结果**************\n";
cout<<"\n\n\n";
if((fp=fopen("d:\\t1.txt","rb+"))==NULL)
{printf("can't open the file!\n");exit(1);}
fread(stu,sizeof(struct student),N,fp);
struct student t;
for( i=0;i<N-1;i++)
for( j=0;j<N-1-i;j++)
if(stu[j].av>stu[j+1].av)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t; // 冒泡
}
for(i=0;i<N;i++)
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].en<<"\t"<<stu[i].mt<<"\t"<<stu[i].comp<<"\t"<<stu[i].av<<endl;
getchar();
fclose(fp);
}
void show()
{
if((fp=fopen("tt.txt","rb"))==NULL) //调用库函数fopen() 检测文件是否正常打开
{
printf("不能打开文件!\n");

exit(1);
}
int i;
printf("学号\t姓名\t英语得分\t数学得分\t计算机得分\n");
for(i=0;i<N;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("%s\t%s\t%s\t\t%s\t\t%s",stu[i].num,stu[i].name,stu[i].en,stu[i].mt,stu[i].comp);
cout<<endl;
}
getchar();
fclose(fp);
}
void search1() //按姓名查询
{
if((fp=fopen("tt.txt","rb"))==NULL)
{
printf("can't open the file!\n");
exit(1);
}
fread(stu,sizeof(struct student),N,fp); //读出文件

char x[10];
for(int i=0;i<10;i++)
{
x[i];
}//输入所查姓名
for(i=0;i<N;i++)
{if(strcmp(stu[i].name,x)==0)
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].en<<"\t"<<stu[i].mt<<"\t"<<stu[i].comp<<"\t"<<stu[i].av<<endl;
else
cout<<"查无结果";
}
getchar();
fclose(fp);
}
void search2() //按学号查找
{
int i;
if((fp=fopen("tt.txt","rb"))==NULL)
{
printf("can't open the file!\n");
exit(1);
}
fread(stu,sizeof(struct student),N,fp); //读出文件
int y;
cin>>y;
for(i=0;i<N;i++)
{
int num=atoi(stu[i].num);
if(num==y)
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].en<<"\t"<<stu[i].mt<<"\t"<<stu[i].comp<<"\t"<<stu[i].av<<endl;
else
cout<<"查无结果";
}
getchar();
fclose(fp);
}
void add_show()
{
if((fp=fopen("tt.txt","rb"))==NULL) //调用库函数fopen() 检测文件是否正常打开
{
printf("不能打开文件!\n");

exit(1);
}
int i;
printf("学号\t姓名\t英语得分\t数学得分\t计算机得分\n");
for(i=0;i<N+add;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("%s\t%s\t%s\t\t%s\t\t%s",stu[i].num,stu[i].name,stu[i].en,stu[i].mt,stu[i].comp);
cout<<endl;
}
getchar();
fclose(fp);
}
msw_xp
2008-12-25 · TA获得超过898个赞
知道小有建树答主
回答量:349
采纳率:0%
帮助的人:152万
展开全部
俺 们 的年终 考核 题目 就是学生管理系统
哎 还在 奋斗中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
唯一xiaoyao
2008-12-25 · TA获得超过194个赞
知道小有建树答主
回答量:384
采纳率:33%
帮助的人:159万
展开全部
不难 简单!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Xh869127
2008-12-25 · TA获得超过276个赞
知道答主
回答量:130
采纳率:0%
帮助的人:0
展开全部
you shi yi ge tantu shengshi de ge men
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式