添加教师数据函数C语言,c语言数学函数库

哪位大师能帮我做个C语言作业啊,急啊!!!

/*测试方法,你可以把100变为4,10变为2,这样方便测试*/

成都创新互联是一家专业提供寒亭企业网站建设,专注与成都做网站、网站建设、外贸营销网站建设H5开发、小程序制作等业务。10年已为寒亭众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

#includestdio.h

struct teacher

{

int tno;//教师号

char sname[8];//姓名

float money[10];//工资项

float sum;//工资

}; struct teacher s[100];

void input(struct teacher s[100]);

void money(struct teacher s[100]);

void sort(struct teacher s[100]);

void output(struct teacher s[100]);

void main()

{

input(s);//定义函数输入所有教师的信息及工资信息;

money(s);//定义函数计算各个教师的工资;

sort(s);//定义函数按工资由高到低进行排序;

output(s);//定义函数输出教师的姓名和对应的工资。

}

void input(struct teacher s[100])

{

int i,j;

for(i=0;i100;i++)

{

scanf("%d",s[i].tno);

scanf("%s",s[i].sname);

for(j=0;j10;j++)

{

scanf("%d",s[i].money[j]);

}

}

}

void money(struct teacher s[100])

{

int i,j;

for(i=0;i100;i++)

{

s[i].sum =0;

for(j=0;j10;j++)

{

s[i].sum=s[i].sum +s[i].money[j];

}

}

}

void sort(struct teacher s[100])

{

struct teacher t;

int i,j;

for(i=0;i99;i++)

{

for(j=1;j100;j++)

{

if(s[i].sum s[j].sum )

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

}

}

}

void output(struct teacher s[100])

{

int i;

for(i=0;i100;i++)

{

printf("教师工号:%d 教师名:%s 工资:%f\n",s[i].tno ,s[i].sname,s[i].sum );

}

}

c语言编程:使用单链表建立一个简易教师工作量表,要求:

代码如下:

#include stdio.h

#include assert.h

#include stdlib.h

#define MAX_NAME_LENGTH 11

typedef struct teacher *tea;

struct teacher {

long num;                   /* 职工号 */

int wkld;                   /* 工作量 */

char name[MAX_NAME_LENGTH]; /* 姓名 */

tea next;                   /* 指向下一个节点的指针 */

};

/*

*   复制字符串函数

*/

void my_strncpy(char *str, char const *dest, size_t n) {

assert( dest != NULL );

while ( n-- ) {

*str++ = *dest++;

}

*str ='\0';

}

/*

*   创建节点,使用头插法

*/

static tea create_tea(tea head, long const num, 

  int const wkld, char const *name) {

tea node;

node = (tea)malloc(sizeof(struct teacher));

if ( node == NULL ) {

perror("Memory");

exit(1);

}

node-num = num;

node-wkld = wkld;

/*

 *  若name长度大于 MAX_NAME_LENGTH,

 *  则按MAX_NAME_LENGTH-1算,留一个结束符。

 */

my_strncpy(node-name, name, 

strlen(name)  (MAX_NAME_LENGTH-1) ? (MAX_NAME_LENGTH-1) : strlen(name));   

node-next = head;

head = node;

return head;

}

/*

*   查找工作量大于某工作量的节点,打印其职工号工号,姓名和工作量

*/

static void find_wkld(tea head, int const wkld) {

printf("工作量大于%d的教职工如下\n", wkld);

printf("职工号\t姓名\t\t工作量\n");

while ( head != NULL ) {

if ( head-wkld  wkld ) {

printf("%ld\t%s\t%d\n", head-num, head-name, head-wkld);

}

head = head-next;

}

}

/*

*   delete_tea函数的特殊情况处理

*/

static tea delete_head(tea head, int len) {

tea temp;

do {

temp = head-next;

free(head);

head = temp;

} while ( ( --len )  ( head != NULL ) );

return head;

}

/*

*   从链表的第i个节点开始连删len个节点,

*   若不够len个节点,则从第i个节点开始删到表尾

*/

static tea delete_tea(tea head, int i, int len) {

tea head_buf = head;

tea surplus_head, surplus_end;

/*

 *  先将指针指向第i个节点,

 *  若链表长度小于i,则不删除任何节点

 *  一个特殊情况,如果从第一个节点开始删除

 *  则需要特殊处理

 */

assert(head != NULL);

if ( i-- == 1 ) {

return delete_head(head, len);

}

while ( --i ) {

if ( head == NULL ) {

return NULL;

}

head = head-next;

}

/*

 *   开始执行删除节点操作

 */

surplus_head = head;

surplus_end = head-next;

while ( len-- ) {

if ( surplus_end == NULL ) {

break;

} else {

head = surplus_end-next;

free(surplus_end);

surplus_end = head;

}

}

/*

 *   连接剩余的节点,

 *   若节点不够,则surplus_end = NULL。

 */

surplus_head-next = surplus_end;

return head_buf;

}

