请选择 进入手机版 | 继续访问电脑版

BFU《高校教师工资管理系统》课程设计

[复制链接]
卓小兔 发表于 2021-1-2 19:44:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
                                   北 京 林 业 大 学
2020学年—2021学年第1学期  步伐设计底子课程设计  实习陈诉书
实习内容:  高校西席工资管理系统  
实习情况:  Sublime Text 3   
 
目次
一、实习步调
二、实现方法概述
三、技能方案实现
3.0 数据存储结构
3.0.0本地存储结构(**创新点**)
3.0.1 西席信息结构体 及 学院职称映射数组
3.0.2 薪资信息结构体
3.0.3 学院匀称值统计结构体 与 职称匀称值统计结构体
3.1 Operation Functions 概述
3.2 Check Functions 概述
3.2.1 checkten()--对输入的数字范围举行检测
3.2.2 checkdb()--检测用户输入是否为实数
3.2.3 checkid()--检测用户输入id是否正当且合规
3.2.4 checkname()--检测用户名字是否存在
3.2.5 checkmon()--用以检测所要查询的月份是否存在salary信息中
3.3 Storage Functions 概述
3.3.1 inpter() inpsal()--ter输入函数 与 sal输入函数
3.3.2 delter() delsal()--删除西席信息及薪资信息
3.3.3 自界说轻便SQL操纵
3.4 Algorithm Functions 概述
3.4.1 showter()--可选mode的西席信息列表打印函数
3.4.2 searchterid() searchsalid()--寻找所传id对应的实际索引以便后续操纵
3.4.3 swapter()swapsal()swapcol()swapjob()--交换函数
3.4.4 sortter_id() sortsal_id()--排序函数
3.4.5 calcolavg_sort() caljobavg_sort()--实现统计分析排序功能的函数
3.4.6 FreshSalName()--同步sal与ter之间的信息
四、效果展示:
4.0开始界面
4.1进入录入数据并生存功能
4.1.1西席信息录入功能
4.1.2录入西席工资信息
4.1.3 生存到本地功能
4.2 进入修改数据并生存功能
4.2.1 根据工号修改某位西席的根本信息和工资信息
4.2.2 根据姓名修改某位西席的根本信息和工资信息
4.2.3 删除某一工号的西席的所有信息
4.3查询显示功能
4.3.1展示所有西席的根本信息
4.3.2根据月份显示所有西席当月工资信息(以工号为序)
4.3.3根据工号查询某位西席某一月份的根本信息和工资信息
4.3.4根据姓名查询某位西席某一月份的根本信息和工资信息
4.4统计分析
4.4.1根据月份,统计差别学院西席的匀称应发工资和匀称实发工资
4.4.2根据月份,统计差别职称西席的匀称应发工资和匀称实发工资
4.5从本地导入数据(**创新点**)
4.6生存并退出功能
五、竣事语:
 
 
 
 
 
 
一、实习步调:

    我于第一天举行该项目的整体分析及技能方案的选择,第二天举行该步伐的编码工作,第三天举行步伐的测试工作和陈诉的书写工作。
 
二、实现方法概述:

根据要求,该步伐完全基于C语言实现,未使用任何外部库文件。代码全部手敲完成,无任何鉴戒复制行为。且编写代码的全过程已录制视频,并将快放版上传至B站:其所在为:https://www.bilibili.com/video/BV1Af4y1e7Tc/
该步伐按照实验要求分为五大模块,完全实现实验要求的所有功能。存储在步伐内接纳结构体的方式,由于克制使用SQL库函数,所以我自己手写了一套简化版的SQL生成与剖析函数,用于步伐在本地的存储结构(可实现对之前数据,或样例数据的导入)。
设计接纳自顶向下的方式,将每个大问题细化为各个小问题。将需要重复用到的办理方案算法生成为可选择模式的函数(如4.0.1 showter()),以到达简化代码量且提高可移植性的目的。每完成一个小模块便举行测试,以确保步伐的正确性。
本系统系统功能结构

 

三、技能方案实现:

该步伐的函数功能分为四大模块,接下来将一一先容。
 
3.0数据存储结构

3.0.0本地存储结构(**创新点**)

由于该项目克制使用SQL数据库的相关库文件,我自己写了一套类似于SQL存储结构的生成函数及表明函数。其于本地存储的样式类似于SQL中的insert values()语句。
   

  • (0000000001,wu zheng,3,2)  
  • (0000000003,qian,3,2)  
  • (0000000001,wu zheng,3,2,2,200.00,100.00,56.00,300.00,244.00)
  • (0000000001,wu zheng,3,2,3,45.00,6.00,6.00,51.00,45.00) 
接下来将首先先容该简化SQL的生成方法
   

  • void savetolocter()  
  • {  
  •     // (id,name,colid,jobid)  
  •     FILE * f1;  
  •     f1=fopen("terdata.dat","w+");  
  •     if(f1==NULL){printf("save to local unaviliable\n");return;}  
  •     int i;  
  •     for(i=0;iid,tc->name,col_sec[tc->collegeid],job_sec[tc->jobid]);  
  •         if(mode == 3 && (strcmp(tc->id,cc) == 0) )   
  •         {  
  •             re=tc-ter; // return his cntid  
  •             printf("|%s\t|%-15s|%-15s|%-15s|\n",tc->id,tc->name,col_sec[tc->collegeid],job_sec[tc->jobid]);  
  •         }  
  •     }  
  •     printf("-----------------------------------------------------------------\n\n");  
  •     return re;  
  • }  
  •   
  •   
  • void showsal(int mode,char * cc,int mon)  
  • {   // mode == 1: show all information  
  •     // mode == 2: show NAME(tc)'s infromation  
  •     // mode == 3: show ID(tc)'s information  
  •     // if mon == 0 then cout every information  
  •     // if mon == 1~12 then just cout the month's information  
  •     struct Salary * sa;  
  •     printf("\n-------------------------------------------------Salary Information------------------------------------------------------\n");  
  •     printf("|Month\t|ID\t\t|NAME\t\t|Basic($)\t|Allowance($)\t|Subtract($)\t|Theory($)\t|True($)\t|\n");  
  •     printf("-------------------------------------------------------------------------------------------------------------------------\n");  
  •     for(sa=sal;samonth==mon)) printf("|%d\t|%-15s|%-15s|%-15.2f|%-15.2f|%-15.2f|%-15.2f|%-15.2f|\n",sa->month,sa->id,  
  •             sa->name,sa->basicsal,sa->addsal,sa->subsal,sa->theosal,sa->truesal);  
  •         if(mode == 2 && (strcmp(sa->name,cc) == 0) && (mon==0?1:(sa->month==mon))) printf("|%d\t|%-15s|%-15s|%-15.2f|%-15.2f|%-15.2f|%-15.2f|%-15.2f|\n",sa->month,sa->id,  
  •             sa->name,sa->basicsal,sa->addsal,sa->subsal,sa->theosal,sa->truesal);  
  •         if(mode == 3 && (strcmp(sa->id,cc) == 0) && (mon==0?1:(sa->month==mon))) printf("|%d\t|%-15s|%-15s|%-15.2f|%-15.2f|%-15.2f|%-15.2f|%-15.2f|\n",sa->month,sa->id,  
  •             sa->name,sa->basicsal,sa->addsal,sa->subsal,sa->theosal,sa->truesal);  
  •     }  
  •     printf("-------------------------------------------------------------------------------------------------------------------------\n\n");  
  • }  
当mode为1时,将展示所有西席的根本信息或薪水信息;当mode为2时,将展示姓名为所传入参数的西席的根本信息或薪水信息;当mode为3时,将展示ID为所传入参数的西席根本信息或薪水信息。
而且该函数使用了printf的格式化输出功能,包管列表的整齐与雅观。

 
3.4.2 searchterid() searchsalid()--寻找所传id对应的实际索引以便后续操纵

   <ol>int searchterid(char * id)  
{  
    int i;  
    for(i=0; i 
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )