我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的程序。

我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的程序。,第1张

楼主你好这是我的专周做的我也是大一的你可以稍加修改就好很适合大一的

#include <stdioh>

#include <conioh>

#include <stringh> //包含使用strcmp的头文件

#include "baohanh"

void main()

{

int chg=1,n;

printf("\t\t欢迎使用本管理系统,为了您的正常使用请在Debug下使用\n");

while(chg)

{

Menu();

scanf("%d",&n);

switch(n)

{

case 1:

Infobase(); //信息维护

break;

case 2:

Find(); //信息查询

break;

case 3:

InfoStat(); //成绩统计

break;

case 4:

Comp();

break; //成绩排序

case 0:

chg=0; //退出菜单

printf("谢谢使用!再见\n");

break;

default:

printf("选择错误(0~4)请重新输入\n");

}

}

getch();

}

/主菜单画面/

void Menu()

{

printf("\t\t\t\n");

printf("\t\t\t \n");

printf("\t\t\t 主菜单 \n");

printf("\t\t\t \n");

printf("\t\t\t\n");

printf("\t\t\t 1 信息维护\n");

printf("\t\t\t 2 信息查询\n");

printf("\t\t\t 3 成绩统计\n");

printf("\t\t\t 4 成绩排序\n");

printf("\t\t\t 0 退出菜单\n");

}

/信息维护/

void Infobase()

{

int n,chg=1;

while(chg)

{

printf("\t\t\t1 录入学生信息\n");

printf("\t\t\t2 修改学生信息\n");

printf("\t\t\t3 删除学生信息\n");

printf("\t\t\t0 回到主菜单\n");

scanf("%d",&n);

switch(n)

{

case 1:

Infobase_add(); //录入信息

break;

case 2:

Infobase_amend(); //修改信息

break;

case 3:

Delete(); //删除信息

case 0:

chg=0; //退回主菜单

break;

default :

printf("\t选择错误请重新输入\n:");

}

}

}

/录入信息/

void Infobase_add()

{

Student stu[1]; //定义Student型数组变量

FILE fp=NULL; //声明文件指针

fp=fopen("专周txt","a"); //以追加方式打开

printf("\t输入姓名 性别 学号 成绩(数学 外语 C语言)\n");

scanf("%s%s%d%d%d%d", //接收输入

stu[0]name,

stu[0]sex,

&stu[0]ID,

&stu[0]math,

&stu[0]english,

&stu[0]computer_C);

stu[0]sum=stu[0]english+stu[0]computer_C+stu[0]math;//计算总分

if(fprintf(fp," %s %s %d %d %d %d %d \n",//写入磁盘防错处理

stu[0]name,

stu[0]sex,

stu[0]ID,

stu[0]math,

stu[0]english,

stu[0]computer_C,

stu[0]sum)==0)

{

printf("写入失败");

}

fclose(fp); //关闭文件指针

}

/修改信息/

void Infobase_amend()

{

int i,j;

char ch[10]; //声明字符数组以保存需修改的姓名

Student stu[50]; //声明Student型数组

FILE fp=NULL; //声明文件指针

printf("\t输入需修改学生的名字");//提示输入

scanf("%s",ch); //接收输入姓名

fp=fopen("专周txt","rt+"); //以可读写方式打开

for(i=0;;i++)

{

fscanf(fp," %s %s %d %d %d %d %d ",//从磁盘读入内存

stu[i]name,

stu[i]sex,

&stu[i]ID,

&stu[i]math,

&stu[i]english,

&stu[i]computer_C,

&stu[i]sum);

if(strcmp(stu[i]name,ch)==0) //判断是否查找所需

{

rewind(fp); //指针移到文件开头

printf("\t输入修改姓名 性别 学号 成绩(数学 外语 C语言)\n");

scanf("%s%s%d%d%d%d", //接收输入

stu[i]name,

stu[i]sex,

&stu[i]ID,

&stu[i]math,

&stu[i]english,

&stu[i]computer_C);

j=i;

stu[i]sum=stu[i]english+stu[i]computer_C+stu[i]math;

for(i=0;i<j;i++)

{

fprintf(fp," %s %s %d %d %d %d %d \n",//原数据写入磁盘

stu[i]name,

stu[i]sex,

stu[i]ID,

stu[i]math,

stu[i]english,

stu[i]computer_C,

stu[i]sum);

}

fprintf(fp," %s %s %d %d %d %d %d ",//将修改数据写入磁盘

stu[i]name,

stu[i]sex,

stu[i]ID,

stu[i]math,

stu[i]english,

stu[i]computer_C,

stu[i]sum);

fclose(fp); //关闭文件指针

break;

}

}

}

