一、课程设计目的和要求
( 一) 设计目的
1、经过这次专题实习, 巩固和加深对所学相关知识点的理解。
2、进一步熟悉基本流程控制结构——实现分支的if…else语句、 switch语句和实现循环的for、 while…、 do…while语句、 break、 continue等。
3、基本数据类型、数组、结构体、自定义类、函数的应用。
4、加强对模块化程序设计和面向对象程序设计的理解。
5、掌握C\C++语言程序设计的基本思想, 了解简单的系统分析和设计方法。
( 二) 设计要求
1、启动软件时, 进行密码校验。
若出错三次, 则自动退出系统。
2、实现简易的提示菜单界面, 刚运行时应显示版本信息。
用所学的知识尽量实现良好的、美观的”人机界面”, 便于软件的操作使用。
3、要求把所有录入的数据以文件的形式, 保存在硬盘上。
4、系统包含以下基本功能: 登陆功能、显示主菜单功能、职工信息输入、职工信息输出、职工信息查询、职工信息修改、工资排序、工资统计、导出数据、导入数据、退出等。
二课程设计任务内容
1、设计登陆功能: 用户输入口令, 如果与系统内保存的密码相一致, 则成功; 否则重新输入口令, 直至输入口令正确才可登陆系统。
若出错三次, 则自动退出该系统。
2、显示菜单: 用户登录成功, 系统显示界面, 显示系统功能的提示信息。
3、职工信息输入: 用户输入要添加的职工工号, 姓名, 年龄, 性别, 基本工资, 岗位工资, 总工资信息等。
当职工工号为0时输入结束。
输入数据时, 须验证数据的输入格式正确, 保证职工号的唯一性。
4、职工信息输出: 将结构体中的职工信息输出到屏幕上。
5、职工信息查询: 1按职工号查询; 2按职工姓名查询。
查到则显示她全部信
息, 否则输出”not found”。
6、职工信息修改: 修改职工信息并保存( 工号不能修改) 。
7、工资排序: 对结构体数组中的所有职工按基本工资降序排序, 用选择法实现; 对结构体数组中的所有职工按岗位工资降序排序, 用冒泡法实现; 对结构体数组中的所有职工总工资降序排序, 用插入法实现。
8、工资统计: 分别统计总工资在以下, 至3000,3000以上的职工人数
9、导出函数: 把结构体数组中的职工信息保存到磁盘文件
10、导入函数: 从外部文件中导入信息到结构体数组里
11、退出: 结束程序运行
三详细设计说明
流程图
四软件使用说明
软件初始密码是123, 如果输入密码错误三次, 则自动退出界面。
如果密码正确则进入系统, 根据菜单提示, 可进行职工信息输入、职工信息输出、职工信息查询、职工信息修改、工资排序、工资统计、导出数据、导入数据、退出等操作。
五课程设计心得与体会
经过C语言专周的实习, 我对这学期所学的知识有了一定认识, 同时也加深了我对if……else语句、 switch语句以及循环语句for、 while、 do……while、 break、 continue等运用。
同时也熟练地掌握了结构体的用法及其getchar()的用法。
经过专周实验, 我也深深地发现自己在C语言知识点的掌握上也存在着极大的问题。
C语言是一个比较难学的学科, 平时我应该把更多的时间花在C语言的学习上。
在此次专周中, 我学会了在每件事前, 都必须列出一个大致的框架, 理一下大致的思路, 不然会走很多弯路, 浪费很多不必要的时间。
最令我振奋的是, 有很多同学废寝忘食的想程序、写程序, 而自己则是想写则写, 没有她们那么有激情, 可能这就是一种人生态度吧, 也是我所缺乏的。
因此我要向她们好好学
习, 以饱满的精神面貌面对人生!
六附件清单
/******************************************************************** ***********
职工工资管理小软件
********************************************************************* **********/
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#define N 3
/******************************************************************** **********
函数声明
********************************************************************* **********/
void enter();
int menu();
void input();
void output();
void search();
void search_employeeid();
void search_name();
void edit();
void array();
void array_basesalary();
void array_postwage();
void array_totalwage();
void statistics();
void save();
void load();
/******************************************************************** **********
职工类型定义
********************************************************************* **********/
struct employee
{
char employeeid[10];
char name[10];
int sex;
int age;
float basesalary;
float postwage;
float totalwage;
};
/******************************************************************** **********
职工变量定义
********************************************************************* *********/
struct employee emp[N];
struct employee replace;
struct employee *p=emp;
/********************************************************************
*********
系统主函数
*********************************************************************
*********/
void main()
{
int c;
while(1)
{
printf("
\n\n\n\n");
printf(" 欢迎进入职工工资管理系统
\n\n\n");
printf(" 1 进入管理系统
\n\n");
printf(" 0 退出
\n\n");
printf(" \n\n\n\n");
printf(" 请输入你选择: \n");
scanf("%d",&c);
switch(c)
{
case 1:
enter();。