ImageVerifierCode 换一换
格式:DOC , 页数:28 ,大小:71.54KB ,
资源ID:2727381      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2727381.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C语言专业课程设计实验总结报告.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言专业课程设计实验总结报告.doc

1、C语言课程设计试验总结 一、需求分析: 1.需求概述 设计一个职员信息管理系统,使之能提供以下功效:

2、

3、 (1)职员信息录入功效 (2)职员信息浏览功效 (3)职员信息删除功效 (4)职员信息修改功效 (5) 职员信息查询功效 2.需求说明 (1)职员信息包含:职员号、姓名、性别、出生年月、学历职务、工资、住址、电话,而且职员号要求不反复。 (2)录入职员信息要求用文件形式保留,并对其进行浏览、查询、修改、删除等基础操作。 (3)对职员信息分别按职员号、性别、姓名、工资四种方法进行查询,并返回全部符合条件职员信息。 (4)对职员信息修改应该逐一

4、进行,一个职员信息修改不应影响其它职员信息。 (5)所设计系统应以菜单方法工作,应为用户提供清楚使用提醒,依据用户选择进行多种处理,并要求在此过程中能够尽可能兼容用户使用过程中异常情况。 二、总体设计 1.功效划分 该系统能够按功效进行模块划分,以下图所表示: 职员信息管理系统 菜单 信息输入 浏览信息 信息查询 信息修改 信息删除 职员号查询 性别查询 姓名查询 工资查询 其中: (1) 菜单选择模块完成用户选择,此模块也是职员信息管理系统入口,用户所要进行全部操作需要在此模块中选择,并调用相对应模块实现对应功效。 (2) 信息输入模

5、块完成信息录入功效,输入信息包含:职员号、姓名、性别、出生年月、学历职务、工资、住址、电话。 (3) 信息浏览模块完成对全部职员信息显示。 (4) 信息查询模块分四种查询方法:按职员号查询、按性别查询、按姓名查询、按职务查询。而且输出相对应且符合要求职员信息。 (5) 信息修改模块完成是职员信息修改功效。 (6) 信息删除模块完成是职员信息删除功效。 2.数据结构 本系统中关键数据结构为职员信息,其中包含:职员号、姓名、性别、出生年月、学历职务、工资、住址、电话等,其中出生年月用结构体表示,其中又包含:出生年份、出生月份、出生日期。 3.程

