广西科技大学鹿山学院
《高级语言程序设计》
课程实训报告
题 目: 职工信息管理
专 业: 软件工程
班 级: 131班
姓 名:
学 号:
二零## 年 6 月 5日
目录
1.题目与要求·························· 1
1.1问题提出··························· 1
1.2本系统涉及的知识点······················ 1
1.3功能要求··························· 1
2.功能设计··························· 1
2.1算法设计··························· 1
2.2部分模块流程图························ 2
3.程序代码设计 ························ 3
3.1输入模块··························· 3
3.2查询模块··························· 3
3.3修改模块··························· 4
4.C程序设计总结 ······················· 5
5.结束语 ··························· 5
*附录:程序源代码 ······················· 6
1 题目与要求
1.1 问题提出
本人计划编写一个职工信息管理系统,主要用来管理职工的各项信息。
1.2 本系统涉及的知识点
结构、数组、循环、函数、分支、指针、文件
1.3 功能要求
1) 能从键盘输入职工的信息
2) 能从指定的文件中读入职工的信息
3) 能按职工号查询职工的信息
4) 能按学历统计职工数
5) 能查询到指定年份需要退休的职工的信息(男:60岁,女55岁)
6) 能删除指定职工号的职工信息
7) 能将职工信息保存在指定的文件中
2 功能设计
2.1 算法设计
1、利用switch语句设计如图所示的菜单
2、根据所选菜单编写相应代码:
1)输入函数write:利用循环输入的方式,将职工信息存入结构数组,并依次写入文件work.txt。
2)读取职工信息reads:读取并输出所有职工信息。
职工信息管理系统模块图
2.2 部分模块流程图
按照工号查询流程图:
3 程序代码设计
3.1输入模块
1)函数原形:void write(),ids(),sexs(),year()
2)功能:利用while循环语句和scanf、gets、getchar函数完成对结构数组的输入,并用fwrite写入文件.其中职工号由ids()判断,性别由sexs()判断,出生日期由year()判断,学历由edus()判断.每成功输入一个数据都将打印在屏幕上
ids()函数判断id未存在,范围在1000-9999间,若不满足,提示并要求重新输入,若输入的工号为0,则中止输入.
sexs()函数判断输入的性别是否为男或女,若不是,则提示并要求重新输入.
year()函数判断若输入的日期格式不为****-**-**,则提示格式错误;若年份不在1900-2014之间,提示年份错误;若月份不在01-12间,则提示月份错误;若日期>31,其中4,6,9,11月的日期>30,则提示日期错误.
edus()函数判断若输入的学历不为小学/初中/高中/大学,则提示并要求重新输入
3.2查询模块
1)函数原型:main1(),reads(),serch(),eduserch(),tuixiu()
2)功能:在main()函数中选择查询子菜单,通过main1()函数选择查询选项或输入0返回主菜单
serch()函数:读取work.txt文件内容,将存在的id打印,用户输入id后,输出该id的所有信息.
eduserch()函数:调用edus()提示和判断用户输入学历,输出为该学历职工的所有信息和总计人数.
tuixiu()函数:提示用户输入年份,若有职工到此年份为退休,则依次输出职工信息并输出统计的人数.
3.3修改模块
1)函数原型:change()
2)功能:读取work.txt文件,打印所有工号姓名,用户输入工号后输出该工号所有信息并对各项信息编号,用户输入信息编号后提示用户输入新数据,修改成功后将用w+方式重写文件,用户可继续修改或输入0退出修改
4 C程序设计总结
遇到问题:1.录入函数中scanf写在while条件内,使每次循环都要求输入内容,若输入0则中止while,导致输入结束后写入了id为0的数据.
2.删除函数中的删除方式为:遍历文件,标记目标id下标,使用for循环覆盖此数据,重新写入文件,导致文件内容尾出现空数据
解决:加入delid0()函数,剔除数据间的空数据,判断数据是否有效,w+方式写入有效数据前的内容,较繁琐
总结:本程序简洁明了,功能齐全,经大量调试最终出现0错误与警告;录入模块有详细报错,与用户交互性强,易于使用;查询模块拥有查询子菜单列出查询类型,方便用户使用,查询前列出名单,查询过程中按需求提示,查询后按需提示;修改模块可连续修改同一职工的多项信息,增强了实用性,适当提示与输入检测使其更便于使用.
本程序存储方式为结构体数组,避开了链表的复杂操作,使程序更简单易行,但不足之处是占用内存大于链表,如有机会,下次会尝试使用链表.
5 结束语
崔亚楠老师在实训过程中悉心解答和解决我们遇到的问题,感谢崔老师.
参考文献
[1] 谭浩强,C程序设计(第四版),北京:清华大学出版社,2010.6
*附录:程序源代码
//职工管理系统,完整源代码
#include"stdio.h"
#include"stdlib.h" //strcpy原型
#define NAMES 10 //名字
#define EDUS 5 //学历
#define SITES 30 //地址
#define DATES 11 //日期
#define SEXS 3 //姓名
#define MAN 50 //人数上限
#define MALL sizeof(works) //获取字节长
//定义结构体
typedef struct work{
int id;
char name[NAMES];
char sex[SEXS];
char date[DATES];
char edu[EDUS];
int wage;
char site[SITES];
int phone;
}works;
works worker[MAN];
//欢迎信息
void menu0(y){
system("cls");
puts("\n\n\n\n\t\t┏━━━━━━━━━━━━━━━━━━━━┓\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 职工管理系统\t\t ┃\n\
\t\t┃\t \t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┗━━━━━━━━━━━━━━━━━━━━┛\n\
\n");
if(y==0){
printf("\t\t\t 欢迎使用 正在进入...\n");
}
if(y==1){
printf("\t\t\t 感谢使用 正在退出...\n");
}
getch();
}
//主菜单
void menu(){
system("cls");
puts("\n\n\t\t┏━━━━━━━━━主菜单━━━━━━━━━┓\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 1.录入信息\t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 2.查询信息\t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 3.删除信息\t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 4.修改信息\t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 0.退出 \t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┗━━━━━━━━━━━━━━━━━━━━━┛\n\
\t\t\t\t请选择(0-4):\
\n");
}
//输入时
void write_menu(){
system("cls");
puts("\n\n\t\t━━━━━━━━━━录入信息━━━━━━━━━━\n\n");
}
//判断性别
void sexs(i){
char y[SEXS];
int n=1;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
}
while(gets(y)){
if(strcmp(y,"男")==0||strcmp(y,"女")==0){
strcpy(worker[i].sex,y);
break;
}
else{
write_menu();
printf("输入错误(请输入男/女)\n");
continue;
}
}
fclose(fp);
}
//判断出生日期
void year(i){
char s[DATES],y[5];
int n=1,y1=0;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
}
while(gets(s)){
strncpy(y,s,5); //把年份复制给y1并转换成int型
y1=atoi(y);
if(s[10]=='\0'&&s[4]=='-'&&s[7]=='-'){ //长度为10,第5位和第8位为'-'
if(y1>2014||y1<1900){
write_menu();
printf("年份输入错误,请重新输入(年份应在1900-2014之间)\n\n");
continue;
}
if((s[5]>'1'||s[5]<'0')||
((s[5]=='1'&&s[6]>'2')||(s[5]=='0'&&s[6]=='0'))){
write_menu(); //月份>12或为00,月份第一位为0或1
printf("月份输入错误,请重新输入(月份应为01-12)\n\n");
continue;
}
//闰年二月为29天否则不大于28
//4,6,9,11月小于等于30
if((s[8]<'0'||s[8]>'3')||(s[8]=='0'&&s[9]=='0')||(s[8]=='3'&&s[9]>'1')
||(((y1%4==0&&y1&100!=0)||(y1%400==0))&&(s[5]=='0'&&s[6]=='2'&&s[8]=='3'))
||((s[5]=='0'&&s[6]=='2')&&((s[8]=='2'&&s[9]>'8')||s[8]=='3'))
||(((s[5]=='0'&&(s[6]=='4'||s[6]=='6'||s[6]=='9'))||(s[5]=='1'&&s[6]=='1'))&&s[8]=='3'&&s[9]=='1')
){
write_menu();
printf("日期输入错误,请重新输入\
(闰年二月为29否则不大于28,4,6,9,11月小于等于30)\n\n");
continue;
}
strcpy(worker[i].date,s);
break;
}
else{
write_menu();
printf("输入错误,请重新输入(格式:20##-01-01)\n\n");
continue;
}
}
fclose(fp);
}
//判断工号
int ids(i){
int id,n=0,c=0;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
}
while(scanf("%d",&id)){
while(!feof(fp)){
fread(&worker[n],MALL,1,fp);
if(worker[n].id==id&&worker[n].id!=0){ //搜索相同的id
c=1;
break;
}
n++;
}
if(c!=1){
if(id==0)
return 0; //输入0时返回0,在输入函数中结束
else if(id>=1000&&id<=9999){
getchar();
worker[i].id=id;
break;
}
else{
write_menu();
printf("输入错误(范围:1000-9999)\n");
continue;
}
}
write_menu();
printf("已存在,请重新输入\n");
c=0;
}
fclose(fp);
}
//判断学历
void edus(i){
char y[EDUS];
int n=1;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
}
while(gets(y)){
if(strcmp(y,"小学")==0||strcmp(y,"初中")==0
||strcmp(y,"高中")==0||strcmp(y,"大学")==0){
strcpy(worker[i].edu,y);
break;
}
else{
write_menu();
printf("输入错误(请输入小学/初中/高中/大学)\n\n");
continue;
}
}
fclose(fp);
}
//剔除所有id为0的数据(数据整理)
void delid0(){
int i=0,num=0,n=0,c=0,t=0;
FILE *fp;
fp=fopen("work.txt","r+");
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
if(worker[i].id==0&&t==0){
c=i;
t=1;
}
i++;
}
i--;
num=i;
i=0;
rewind(fp);
//剔除数据间的空数据,(删除数据时会产生)
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
i++;
}
i=0;
rewind(fp);
while(!feof(fp)){ //剔除结尾空数据,(写入时可能产生)
fread(&worker[i],MALL,1,fp);
if(worker[i].id==0&&t==0){
c=i;
t=1;
}
i++;
}
if(t=1){
fp=fopen("work.txt","w+");
for(n=0;n
fwrite(&worker[n],MALL,1,fp);
}
fclose(fp);
}
fclose(fp);
}
//输入,写入文件
void write(){
FILE *fp;
int id=0,i=0,eduid;
char c;
if((fp=fopen("work.txt","a+"))==NULL){
printf("无法打开\n");
}
write_menu();
printf("工号(输入0返回):\n\n");
while(i<50){
id=ids(i);
if(id==0){
write_menu();
printf("任意键返回\n");
break;
}
write_menu();
printf("工号:%d\n\n名字:\n",worker[i].id);
gets(worker[i].name);
write_menu();
printf("工号:%d 名字:%s\n\n性别:\n",worker[i].id,worker[i].name);
sexs(i);
write_menu();
printf("工号:%d 名字:%s 性别:%s\n\n出生日期:\n",
worker[i].id,worker[i].name,worker[i].sex);
year(i);
write_menu();
printf("工号:%d 名字:%s 性别:%s \n出生日期:%s\n\n学历:\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date);
edus(i);
write_menu();
printf("工号:%d 名字:%s 性别:%s \n\
出生日期:%s 学历:%s\n\n工资:\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu);
scanf("%d",&worker[i].wage);
getchar();
write_menu();
printf("工号:%d 名字:%s 性别:%s \n\
出生日期:%s 学历:%s 工资:%d\n\n地址:\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu,worker[i].wage);
scanf("%s",&worker[i].site);
getchar();
write_menu();
printf("工号:%d 名字:%s 性别:%s \n\
出生日期:%s 学历:%s 工资:%d \n住址:%s\n\n电话:\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu,worker[i].wage,worker[i].site);
scanf("%d",&worker[i].phone);
getchar();
write_menu();
printf("工号:%d 名字:%s 性别:%s \n\
出生日期:%s 学历:%s 工资:%d \n住址:%s 电话:%d \n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu,worker[i].wage,worker[i].site,worker[i].phone);
if(fwrite(&worker[i],MALL,1,fp)!=1){ //写入文件
printf("保存失败");
}
printf("\n继续输入工号或0退出\n");
i++;
}
fclose(fp);
}
//输出所有职工信息
void reads(){
system("cls");
puts("\n\n\t\t━━━━━━━━━━全部职工━━━━━━━━━━\n\n");
int i=0;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
}
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
if(worker[i].id==0){ //跳过id为0的id
i++;
continue;
}
printf("工号:%d 名字:%s 性别:%s \n\
出生日期:%s 学历:%s 工资:%d \n住址:%s 电话:%d\n\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu,worker[i].wage,worker[i].site,worker[i].phone);
i++;
}
printf("\n任意键返回\n");
fclose(fp);
}
//按工号查询
void serch(){
system("cls");
puts("\n\n\t\t━━━━━━━━━━工号查询━━━━━━━━━━\n\n");
int n,i=0,t=0;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
} //列出已有工号
printf("目前存在的工号:\n");
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
if(worker[i].id==0){ //跳过id为0的id
i++;
continue;
}
printf("%6d",
worker[i].id);
i++;
}
i=0;
rewind(fp); //定位到文件起始位置
printf("\n输入工号\n\n");
scanf("%d",&n);
while(!feof(fp)){
t=0;
fread(&worker[i],MALL,1,fp);
if(worker[i].id==0){ //跳过id为0的id
i++;
continue;
}
if(n==worker[i].id){
system("cls");
puts("\n\n\t\t━━━━━━━━━━工号查询━━━━━━━━━━\n\n");
printf("工号:%d 名字:%s 性别:%s \n\
出生日期:%s 学历:%s 工资:%d \n住址:%s 电话:%d\n\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu,worker[i].wage,worker[i].site,worker[i].phone);
}
else
t=1;
i++;
}
if(t==1){
system("cls");
puts("\n\n\t\t━━━━━━━━━━工号查询━━━━━━━━━━\n\n");
printf("id不存在");
}
printf("\n任意键返回\n");
fclose(fp);
}
//搜索学历
void eduserch(){
system("cls");
puts("\n\n\t\t━━━━━━━━━━学历查询━━━━━━━━━━\n\n");
char n[EDUS],y[EDUS],i=0,num=0;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
}
printf("输入学历\n\n");
while(gets(y)){
if(strcmp(y,"小学")==0||strcmp(y,"初中")==0
||strcmp(y,"高中")==0||strcmp(y,"大学")==0){
strcpy(n,y);
break;
}
else{
system("cls");
puts("\n\n\t\t━━━━━━━━━━学历查询━━━━━━━━━━\n\n");
printf("输入错误(请输入小学/初中/高中/大学)\n\n");
continue;
}
}
system("cls");
puts("\n\n\t\t━━━━━━━━━━学历查询━━━━━━━━━━\n\n");
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
if(n[0]=='0'){
break;
} //搜索edu的首字符是否与输入的相等
if(worker[i].edu[0]==n[0]){
printf("工号:%d 名字:%s 性别:%s \n\
出生日期:%s 学历:%s 工资:%d \n住址:%s 电话:%d\n\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu,worker[i].wage,worker[i].site,worker[i].phone);
num++;
}
i++;
}
if(n[0]!='0')
printf("\n共%d人",num);
printf("\n\n任意键返回\n");
fclose(fp);
}
//退休查询
void tuixiu(){
system("cls");
puts("\n\n\t\t━━━━━━━━━━退休查询━━━━━━━━━━\n\n");
char y[4];
int i=0,n=0,c=0,t=0;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
}
printf("输入年份(将输出在该年份退休的职工,男60,女55退休):\n\n");
scanf("%d",&n);
printf("至%d年退休的员工:\n",n);
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
if(strcmp(worker[i].sex,"男")==0){
strncpy(y,worker[i].date,4); //把date的年份复制给y
c=atoi(y); //y转换为int型赋给c
if(n-c>=60){
t++;
printf("\n");
printf("工号:%d 名字:%s 性别:%s \n\
出生日期:%s 学历:%s 工资:%d \n住址:%s 电话:%d\n\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu,worker[i].wage,worker[i].site,worker[i].phone);
}
}
if(strcmp(worker[i].sex,"女")==0){
strncmp(y,worker[i].date,4);
c=atoi(y);
if(n-c>=55){
t++;
printf("\n");
printf("工号:%d 名字:%s 性别:%s \n\
出生日期:%s 学历:%s 工资:%d \n住址:%s 电话:%d\n\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu,worker[i].wage,worker[i].site,worker[i].phone);
}
}
i++;
}
if(t==0){
printf("\n无");
}
printf("共%d人\n任意键返回\n",t);
fclose(fp);
}
//删除指定职工
void del(){
int n=0,i=0,s,num;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
}
system("cls");
puts("\n\n\t\t━━━━━━━━━━删除职工━━━━━━━━━━\n\n");
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
if(worker[i].id==0){ //跳过id为0的id
i++;
continue;
}
printf("工号:%d 名字:%s \n",
worker[i].id,worker[i].name);
i++;
}
i=0;
rewind(fp);
printf("\n输入要删除的职工号\n");
scanf("%d",&s);
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
if(worker[i].id==s){
num=i; //num标记要删除的工号
}
i++; //i统计人数,下标
}
i--;
for(n=num;n
worker[n]=worker[n+1];
}
if((fp=fopen("work.txt","rt+"))==NULL){
printf("无法打开\n");
}
for(n=0;n
if(fwrite(&worker[n],MALL,1,fp)!=1){
printf("\n无法保存\n");
}
}
printf("\n删除成功!\n");
getch();
fclose(fp);
}
//重写数据
void allw(i){
int n;
FILE *fp;
fp=fopen("work.txt","w+");
for(n=0;n
fwrite(&worker[n],MALL,1,fp);
}
fclose(fp);
}
//信息修改
void change(){
int n=0,i=0,s,num,t=0,c=0;
FILE *fp;
if((fp=fopen("work.txt","r+"))==NULL){
printf("无法打开\n");
}
system("cls");
puts("\n\n\t\t━━━━━━━━━━修改信息━━━━━━━━━━\n\n");
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
if(worker[i].id==0){ //跳过id为0的id
i++;
continue;
}
printf("工号:%d 名字:%s \n",
worker[i].id,worker[i].name);
i++;
}
i=0;
rewind(fp);
printf("\n输入要修改的职工号\n");
scanf("%d",&s);
getchar();
while(!feof(fp)){
fread(&worker[i],MALL,1,fp);
if(worker[i].id==s){
num=i;
system("cls");
puts("\n\n\t\t━━━━━━━━━━修改信息━━━━━━━━━━\n\n");
printf("1.工号:%15d \n2.名字:%15s \n3.性别:%15s \n\
4.出生日期:%15s \n5.学历:%15s \n6.工资:%15d \n7.住址:%15s \n8.电话:%15d\n\n",
worker[i].id,worker[i].name,worker[i].sex,worker[i].date,
worker[i].edu,worker[i].wage,worker[i].site,worker[i].phone);
}
i++;
}
printf("输入要修改的数据编号\n");
while(scanf("%d",&s)&&s!=0){
getchar();
switch(s){
case 1:printf("新工号\n");ids(num);break;
case 2:printf("新姓名\n");gets(worker[num].name);break;
case 3:printf("新性别\n");sexs(num);break;
case 4:printf("新出生年月\n");year(num);break;
case 5:printf("新学历\n");edus(num);break;
case 6:printf("新工资\n");scanf("%d",&worker[num].wage);getchar();break;
case 7:printf("新住址\n");scanf("%s",&worker[num].site);getchar();break;
case 8:printf("新电话\n");scanf("%d",&worker[num].phone);getchar();break;
default:printf("选项输入错误\n");break;
}
allw(i); //重写文件
system("cls");
puts("\n\n\t\t━━━━━━━━━━修改信息━━━━━━━━━━\n\n");
printf("1.工号:%15d \n2.名字:%15s \n3.性别:%15s \n\
4.出生日期:%15s \n5.学历:%15s \n6.工资:%15d \n7.住址:%15s \n8.电话:%15d\n\n",
worker[num].id,worker[num].name,worker[num].sex,worker[num].date,
worker[num].edu,worker[num].wage,worker[num].site,worker[num].phone);
printf("输入编号继续修改或输入0结束修改\n");
}
fclose(fp);
printf("任意键返回\n");
}
//查询菜单
void menu1(){
system("cls");
puts("\n\n\t\t┏━━━━━━━━━查询信息━━━━━━━━┓\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 1.浏览全部\t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 2.按照工号\t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 3.按照学历\t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 4.退休情况\t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┃\t 0.返回上级\t\t ┃\n\
\t\t┃\t\t\t\t\t ┃\n\
\t\t┗━━━━━━━━━━━━━━━━━━━━━┛\n\
\t\t\t\t请选择(0-4):\n");
}
//查询菜单函数
void main1(){
menu1();
int n;
while(scanf("%d",&n)&&n!=0){
getchar();
delid0();
switch(n){
case 1:reads();break;
case 2:serch();break;
case 3:eduserch();break;
case 4:tuixiu();break;
case 0:break;
default:printf("\n输入错误,按任意键后重新输入\n");break;
}
getch();
menu1();
}
}
//主函数
int main(){
int n,i=0;
menu0(0);
menu();
while(scanf("%d",&n)&&n!=0){
getchar();
delid0();
switch(n){
case 1:write();break;
case 2:main1();menu();break;
case 3:del();break;
case 4:change();break;
default:printf("\n输入错误,按任意键后重新输入\n");break;
}
// getch();
menu();
}
menu0(1);
return 0;
}
高级语言程序设计实训成绩评定表
第一章封面管理学实训报告(第4小组)年级:20##级专业班级:金融4班地点:鑫翰投资管理咨询有限公司目录:1.小组成员分工2.策划…
基层行政管理实训报告范文一一实习目的在企事业单位的办公室学习处理日常的行政事务熟悉整个企事业单位工作的过程通过实践学习使所学理论知…
管理学实验报告姓名学号班级实验项目模拟公司系列实训姓名学号班级实验地点实验课程名称管理学指导教师日期成绩一实验目的通过实训培养学生…
实训报告实训目的向企业管理者了解他的职位工作职能胜任该职务所必需的管理技术的情况培养我们关注企业的态度了解各个企业的管理制度提高我…
人力资源管理上机实训报告专业班级:市场营销0901姓名:黄亚鹏学号:20xx1306022指导教师:明均仁实验地点:院实验中心20…
20xx年暑期社会实践报告机电普091陈学亮20xx441179社会实践是大学生课外教育的一个重要方面,也是大学生自我能力培养的一…
建筑工程实训总结根据学校安排,我们于20xx年上学期在学校机房进行工程造价资料管理实训。这是一个让我们了解建筑的好机会,让我更深一…
难以忘记每日的清晨我们踏着晨曦走在阴凉的小道上,难以忘记那一排排整齐一致与我相处三周的档案,难以忘记那和蔼亲切、笑容常挂的阿姨,许…
物业档案管理实习报告作为一个在校学生的我们,应该珍惜学校安排的每次实习。以便在实习过程中亦能巩固物业管理专业的主业知识,提高实际操…
关于申报档案工作规范化管理等级认定的自查报告达审发〔20xx〕68号达县档案局:为使我局档案工作实现规范化管理,今年以来,我们把档…
XXX大学实习报告学院:经济管理学院专业班级:08人力三班学生姓名:张三学号:0920756实习起止时间:3月12至4月x日实习单…