/删除信息/

void Delete()

{

int i,j,k=0;

char ch[10]; //声明字符数组以保存需删除的姓名

Student stu[50]; //声明Student型数组

FILE fp=NULL,fp1=NULL; //声明文件指针

printf("\t输入需删除学生的名字"); //提示输入

scanf("%s",ch); //接收输入姓名

fp=fopen("专周txt","rt+"); //以可读写方式打开

for(i=0;!feof(fp);i++)

{

fscanf(fp," %s %s %d %d %d %d %d ",//从磁盘读入内存

stu[i]name,

stu[i]sex,

&stu[i]ID,

&stu[i]math,

&stu[i]english,

&stu[i]computer_C,

&stu[i]sum);

if(strcmp(stu[i]name,ch)==0) //判断是否查找所需

j=i;

}

rewind(fp); //指针移动到开头

for(;j<i-1;j++)

{

stu[j]=stu[j+1]; //覆盖需删除的后依次前移

}

for(i=0;i<j;i++)

fprintf(fp," %s %s %d %d %d %d %d \n", //写入磁盘

stu[i]name,

stu[i]sex,

stu[i]ID,

stu[i]math,

stu[i]english,

stu[i]computer_C,

stu[i]sum);

}

fclose(fp);

/信息查询/

void Find()

{

int n,chg=1; //声明chg变量用以循环

while(chg)

{

printf("\t\t\t1 按学号查询\n");

printf("\t\t\t2 按姓名查询\n");

printf("\t\t\t0 退回主菜单\n");

scanf("%d",&n);

switch(n)

{

case 1:

Find_ID(); //调用以学号查找的函数

break;

case 2:

Find_name(); //调用以姓名查找的函数

break;

case 0:

chg=0; //退回主菜单

break;

default :printf("\n选择错误请重新输入\n");

}

}

}

/按学号查找/

void Find_ID()

{

int n,i;

Student stu[50]; //声明Student型数组变量

FILE fp=NULL; //声明文件指针

printf("请输入学号"); //提示接收输入

scanf("%d",&n); //接收输入学号

fp=fopen("专周txt","rt"); //以只读方式打开

for(i=0;!feof(fp);i++)

{

if(fscanf(fp," %s %s %d %d %d %d %d \n", //防止读入内存失败

stu[i]name,

stu[i]sex,

&stu[i]ID,

&stu[i]math,

&stu[i]english,

&stu[i]computer_C,

&stu[i]sum)==0)

printf("读取失败");

if(stu[i]ID==n) //判断是否需查找学生

{

printf("查找到:%s 性别%s 学号%d 数学%d 外语%d C语言%d 总分%d\n",//输出查找目标

stu[i]name,

stu[i]sex,

stu[i]ID,

stu[i]math,

stu[i]english,

stu[i]computer_C,

stu[i]sum);

break;

}

if(feof(fp)) //处理未找到情况

{

printf("无此学生信息\n");

}

}fclose(fp); //关闭文件指针

}

/按姓名查找/

void Find_name()

