網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)小型工資管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
課程大作業(yè)目的
通過(guò)該大作業(yè),考察學(xué)生分析、解決復(fù)雜問(wèn)題的能力,考察學(xué)生編寫較大程序的能力,檢驗(yàn)和評(píng)價(jià)《程序設(shè)計(jì)基礎(chǔ)》課程的學(xué)習(xí)效果
大作業(yè)內(nèi)容
編寫一個(gè)小型工資管理系統(tǒng),用來(lái)管理職工的個(gè)人基本信息及工資薪酬等數(shù)據(jù)
基本要求
1、每個(gè)職工的數(shù)據(jù)應(yīng)包括:工號(hào)、姓名、性別、部門、基本工資、績(jī)效工資、獎(jiǎng)金、應(yīng)發(fā)工資(應(yīng)發(fā)工資=基本工資+績(jī)效工資+獎(jiǎng)金)。職工數(shù)據(jù)要求采用結(jié)構(gòu)體數(shù)據(jù)類型。
2、菜單顯示:顯示系統(tǒng)的一級(jí)功能菜單(數(shù)據(jù)輸入、數(shù)據(jù)修改、數(shù)據(jù)處理、數(shù)據(jù)輸出、退出)。
3、數(shù)據(jù)輸入:至少輸入10個(gè)職工的各項(xiàng)數(shù)據(jù)(應(yīng)發(fā)工資由系統(tǒng)自動(dòng)計(jì)算,不需要輸入)。**錄入的第一條記錄用自已的真實(shí)姓名,部門為自己的真實(shí)班級(jí)。**并將有自己真實(shí)姓名、班級(jí)的輸出結(jié)果截屏保存到大作業(yè)總結(jié)報(bào)告中。
4、數(shù)據(jù)修改:輸入工號(hào),修改指定工號(hào)的各項(xiàng)數(shù)據(jù)。輸出修改完成后的全部職工數(shù)據(jù)。
5、數(shù)據(jù)處理:處理方式包括:排序、查詢。可提供子菜單讓用戶選擇。其中:
(1) 排序:按工號(hào)排序,顯示所有職工的全部數(shù)據(jù)。
(2) 查詢:按工號(hào)查詢,顯示指定工號(hào)的全部數(shù)據(jù)。
6、數(shù)據(jù)輸出:輸出全部職工的各項(xiàng)數(shù)據(jù)。
7、新增 刪除職工數(shù)據(jù)
8、新增 統(tǒng)計(jì)職工男女?dāng)?shù)量
9、退出:退出整個(gè)工資管理系統(tǒng)。
代碼如下
#include#include struct staff { ?char number[20]; ?char name[20]; ?char gender[10]; ?char bumen[20]; ?double jbgz; ?double jxgz; ?double bonus; ?double yfgz;? }; double jbgz,jxgz,bonus,yfgz; struct staff sta[10]; void inputdata(); ? ? ? ? ? ? ? ? ?//1.定義數(shù)據(jù)輸入函數(shù) input data void modifydata(); ? ? ? //2.定義數(shù)據(jù)修改函數(shù) modify data void processdata(); ? ? ? //3.定義數(shù)據(jù)處理函數(shù) process data void sortdata(); ? ? ? //定義數(shù)據(jù)處理函數(shù)中的按工號(hào)排序數(shù)據(jù)函數(shù) ?sort data void searchdata(); ? ? ? //定義數(shù)據(jù)處理函數(shù)中的按工號(hào)查詢數(shù)據(jù)函數(shù) ?search data void outputdata(); ? ? ? //4.定義數(shù)據(jù)輸出函數(shù) output data void deldata(); ? ? ? ?//5.定義數(shù)據(jù)刪除函數(shù) delete data ? ? ? 新增 void countgender(); ? ? ? ? ? ? ? ?//6.定義統(tǒng)計(jì)男女職工數(shù)量函數(shù) count gender ? ?新增? int main() { ?int i,choice;? ?while(1) ?{ ? for(i=1;i<90;i++) ? ?printf("*"); ? printf("\n"); ? printf("1.數(shù)據(jù)輸入 ?2.數(shù)據(jù)修改 ?3.數(shù)據(jù)處理 ?4.數(shù)據(jù)輸出 ?5.數(shù)據(jù)刪除 ?6.統(tǒng)計(jì)男女職工數(shù)量 ?7.退出\n"); ? for(i=1;i<90;i++) ? ?printf("*"); ? printf("\n"); ? do ? { ? ?printf("請(qǐng)根據(jù)菜單輸入數(shù)字:"); ? ?scanf("%d",&choice); ? } ? while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=7); ? if(choice==7) ? ?break; ? else ? { ? ?if(choice==1) inputdata(); ? ?else if(choice==2) modifydata(); ? ?else if(choice==3) processdata(); ? ?else if(choice==4) outputdata(); ? ?else if(choice==5) deldata(); ? ?else if(choice==6) countgender(); ? ?else printf("該數(shù)不合法;\n"); ? ? //另加 ? } ?} ?return 0; } void inputdata() { ?int i; ?for(i=1;i<=10;i++) ?{ ? printf("請(qǐng)輸入第%d位職工的工號(hào),姓名,性別,部門,基本工資,績(jī)效工資,獎(jiǎng)金:",i); ? scanf("%s %s %s %s %lf %lf %lf",&sta[i].number,&sta[i].name,&sta[i].gender,&sta[i].bumen,&sta[i].jbgz,&sta[i].jxgz,&sta[i].bonus); ? //輸入第i位職工的工號(hào),姓名,性別,部門,基本工資,績(jī)效工資,獎(jiǎng)金 ? sta[i].yfgz=sta[i].jbgz+sta[i].jxgz+sta[i].bonus; ? printf("輸入成功\n"); ?} } void modifydata() { ?int i; ?char num[20]; ?printf("請(qǐng)輸入您想要修改職工的數(shù)據(jù)的工號(hào):"); ?scanf("%s",&num); ?for(i=1;i<10;i++) ?{ ? if(strcmp(num,sta[i].number)==0) ? { ? ?printf("請(qǐng)輸入新工號(hào),姓名,性別,部門,基本工資,績(jī)效工資,獎(jiǎng)金\n"); ? ?scanf("%s %s %s %s %lf %lf %lf",&sta[i].number,&sta[i].name,&sta[i].gender,&sta[i].bumen,&sta[i].jbgz,&sta[i].jxgz,&sta[i].bonus); ? ?sta[i].yfgz=sta[i].jbgz+sta[i].jxgz+sta[i].bonus; ? } ? printf("修改成功!\n"); ? printf("修改后的數(shù)據(jù)為:\n"); ? printf(" ? ?工號(hào) ? ? ? ? ?姓名 ? ? ? 性別 ? ? ? ?部門 ? ? ? ? ? 基本工資 ? ? ? ? ? 績(jī)效工資 ? ? ? ? ? ?獎(jiǎng)金 ? ? ? ? ? 應(yīng)發(fā)工資\n"); ? printf("%s ? ? ? %s ? ? ? ? ? %s ? ? ? ? %s ? ? ?%f ? %f ? ?%f ? ? %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz); ? break; ?} } void processdata() { ?int choice,i; ?for(i=1;i<30;i++) ? printf("*"); ?printf("\n"); ?printf("二級(jí)菜單:\n"); ?printf("1.排序 2.查詢\n"); ?for(i=1;i<30;i++) ? printf("*"); ?printf("\n"); ?printf("請(qǐng)根據(jù)菜單輸入數(shù)字:"); ?scanf("%d",&choice); ?if(choice==1) sortdata(); ?else searchdata(); } void sortdata() { ?int i,j,k; ?char n[10]; ?for(i=1;i<=10;i++) ?{ ? for(j=1;j<=10;j++) ? { ? ?if(strcmp(sta[i].number,sta[j].number)>0) ? ?{ ? ? strcpy(n,sta[j].number); ? ? strcpy(sta[j].number,sta[i].number); ? ? strcpy(sta[i].number,n); ? ?} ? ? ? } ?? ?} ?for(k=1;k<=10;k++) ?{ ? printf("%s ? ? %s ? ?%s ? ? %s ? ? %lf ? ?%lf ? ?%lf\n",sta[k].number,sta[k].name,sta[k].gender,sta[k].bumen,sta[k].jbgz,sta[k].jxgz,sta[k].bonus,sta[k].yfgz); ?} } void searchdata() { ?int i; ?char snum[20]; ? ? ? //snum = searchnumber ?printf("請(qǐng)輸入您想要查詢的職工工號(hào):"); ?scanf("%s",&snum); ?for(i=1;i<10;i++) ?{ ? if(strcmp(snum,sta[i].number)==0) ? { ? ?printf("該職工的數(shù)據(jù)為:\n"); ? ?printf(" ? ? 工號(hào) ? ? ? ? ? 姓名 ? ? ? ? ? 性別 ? ? ? ? ? 部門 ? ? ? ? ?基本工資 ? ? ? 績(jī)效工資 ? ? ? ?獎(jiǎng)金 ? ? ? ? ?應(yīng)發(fā)工資\n\n"); ? ?printf(" %s ? ? ? %s ? ? ? ? ? %s ? ? ? ? %s ? ? ?%f ? %f ? ?%f ? ? %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz); ? } ? break; ?} } void outputdata() { ?int i; ?printf(" ? ? 工號(hào) ? ? ? ? ? 姓名 ? ? ? ? ? 性別 ? ? ? ? ? 部門 ? ? ? ? ?基本工資 ? ? ? 績(jī)效工資 ? ? ? ?獎(jiǎng)金 ? ? ? ? ?應(yīng)發(fā)工資\n"); ?for(i=1;i<=10;i++) ?{ ? printf(" %s ? ? ? %s ? ? ? ? ? %s ? ? ? ? %s ? ? ?%f ? %f ? ?%f ? ? %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz); ?} } void deldata() { ?int i,j,choi; ?//char Y=Y; ?//char N=N; ?char delnum[20]; ?printf("請(qǐng)輸入您想要?jiǎng)h除職工數(shù)據(jù)的工號(hào):"); ?scanf("%s",&delnum); ?for(i=1;i<10;i++) ?{ ? if(strcmp(delnum,sta[i].number)==0) ? { ? ?printf("該職工的數(shù)據(jù)為:\n"); ? ?printf(" ? ? 工號(hào) ? ? ? ? ? 姓名 ? ? ? ? ? 性別 ? ? ? ? ? 部門 ? ? ? ? ?基本工資 ? ? ? 績(jī)效工資 ? ? ? ?獎(jiǎng)金 ? ? ? ? ?應(yīng)發(fā)工資\n"); ? ?printf(" %s ? ? ? %s ? ? ? ? ? %s ? ? ? ? %s ? ? ?%f ? %f ? ?%f ? ? %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz); ? ?printf("確認(rèn)刪除該名職工的數(shù)據(jù)嗎?(1.確認(rèn) ?2.取消)\n"); ? ?scanf("%d",&choi); ? ?if(choi==1) ? ?{ ? ? for(i=1,j=2;j<=10;i++,j++) ? ? { ? ? ?strcpy(sta[i].number,sta[j].number); ? ? ?strcpy(sta[i].name,sta[j].name); ? ? ?strcpy(sta[i].gender,sta[j].gender); ? ? ?strcpy(sta[i].bumen,sta[j].bumen); ? ? ?sta[i].jbgz=sta[j].jbgz; ? ? ?sta[i].jxgz=sta[j].jxgz; ? ? ?sta[i].bonus=sta[j].bonus; ? ? } ? ? printf("刪除成功!!\n");? ? ?} ? ?else break; ? } ?} } void countgender() { ?int i,count=0,fecount=0; ?char gen[10]="男"; ?for(i=1;i<=10;i++) ?{ ? if(strcmp(gen,sta[i].gender)==0) count++; ?} ?fecount=10-count; ?printf("該公司有%d名男職工,有%d名女職工\n",count,fecount); }
原文鏈接:https://blog.csdn.net/alexis7/article/details/106994406
相關(guān)推薦
- 2023-02-25 一文搞懂Python中is和==的區(qū)別_python
- 2022-03-26 C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的猜數(shù)字游戲_C 語(yǔ)言
- 2022-10-15 C語(yǔ)言利用UDP實(shí)現(xiàn)群聊聊天室的示例代碼_C 語(yǔ)言
- 2022-09-10 Oracle數(shù)據(jù)泵實(shí)現(xiàn)不同用戶導(dǎo)入導(dǎo)出表級(jí)_oracle
- 2022-05-21 Keepalived+HAProxy高可用集群K8S實(shí)現(xiàn)_服務(wù)器其它
- 2022-12-27 Python?PyQt5實(shí)現(xiàn)拖放效果的原理詳解_python
- 2022-07-31 ubuntu下常用apt命令介紹_linux shell
- 2022-12-05 Spark中的數(shù)據(jù)讀取保存和累加器實(shí)例詳解_相關(guān)技巧
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支