第一节 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
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)