{

int i;

char ch[10]; //声明字符数组以储存查找姓名

Student stu[50]; //声明Student型数组变量

FILE fp=NULL; //声明文件指针

printf("请输入姓名\n"); //提示输入

scanf("%s",ch); //接收输入姓名

fp=fopen("专周txt","rt"); //以只读方式打开

for(i=0;!feof(fp);i++) //循环,以文件指针到末尾结束循环

{

fscanf(fp," %s %s %d %d %d %d %d ",//从磁盘读入内存

stu[i]name,

stu[i]sex,

&stu[i]ID,

&stu[i]math,

&stu[i]english,

&stu[i]computer_C,

&stu[i]sum);

if(strcmp(stu[i]name,ch)==0) //判断是否查找学生

{

printf("查找到:%s 性别%s 学号%d 数学%d 外语%d C语言%d 总分%d\n",//输出查找目标

stu[i]name,

stu[i]sex,

stu[i]ID,

stu[i]math,

stu[i]english,

stu[i]computer_C,

stu[i]sum);

break;

}

if(feof(fp)) //处理未找到情况

{

printf("无此学生信息\n");

}

}fclose(fp); //关闭文件指针

}

/信息统计/

void InfoStat()

{

int n,m,i,count=0;

char ch[15]; //声明字符数组保存课程名

Student stu[60]; //声明Student型数组变量

FILE fp=NULL; //声明文件指针

fp=fopen("专周txt","rt"); //以只读方式打开

printf("输入课程名(数学 外语 C)和分数段(格式:数学 x1-x2)\n");

scanf("%s",ch); //接收输入课程名

scanf("%d-%d",&n,&m); //接收输入分数段

for(i=0;!feof(fp);i++) //以文件指针到文件末尾结束循环

{

if(fscanf(fp," %s %s %d %d %d %d %d \n", //防止读入内存失败

stu[i]name,

stu[i]sex,

&stu[i]ID,

&stu[i]math,

&stu[i]english,

&stu[i]computer_C,

&stu[i]sum)==0)

printf("读取失败");

count++;

}

fclose(fp); //关闭文件指针

/以下输出查找目标/

printf("姓名 性别 %s 总分\n",ch);

for(i=0;i<count;i++)

if(strcmp(ch,"数学")==0 && stu[i]math>=n && stu[i]math<=m)

{

printf("%s\t%s\t%d\t%d\n",

stu[i]name,

stu[i]sex,

stu[i]math,

stu[i]sum);

}

for(i=0;i<count;i++)

if(strcmp(ch,"外语")==0 && stu[i]english>=n && stu[i]english<=m)

{

printf("%s\t%s\t%d\t%d\n",

stu[i]name,

stu[i]sex,

stu[i]english,

stu[i]sum);

}

for(i=0;i<count;i++)

if(!strcmp(ch,"C") && stu[i]computer_C>=n && stu[i]computer_C<=m)

{

printf("%s\t%s\t%d\t%d\n",

stu[i]name,

stu[i]sex,

stu[i]english,

stu[i]sum);

}

}

/成绩排序/

void Comp()

