收藏 分销(赏)

c语言课程设计报告人员管理系统.doc

上传人:二*** 文档编号:4513322 上传时间:2024-09-26 格式:DOC 页数:30 大小:206KB
下载 相关 举报
c语言课程设计报告人员管理系统.doc_第1页
第1页 / 共30页
本文档共30页,全文阅读请下载到手机保存,查看更方便
资源描述
. . 科技大学 本科生课程设计说明书 题 目:C语言课程设计 —— 人员管理系统 学生XX:武飞 学 号:1376807331 专 业:计算机科学与技术 班 级:2021-3 指导教师:王丽颖 . .word.zl. . . 科技大学课程设计任务书 课程名称 C语言课程设计 设计题目 人员管理系统 指导教师 王丽颖 时间 2021.12.31—2021.1.4 一、教学要求 1. 稳固和加深学生对C语言课程的根本知识的理解和掌握 2. 掌握C语言编程和程序调试的根本技能 3. 利用C语言进展根本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 人员管理系统 现有一批人员的数椐,要求输入计算机并存放在存中,然后增加假设干个新人员的记录,并可输出人员清单,实现文件存盘和读入文件进展修改的功能。人员的根本信息包括XX,性别,年龄,XX号和简历〔80个字符以〕。要求设计菜单来调用其各功能模块: v 新建文件、翻开文件 v 输入记录、输出记录 v 查询记录〔至少具有两种查询方式,例如以XX查询和以XX号查询〕 v 修改、插入和删除记录 v 保存文件、退出 三、设计要求及成果 1. 分析课程设计题目的功能需求〔可选用数组或链表实现,可多人〔最多3人〕协作完成一个题目〕 2. 写出详细设计说明〔至少包括功能实现分析和模块流程图〕 3. 编写程序代码,调试程序使其能正确运行〔代码书写要规,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号〕 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告〔请严格按照模板进展排版〕 四、进度安排 第一天  选择课程设计题目,分析课题的要求 第二天  编程 第三天  编程及调试 第四天  写课程设计报告 第五天  提交课程设计报告〔打印稿及电子稿〕 五、评分标准 1. 根据平时上机考勤、表现和进度,教师将每天点名和检查 2. 根据课程设计完成情况,必须有可运行的软件。 3. 根据课程设计报告的质量,如有雷同,那么所有雷同的所有人均判为不及格。 . .word.zl. . . 目 录 科技大学课程设计任务书I 第一章需求分析3 1.1引言3 1.2任务概述3 1.3数据描述3 1.4功能需求3 第二章概要设计4 2.1总体设计4 2.2数据类型设计〔或数据构造设计〕4 2.3接口设计5 2.4运行界面设计5 第三章详细设计6 3.1输入模块设计6 3.2输出模块设计7 3.3查找模块设计7 3.4保存及读取模块设计9 第四章测试分析11 4.1测试程序执行情况11 第五章用户手册〔可选〕14 5.1使用说明14 5.2运行说明14 第六章课程设计总结15 附录:程序代码16 参考文献24 . .word.zl. . . 第一章 需求分析 1.1 引言 随着管理人数的增加,手动管理人员将会显得不方便。这时就需要使用软件来实施人性化的管理。 1.2 任务概述 做一个程序对人员信息实现:新建文件、翻开文件、输入记录、输出记录、查询记录、 修改、插入和删除记录、保存文件、退出功能 1.3 数据描述 l 采用构造体来储存人员信息。 l 人员信息包括XX、性别、年龄、XX号、个人简历。 l XX长度输入时不能超过10。 l 性别输入时只能输入时一个字符w/m。 l XX长度输入时不能超过20 。 l 个人简历长度输入时不能超过120。 1.4 功能需求 l 新建文件、翻开文件 l 输入记录、输出记录 l 查询记录〔至少具有两种查询方式,例如以XX查询和以XX号查询〕 l 修改、插入和删除记录 l 保存文件、退出 第二章 概要设计 2.1 总体设计 1.更新人员信息 2..XX号查找 3.XX查找 4.修改信息 5.插入信息 开场 6.删除信息 7.输出信息 8.保存信息 9.读取文件 0.退出 2.2 数据类型设计〔或数据构造设计〕 typedef struct student { char name[M]; //XX char sex; //性别 int year; //年龄 char num[20]; //XX号 char jian[120]; //个人简历 }stu; //构造体储存 2.3 接口设计 表2.1:函数列表 函数名 函数格式 函数功能 menu int menu(void) 用户菜单 read int read(stu st[]) 添加人员信息 xieru void xieru(stu st[],int n) 写信息到文件 duqu int duqu(stu st[]); 从文件读取信息 print void print(stu st[],int n) 输出信息到屏幕 shenfenzheng void shenfenzheng(stu st[],int n) 按XX查找信息 xingming void xingming(stu st[],int n) 按XX查找 xiugai void xiugai(stu st[],int n) 修改信息 charu int charu(stu st[],int n) 插入信息 shanchu void shanchu(stu st[],int n) 删除信息 2.4 运行界面设计 . .word.zl. . . 第三章 详细设计 3.1 输入模块设计 开场 int read(stu st[]) { 输出提示信息 int i=-1; system( "cls" ); 输入XX printf("\t\t***********************************\n"); printf("\t\t* 1.更新成员信息 *\n"); printf("\t\t***********************************\n"); Y 判断XX是否小于0。 do{ i++; printf("请输入XX:\n"); N scanf("%s",&st[i].name); if(atoi(st[i].name)>=0) 输入性别 { 输入年龄 printf("请输入性别(w/m):\n"); 输入XX号 scanf(" %c",&st[i].sex); 输入简历 printf("请输入年龄:\n"); scanf("%d",&st[i].year); printf("请输入XX号:\n"); scanf("%s",&st[i].num); printf("请输入简历:\n"); 完毕 scanf("%s",&st[i].jian); printf("\n编号%d数据添加成功!\n",i+1); printf("输入XX为负数完毕输入!\n"); printf("\n") ; } else break; }while(st[i].num>0); printf("\n--------------------------------------------------------------------\n"); printf("数据更新成功!\n"); system("pause"); //按任意键继续 return i; } 3.2 输出模块设计 void print(stu st[],int n) { int i; system( "cls" ); //清屏 printf("\n--------------------------------------------------------------------\n"); printf("编号\tXX\t性别\t年龄\tXX号\t\t简介\n"); for(i=0;i<n;i++) { printf("%d\t%s\t%c\t%d\t%-24s%s\n",i+1,st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian); 开场 } } 提示信息 提示信息 3.3 查找模块设计 输入XX 输入XX void shenfenzheng(stu st[],int n) { N 是否符合 char x[20]; int i; Y system( "cls" ); 输出信息 printf("\t\t***********************************\n"); printf("\t\t* 2.XX号查找 *\n"); printf("\t\t***********************************\n"); 完毕 printf("输入你要查询的XX号:"); scanf("%s",x); for(i=0;i<n;i++) { if(strcmp(st[i].num,x)==0) { printf("XX\t性别\t年龄\tXX号\t\t简介\n"); printf("%s\t%c\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian); printf("\n--------------------------------------------------------------------\n"); system("pause"); return; } } printf("未找到!"); printf("\n--------------------------------------------------------------------\n"); system("pause"); } 开场 void xingming(stu st[],int n) { 提示信息 char x[10]; int i; 输入XX system( "cls" ); printf("\t\t***********************************\n"); 是否符合 printf("\t\t* 3.XX查找 *\n");N printf("\t\t***********************************\n"); printf("输入你要查询的XX:");Y 输出信息 scanf("%s",x); f or(i=0;i<n;i++) { if(strcmp(st[i].name,x)==0) 完毕 { printf("XX\t性别\t年龄\tXX号\t\t简介\n"); printf("%s\t %c\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian); printf("\n--------------------------------------------------------------------\n"); printf("按键返回!"); getchar(); /*按任意健*/ getchar(); return; } } printf("未找到!"); printf("\n--------------------------------------------------------------------\n"); system("pause"); } 开场 3.4 保存及读取模块设计 void xieru(stu st[],int n) 成功翻开 { FILE *fp; N Y if((fp=fopen("ren.txt","w"))==NULL) { 保存文件 printf("保存文件失败!\n"); return; } 关闭文件 fwrite(st,sizeof(stu),n,fp); printf("保存成功!\n"); fclose(fp); 返回 system("pause"); } 开场 int duqu(stu st[]) { FILE *fp; 翻开成功 int i; if((fp=fopen("ren.txt","r"))==NULL) N Y { 读取文件 printf("文件不存在!翻开失败!\n"); return 0; 关闭文件 } for(i=0;!feof(fp);i++) 返回人数 { fread(&st[i],sizeof(stu),1,fp); } fclose(fp); 返回 printf("读取成功!\n"); system("pause"); return i-1; } . .word.zl. . . 第四章 测试分析 4.1 测试程序执行情况 . .word.zl. . . 第五章 用户手册〔可选〕 5.1 使用说明 运行程序会显示菜单根据菜单输入编号实现相应功能; 1.更新人员信息 2.XX号查找 3.XX查找 4.修改信息 5.插入信息 6.删除信息 7.输出信息 8.保存文件 9.读取文件 0.退出 5.2 运行说明 只有退出程序时。保存文件。下次运行按读取。才能读取成功! 更新人员信息会覆盖到当前的人员信息。需要注意。 . .word.zl. . . 第六章 课程设计总结 全部模块化设计。未定义全局变量做干扰。采用构造体。 缺乏之处,XX长度未做限定,有些缺乏。需要改善的有数据存储方式。改成链式存可能会更佳。还可以进一步优化程序使其实现分级菜单。实现真正意义上的新建文件,读取文件。所遇到的问题是如何给每个数据的储存文件取不同名字。如何把每个文件名读取进来。通这次的课程设计,我们对C语言这门课程有了深一步的理解。它是计算机程序设计的重要理论技术根底,在我们计算机专业的学习中占据十分重要的地位,同时也使我们知道要学习这门课程,仅学习书本上的知识是不够的,还要有较高的实践能力。因为我们学习知识就是为了实践,而只有实践多编写程序才能更好的理解与掌握书本上的东西。通过本课题,进一步熟悉了C语言的根本东西。我们还要学会分析题目的与未知,学会中合起来考虑问题,在逐步的展开思想,特别是碰到大问题时要细细的分解成为许多小的问题来解决。同时我还学到了课外的知识,碰到难题是不要逃避,而是要迎难而上,反复的实验调试结果后,再错的根底上做修改。谈到错是成功之母,说明我们在莫一件事上要屡次吸取经历教训。这次课程设计,让我对于以往上课不理解、不太清楚的问题,通过亲身实践弄懂了许多,同时因为程序是在教师及同学的帮主下完成的,当中有很多程序都是几个同学一起讨论出来的,让我体会到了集体的力量是无限的,当然更让我坚决了以后要好好掌握C语言这一门课程的决心! . .word.zl. . . 附录:程序代码 #include<stdio.h> #include<stdlib.h> #include<string.h>//字符串操作 #define N 30 //人数 #define M 10 //名字长度 typedef struct student { char name[M]; char sex; int year; char num[20]; char jian[120]; }stu; int menu(void);//用户菜单 int read(stu st[]);//添加人员信息 void xieru(stu st[],int n);//写入信息到文件 int duqu(stu st[]);//从文件读取信息 void print(stu st[],int n);//输出信息 void shenfenzheng(stu st[],int n);//按XX查找信息 void xingming(stu st[],int n);//按XX查找 void xiugai(stu st[],int n);//修改信息 int charu(stu st[],int n);//插入信息 void shanchu(stu st[],int n);//删除信息 main() { int a,n; stu ren[N]; system("color 0A");//修改颜色 while(1) { system( "cls" );//清屏 printf("\n"); printf("\n"); printf("\n"); printf("\t******************人员管理系统*******************\n"); printf("\t* *\n"); printf("\t* 1.更新人员信息 2.XX号查找 3.XX查找 *\n"); printf("\t* 4.修改信息 5.插入信息 6.删除信息 *\n"); printf("\t* 7.输出信息 8.保存文件 9.读取文件 *\n"); printf("\t* 0.退出 *\n"); printf("\t*************************************************\n"); a=menu(); switch(a) { case 1: n=read(ren); break; case 2: shenfenzheng(ren,n); break; case 3: xingming(ren,n); break; case 4: xiugai(ren,n); break; case 5: n=charu(ren,n); break; case 6: shanchu(ren,n); n--; break; case 7: print(ren,n); printf("\n--------------------------------------------------------------------\n"); system("pause"); break; case 8: xieru(ren,n); break; case 9: n=duqu(ren); break; case 0: system( "cls" ); printf("\n\n\n"); printf("\t**************************************************\n"); printf("\t* *\n"); printf("\t* *\n"); printf("\t* 谢谢使用! *\n"); printf("\t* *\n"); printf("\t* *\n"); printf("\t**************************************************\n"); exit(0); //exit〔code〕当code为0时正常退出。非0时出现某种错误后退 default: printf("输入错误!请输入0-9的数字!\n"); system("pause"); break; } } return 0; } int menu(void)//用户菜单 { int a; printf("\n\t输入你的选择(0-9):[ ]\b\b"); scanf("%d",&a); return a; } void xieru(stu st[],int n) { FILE *fp; if((fp=fopen("ren.txt","w"))==NULL) { printf("保存文件失败!\n"); return; } fwrite(st,sizeof(stu),n,fp); printf("保存成功!\n"); fclose(fp); system("pause"); } int duqu(stu st[]) { FILE *fp; int i; if((fp=fopen("ren.txt","r"))==NULL) { printf("文件不存在!翻开失败!\n"); return 0; } for(i=0;!feof(fp);i++) { fread(&st[i],sizeof(stu),1,fp); } fclose(fp); printf("读取成功!\n"); system("pause"); return i-1; } int read(stu st[]) { int i=-1; system( "cls" ); printf("\t\t***********************************\n"); printf("\t\t* 1.更新成员信息 *\n"); printf("\t\t***********************************\n"); do{ i++; printf("请输入XX:\n"); scanf("%s",&st[i].name); if(atoi(st[i].name)>=0) { printf("请输入性别(w/m):\n"); scanf(" %c",&st[i].sex); printf("请输入年龄:\n"); scanf("%d",&st[i].year); printf("请输入XX号:\n"); scanf("%s",&st[i].num); printf("请输入简历:\n"); scanf("%s",&st[i].jian); printf("\n编号%d数据添加成功!\n",i+1); printf("输入XX为负数完毕输入!\n"); printf("\n") ; } else break; }while(st[i].num>0); printf("\n--------------------------------------------------------------------\n"); printf("数据更新成功!\n"); system("pause"); return i; } void print(stu st[],int n) { int i; system( "cls" ); printf("\n--------------------------------------------------------------------\n"); printf("编号\tXX\t性别\t年龄\tXX号\t\t简介\n"); for(i=0;i<n;i++) { printf("%d\t%s\t%c\t%d\t%-24s%s\n",i+1,st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian); } } void shenfenzheng(stu st[],int n) { char x[20]; int i; system( "cls" ); printf("\t\t***********************************\n"); printf("\t\t* 2.XX号查找 *\n"); printf("\t\t***********************************\n"); printf("输入你要查询的XX号:"); scanf("%s",x); for(i=0;i<n;i++) { if(strcmp(st[i].num,x)==0) { printf("XX\t性别\t年龄\tXX号\t\t简介\n"); printf("%s\t%c\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian); printf("\n--------------------------------------------------------------------\n"); system("pause"); return; } } printf("未找到!"); printf("\n--------------------------------------------------------------------\n"); system("pause"); } void xingming(stu st[],int n) { char x[10]; int i; system( "cls" ); printf("\t\t***********************************\n"); printf("\t\t* 3.XX查找 *\n"); printf("\t\t***********************************\n"); printf("输入你要查询的XX:"); scanf("%s",x); for(i=0;i<n;i++) { if(strcmp(st[i].name,x)==0) { printf("XX\t性别\t年龄\tXX号\t\t简介\n"); printf("%s\t %c\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian); printf("\n--------------------------------------------------------------------\n"); system("pause"); return; } } printf("未找到!"); printf("\n--------------------------------------------------------------------\n"); system("pause"); } int charu(stu st[],int n) { int i=n-1; system( "cls" ); printf("\t\t***********************************\n"); printf("\t\t* 5.插入信息 *\n"); printf("\t\t***********************************\n"); do{ i++; printf("请输入XX:\n"); scanf("%s",&st[i].name); if(atoi(st[i].name)>=0) { printf("请输入性别(w/m):\n"); s
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服