c语言程序设计

c语言程序设计,第1张

第一章 程序设计的基本概念

第一节 C语言的发展历史与特点

第二节 程序与程序设计

第三节 算法与算法的描述

第四节 C语言的上机 *** 作

思考题与习题

第二章 C语言程序设计基础

第一节 C语言的程序结构

第二节 数据类型

第三节 运算符与表达式

思考题与习题

第三章 C程序控制结构

第一节 C程序的三种基本控制结构

第二节 顺序结构

第三节 选择结构

第四节 循环结构

思考题与习题

第四章 数组

第一节 数组与数组元素的概念

第二节 一维数组

第三节 二维数组及多维数组

第四节 字符串与字符数组

思考题与习题

第五章 指针

第一节 指针与指针变量的概念

第二节 指针变量的定义和引用

第三节 指针变量与数组

思考题与习题

第六章 函数

第一节 函数的定义

第二节 函数的嵌套调用

第三节 数组作为函数参数

第四节 指针与函数

第五节 变量的使用范围与存储类别

第六节 不同文件中的函数使用

思考题与习题

第七章 编译预处理

第一节 宏定义

第二节 文件包含

第三节 条件编译

思考题与题

第八章 结构体与共用体

第一节 结构体基础

第二节 结构体数组

第三节 结构体指针

第四节 链表

第五节 位段

第六节 共用体

第七节 枚举类型与自定义类型

思考题与习题

第九章 文件

第一节 文件概述

第二节 文件的打开与关闭

第三节 文件的读/写

第四节 文件的定位

思考题与习题

第十章 程序设计方法

第一节 程序设计的基本概念

第二节 结构化程序设计方法

第三节 程序效率

第四节 程序设计风格

思考题与习题

附录

附录A C语言实验

附录B 标准ABSII码表

附录C C语言中的关键字

附录D 运算符的优先级与结合性

c程序设计方法包括三个基本步骤:

第一步二分析问题.

第二步画出程序的基本轮廓.

第三步:实现该程序.(1)编写程序(2)测试和调试程序(3)提供数据打印结果.

给你一个我做的人事管理系统,回去把变量改下就好了,链表已经做好了,如果不会改的话我也没办法了.

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

int shouldsave=0

struct employee

{

char num[10]

char name[20]

char sex[4]

}

typedef struct node

{

struct employee data

struct node *next

}Node,*Link

void menu()

{

printf("********************Welcome*************************************\n")

printf("1.Input\n")

printf("2.sort\n")

printf("3.query\n")

printf("4.change\n")

printf("5.save\n")

printf("****************************************************************\n")

}

void printstart()

{

printf("----------------------------------------------------------------\n")

}

void Wrong()

{

printf("\n=====>wrong info!\n")

}

void Nofind()

{

printf("\n=====>no find!\n")

}

void printc()

{

printf(" number namesex\n")

}

void printe(Node *p)

{

printf(" %-12s %s\t %s",p->data.num,p->data.name,p->data.sex)

}

Node* Locate(Link l,char findmess[])

{

Node *r

r=l->next

while(r!=NULL)

{

if(strcmp(r->data.num,findmess)==0)

return r

r=r->next

}

return 0

}

void Add(Link l)

{

Node *p,*r,*s

char num[10]

r=l

s=l->next

while(r->next!=NULL)

r=r->next

while(1)

{

printf("input number:)")

scanf("%s",num)

if(strcmp(num,"0")==0)

break

while(s)

{

if(strcmp(s->data.num,num)==0)

{

printf("=====>%d is already existed!\n",num)

printstart()

printc()

printe(s)

printstart()

printf("\n")

return

}

s=s->next

}

p=(Node *)malloc(sizeof(Node))

strcpy(p->data.num,num)

printf("input name:")

scanf("%s",p->data.name)

getchar()

printf("input sex:")

scanf("%s",p->data.sex)

getchar()

p->next=NULL

r->next=p

r=p

shouldsave=1

}

}

void Qur(Link l)

{

char findmess[20]

Node *p

if(!l->next)

{

printf("no info!")

return

}

printf("input number:")

scanf("%s",findmess)

p=Locate(l,findmess)

if(p)

{

printf("\t\t\t\tresult\n")

printstart()

printc()

printe(p)

printstart()

}

else

Nofind()

}

void Disp(Link l)

{

Node *p

p=l->next

if(!p)

{

printf("\n=====>no info to display!\n")

return

}

printf("\t\t\t\result:\n")

printstart()

printc()

printf("\n")

while(p)

{

printe(p)

p=p->next

}

printstart()

printf("\n")

}

void Sort(Link l)

{

Link ll

Node *p,*rr,*s

ll=(Link)malloc(sizeof(Node))

ll->next=NULL

if(l->next==NULL)

{

printf("\n=====>no info to sort!\n")

return

}

p=l->next

while(p)

{

s=(Node*)malloc(sizeof(Node))

s->data=p->data

s->next=NULL

rr=ll

while(rr->next!=NULL )

rr=rr->next

if(rr->next==NULL)

rr->next=s

else

{

s->next=rr->next

rr->next=s

}

p=p->next

}

free(l)

l->next=ll->next

printf("\n=====>sort is finished!\n")

}

void Save(Link l)

{

FILE* fp

Node *p

int flag=1,count=0

fp=fopen("c:\\employee","wb")

if(fp==NULL)

{

printf("\n=====>error!\n")

exit(1)

}

p=l->next

while(p)

{

if(fwrite(p,sizeof(Node),1,fp)==1)

{

p=p->next

count=count+1

}

else

{

flag=0

break

}

}

if(flag)

{

printf("\n=====>successful! %d records!\n",count)

shouldsave=0

}

fclose(fp)

}

void main()

{

Link l

FILE *fp

int sel

char ch

char set

int count=0

Node *p,*r

l=(Node*)malloc(sizeof(Node))

l->next=NULL

r=l

fp=fopen("C:\\employee","rb")

if(fp==NULL)

{

printf("\n=====>not existed,set(y/n)?\n")

scanf("%c",&set)

if(set=='y'||set=='Y')

fp=fopen("C:\\employee","wb")

else

exit(0)

}

while(!feof(fp))

{

p=(Node*)malloc(sizeof(Node))

if(fread(p,sizeof(Node),1,fp))

{

p->next=NULL

r->next=p

r=p

count=count+1

}

}

fclose(fp)

printf("\n=====>record finished,%d records\n",count)

while(1)

{

menu()

printf("choose selection:")

scanf("%d",&sel)

if(sel==0)

{

printf("\n=====>exit,bye!\n")

break

}

switch(sel)

{

case 1:Add(l)break

case 3:Qur(l)break

case 4:Disp(l)break

case 2:Sort(l)break

case 5:Save(l)break

default: Wrong()

getchar()

break

}

}

}


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

原文地址: https://outofmemory.cn/yw/11364390.html

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

发表评论

登录后才能评论

评论列表(0条)

保存