6、序步骤 系统实施应从功效菜单选择开始,依据用户选择进行后续处理,直到用户选择退出系统为止,其间应对用户选择做出判定及异常处理。系统步骤图以下图所表示: 是 是 是 是 是 否 否 否 否 结束 删除? 查询? 修改? 否 开始 菜单 输入? 浏览? 三、具体设计 1. 数据结构 (1)职员信息: struct Zg { char num[20]; //职员号 char name[15]; // 姓名

7、 char sex; //性别 struct Birthday birthday; //出生年月 char xueli[10]; //学历 char position[15]; //职务 int wage; //工资 char address[20];住址 char phone[12]; //电话 }zg[N]; (2)出生年月 struct Birthday //出

8、生年月 { int year; int month; int day; }; 2. 各个功效模块处理步骤 对应总体设计时系统模块图,各个功效模块处 步骤以下: (1) 菜单模块 清屏; 绘制菜单界面; 信息提醒,提醒用户选择对应序号; 判定选择序号是否正确; 返回变量值; (2) 信息录入模块 定义相关变量; 判定文件能否打开; 提醒需要输入职员个数; for(循环条件) { 提醒输入信

9、息; 将信息写进文件; } 提醒是否退出该菜单; 关闭文件; (3) 浏览信息模块 定义相关变量; 判定文件能否打开; 输出全部职员信息; 关闭文件; (4) 信息查询模块 定义相关变量; 判定文件能否打开; do { 清屏; 输出查询菜单; 提醒用户选择对应序号; switch(变量) {

10、 判定查询方法; } 提醒是否退出该菜单; }while(循环条件); (5) 按职员号查询模块 定义相关变量; 判定文件能否打开; do { 信息提醒; for(;循环条件;)       {          判定是否符合条件;          若符累计数器加1;          输出符合职员信息; } 判定计数器是否为0;

11、  若为0,输出相关信息;  提醒是否退出该菜单; }while(循环条件); (6) 按性别查询模块   定义相关变量; 判定文件能否打开; do { 信息提醒; for(;循环条件;)       {          判定是否符合条件;          若符累计数器加1;          输出符合职员信息; } 判定计数器是否为0; 若为0,输出相关信息; 提醒是否退出该菜单; }while(循环条件); (7) 按姓

12、名查询模块   定义相关变量; 判定文件能否打开; do { 信息提醒; for(;循环条件;)       {          判定是否符合条件;          若符累计数器加1;          输出符合职员信息; } 判定计数器是否为0; 若为0,输出相关信息; 提醒是否退出该菜单; }while(循环条件); (8) 按职务查询模块   定义相关变量; 判定文件能否打开; do {

13、   信息提醒;   for(;循环条件;)         {            判定是否符合条件;            若符累计数器加1;            输出符合职员信息; } 判定计数器是否为0; 若为0,输出相关信息; 提醒是否退出该菜单;   }while(循环条件); (9) 信息删除模块     定义相关变量 判定能否打开文件 提醒信息; for(循环条件) { 判定是否是要删除职员;

14、 若是则记标志变量为1; 若不是则将其写入临时文件; } 关闭相关文件; 判定标志变量值; 假如为1,则将源文件删除,并将临时文件重命名; 不然输出相关提醒信息; 提醒退出该菜单; (10) 信息修改模块 定义相关变量 判定能否打开文件 提醒信息; for(循环条件) { 判定是否是要修改职员; 若是则记标志变量为1,并将修改后信息写入临时文件; 若不是则将其写入临时文件; } 关闭相关文件; 判定标志变量值; 假如为1,则将

15、源文件删除,并将临时文件重命名; 不然输出相关提醒信息; 提醒退出该菜单; 四、具体程序 # include # include # include # include # define N 100 void welcome();//欢迎界面 int menu();//菜单 void input();//输入函数 int pdnum(char num[20]);//判定职员号是否反复 int pdsex(char ch);//判定输入性别是否符合要求 void output();//

16、输出函数 void dayin(int i);//输出所查询信息 int dq();//读取文件中数据个数 void search();//查询函数 void searchzgnum();//按职员号查询 void searchsex();//按性别查询 void searchname();//按姓名查询 void searchposition();//按职务查询 void del();//删除函数 void xiugai();//修改函数 struct Birthday //出生年月 { int year; int month; int day; }

17、 struct Zg { char num[20]; //职员号 char name[15]; // 姓名 char sex; //性别 struct Birthday birthday; //出生年月 char xueli[10]; //学历 char position[15]; //职务 int wage; //工资 char address[20

18、]; //住址 char phone[12]; //电话 }zg[N]; int Number=0; /****************************主函数******************************/ int main() { fflush(stdin); welcome(); while(1) { switch(menu()) { case 1:input();break; case 2:output();break;

19、case 3:search();break; case 4:del();break; case 5:xiugai();break; case 6:exit(0);break; } } return 0; } /******************************欢迎界面****************************/ void welcome() { system("cls"); printf("\n\t\5\5\3\3\3\3☆☆※★★※☆☆※★★※☆☆※★★※☆☆\3\3\3\3\3\3

20、\3\3\3\3\3\3"); printf("\n\t\5\5\3\3※◆◆☆☆◆◆◆◆◆◆※☆☆※◆◆◆◆◆◆☆☆◆◆※\3\3"); printf("\n\t\5\5\3\3\3\3\3\3★★ ★★\3\3\3\3\3\3\3\3\3"); printf("\n\t\5\5\3\3\3\3\3☆★☆☆★★☆ 欢 迎 进 入 ☆☆★☆☆★★\3\3\3\3\3\3\3"); printf("\n\t\5\5\3\3\3\3\3\3★★

21、 ★★\3\3\3\3\3\3\3\3\3"); printf("\n\t\5\5\3\3\3\3☆★☆☆★◆◆ 本 系 统 ◆◆★☆☆★☆\3\3\3\3\3\3"); printf("\n\t\5\5\3\3\3\3\3\3★★ ★★\3\3\3\3\3\3\3\3\3"); printf("\n\t\5\5\3\3\3\3\3\3☆☆※★★※☆☆※★★※☆☆※★★※☆☆\3\3\3\3\3\3\3\3\3\3"); printf("\n\t\5\5\3

22、\3\3\3\3\3★★☆◆◆ 按任意键进入 ◆◆☆★★\3\3\3\3\3\3\3\3\3"); printf("\n\t\5\5\3\3\3\3☆☆※★★※☆☆※★★※☆☆※★★※☆☆\3\3\3\3\3\3\3\3\3\3\3\3\n"); fflush(stdin); getch(); } /******************************菜单****************************/ int menu() { int n; system("cls"); printf("\t\t※◆※◆※◆※ 菜◆单 ※◆

23、※◆※◆※\n"); printf("\t\t※ ※\n"); printf("\t\t※ 1.录入 2.浏览 ※\n"); printf("\t\t※ 3.查询 4.删除 ※\n"); printf("\t\t※ 5.修改 6.退出 ※\n"); printf("\t\t※ ※\n"); printf("\t\t※◆※◆※◆※◆※◆※◆※◆※◆※

24、※\n"); printf("\n\t\t--请输入您选择序号(1-6):[ ]--\b\b\b\b"); fflush(stdin); scanf("%d",&n); while(1) { if(n<1 || n>6) { printf("\t\t-----输入错误!请重新选择:[ ]----\b\b\b\b\b\b"); scanf("%d",&n); } else break; } return n; } /******************************读取文件中数据个数******

25、/ int dq() { FILE *fp=NULL; int i=0; fp=fopen("职员信息记录表.txt","rb"); while(fread(&zg[i],sizeof(struct Zg),1,fp)) i++; fclose(fp); return i; } /******************************录入信息****************************/ void input() { FILE *fp; int i,

26、number,flage; if((fp=fopen("职员信息记录表.txt","ab"))==NULL) { printf("文件 职员信息记录表.txt 不能打开!"); getch(); exit(1); } printf("\t请输入录入职员数:"); scanf("%d",&number); for(i=0;i

27、s",&zg[i].num); flage=pdnum(zg[i].num); }while(flage==1); printf("请输入姓名:");scanf("%s",&zg[i].name); do { printf("请输入性别(f/m):");scanf("%s",&zg[i].sex); flage=pdsex(zg[i].sex); }while(flage==0); printf("请输入出生年月如( 6 7):");scanf("%d%d%d",&zg

28、[i].birthday.year,&zg[i].birthday.month,&zg[i].birthday.day); printf("请输入学历(junior,high,college,master,doctor):");scanf("%s",&zg[i].xueli); printf("请输入职务:");scanf("%s",&zg[i].position); printf("请输入工资:");scanf("%d",&zg[i].wage); printf("请输入住址:");scanf("%s",&zg[i].address);

29、 printf("请输入电话:");scanf("%s",&zg[i].phone); fwrite(&zg[i],sizeof(struct Zg),1,fp); } printf("\t★★★★按任意键退出录入菜单★★★★\n"); getch(); fclose(fp); } /******************************判定职员号是否反复****************************/ int pdnum(char num[20]) { FILE *fp; struct Zg temp;

30、 int i,flage=0; if((fp=fopen("职员信息记录表.txt","rb"))==NULL) { printf("文件 职员信息记录表.txt 不能打开!"); getch(); exit(1); } while(fread(&temp,sizeof(struct Zg),1,fp)==1) { if(strcmp(temp.num,num)==0) { printf("\t此职员号已存在!请重新输入");

31、 flage=1; break; } } return(flage); } /******************************判定输入性别是否正确****************************/ int pdsex(char ch) { int flage; if(ch=='f' || ch=='m') flage=1; else flage=0; if(flage==0) printf("\t

32、输入错误!请重新输入\n**"); return(flage); } /******************************输出所查询信息****************************/ void dayin(int i) { printf("职员号:%s\n",zg[i].num); printf("姓名:%s\n",zg[i].name); printf("性别:%c\n",zg[i].sex); printf("出生日期:%d %d %d\n",zg[i].birthday.year,zg[i].birth

33、day.month,zg[i].birthday.day); printf("学历:%s\n",zg[i].xueli); printf("职务:%s\n",zg[i].position); printf("工资:%d\n",zg[i].wage); printf("住址:%s\n",zg[i].address); printf("电话:%s\n\n",zg[i].phone); } /******************************输出全部信息****************************/ void o

34、utput() { FILE *fp; int count=0,i; Number=dq(); if((fp=fopen("职员信息记录表.txt","rb"))==NULL) { printf("文件 职员信息记录表.txt 不能打开!"); getch(); exit(1); } for(i=0;i

35、 printf("\t---按任意键退出浏览菜单---\n"); getch(); fclose(fp); } /******************************查询信息****************************/ void search() { int choice; char ch; do { system("cls"); printf("\n\t★★★★★★★★★★★★★★★★\n"); printf("\t★ 请输入你查询方法 ★\n");

36、 printf("\t★ 1.职员号 2.性别 ★\n"); printf("\t★ 3.姓名 4.职务 ★\n"); printf("\t★★★★★★★★★★★★★★★★\n"); scanf("%d",&choice); switch(choice) { case 1:searchzgnum();break; case 2:searchsex();break; case 3:searchname();br

37、eak; case 4:searchposition();break; default:printf("\t输入错误,没有该功效!请返回重新选择");break; } printf("\n\n\t◇◇◇是否退出查询菜单(y/n)?◇◇◇\n"); fflush(stdin); ch=getchar(); }while(ch=='Y'||ch=='y'); } /******************************按职员号查询信息****************************/

38、void searchzgnum() { FILE *fp; char ch; int count=0,i; char temp[20]; Number=dq(); if((fp=fopen("职员信息记录表.txt","rb"))==NULL) { printf("\t----文件 职员信息记录表.txt 不能打开!----"); getch(); exit(1); } do { printf("\t请输入你要查询职员号:"); scanf("%s"

39、temp); for(i=0;i

40、in); ch=getchar(); }while(ch=='y' ||ch=='Y'); } /******************************按性别查询信息****************************/ void searchsex() { FILE *fp; int count=0,i; char sex,ch; Number=dq(); if((fp=fopen("职员信息记录表.txt","rb"))==NULL) { printf("\t----文件 职员信息记录表.

41、txt 打不开!----"); getch(); exit(1); } do { printf("\t请输入你要查询性别:"); fflush(stdin); scanf("%c",&sex); for(i=0;i

42、count==0) printf("\t没有该性别职员!\n"); printf("\n\t★★★是否继续按性别查询(y/n)?★★★"); fflush(stdin); ch=getchar(); }while(ch=='y' ||ch=='Y'); } /******************************按姓名查询信息****************************/ void searchname() { FILE *fp; int count=0,i; char name[15

43、]; char ch; Number=dq(); if((fp=fopen("职员信息记录表.txt","rb"))==NULL) { printf("\t----文件 职员信息记录表.txt 打不开!----"); getch(); exit(1); } do { printf("\t请输入你要查询姓名:"); fflush(stdin); scanf("%s",&name); for(i=0;i

44、 if(strcmp(zg[i].name,name)==0) { count++; dayin(i); } } if(count==0) printf("\t没有该名字职员!\n"); printf("\n\t★★★是否继续按姓名查询(y/n)?★★★"); fflush(stdin); ch=getchar(); }while(ch=='y' ||ch=='Y'); } /***************

45、按职务查询信息****************************/ void searchposition() { FILE *fp; int count=0,i; char position[15]; char ch; Number=dq(); if((fp=fopen("职员信息记录表.txt","rb"))==NULL) { printf("\t----文件 职员信息记录表.txt 打不开!----"); getch(); exit(1);

46、 } do { printf("\t请输入你要查询职务:"); fflush(stdin); scanf("%s",&position); for(i=0;i

47、没有该职务职员!\n"); printf("\n\t★★★是否继续按职务查询(y/n)?★★★"); fflush(stdin); ch=getchar(); }while(ch=='y' ||ch=='Y'); } /******************************删除信息****************************/ void del() { FILE *fp,*fp2; int i,flage=0; char number[20],ch; Number=dq(); if((fp=fo

48、pen("职员信息记录表.txt","rb"))==NULL) { printf("文件 职员信息记录表.txt 打不开!\n"); getch(); exit(1); } if((fp2=fopen("temp.txt","wb"))==NULL) { printf("文件 temp.txt 打不开!\n"); getch(); exit(1); } printf("请输入你要删除职员号:"); scanf("%s",number); for(i=0;i

49、{ if(strcmp(zg[i].num,number)==0) { printf("\t**你确定删除该职员信息(y/n)?**"); fflush(stdin); ch=getchar(); if(ch=='y'||ch=='Y') { flage=1; } else fwrite(&zg[i],sizeof(struct Zg),1,fp2); } else fwrite(&zg[i],

50、sizeof(struct Zg),1,fp2); } fclose(fp); fclose(fp2); if(flage==1) { remove("职员信息记录表.txt"); rename("temp.txt","职员信息记录表.txt"); printf("\t***删除成功!***\n"); } else printf("\t***未找到该职员号,删除失败!***\n"); fclose(fp); fclose(fp2); printf("\n\t★

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服