1C语言课程设计综合实习报告题目:人事管理系统姓名:李晋林班学号:191102院(系):计算机学院专业:计算机科学与技术指导教师:何兴恒2010年8月2人事管理系统【设计目的】某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员及临时工。现在需要储存这些人员的人事档案信息,内容包括编号、姓名、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。设计人事管理系统满足以下功能:添加删除功能:能根据学院人事的变动情况,添加删除记录。(1)查询功能:能根据编号和姓名进行查询。(2)编辑功能(高级):根据查询对相应的记录进行修改并记录。(3)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数,高学历高职称人数),统计要求同时显示被统计着的信息。(4)(5)排序功能:按照年龄、来院时间进行排序。(5)(6)保存功能:能对输入的数据进行相应的存储。【设计思路】根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。3【总体设计】图书管理系统借阅图书查阅图书管理系统理系统还书退出系统4【分块设计】5图1—3输入模块流程图开始输入数字1,进入查阅图书输入数字1或2调用findbook()和findbook1()函数输入1,按书名查询输入2,按作者查询输入0返回主菜单输入数字1或26图1—4借阅函数流程图开始输入数字2,进入借阅系统调用lendbook()函数结束7图1—5修改、删除、追加模块流程图开始输入3,进入管理系统输入用户要追加的增加图书、删除图书、学生管理系统、书籍统计调用carcount()addbook()bookcount()delbook()函数录保护追加记录结束89【程序源代码】#includestdio.h#includestring.h#includeconio.h#includestdlib.h#includectype.h#defineSTACK_INIT_SIZE10#defineOK1#defineTRUE1#defineFALSE0#defineERROR0structstudent{intcarnum;charlendbook[10];}student[1000];structbook{intbooknum;charbookname[10];charbookcreat[10];intturefalse;}book[1000];structcar{intcarnum;charstudentname[10];10intstudentclass;}car[100];huanbook(){FILE*fp,*fp2;inti,n;intcarnum;charlendbook[10];printf(请你输入你的卡号\n);scanf(%d,&carnum);fp=fopen(car.txt,r);for(i=0;fread(&car[i],sizeof(structcar),1,fp)!=0;i++){if(car[i].carnum==carnum){n=i;fclose(fp);printf(请输入你要还的书的名字\n);scanf(%s,lendbook);fp=fopen(record.txt,r);for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!=0;i++){if(strcmp(student[i].lendbook,lendbook)==0){fclose(fp);fp=fopen(record.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!=0;i++){11if(strcmp(student[i].lendbook,lendbook)==0){continue;}fwrite(&student[i],sizeof(structstudent),1,fp2);}fclose(fp);fclose(fp2);fp=fopen(record.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&student[i],sizeof(structstudent),1,fp2)!=0;i++){fwrite(&student[i],sizeof(structstudent),1,fp);}fclose(fp);fclose(fp2);fopen(bookl.txt,w);fclose(fp2);fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(i==n){book[i].turefalse=1;fwrite(&book[i],sizeof(structbook),1,fp2);continue;}fwrite(&book[i],sizeof(structbook),1,fp2);}12fclose(fp);fclose(fp2);fp=fopen(book.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!=0;i++){fwrite(&book[i],sizeof(structbook),1,fp);}fclose(fp);fclose(fp2);fopen(bookl.txt,w);fclose(fp2);printf(还书完毕,按任意键返回\n);getch();return1;}}printf(你没有借过这样的书,任意键返回\n);fclose(fp);getch();return0;}}printf(系统没这样的卡,按任意键返回\n);fclose(fp);getch();}voidfindbook(){13FILE*fp;charbookname[10];inti;fp=fopen(book.txt,r);printf(请输入你要查找的书名\n);scanf(%s,bookname);for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(strcmp(bookname,book[i].bookname)==0){if(book[i].turefalse==1){printf(这本书的详细资料是:%d%s%s此书现在无人借阅\n按任意键返回\n,book[i].booknum,book[i].bookname,book[i].bookcreat);}else{printf(这本书已经有人借出\n);fclose(fp);return(0);}fclose(fp);returnFALSE;}}printf(没有你要查询的书籍\n);fclose(fp);returnFALSE;}voidfindbook1(){FILE*fp;charbookcreat[10];intture,i;14fp=fopen(book.txt,r);printf(请输入你要查找的作者名\n);scanf(%s,bookcreat);for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(strcmp(bookcreat,book[i].bookcreat)==0){if(book[i].turefalse==1){printf(这本书的详细资料是:%d%s%s此书现在无人借阅\n按任意键返回\n,book[i].booknum,book[i].bookname,book[i].bookcreat);}else{printf(这本书已经有人借出\n);fclose(fp);return0;}fclose(fp);returnFALSE;}}printf(没有你要查询的书籍\n);fclose(fp);returnFALSE;}voidlendcount(){FILE*fp;inti,n=0;fp=fopen(record.txt,r);for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!=0;i++){15printf(卡号:%d借出的书籍:%s\n,student[i].carnum,student[i].lendbook);n=n+1;}fclose(fp);printf(目前共有%d本书借出\n,n);printf(按任意键\n);getch();returnn;}voidchabook(){charch5;do{printf(---------------欢迎进入图书查询系统!--------------\n);printf(1:按书名查找\n);printf(2:按作者查找\n);printf(0:返回\n);printf(请输入0--2,其他输入为非法输入!\n);scanf(%s,&ch5);switch(ch5){case'1':findbook();getch();break;case'2':findbook1();getch();break;case'0':break;default:printf(无此操作\n);getch();break;}}while(ch5!='0');returnFALSE;16}voidlendbook(){FILE*fp,*fp2;inti,n;intcarnum;printf(请你输入你的卡号:\n);scanf(%d,&carnum);fp=fopen(car.txt,r);for(i=0;fread(&car[i],sizeof(structcar),1,fp)!=0;i++){if(car[i].carnum==carnum){n=i;fclose(fp);printf(请输入你要借阅的书的名字\n);scanf(%s,student[n].lendbook);fp=fopen(book.txt,r);for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){if(book[i].turefalse==0){printf(对不起,此书有人借出,请借其他书\n);fclose(fp);getch();return;}elsefclose(fp);fp=fopen(record.txt,a+);student[n].carnum=carnum;17fwrite(&student[n],sizeof(structstudent),1,fp);fclose(fp);fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){book[i].turefalse=0;fwrite(&book[i],sizeof(structbook),1,fp2);continue;}fwrite(&book[i],sizeof(structbook),1,fp2);}fclose