{

int i,k,j,count=0;

char ch[15]; //声明字符数组保存课程名

Student stu[50],temp; //声明Student型变量

FILE fp=NULL; //声明文件指针

printf("请输入需要排序的课程名"); //提示输入

scanf("%s",ch); //接收输入的课程名

fp=fopen("专周txt","rt"); //以读方式打开文件

for(i=0;!feof(fp);i++) //以文件指针到末尾结束循环

{

if(fscanf(fp," %s %s %d %d %d %d %d \n", //防止读入内存失败

stu[i]name,

stu[i]sex,

&stu[i]ID,

&stu[i]math,

&stu[i]english,

&stu[i]computer_C,

&stu[i]sum)==0)

printf("读取失败");

count++; //记录文件内学生人数

}

fclose(fp); //关闭文件指针

if(strcmp(ch,"数学")==0)

{

for(i=0;i<count-1;i++) //以下为以降序顺序排序

{

k=i;

for(j=i+1;j<count;j++)

if(stu[k]math<stu[j]math)

k=j;

if(i!=k)

{

temp=stu[i];

stu[i]=stu[k];

stu[k]=temp;

}

}

printf("姓名 性别 学号 数学 外语 C语言 总分 数学成绩名次\n");

for(i=0;i<count;i++)

{

printf("%-6s %4s %d %d %d %d %d %d\n", //输出信息

stu[i]name,

stu[i]sex,

stu[i]ID,

stu[i]math,

stu[i]english,

stu[i]computer_C,

stu[i]sum,i+1);

}

}

if(strcmp(ch,"外语")==0)

{

for(i=0;i<count-1;i++) //以下为降序顺序排序

{

k=i;

for(j=i+1;j<count;j++)

if(stu[k]english<stu[j]english)

k=j;

if(i!=k)

{

temp=stu[i];

stu[i]=stu[k];

stu[k]=temp;

}

}

printf("姓名 性别 学号 数学 外语 C语言 总分 外语成绩名次\n");

for(i=0;i<count;i++)

{

printf("%-6s %4s %d %d %d %d %d %d\n", //输出信息

stu[i]name,

stu[i]sex,

stu[i]ID,

stu[i]math,

stu[i]english,

stu[i]computer_C,

stu[i]sum,i+1);

}

}

if(strcmp(ch,"C")==0)

{

for(i=0;i<count-1;i++) //以下为降序顺序排序

{

k=i;

for(j=i+1;j<count;j++)

if(stu[k]computer_C<stu[j]computer_C)

k=j;

if(i!=k)

{

temp=stu[i];

stu[i]=stu[k];

stu[k]=temp;

}

}

printf("姓名 性别 学号 数学 外语 C语言 总分 C语言成绩名次\n");

for(i=0;i<count;i++)

{

printf("%-6s %4s %d %d %d %d %d %d\n", //输出信息

stu[i]name,

stu[i]sex,

stu[i]ID,

stu[i]math,

stu[i]english,

stu[i]computer_C,

stu[i]sum,i+1);

}

}

}以下是baohan头文件

void Menu(); //主菜单

void Infobase(); //信息维护

void Find(); //信息查询

void InfoStat(); //成绩统计

void Comp(); //成绩排序

void Find_ID(); //以学号查找

void Find_name(); //以姓名查找

void Infobase_add(); //录入信息

void Infobase_amend(); //修改信息

void Delete(); //删除信息

typedef struct //重命名学生信息结构体

{

char name[10]; //姓名

char sex[3]; //性别

int ID; //学号

int math; //数学成绩

int english; //英语成绩

int computer_C; //计算机C语言成绩

int sum; //成绩总和

}Student;

程序设计方法:

1.从问题的全局出发,写出一个概括性的抽象的描述。

2.定义变量,选取函数,确定算法。算法这个东西不好说,遇到的问题多了,自然就会形成自己一整套的算法。

3.按照解决问题的顺序把语句和函数在main()里面堆砌起来。

C语言是一种

计算机程序设计语言

。它既有

高级语言

的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖

计算机硬件

的应用程序。因此,它的应用范围广泛。

C语言对 *** 作系统和系统使用程序以及需要对硬件进行 *** 作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。

C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是

数值计算

的高级语言。

常用的C语言IDE(

集成开发环境

)有Microsoft

Visual

C++,Borland

C++,Watcom

C++

,Borland

C++

,Borland

C++

Builder,Borland

C++

31

for

DOS,Watcom

C++

110

for

DOS,GNU

DJGPP

C++

,Lcc

win32

C

Compiler

31,Microsoft

C,High

C,Turbo

C,

Dev-C++

,

C-Free

等等

你看下:

>

我想着要根据你的目的和学习计划来安排。如果你是自己想学来玩一下,我建议你可以从“黑客”学起,网上有很多关于黑客的教程,你可以用迅雷找。理由是他们很注重实践,即入门快。

如果你想学来找工作,那么就要从头学起。一般可以从C语言学起。c语言的教材可以参考《C语言程序设计——现代方法》这本书,人民邮电出版社。

另外有一本书要看看的:《代码大全》。这本书的名气很大,不用我多说。我就是从这本书开始学习编程的。

以上就是关于我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的程序。全部的内容,包括:我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的程序。、在C语言中程序设计的方法有哪些、C语言的程序设计概念等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9306200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存