版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计基础课程设计报告 (c 语言实现附源码)(员工工资管 理系统)程序设计基础课程设计报告题目:员工工资管理系统院(系):信息科学与工程学院专业班级:学生姓名:学 号:指导教师:20 16 年12 月12 日至20 16 年12 月23 日武昌首义学院制程序设计基础课程设计任务书、设计(调查报告/论文)题目员工工资管理系统 二、设计(调查报告/论文)主要内容1 .员工工资管理系统主要内容:设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、应发、扣 款和实发)进行管理,具有增加数据、更新数据、查询数据、删除数据、列表显示数据 以及重组文件的功能。员工工资管理系统由六大功能模块组
2、成:增加数据该模块完成将输入的数据存入数据文件中,用户一次可输入多个员工的信息。更新数据该模块用于实现对记录的修改,首先用户输入员工的编号,然后查询该员工的信息, 最后更新该员工的信息。查询数据该模块可选择按员工编号查询,或者按员工姓名进行查询,然后列出满足条件的且 未作删除标记的员工信息。删除数据该模块用于删除指定编号的员工工资信息,为提高效率,只作删除标记,不在物理 上删除信息,可称为逻辑删除。显示数据该模块用于以列表方式显示所有未作删除标记的员工信息。重组文件当逻辑删除的信息太多时,将会降低查询效率。重组文件模块专门用于在物理上删 除作有删除标记的信息,这样不但提高查询效率,同时也节约存
3、储空间。统计输出输出实发工资最高的员工工资信息。统计输出员工实发工资的平均工资。统计输出超过实发平均工资的员工人数。排序该模块按员工实发工资由高到低的顺序排序输出所有员工信息。要求本系统采用结构体等数据结构。系统以菜单方式工作。2 .学生学籍管理系统主要内容:设计一个利用文件处理方式,实现对学生学籍信息(包括:学号,姓名,性别,年 龄,籍贯,系别,专业,班级)进行添加、修改、删除、查找、统计输出等操作。学生 学籍管理系统的功能要求如下:增加数据该模块完成将输入的数据存入数据文件中,用户一次可输入多个学生的学籍信息。更新数据该模块用于实现对记录的修改,首先用户输入学生的学号,然后查询该学生的学籍
4、 信息,最后更新该学生的学籍的信息。查询数据该模块可选择按学生的学号查询, 或者按学生的姓名查询,再或者按学生的班级查 询,然后列出满足条件的且未作删除标记的学生学籍信息。删除数据该模块用于删除指定编号的学生学籍信息,为提高效率,只作删除标记,不在物理 上删除信息,可称为逻辑删除。显示数据该模块用于以列表方式显示所有未作删除标记的学生学籍信息。重组文件当逻辑删除的信息太多时,将会降低查询效率。重组文件模块专门用于在物理上删 除作有删除标记的信息,这样不但提高查询效率,同时也节约存储空间。统计输出3 )按专业输出所有学生的学籍信息。4 )统计输出学生的平均年龄。5 )统计输出超过平均年龄的学生人
5、数。排序该模块按学生学号由低到高的顺序排序输出所有学生学籍信息。要求本系统采用结构体等数据结构。系统以菜单方式工作。3.班级成绩管理系统主要内容:对一个有N个学生的班级,每个学生有M门课程。每个学生应当包括如下信息:学号、姓名、M门课程名称。该系统实现对班级成绩的添加、修改、删除、查找、统计输出等操作的管理。功能要求如下:增加数据该模块完成将输入的数据存入数据文件中,用户一次可输入多个学生的基本信息。更新数据该模块用于实现对记录的修改,首先用户输入学生的学号,然后查询该学生的基本 信息,最后更新该学生的基本信息。查询数据该模块可选择按学生的学号查询, 或者按学生的姓名查询,然后列出满足条件的且
6、 未作删除标记的学生基本信息。删除数据该模块用于删除指定编号的学生基本信息,为提高效率,只作删除标记,不在物理 上删除信息,可称为逻辑删除。显示数据该模块用于以列表方式显示所有未作删除标记的学生基本信息。重组文件当逻辑删除的信息太多时,将会降低查询效率。重组文件模块专门用于在物理上删 除作有删除标记的信息,这样不但提高查询效率,同时也节约存储空间。统计输出1)显示每门课程成绩最高的学生的基本信息。2)显示每门课程的平均成绩。3)显示超过某门课程平均成绩的学生人数。排序该模块按学生学号由低到高的顺序排序输出所有学生的基本信息。要求本系统采用结构体等数据结构。系统以菜单方式工作。课程设计要求:课程
7、设计从第一、二和三道题中选一道题完成。其中,学号尾数为0、2、4、8的做第一道题;学号尾数为1、3、7的做第二道题;学号尾数为 5、6、9的做第三道题。系统要求在Microsoft Visual C+ 6.0编译平台上采用 C语言编程实现。课程设计报告(要求正规打印,A4幅面),内容包括:题目需求与总体设计(描述系统要实现什么功能;系统怎么实现,绘制系统功能模块结构图;数据结构的设计及用法说明)详细设计(描述系统包含的主函数和子函数;解释各个功能模块的软件功能;画 系统的总体流程图,某种查询、插入、删除程序实现的子函数流程图,要求采用标准流程图图符至少画两个流程图)编码与实现(只能使用C语言,
8、源程序编写格式要按照缩进方式,源程序要有详 细的注释,使程序容易阅读。源程序编写格式的规范和注释体现程序员的素质, 必须从本课程设计开始培养。)运行结果(包括输入数据的结果,查询、修改、删除的结果,可以将输出的结果以截屏方式呈现到课程设计报告中)总结(必须真实的说出自己在课程设计中的切身体会。例如:课程设计如何构思、如何设计、如何编程、如何调试、遇到的主要问题和解决方法,哪些地方使你“痛 苦不堪”;创新之处;课程设计中存在的不足,需进一步改进的设想等等。)注:每人以班级+学号+姓名创建目录,目录需包括课程设计报告电子文档和源程序 以备检查。然后由各班学习委员汇总到 U盘上统一提交。三、原始资料
9、1 .游洪跃,彭骏,谭斌.C语言程序设计实验与课程设计教程.北京:清华大学出 版社,2011.2 .孙承爱,赵卫东.程序设计基础 一基于C语言(第2版).科学出版社,2010.四、要求的设计(调查/论文)成果1 .课程设计报告2 .课程设计软件五、进程安排布置任务,查找资料、需求分析 1天总体设计1天详细设计1天编制源程序实现3天测试与修改1天撰写课程设计报告2天六、主要参考资料1 谭浩强.C程序设计.第四版.清华大学出版社,2010.2 苏小红.C语言大学实用教程.第2版.电子工业出版社,2008.指导教师(签名)1需求与总体设计 12详细设计13编码实现44运行结果21总结 241需求与总
10、体设计1.1 需求描述设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、年月、 岗位工资、奖金、扣款和实发)进行管理,具有增加数据、更新数据、查询数据、删 除数据、列表显示数据以及重组文件的功能。1.2 总体设计先以登陆函数登陆,再进入主菜单,菜单中显示各个要实现的操作,以菜单将各个 函数联系起来,对菜单操作以实现系统的目的。1.3 数据结构struct user/登陆者信息char un10;char up10;us3 = "aaa","111","bbb","222","ccc"
11、;,"333" ;struct yg/员工结构体short zt; /数据状态long bh; /编号char name20; /名字char time11; 时间long money; /基本工资long jj; /奖金long kk; /扣款long sf; /实发工资;整个程序只运用了结构体的数据结构,结构体运用于登陆者信息和员工信息,将员 工信息封装在一个结构体里,再创建结构体数组,将多个员工信息储存在结构体数组中2详细设计2.1系统功能设计主函数和子函数:系统包含一个主函数,和子函数,分别有登陆子函数,菜单子函数,增加数据子函 数,更新数据子函数,查询数据子函数,
12、删除数据子函数,统计数据子函数,重组文件 子函数,排序数据子函数,最后两个分别是读取文件和写入文件子函数。各个函数的功能:主函数是一个入口程序从这里进入,再进入登陆函数,实现登陆操作。登陆函数,只有拥有正确账号密码,正确的操作才可以进入菜单界面进行下一步的 操作,并且输入错误三次后将会提示并强制退出。菜单界面利用switch()函数将各个函数联系起来实现真正的菜单,输入正确的序号 可以进行后续的各个操作。读取函数,将特定文件中的信息,以特定的方式读取到正在运行的程序中,实现读 写操作。写入函数,在添加、更新、删除、重组操作过后进行写入操作,将变换后的数据重 新写入文件中。注:每次写入都是将程序
13、中的所有数据重新写入文件。增加函数,可以新添员工,并将员工的数据输入,并利用写入函数,写入文件中。 在增加后会提示是否继续增加,提供了方便。并且如果原数据中有相同编号的员工,会 在输入编号后提示有相同的编号的员工,并重新输入编号。增加了程序的健全性。更新数据函数,以编号来确定更新的员工,更新将重新输入该编号员工的信息,并 在更新后执行写入。删除函数,执行该函数后,将有两种选择,按编号删除,或按名字删除,正确输入 后将会将该编号或姓名的数据中的一项zt的值更改为1,使其在其他操作时不被识别, 以达到不删除数据,但达到相同的效果的逻辑删除。显示函数,有两种显示方式,按学号显示或按名字显示,学号显示
14、为从小到大显示。重组函数,将文件中逻辑删除的数据物理删除,用来节省储存空间,并可以加快运 算速度。统计数据,将文件中的数据统计、计算,并输出,给人以直观的方式显示数据。排序函数,将数据以实发工资从大到小排序。22.2系统流程设计3登陆者信息员工结构体定义数据体数组全局变量,人数,包括登陆的次数,用全局变读取文件函数/读取文件3编码实现#define MAX 100#include<stdio.h>#include<string.h>#include<stdlib.h> struct user/ char un10; char up10;us3 = "
15、;aaa","111","bbb","222","ccc","333" ;struct yg/ short zt; /数据状态long bh; / 编号 char name20; /名字char time11;/时间long money;/基本工资long jj; / 奖金 long kk;/扣款long sf;/实发工资;yg yMAX;/int r = 0;/逻辑删除人数 int p = 0;/量能在登陆三次失败时退出程序 void read()/ FILE *fp; char b
16、; int i; b = '0' printf("即将读取文件员工信息.datn");if (fp = fopen("员工信息.dat", "rb") = NULL)printf(" 员工信息.dat文件不存在n");printf("是否重新创建该文件?n");printf(" 创建(y)员工信息.dat或 退出(n)n");getchar();b = getchar();while (getchar() != 'n')if (b = '
17、;Y' | b = 'N')b += 32;while (b != 'y'&&b != 'n') printf("输入错误!请重新输入!n");b = getchar();while (getchar() != 'n')if (b = 'Y' | b = 'N')b += 32;if (b = 'y')if (fp = fopen("员工信息.dat", "wb") = NULL) /文件不存在则创建
18、文件printf(" 创建文件失败!n");printf("按下任意键以退出程序!n");getchar();exit(1);if (b = '0')fread(&r, 4, 1, fp);printf("读取成功!n");elseprintf("创建文件成功!n");if (r != 0)for (i = 0; i < r; i+)fread(&yi, sizeof(yg), 1, fp);32fclose(fp);void save()FILE *fp;int i;if (
19、fp = fopen(/保存文件函数员工信息.dat", "wb") = NULL)printf("保存文件失败!n");printf("按下任意键以退出程序!n");getchar();exit;elsefwrite(&r, 4, 1, fp);if (r != 0)for (i = 0; i < r; i+)fwrite(&yi, sizeof(yg), 1, fp);fclose(fp);增加数据函数新建员工信息时,状态为0 用循环来寻找、避免相同编号的员void zj_data()/yg yua
20、ngong;char b;int i;int k = 0;yuangong.zt = 0;/do/printf(" 编号:(例如:123456)n");scanf("%d”, &yuangong.bh);for (i = 0; i < r; i+)if (yi.bh = yuangong.bh&&yi.zt=0) printf("已有同编号员工无法添加!n");printf("请重新输入!n");k = 1;break;else if (i = r - 1) k = 0; while (k =
21、1);printf(" 姓名:(例如:张三(or tom)n");scanf("%s", );printf(" 年月:(例如:2015.11.11)n");scanf("%s", yuangong.time);printf("岗位工资:(例如:50000)n");scanf("%d”, &yuangong.money);printf(" 奖金:(例如:2000)n");scanf("%d”, &yuangong.j
22、j);printf("扣款:(例如:100)n");scanf("%d”, &yuangong.kk);printf("实发工资为:(岗位工资+奖金-扣款)n");yuangong.sf = yuangong.money + yuangong.jj - yuangong.kk;printf("%dn", yuangong.sf);yr = yuangong;r+;/新建员工信息时人数r+save();printf("添加成功!n");getchar();/防止下面一个C卖取到上一个的回车print
23、f("是否继续添加员工?(y/n)n");b = getchar();while (getchar() != 'n');if (b = 'Y' | b = 'N')b += 32;while (b != 'y'&&b != 'n')printf("输入错误!请重新输入!n");b = getchar();while (getchar() != 'n')if (b = 'Y' | b = 'N')b += 32;i
24、f (b = V)zj_data();void gx_data()/更新数据yg yuangong;long num;int i;printf("n请输入要更新的员工的编号!n");scanf("%d”, &num);for (i = 0; i < r; i+)if (yi.bh = num&&yi.zt = 0)yuangong = yi;printf("当前该员工信息为:n");printf("编号:dn", yuangong.bh);printf("姓名:sn", yu
25、);printf(" 年月:sn", yuangong.time);printf(" 岗位工资:dn", yuangong.money);printf("奖金:dn", yuangong.jj);printf("扣款:dn", yuangong.kk);printf(" 实发工资:%dn", yuangong.sf);printf("按下任意键输入更新后的信息!n");getchar();getchar();printf(" 编号:(例如:12
26、3456)n");scanf("%d”, &yuangong.bh);printf(" 姓名:(例如:张三(or tom)n");scanf("%s", );printf(" 年月:(例如:2015.11.11)n");scanf("%s", yuangong.time);printf("岗位工资:(例如:50000)n");scanf("%d”, &yuangong.money);printf("奖金:(例如:2
27、000)n");scanf("%d”, &yuangong.jj);printf(" 扣款:(例如:100)n");scanf("%d”, &yuangong.kk);printf("实发工资为:(岗位工资+奖金-扣款)n");yuangong.sf = yuangong.money + yuangong.jj - yuangong.kk;printf("%dn", yuangong.sf);yi = yuangong;save();printf("更新成功!n");b
28、reak;else if (i = r - 1)printf("查无此人!n");void cz_data() /查询数据yg yuangong;int a, i;long num;char na10;printf("n请选择查询方式!n");/printf(" *n");分为按编号查询和姓名查询printf(" * 1printf(" * 2printf(" * 3、编号查询、姓名查询、返回菜单*n");*n");*n");printf(" *n");s
29、canf("%d", &a);if (a = 1)printf("请输入查询员工的编号:");scanf("%d”, &num);for (i = 0; i < r; i+)/编号查询则循环r次,查找状态为0且编号与所输入的数字相同的数据if (yi.zt = 0 && yi.bh = num) yuangong = yi;printf("当前该员工信息为:n");printf("编号:dn", yuangong.bh);printf("姓名:sn"
30、;, );printf(" 年月:sn", yuangong.time);printf(" 岗位工资:dn", yuangong.money);printf("奖金:dn", yuangong.jj);printf("扣款:dn", yuangong.kk);printf("实发工资:%dn", yuangong.sf);break;else if (i = r - 1)printf("查无此人!n");else if (a = 2)printf(&
31、quot;请输入查询员工的姓名:");scanf("%s", na);for (i = 0; i < r; i+)/姓名查询则循环r次,查找状态为0且编号与所输入的字符串相同的数据if (strcmp(, na) = 0) && yi.zt = 0) yuangong = yi;printf("当前该员工信息为:n");printf("编号:dn", yuangong.bh);printf("姓名:sn", );printf(" 年月
32、:sn", yuangong.time);printf(" 岗位工资:dn", yuangong.money);printf("奖金:dn", yuangong.jj);printf("扣款:dn", yuangong.kk);printf("实发工资:%dn", yuangong.sf);break;else if (i = r - 1)printf("查无此人!n");else if (a = 3) elseprintf("输入错误!n"); cz_data()
33、;void sc_data()/删除数据yg yuangong;long num;int a, i, b;char na10;printf("n请选择!n");按编号删除和姓名删除printf(" *n");/删除也printf(" * 1printf(" * 2printf(" * 3、按编号删除、按姓名删除、返回主菜单*n")*n")*n")printf(" *n");scanf("%d", &a);if (a = 1)printf("
34、;请输入要删除员工的编号:”);scanf("%d", &num);for (i = 0; i < r; i+)if (yi.zt = 0 && yi.bh = num)yuangong = yi;printf(" printf(" printf("当前该员工信息为:n");编号:dn", yuangong.bh);姓名:sn", );printf(" 年月:sn", yuangong.time);printf("岗位工资:dn&
35、quot;, yuangong.money);printf("奖金:dn", yuangong.jj);printf("扣款:dn", yuangong.kk);printf("实发工资:%dn", yuangong.sf);yi.zt = 1;save();防止下面一printf("删除成功!n");getchar();/j%c读取到上一个的回车printf("是否继续删除员工?(y/n)n");b = getchar();while (getchar() != 'n');if
36、 (b = 'Y' | b = 'N')b += 32;while (b != 'y'&&b != 'n')printf("输入错误!请重新输入!n");b = getchar();while (getchar() != 'n')if (b = 'Y' | b = 'N')b += 32;if (b = 'y') sc_data();break;else if (i = r - 1) printf("查无此人,无法删除!n
37、");else if (a = 2)printf("请输入删除员工的姓名:");scanf("%s", na);for (i = 0; i < r; i+)if (strcmp(, na) = 0) && yi.zt = 0)yuangong = yi;printf("当前该员工信息为:n");printf("编号:dn", yuangong.bh);printf("姓名:sn", );printf(" 年月:sn
38、", yuangong.time);printf(" 岗位工资:dn", yuangong.money);printf("奖金:dn", yuangong.jj);printf("扣款:dn", yuangong.kk);printf("实发工资:%dn", yuangong.sf);yi.zt = 1;save();防止下面一printf("删除成功!n");getchar();/j%c读取到上一个的回车printf("是否继续删除员工?(y/n)n");b =
39、getchar();while (getchar() != 'n');if (b = 'Y' | b = 'N')b += 32;while (b != 'y'&&b != 'n')printf("输入错误!请重新输入!n");b = getchar();while (getchar() != 'n')if (b = 'Y' | b = 'N')b += 32;if (b = 'y') sc_data();break
40、;else if (i = r - 1)printf("查无此人,无法删除!n");/输入为3时else if (a = 3)不执行操作返回主菜单 elseprintf("输入错误!n");sc_data();void xs_data()/yg yuangongMAX, t;int a;显示数据int i, j;int k = 0;printf("n请选择显示方式!n");printf(" *n");printf(" * 1printf(" * 2printf(" * 3、按编号显小、
41、按姓名显示、返回主菜单*n")*n")*n")printf(" *n"); scanf("%d", &a);for (i = 0; i < r; i+)yuangongi = yi;if (yi.zt = 1)k+;if (k = r)printf(" 无员工信息!n");a = 3;if (a = 1)/按编号显小时用冒泡排序从大到小排序for (i = 1; i <= r; i+)for (j = 0; j<r - i; j+)if (yuangongj.bh > yu
42、angongj + 1.bh)t = yuangongj;yuangongj = yuangongj + 1;yuangongj + 1 = t;printf(" 按编号排列如下:n");printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10sn","编号","姓名"," 年月丁岗位工资?奖金","扣款?实发工资)for (i = 0; i<r; i+)if (yuangongi.zt = 0)printf("%-10d%-10s%-10s
43、%-10d%-10d%-10d%-10dn", yuangongi.bh, , yuangongi.time, yuangongi.money, yuangongi.jj, yuangongi.kk, yuangongi.sf);printf("显示完毕!n");else if (a = 2)/按名字显示时用冒泡排序从大到小排序,用strcmp来比较字符串的大小for (i = 1; i <= r; i+)for (j = 0; j<r - i; j+)if (strcmp(, yuangongj
44、 + 1.name) > 0)t = yuangongj;yuangongj = yuangongj + 1;yuangongj + 1 = t;printf(" 按姓名排列如下:n");printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10sn","编号","姓名"," 年月丁岗位工资?奖金","扣款?实发工资)for (i = 0; i<r; i+)if (yuangongi.zt = 0)printf("%-10d%-10s%-
45、10s%-10d%-10d%-10d%-10dn", yuangongi.bh, , yuangongi.time, yuangongi.money,yuangongi.jj, yuangongi.kk, yuangongi.sf); printf("显示完毕!n");else if (a = 3) else printf("输入错误!n"); cz_data();void chongz_data()/int i, j;int k = 0;for (i = 0; i < r; i+)/数据剔除,并将剔除数据的个
46、数记录if (yi.zt = 1)for (j = i; j < r; j+) yj = yj + 1;k+;r -= k;/save(); printf(" 重组成功!n");void tj_data()/yg yuangongMAX;int max, m, k = 0;double ave = 0;int n = 0;int i;for (i = 0; i < r; i+)/重组文件循环r次,将状态为1的将人数r重新计算统计数据计算文件中逻辑删除的数据个数kyuangongi = yi;if (yuangongi.zt = 1) k+;for (i = 0;
47、 i < r; i+)/将数组中第一个状态为0的数据的实发工资赋给max并记录是第几位,跳出循环if (yuangongi.zt = 0)max = yuangongi.sf;m = i;break;if (yuangong0.zt = 0)/第一个数据是否逻辑删除?否,将实发工资赋给ave未计算的平均值ave = yuangong0.sf;for (i = 1; i < r; i+)循环找出最大值,并将所有正常数据加入未计算的ave中if (max < yuangongi.sf) && (yuangongi.zt = 0) m = i;if (yuangon
48、gi.zt = 0) ave += yuangongi.sf;ave = ave / (r - k);/计算 avefor (i = 0; i < r; i+)/将数据中所有大于ave的数据,统计if (yuangongi.sf > ave) && (yuangongi.zt = 0) n+;printf("n 最高实发工资员工信息为:n");/ 输出结果printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10sn","编号","姓名","年月 &q
49、uot;,"岗位工资","奖金?扣款”,"实发工资)printf("%-10d%-10s%-10s%-10d%-10d%-10d%-10dn", yuangongm.bh, , yuangongm.time, yuangongm.money, yuangongm.jj, yuangongm.kk, yuangongm.sf);printf("平均工资为:%.2fn", ave);printf("超过平均工资人数为:%dnn", n);void px_data()/排序
50、数据yg yuangongMAX, t;int num = 0;int i, j;for (i = 0; i < r; i+) yuangongi = yi;for (i = 1; i <= r; i+)/冒泡排序排序所有数据for (j = 0; j < r - i; j+)if (yuangongj.sf<yuangongj + 1.sf)t = yuangongj;yuangongj = yuangongj + 1;yuangongj + 1 = t;printf("n所有员工信息为:n");printf("%-10s%-10s%-1
51、0s%-10s%-10s%-10s%-10sn","编号","姓名","年月 ","岗位工资","奖金?扣款”,"实发工资)for (i = 0; i<r; i+)if (yuangongi.zt = 0)printf("%-10d%-10s%-10s%-10d%-10d%-10d%-10dn", yuangongi.bh, , yuangongi.time, yuangongi.money, yuangongi.jj, yuang
52、ongi.kk, yuangongi.sf);void cd()/菜单函数int l;doprintf("欢迎进入员工工资管理系统菜单!n");printf(" n");printf(" *1.增加数据l*n")printf(" *2.更新数据l*n")printf(" *3.查询数据l*n")printf(" *4.删除数据l*n")printf(" *5.显示数据l*n")printf(" *6.重组数据l*n")printf(&q
53、uot; *7.统计输出l*n")printf(" *8.排序数据l*n")printf(" *9.退出*n");printf(" printf("其它输入为退出*n");|*nn");printf("请输入你的选择:n");scanf("%d", &l);switch (l)即将返回主菜单n"); system("PAUSE");case 1:zj_data(); printf("break;/system用于返回主
54、菜单时等待一下case 2:gx_data(); printf("即将返回主菜单n"); system("PAUSE");break;case 3:cz_data(); printf("即将返回主菜单n"); system("PAUSE");break;case 4:sc_data(); printf("即将返回主菜单n"); system("PAUSE");break;case 5:xs_data(); printf("即将返回主菜单n"); syste
55、m("PAUSE");break;case 6:chongz_data(); printf("即将返回主菜单 n"); system("PAUSE");break;case 7:tj_data(); printf("即将返回主菜单n"); system("PAUSE");break;case 8:px_data(); printf("即将返回主菜单n"); system("PAUSE");break;case 9:break; while (l != 9
56、&& (l = 1 | l = 2 | l = 3 | l = 4 | l = 5 |l = 6 | l = 7 | l = 8);void dl()/登陆函数int i;char a10, b10;printf(" 请输入用户名:n");scanf("%s", a);printf("请输入密码:n");scanf("%s", b);for (i = 0; i<3; i+)if (strcmp(usi.un, a) = 0 && strcmp(usi.up, b) = 0) p
57、rintf("登录成功!n");read();cd(); break; if (i = 3) printf("登录失败!n");p+;if (p >= 3) printf("登录失败超过3次,系统将强制退出!n");printf("按下任意键以退出程序!n");getchar();getchar(); exit; elsedl(); int main()/主函数dl();return 0;4运行结果入用尸名: 扁人密门:w®aR户名;111土输入密研n 二录失思!输入用尸名:111上输入密'制:* 二金之我电过蕾.条统性嗣 尤出!"TN哥:朴治出走南输入三次登陆失败输出:退出Cn,d在信不粕 工件2七. 件at建工 r码!文,d创员 出密功暨薪> <人成读信重(7 丁输1釜籽- -S 耳laa清11
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学工学(建筑材料)试题及答案
- 2025年中职生态环境数智化监测技术(数据处理基础)试题及答案
- 2025年大学心理健康(职业规划)试题及答案
- 2025年高职(农业水利工程)节水灌溉技术试题及答案
- 2025年大学轨道交通信号与控制(系统设计)期末试题
- 2025年大学大四(水利水电工程)水利水电综合试题及答案
- 2025年中职应用黑山语(日常黑语交流)试题及答案
- 2025年大学水利水电工程(水利工程监理)试题及答案
- 2025年高职摄影摄像技术(商业摄影)试题及答案
- 2025年中职服装工艺(工艺优化)试题及答案
- 2025党史军史知识试题及答案
- 医保DIP付费知识培训课件
- 私立医院的营销方案与管理
- 【语文】上海市杨浦区打虎山路第一小学小学二年级上册期末试卷(含答案)
- 集水井施工方案
- 合伙开厂合作协议范本及注意事项
- 黑龙江省牡丹江市普通高中2024-2025学年高二上学期1月期末考试英语试卷(含音频)
- 大学美育课件 第十二章 生态美育
- 美国技术贸易壁垒对我国电子产品出口的影响研究-以F企业为例
- 2025至2030中国电站汽轮机行业项目调研及市场前景预测评估报告
- MK6油雾检测器(中文)1
评论
0/150
提交评论