C语言课程设计实习报告

  • 格式:docx
  • 大小:878.79 KB
  • 文档页数:49

C语言课程设计实习报告职工信息管理系统院系:数学与物理学院班级:121141学号:20141000992学生姓名:廖远康指导教师:戴光明课程设计评语注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录课程设计评语 (2)一、题目要求 (4)二、需求分析 (4)三、总体设计 (5)四、详细设计 (6)§4.1 主菜单 (6)§4.2 各功能模块分析 (10)1.输入职工信息 (10)2.浏览职工信息 (12)3.查询职工信息 (14)4.删除职工信息 (17)5.增加职工信息 (20)6.修改职工信息 (22)五、错误分析 (26)六、运行测试 (29)七、心得体会 (34)八、附录 (35)附录1、参考文献 (35)附录2、程序代码 (35)一、题目要求1.系统以菜单方式工作2.职工信息录入功能(职工信息用文件保存)3.职工信息浏览功能。

4. 职工信息查询功能查询方式。

✧按工资查询✧按学历查询等5.职工信息删除、修改功能(可选项)二、需求分析1.系统要以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择2.职工信息采用文件保存,因而要提供文件的输入/输出功能3.要实现职工信息的浏览,则要提供信息显示功能4.要实现职工信息的查询,则要提供查找功能(包括按学历查询和按工号查询两种查询方式)5.要实现职工信息的删除、修改,则要提供文件记录的删除、修改功能三、总体设计整体流程四、详细设计§4.1 主菜单【源代码】void main(){ int n,flag;char a;menu();do{printf("\t\t请选择你需要操作的步骤(1--7):\n\t\t");scanf("%d",&n);if(n>=1&&n<=7){flag=1;break;}else{flag=0;printf("\t\t您输入有误,请重新选择!\n");}}while(flag==0);while(flag==1){switch(n){case 1:system("cls");printf("\t\t*************************************************\n");printf("\t\t* 输入职工信息*\n");printf("\t\t*************************************************\n");printf("\n");input();break;case 2:system("cls");printf("\t\t*************************************************\n");printf("\t\t* 浏览职工信息*\n");printf("\t\t*************************************************\n");printf("\n");display();break;case 3:system("cls");printf("\t\t*************************************************\n");printf("\t\t* 按职工号或学历查询职工信息*\n");printf("\t\t*************************************************\n");printf("\n");search();break;case 4:system("cls");printf("\t\t*************************************************\n");printf("\t\t* 删除职工信息*\n");printf("\t\t*************************************************\n");printf("\n");del();break;case 5:system("cls");printf("\t\t*************************************************\n");printf("\t\t* 添加职工信息*\n");printf("\t\t*************************************************\n");printf("\n");add();break;case 6:system("cls");printf("\t\t*************************************************\n");printf("\t\t* 修改职工信息*\n");printf("\t\t*************************************************\n");printf("\n");modify();break;case 7:system("cls");printf("\n\n\n\n\t\t感谢您的使用,祝您工作愉快O(∩_∩)O\n\n\n\t\t");exit(0);break;default :break;}getchar();printf("\n");printf("\t\t是否继续进行(y or n):\n\t\t");scanf("%c",&a);if(a=='y'){system("cls");menu();printf("\t\t请再次选择你需要操作的步骤(1--7):\n\t\t");scanf("%d",&n);printf("\n");}elseexit(0);}}void menu(){ system("color A0");printf("\n\n");printf("\t\t*****************职工信息管理系统****************\n"); printf("\t\t* *\n");printf("\t\t* 1.录入职工信息*\n"); printf("\t\t* *\n");printf("\t\t* 2.浏览职工信息*\n"); printf("\t\t* *\n");printf("\t\t* 3.查询职工信息*\n"); printf("\t\t* *\n");printf("\t\t* 4.删除职工信息*\n"); printf("\t\t* *\n");printf("\t\t* 5.增加职工信息*\n");printf("\t\t* *\n");printf("\t\t* 6.修改职工信息*\n"); printf("\t\t* *\n");printf("\t\t* 7.退出*\n"); printf("\t\t* *\n");printf("\t\t*************************************************\n\n\n");}【分析】程序从主函数开始,然后调用menu函数,显示主界面,用户选择数字后,调用相应的函数,进入相应的功能模块,实现功能后,用户选n退出程序,用户选y 则清屏再次调用menu函数。

§4.2各功能模块分析1.输入职工信息【源代码】void input(){int i,m;printf("\t\t请输入需要创建信息的职工人数(1--100):\n\t\t"); scanf("%d",&m);for (i=0;i<m;i++){printf("\t\t职工号: ");srand((int)time(0));em[i].num=rand()%10000+20000000;if(em[i].num!=em[i-1].num)printf("%d ",em[i].num);printf("\n");printf("\t\t请输入姓名: ");scanf("%s",em[i].name);getchar();printf("\t\t请输入性别(男-m女-w): ");scanf("%c",&em[i].sex);printf("\t\t请输入年龄: ");scanf("%d",&em[i].age);printf("\t\t请输入学历: ");scanf("%s",em[i].xueli);printf("\t\t请输入工资: ");scanf("%d",&em[i].wage);printf("\t\t请输入住址: ");scanf("%s",em[i].addr);printf("\t\t请输入电话: ");scanf("%s",em[i].tel);printf("\t\t\n");}printf("\n\t\t创建完毕!\n");save(m);}void save(int m){int i;FILE *fp;if ((fp=fopen("employee_list.txt","w"))==NULL){printf ("cannot open file\n");exit(0);}for (i=0;i<m;i++)fprintf(fp,"%d %s %c %d %s %d %s %s\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,e m[i].wage,em[i].addr,em[i].tel);fclose(fp);}【分析】调用该模板时,用户先选择需要创建人数m,然后按照提示输入职工信息,系统会将职工信息存放在结构体中,同时会自动调用save函数,将职工信息输出到employee_list.txt 中。