/*

*   打印教职工信息

*/

static void print_tea(tea head) {

printf("职工号\t姓名\t\t工作量\n");

while ( head != NULL ) {

printf("%ld\t%s\t%d\n", head-num, head-name, head-wkld);

head = head-next;

}

}

/*

*   链表最后应该要释放,养成习惯

*/

static void free_tea(tea head) {

tea temp = head;

assert( head != NULL ); /* 该函数可以去了解一下 */

while ( head != NULL ) {

head = head-next;

free(temp);

temp = head;

}

}

int main(void) {

int n;

int i;

/*

 *   初始化信息

 */

long num = 12345;

int wkld = 8;

char name[MAX_NAME_LENGTH] = "Teachaaaaa";

char ch = 'b';

tea head = NULL;

tea temp;

/* 开始 */

printf("请输入要录入的教职工人数: ");

scanf("%d", n);

/* 

 *   自动录入信息

 *   如果要改成数据为手动输入在这里添加代码即可

 *   并把原来的这两行注释掉

 */

for ( i = 0; i  n; i++) {

head = create_tea(head, num++, wkld++, name);

name[9] = ch++;

}

temp = head;

printf("教职工信息表如下\n");

print_tea(head);

printf("请输入要查找的工作量: ");

scanf("%d", n);

find_wkld(head, n);

printf("请输入要删除的起始节点和结束节点(空格隔开): ");

scanf("%d %d", i, n);

head = delete_tea(head, i, n);

printf("删除之后的教职工信息如下\n");

print_tea(head);

free_tea(head);

return 0;

}

结果:

有疑问可以追问。

有用点采纳,谢谢!

用C语言编程实现,从键盘上输入有关教师的姓名,年龄,性别,工资等信息,先将数据存在一个二进制文件...

int main()

{

file *p;

char s[6];

fp=fopen("c:\\aa.txt","wb");

printf("\n请输入姓名:");

scanf("%s",s);

fwrite(s,sizeof(char),strlen(s),fp);

fclose(fp);

}

c语言课程设计——职工信息管理系统

#includestdio.h

#includestring.h

int main()

{

void TestOnLineTeacherManage(); //声明教师信息管理函数

void TestOnLineSelfManage();//声明个人管理函数

int n;

printf(“0教师管理,1个人管理”);

scanf(“%d”,n);

If (n==0)

TestOnLineTeacherManage();

else

TestOnLineSelfManage();//选择教师管理或者个人信息管理

Return 0;

}

Void TestOnLineTeacherManage() //教师信息管理函数

{

Struct TestOnLineTeacher

{

Int Tnum;

Char Tname[20];

Char Tsex;

Char Ttel[20];

}Teacher[100]; //定义一个结构体

void add(); //定义教师信息添加

void del(); //定义教师信息删除

Void modify(); //定义教师信息修改

int a;

Printf(“1添加2删除3修改”);

Scanf (“%d”,a);

Switch(a)

{

Case1:add();break;

Case2:del();break;

Case3:modify();break;

Default:break;

}//选择功能

}

Void add() //教师信息添加函数,若添加Teacher[i]

{

printf(“输入工号”);

Scanf(“%d”,Teacher[i].Tnum);

printf(“输入姓名”);

Scanf(“%s”,Teacher[i].Tname);

printf(“输入性别f女m男”);

Scanf(“%c”,Teacher[i].Tsex);

printf(“输入电话”);

Scanf(“%s”,Teacher[i].Ttel);

}

Void del() //教师信息删除函数,若删除Teacher[i]

{

Teacher[i-1]=Teacher[i+1];

Free(Teacher[i]);

}

Void modify() //教师信息修改函数,若修改Teacher[i]

{

Int t;

Int num;

Char name[20];

Char sex;

Char tel[20];

Printf(“修改选项1工号2姓名3性别4电话”);

Scanf(“%d”,t);

Switch(t)

{

Case1:scanf(“%d”,num);Teacher[i].Tnum=num;break;

Case2:scanf(“%s”,name);strcpy(Teacher[i].Tname,name);break;

Case3:scanf(“%c”,sex);Teacher[i].Tsex=sex;break;

Case4:scanf(“%s”,tel);strcpy(Teacher[i].Ttel,tel);break;

Default:break;

}//选择修改项并修改

}

Void TestOnLineSelfManage() //个人信息管理

{

Struct TestOnLineManage

{

Int Mnum;

Char Mname[20];

Char Msex;

Char Mtel[20];

}Manage[1]; //定义一个结构体

Int b;

Int num;

Char name[20];

Char sex;

Char tel[20];

Printf(“修改选项1工号2姓名3性别4电话”);

Scanf(“%d”,b);

Switch(t)

{

Case1:scanf(“%d”,num);Manage[1].Mnum=num;break;

Case2:scanf(“%s”,name);strcpy(Manage[1].Mname,name);break;

Case3:scanf(“%c”,sex);Manage[1].Msex=sex;break;

Case4:scanf(“%s”,tel);strcpy(Manage[1].Mtel,tel);break;

Default:break;

}//选择修改项并修改

}

c语言编程

//第1题

#includestdio.h

#includestdlib.h

#define N 5

typedef struct teacher{

char workNO[20];

char name[32];

char sex[10];

char title[20];

float salary;

struct teacher *next;

}Teacher,*pTeacher;

//创建链表

pTeacher creatLinklist(pTeacher head)

{

head=(Teacher*)malloc(sizeof(Teacher));

if(!head){

printf("malloc memory size error!\n");

exit(-1);

}

head-next=NULL;

return head;

}

//输入数据

void inputData(pTeacher head,int n)

{

pTeacher s,r;

int i;

r=head;

for(i=0;in;i++){

s=(Teacher*)malloc(sizeof(Teacher));

scanf("%s%s%s%s%f",s-workNO,s-name,s-sex,s-title,s-salary);

//尾插法建立链表,r始终指向链表的最后一个结点

r-next=s;

r=s;

}

r-next=NULL;

}

//输出数据

void outputData(pTeacher head)

{

pTeacher s;

s=head-next;  //pt初始指向链表的第一个数据结点

while(s != NULL)

{

printf("%s %s %s %s %.2f\n",s-workNO,s-name,s-sex,s-title,s-salary);

s=s-next;

}

}

int main()

{

pTeacher list;

list=creatLinklist(list);

printf("输入教师数据:\n");

inputData(list,N);

printf("输出链表数据:\n");

outputData(list);

return 0;

}

//示例运行结果

F:\c_worka.exe

输入教师数据:

10001 wang 男 教授 10000

10002 yang 女 副教授 8000

10003 Li   男 讲师 7000

10004 zhang 男 院长 20000

10005 liao 女 辅导员 6000

输出链表数据:

10001 wang 男 教授 10000.00

10002 yang 女 副教授 8000.00

10003 Li 男 讲师 7000.00

10004 zhang 男 院长 20000.00

10005 liao 女 辅导员 6000.00

编写一个学生和教师相关数据,输入和显示的程序

include iostream

using namespace std;

class person

{public:

void set_information( ); //公用成员函数

void show_information( ); //公用成员函数

private: //数据成员为私有

int number;

char name[30];

};

class Student: public person

{

public:

void show_information_1( )

{

coutendl;

cout"请输入学生信息: "endl;

coutendl;

cout"请输入班级: "endl;

cincls;

cout"请输入成绩: "endl;

cingra;

coutendl;

cout"学生附加信息:"endl;

cout" 班级: "clsendl; //引用派生类的私有成员,正确

cout" 成绩: "graendl;

coutendl;

} //引用派生类的私有成员,正确

private:

int cls;

int gra;

};

class Teacher: public person

{

public:

void show_information_2( )

{

coutendl;

cout"请输入教师信息: "endl;

coutendl;

cout"请输入职称: "endl;

cincls2;

cout"请输入部门: "endl;

cingra2;

coutendl;

cout"教师附加信息:"endl;

cout" 职称: "cls2endl; //引用派生类的私有成员,正确

cout" 部门: "gra2endl;

coutendl;

} //引用派生类的私有成员,正确

private:

char cls2[30];

char gra2[30];

};

int main( )

{

Student t1;

Teacher t2; //定义对象t1

t1.set_information( ); //调用对象t1的成员函数set_time,向t1的数据成员输入数据

t1.show_information_1();

t2.set_information( ); //调用对象t1的成员函数set_time,向t1的数据成员输入数据

t2.show_information_2();

coutendl;

return 0;

}

void person::set_information( ) //在类外定义set_time函数

{

coutendl;

cout"请输入基本信息: "endl;

coutendl;

cout" ""姓名:";

cinname;

cout" ""号码:";

cinnumber;

}

void person::show_information( ) //在类外定义show_time函数

{

coutendl;

cout"人员信息: "endl;

coutendl;

cout"姓名:"name" ""号码: "numberendl;

}


当前标题:添加教师数据函数C语言,c语言数学函数库
文章地址:http://pwwzsj.com/article/dsigdes.html