c语言程序设计实例 c语言程序设计?

c\u8bed\u8a00\u7a0b\u5e8f\u8bbe\u8ba1\u5b9e\u4f8b

// \u7535\u8bdd\u672cDlg.cpp : \u5b9e\u73b0\u6587\u4ef6
//

#include stdafx.h
#include \u7535\u8bdd\u672c.h
#include \u7535\u8bdd\u672cDlg.h

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// C\u7535\u8bdd\u672cDlg \u5bf9\u8bdd\u6846




C\u7535\u8bdd\u672cDlg::C\u7535\u8bdd\u672cDlg(CWnd* pParent /*=NULL*/)
: CDialog(C\u7535\u8bdd\u672cDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);
}

void C\u7535\u8bdd\u672cDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(C\u7535\u8bdd\u672cDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_EN_CHANGE(IDC_EDIT1, C\u7535\u8bdd\u672cDlg::OnName)
ON_EN_CHANGE(IDC_EDIT2, C\u7535\u8bdd\u672cDlg::OnPhoto)
ON_EN_CHANGE(IDC_EDIT3, C\u7535\u8bdd\u672cDlg::OnAddress)
ON_EN_CHANGE(IDC_EDIT4, C\u7535\u8bdd\u672cDlg::OnShow)
ON_BN_CLICKED(IDC_BUTTON1, C\u7535\u8bdd\u672cDlg::OnFill)
ON_BN_CLICKED(IDC_BUTTON2, C\u7535\u8bdd\u672cDlg::OnInsert)
ON_BN_CLICKED(IDC_BUTTON3, C\u7535\u8bdd\u672cDlg::OnFind)
ON_BN_CLICKED(IDC_BUTTON4, C\u7535\u8bdd\u672cDlg::OnDelete)
ON_BN_CLICKED(IDC_BUTTON5, C\u7535\u8bdd\u672cDlg::OnEdit)
ON_BN_CLICKED(IDC_BUTTON7, C\u7535\u8bdd\u672cDlg::OnSave)
END_MESSAGE_MAP()


// C\u7535\u8bdd\u672cDlg \u6d88\u606f\u5904\u7406\u7a0b\u5e8f

BOOL C\u7535\u8bdd\u672cDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// \u8bbe\u7f6e\u6b64\u5bf9\u8bdd\u6846\u7684\u56fe\u6807\u3002\u5f53\u5e94\u7528\u7a0b\u5e8f\u4e3b\u7a97\u53e3\u4e0d\u662f\u5bf9\u8bdd\u6846\u65f6\uff0c\u6846\u67b6\u5c06\u81ea\u52a8
// \u6267\u884c\u6b64\u64cd\u4f5c
SetIcon(m_hIcon, TRUE); // \u8bbe\u7f6e\u5927\u56fe\u6807
SetIcon(m_hIcon, FALSE); // \u8bbe\u7f6e\u5c0f\u56fe\u6807

// TODO: \u5728\u6b64\u6dfb\u52a0\u989d\u5916\u7684\u521d\u59cb\u5316\u4ee3\u7801
ifstream InFile(Wab.fsd,ios::in);
listWabList::iterator ItWab;
char Tmp1[8],Tmp2[16],Tmp3[32];
Wab.clear();
while(InFile Tmp1 Tmp2 Tmp3)
{
OutWab.Name=Tmp1;
OutWab.Photo=Tmp2;
OutWab.Address=Tmp3;
Wab.push_front(OutWab);
}
C\u7535\u8bdd\u672cDlg::OnFill();

return TRUE; // \u9664\u975e\u5c06\u7126\u70b9\u8bbe\u7f6e\u5230\u63a7\u4ef6\uff0c\u5426\u5219\u8fd4\u56de TRUE
}

// \u5982\u679c\u5411\u5bf9\u8bdd\u6846\u6dfb\u52a0\u6700\u5c0f\u5316\u6309\u94ae\uff0c\u5219\u9700\u8981\u4e0b\u9762\u7684\u4ee3\u7801
// \u6765\u7ed8\u5236\u8be5\u56fe\u6807\u3002\u5bf9\u4e8e\u4f7f\u7528\u6587\u6863/\u89c6\u56fe\u6a21\u578b\u7684 MFC \u5e94\u7528\u7a0b\u5e8f\uff0c
// \u8fd9\u5c06\u7531\u6846\u67b6\u81ea\u52a8\u5b8c\u6210\u3002

void C\u7535\u8bdd\u672cDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // \u7528\u4e8e\u7ed8\u5236\u7684\u8bbe\u5907\u4e0a\u4e0b\u6587

SendMessage(WM_ICONERASEBKGND, reinterpret_castWPARAM(dc.GetSafeHdc()), 0);

// \u4f7f\u56fe\u6807\u5728\u5de5\u4f5c\u77e9\u5f62\u4e2d\u5c45\u4e2d
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(rect);
int x = (rect.Width() - cxIcon 1) / 2;
int y = (rect.Height() - cyIcon 1) / 2;

// \u7ed8\u5236\u56fe\u6807
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}

//\u5f53\u7528\u6237\u62d6\u52a8\u6700\u5c0f\u5316\u7a97\u53e3\u65f6\u7cfb\u7edf\u8c03\u7528\u6b64\u51fd\u6570\u53d6\u5f97\u5149\u6807\u663e\u793a\u3002
//
HCURSOR C\u7535\u8bdd\u672cDlg::OnQueryDragIcon()
{
return static_castHCURSOR(m_hIcon);
}


void C\u7535\u8bdd\u672cDlg::OnName()
{
CEdit *pMaxLen=(CEdit*)GetDlgItem(IDC_EDIT1);
pMaxLen-SetLimitText(6);
GetDlgItemText(IDC_EDIT1,InWab.Name);
}

void C\u7535\u8bdd\u672cDlg::OnPhoto()
{
CEdit *pMaxLen=(CEdit*)GetDlgItem(IDC_EDIT2);
pMaxLen-SetLimitText(11);
GetDlgItemText(IDC_EDIT2,InWab.Photo);
}

void C\u7535\u8bdd\u672cDlg::OnAddress()
{
CEdit *pMaxLen=(CEdit*)GetDlgItem(IDC_EDIT3);
pMaxLen-SetLimitText(30);
GetDlgItemText(IDC_EDIT3,InWab.Address);
}

void C\u7535\u8bdd\u672cDlg::OnShow()
{
// TODO: \u5982\u679c\u8be5\u63a7\u4ef6\u662f RICHEDIT \u63a7\u4ef6\uff0c\u5219\u5b83\u5c06\u4e0d\u4f1a
// \u53d1\u9001\u8be5\u901a\u77e5\uff0c\u9664\u975e\u91cd\u5199 CDialog::OnInitDialog()
// \u51fd\u6570\u5e76\u8c03\u7528 CRichEditCtrl().SetEventMask()\uff0c
// \u540c\u65f6\u5c06 ENM_CHANGE \u6807\u5fd7\u201c\u6216\u201d\u8fd0\u7b97\u5230\u63a9\u7801\u4e2d\u3002

// TODO: \u5728\u6b64\u6dfb\u52a0\u63a7\u4ef6\u901a\u77e5\u5904\u7406\u7a0b\u5e8f\u4ee3\u7801
}

void C\u7535\u8bdd\u672cDlg::OnFill()
{
CString OutAll,OutTemp,Space,Enter;
Space=_T( );
Enter=_T(\r\n);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
OutWab=*ItWab;
OutTemp=OutWab.Name Space OutWab.Photo Space OutWab.Address;
OutAll=OutAll OutTemp Enter;
}
SetDlgItemText(IDC_EDIT4,OutAll);
}

void C\u7535\u8bdd\u672cDlg::OnInsert()
{
Wab.push_front(InWab);
C\u7535\u8bdd\u672cDlg::OnFill();
}

void C\u7535\u8bdd\u672cDlg::OnFind()
{
CString OutAll,OutTemp,Space,Enter;
Space=_T( );
Enter=_T(\r\n);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
if(ItWab-Name==InWab.Name)
{
OutTemp=ItWab-Name Space ItWab-Photo Space ItWab-Address;
OutAll=OutAll OutTemp Enter;
}
}
SetDlgItemText(IDC_EDIT4,OutAll);
}

void C\u7535\u8bdd\u672cDlg::OnDelete()
{
CString OutAll,OutTemp,Space,Enter;
Space=_T( );
Enter=_T(\r\n);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
if(ItWab-Name==InWab.Name)
{
OutTemp=ItWab-Name Space ItWab-Photo Space ItWab-Address;
OutAll=OutAll OutTemp Enter;
break;
}
}
SetDlgItemText(IDC_EDIT4,OutAll);
if(ItWab!=Wab.end()) Wab.erase(ItWab);
}

void C\u7535\u8bdd\u672cDlg::OnEdit()
{
CString OutAll,OutTemp,Space,Enter;
Space=_T( );
Enter=_T(\r\n);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
if(ItWab-Name==InWab.Name)
{
OutTemp=ItWab-Name Space ItWab-Photo Space ItWab-Address;
OutAll=OutAll OutTemp Enter;
break;
}
}
SetDlgItemText(IDC_EDIT4,OutAll);
if(ItWab!=Wab.end())
{
Wab.erase(ItWab);
Wab.push_front(InWab);
}
}

void C\u7535\u8bdd\u672cDlg::OnSave()
{
CString Tmp1,Tmp2,Tmp3;
ofstream OutFile(Wab.fsd,ios::out);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
Tmp1=ItWab-Name;
Tmp2=ItWab-Photo;
Tmp3=ItWab-Address;
OutFile Tmp1 ' ' Tmp2 ' ' Tmp3 endl;
}
}
\u53ea\u662f\u4e2a\u7528C\u8bed\u8a00\u7f16\u5199\u7684\u7535\u8bdd\u672c\u7a0b\u5e8f \u5f88\u6709\u5b9e\u7528\u610f\u4e49

#include u>void main(){float a=10,t=3,s;s=0.5*a*t*t;if(s>100)s=100;printf("%.0fs:%f",t,s);}
C\u8bed\u8a00\u662f\u4e00\u79cd\u8ba1\u7b97\u673a\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u3002\u5b83\u65e2\u6709\u9ad8\u7ea7\u8bed\u8a00\u7684\u7279\u70b9\uff0c\u53c8\u5177\u6709\u6c47\u7f16\u8bed\u8a00\u7684\u7279\u70b9\u3002\u5b83\u53ef\u4ee5\u4f5c\u4e3a\u7cfb\u7edf\u8bbe\u8ba1\u8bed\u8a00\uff0c\u7f16\u5199\u5de5\u4f5c\u7cfb\u7edf\u5e94\u7528\u7a0b\u5e8f\uff0c\u4e5f\u53ef\u4ee5\u4f5c\u4e3a\u5e94\u7528\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\uff0c\u7f16\u5199\u4e0d\u4f9d\u8d56\u8ba1\u7b97\u673a\u786c\u4ef6\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u56e0\u6b64\uff0c\u5b83\u7684\u5e94\u7528\u8303\u56f4\u5e7f\u6cdb\u3002

#include<stdio.h>
#include<stdlib.h>

#define MAX 100

struct addr{
char name[30];
char street[40];
char city[20];
char state[3];
unsigned long int zip;
}add_list[MAX];

void init_list(void),enter(void);
void delete(void),list(void);
void load(void),save(void);
int menu_select(void),find_free(void);

int main(void)
{
char choice;
init_list();/*initialize the structure array*/
for(;;){
choice=menu_select();
switch(choice){
case 1:enter();
break;
case 2:delete();
break;
case 3:list();
break;
case 4:save();
break;
case 5:load();
break;
case 6:exit(0);
}
}
return 0;
}

/*Initialize the list*/
void init_list(void)
{
register int t;
for(t=0;t<MAX;++t)
add_list[t].name[0]='0';
}

/*Get a menu selection*/
int menu_select(void)
{
char s[80];
int c;

printf("1.Enter a name\n");
printf("2.Delete a name\n");
printf("3.List the file\n");
printf("4.Save the file\n");
printf("5.Load the file\n");
printf("6.Quit\n");
do{
printf("\nEnter your choice:");
gets(s);
c=atoi(s);
}while(c<0||c>6);
return c;
}

/*Input addresses into the list*/
void enter(void)
{
int slot;
char s[80];

slot=find_free();

if(slot==-1){
printf("\nList Full");
return;
}
printf("Enter name:");

gets(add_list[slot].name);

printf("Enter street:");
gets(add_list[slot].street);

printf("Enter city:");
gets(add_list[slot].city);

printf("Enter state:");
gets(add_list[slot].state);

printf("Enter zip:");
gets(s);
add_list[slot].zip=strtoul(s,'\0',10);
}

/*Find an unused structure*/
int find_free(void)
{
register int t;

for(t=0;add_list[t].name[0]&&t<MAX;++t);

if(t==MAX)
return -1;/*no slots free*/
return t;
}

/*Delete an address*/
void delete(void)
{
register int slot;
char s[80];

printf("enter record # :");
gets(s);
slot=atoi(s);
if(slot>=0&&slot<MAX)
add_list[slot].name[0]='\0';
}

/*Display the list on the screen*/
void list(void)
{
register int t;

for(t=0;t<MAX;++t){
if(add_list[t].name[0]){
printf("%s\n",add_list[t].name);
printf("%s\n",add_list[t].street);
printf("%s\n",add_list[t].city);
printf("%s\n",add_list[t].state);
printf("%s\n",add_list[t].zip);
}
}
printf("\n\n");
}

/*Save the list*/
void save(void)
{
FILE *fp;
register int i;

if((fp=fopen("maillist","wb"))==NULL)
printf("Cannot open file\n");
return;

for(i=0;i<MAX;i++)
if(*add_list[i].name)
if(fwrite(&add_list[i],sizeof(struct addr),1,fp)!=1)
printf("File write error\n");
fclose(fp);
}

/*Load the file*/
void load(void)
{
FILE *fp;
register int i;

if((fp=fopen("maillist","rb"))==NULL){
printf("Cannot open file\n");
return;
}

init_list();
for(i=0;i<MAX;i++)
if(fread(&add_list[i],sizeof(struct addr),1,fp)!=1){
if(feof(fp))break;
printf("File read error\n");
}
fclose(fp);
}

学生成绩管理系统:#include
<malloc.h>
#include
<stdio.h>
#include
<stdlib.h>
#define
LEN
sizeof(struct
scorenode)
#define
DEBUG
#include
<string.h>
struct
scorenode
{int
number;/*学号*/
char
name[10];/*姓名*/
float
yuwen;/*语文成绩*/
float
yingyu;/*英语成绩*/
float
shuxue;/*数学成绩
*/
struct
scorenode
*next;
};
typedef
struct
scorenode
score;
int
n,k;/*n,k为全局变量,本程序中的函数均可以使用它*/
/*==============================================================================================*/
score
*creat2311(void)
/*函数creat2311,功能:创建链表,此函数带回一个指向链表头的指针*/
{
score*head;
score
*p1,*p2,*p3,*max;
int
i,j;
float
fen;
char
t[10];
n=0;
p1=p2=p3=(score
*)malloc(LEN);head=p3;
/*开辟一个新单元*/
printf("请输入学生资料,输0退出!\n");
repeat1:
printf("请输入学生学号(学号应大于0):");/*输入学号,学号应大于0*/
scanf("%d",&p1->number);
while(p1->number<0)
{getchar();
printf("输入错误,请重新输入学生学号:");
scanf("%d",&p1->number);}
/*输入学号为字符或小于0时,程序报错,提示重新输入学号*/
if(p1->number==0)
goto
end;/*当输入的学号为0时,转到末尾,结束创建链表*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(p1->number!=p3->number)
p3=p3->next;
else
{printf("学号重复,请重输!\n");
goto
repeat1;
/*当输入的学号已经存在,程序报错,返回前面重新输入*/
}
}
}
}
printf("请输入学生姓名:");
scanf("%s",&p1->name);/*输入学生姓名*/
printf("请输入语文成绩(0~100):");/*输入语文成绩,成绩应在0-100*/
scanf("%f",&p1->yuwen);
while(p1->yuwen<0||p1->yuwen>100)
{getchar();
printf("输入错误,请重新输入语文成绩");/*输入错误,重新输入语文成绩直到正确为止*/
scanf("%f",&p1->yuwen);}
printf("请输入英语成绩(0~100):");/*输入英语成绩,成绩应在0-100*/
scanf("%f",&p1->yingyu);
while(p1->yingyu<0||p1->yingyu>100)
{getchar();
printf("输入错误,请重新输入英语成绩");/*输入错误,重新输入英语成绩直到正确为止*/
scanf("%f",&p1->yingyu);}
printf("请输入数学成绩(0~100):");/*输入数学成绩,成绩应在0-100*/
scanf("%f",&p1->shuxue);
while(p1->shuxue<0||p1->shuxue>100)
{getchar();
printf("输入错误,请重新输入数学成绩");
scanf("%f",&p1->shuxue);}/*输入错误,重新输入数学成绩直到正确为止*/
head=NULL;
while(p1->number!=0)
{
n=n+1;
if(n==1)
head=p1;
elsep2->next=p1;
p2=p1;
p1=(score
*)malloc(LEN);
printf("请输入学生资料,输0退出!\n");
repeat2:printf("请输入学生学号(学号应大于0):");
scanf("%d",&p1->number);/*输入学号,学号应大于0*/
while(p1->number<0)
{getchar();
printf("输入错误,请重新输入学生学号:");
scanf("%d",&p1->number);}
/*输入学号为字符或小于0时,程序报错,提示重新输入学号*/
if(p1->number==0)
goto
end;/*当输入的学号为0时,转到末尾,结束创建链表*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(p1->number!=p3->number)
p3=p3->next;
else
{printf("学号重复,请重输!\n");
goto
repeat2;
/*当输入的学号已经存在,程序报错,返回前面重新输入*/
}
}
}
}
printf("请输入学生姓名:");
scanf("%s",&p1->name);/*输入学生姓名*/
printf("请输入语文成绩(0~100):");
scanf("%f",&p1->yuwen);/*输入语文成绩,成绩应在0-100*/
while(p1->yuwen<0||p1->yuwen>100)
{getchar();
printf("输入错误,请重新输入语文成绩");
scanf("%f",&p1->yuwen);}/*输入错误,重新输入语文成绩直到正确为止*/
printf("请输入英语成绩(0~100):");
scanf("%f",&p1->yingyu);/*输入英语成绩,成绩应在0-100*/
while(p1->yingyu<0||p1->yingyu>100)
{getchar();
printf("输入错误,请重新输入英语成绩");
scanf("%f",&p1->yingyu);}/*输入错误,重新输入英语成绩直到正确为止*/
printf("请输入数学成绩(0~100):");
scanf("%f",&p1->shuxue);/*输入数学成绩,成绩应在0-100*/
while(p1->shuxue<0||p1->shuxue>100)
{getchar();
printf("输入错误,请重新输入数学成绩");
scanf("%f",&p1->shuxue);}/*输入错误,重新输入数学成绩直到正确为止*/
}end:
p1=head;
p3=p1;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p1;
p1=p1->next;
if(max->number>p1->number)
{
k=max->number;
max->number=p1->number;
p1->number=k;
/*交换前后结点中的学号值,使得学号大者移到后面的结点中*/
strcpy(t,max->name);
strcpy(max->name,p1->name);
strcpy(p1->name,t);
/*交换前后结点中的姓名,使之与学号相匹配*/
fen=max->yuwen;
max->yuwen=p1->yuwen;
p1->yuwen=fen;
/*交换前后结点中的语文成绩,使之与学号相匹配*/
fen=max->yingyu;
max->yingyu=p1->yingyu;
p1->yingyu=fen;
/*交换前后结点中的英语成绩,使之与学号相匹配*/
fen=max->shuxue;
max->shuxue=p1->shuxue;
p1->shuxue=fen;
/*交换前后结点中的数学成绩,使之与学号相匹配*/
}}
max=head;p1=head;/*重新使max,p指向链表头*/
}
p2->next=NULL;/*链表结尾*/
printf("输入的学生数为:%d个!\n",n);
return(head);}
/*==============================================================================================*/
/*==============================================================================================*/
score
*load2311(score
*head)
/*函数load2311,功能:从文件读入学生记录*/
{
score
*p1,*p2;
int
m=0;
char
filepn[10];
FILE
*fp;
printf("请输入文件路径及文件名:");
scanf("%s",filepn);/*输入文件路径及名称*/
if((fp=fopen(filepn,"r+"))==NULL)
{
printf("不能打开文件!\n");
return
0;
}
fscanf(fp,"
考试成绩管理系统
\n");
fscanf(fp,"作者:周纯钢
班级:
信息023
学号:11
\n");
fscanf(fp,"-----------------------------------------\n");
fscanf(fp,"|学号\t|姓名\t|语文\t|英语\t|数学\t|\n");
fscanf(fp,"-----------------------------------------\n");/*读入表格域*/
printf("
考试成绩管理系统
\n");
printf("
作者:周纯钢
班级:
信息023
学号:11
\n");
printf("-----------------------------------------\n");
printf("|学号\t|姓名\t|语文\t|英语\t|数学\t|\n");
printf("-----------------------------------------\n");/*打印表格域*/
m=m+1;
if(m==1)
{
p1=(score
*)malloc(LEN);
/*开辟一个新单元*/
fscanf(fp,"%d%s%f%f%f",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue);
printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
/*文件读入与显示*/
head=NULL;
do
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(score
*)malloc(LEN);
/*开辟一个新单元*/
fscanf(fp,"%d%s%f%f%f\n",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue);
printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
/*文件读入与显示*/
}while(!feof(fp));
p2->next=p1;
p1->next=NULL;
n=n+1;
}printf("-----------------------------------------\n");/*表格下线*/
fclose(fp);/*结束读入,关闭文件*/
return
(head);
}/*==============================================================================================*/
/*==============================================================================================*/
score
*add2311(score
*head,score
*stu)
/*函数add2311,功能:追加学生资料,并且将所有学生资料按学号排序*/
{
score
*p0,*p1,*p2,*p3,*max;
int
i,j;
float
fen;
char
t[10];p3=stu=(score
*)malloc(LEN);/*开辟一个新单元*/
printf("\n输入要增加的学生的资料!");
repeat4:
printf("请输入学生学号(学号应大于0):");
scanf("%d",&stu->number);
/*输入学号,学号应大于0*/
while(stu->number<0)
{getchar();
printf("输入错误,请重新输入学生学号:");
scanf("%d",&stu->number);}/*输入错误,重新输入学号*/
/******************************************************/
if(stu->number==0)
goto
end2;/*当输入的学号为0时,转到末尾,结束追加*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(stu->number!=p3->number)
p3=p3->next;
else
{printf("学号重复,请重输!\n");
goto
repeat4;
/*当输入的学号已经存在,程序报错,返回前面重新输入*/
}
}
}
}
/******************************************************/
printf("输入学生姓名:");
scanf("%s",stu->name);
/*输入学生姓名*/
printf("请输入语文成绩(0~100):");
scanf("%f",&stu->yuwen);
/*输入语文成绩,成绩应在0-100*/
while(stu->yuwen<0||stu->yuwen>100)
{getchar();
printf("输入错误,请重新输入语文成绩");
scanf("%f",&stu->yuwen);}
/*输入错误,重新输入语文成绩直到正确为止*/
printf("请输入英语成绩(0~100):");
scanf("%f",&stu->yingyu);/*输入英语成绩,成绩应在0-100*/
while(stu->yingyu<0||stu->yingyu>100)
{getchar();
printf("输入错误,请重新输入英语成绩");
scanf("%f",&stu->yingyu);}/*输入错误,重新输入英语成绩直到正确为止*/
printf("请输入数学成绩(0~100):");
scanf("%f",&stu->shuxue);/*输入数学成绩,成绩应在0-100*/
while(stu->shuxue<0||stu->shuxue>100)
{getchar();
printf("输入错误,请重新输入数学成绩");
scanf("%f",&stu->shuxue);}/*输入错误,重新输入数学成绩直到正确为止*/
p1=head;
p0=stu;
if(head==NULL)
{head=p0;p0->next=NULL;}/*当原来链表为空时,从首结点开始存放资料*/
else/*原来链表不为空*/
{
if(p1->next==NULL)/*找到原来链表的末尾*/
{
p1->next=p0;
p0->next=NULL;/*将它与新开单元相连接*/
}
else
{
while(p1->next!=NULL)/*还没找到末尾,继续找*/
{
p2=p1;p1=p1->next;
}
p1->next=p0;
p0->next=NULL;
}}
n=n+1;}printf("-----------------------------------------\n");/*表格下线*/
fclose(fp);/*结束读入,关闭文件*/
return
(head);
}/*==============================================================================================*/
/*==============================================================================================*/
score
*add2311(score
*head,score
*stu)
/*函数add2311,功能:追加学生资料,并且将所有学生资料按学号排序*/
{
score
*p0,*p1,*p2,*p3,*max;
int
i,j;
float
fen;
char
t[10];p3=stu=(score
*)malloc(LEN);/*开辟一个新单元*/
printf("\n输入要增加的学生的资料!");
repeat4:
printf("请输入学生学号(学号应大于0):");
scanf("%d",&stu->number);
/*输入学号,学号应大于0*/
while(stu->number<0)
{getchar();
printf("输入错误,请重新输入学生学号:");
scanf("%d",&stu->number);}/*输入错误,重新输入学号*/
/******************************************************/
if(stu->number==0)
goto
end2;/*当输入的学号为0时,转到末尾,结束追加*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(stu->number!=p3->number)
p3=p3->next;
else
{printf("学号重复,请重输!\n");
goto
repeat4;
/*当输入的学号已经存在,程序报错,返回前面重新输入*/
}
}
}
}

#include<stdio.h>
#include<stdlib.h>

#define MAX 100

struct addr{
char name[30];
char street[40];
char city[20];
char state[3];
unsigned long int zip;
}add_list[MAX];

void init_list(void),enter(void);
void delete(void),list(void);
void load(void),save(void);
int menu_select(void),find_free(void);

int main(void)
{
char choice;
init_list();/*initialize the structure array*/
for(;;){
choice=menu_select();
switch(choice){
case 1:enter();
break;
case 2:delete();
break;
case 3:list();
break;
case 4:save();
break;
case 5:load();
break;
case 6:exit(0);
}
}
return 0;
}

/*Initialize the list*/
void init_list(void)
{
register int t;
for(t=0;t<MAX;++t)
add_list[t].name[0]='0';
}

/*Get a menu selection*/
int menu_select(void)
{
char s[80];
int c;

printf("1.Enter a name\n");
printf("2.Delete a name\n");
printf("3.List the file\n");
printf("4.Save the file\n");
printf("5.Load the file\n");
printf("6.Quit\n");
do{
printf("\nEnter your choice:");
gets(s);
c=atoi(s);
}while(c<0||c>6);
return c;
}

/*Input addresses into the list*/
void enter(void)
{
int slot;
char s[80];

slot=find_free();

if(slot==-1){
printf("\nList Full");
return;
}
printf("Enter name:");

gets(add_list[slot].name);

printf("Enter street:");
gets(add_list[slot].street);

printf("Enter city:");
gets(add_list[slot].city);

printf("Enter state:");
gets(add_list[slot].state);

printf("Enter zip:");
gets(s);
add_list[slot].zip=strtoul(s,'\0',10);
}

/*Find an unused structure*/
int find_free(void)
{
register int t;

for(t=0;add_list[t].name[0]&&t<MAX;++t);

if(t==MAX)
return -1;/*no slots free*/
return t;
}

/*Delete an address*/
void delete(void)
{
register int slot;
char s[80];

printf("enter record # :");
gets(s);
slot=atoi(s);
if(slot>=0&&slot<MAX)
add_list[slot].name[0]='\0';
}

/*Display the list on the screen*/
void list(void)
{
register int t;

for(t=0;t<MAX;++t){
if(add_list[t].name[0]){
printf("%s\n",add_list[t].name);
printf("%s\n",add_list[t].street);
printf("%s\n",add_list[t].city);
printf("%s\n",add_list[t].state);
printf("%s\n",add_list[t].zip);
}
}
printf("\n\n");
}

/*Save the list*/
void save(void)
{
FILE *fp;
register int i;

if((fp=fopen("maillist","wb"))==NULL)
printf("Cannot open file\n");
return;

for(i=0;i<MAX;i++)
if(*add_list[i].name)
if(fwrite(&add_list[i],sizeof(struct addr),1,fp)!=1)
printf("File write error\n");
fclose(fp);
}

/*Load the file*/
void load(void)
{
FILE *fp;
register int i;

if((fp=fopen("maillist","rb"))==NULL){
printf("Cannot open file\n");
return;
}

init_list();
for(i=0;i<MAX;i++)
if(fread(&add_list[i],sizeof(struct addr),1,fp)!=1){
if(feof(fp))break;
printf("File read error\n");
}
fclose(fp);
}

我是运行过再拿上来的,你输入了什么值,然后出了什么错?
=======================================================
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
inline
int
get_value(int
*matrix,
int
n,
int
i,
int
j)
{
return
matrix[i
*
n
+
j];
}
inline
void
set_value(int
*matrix,
int
n,
int
i,
int
j,
int
value)
{
matrix[i
*
n
+
j]
=
value;
}
inline
int
*
get(int
*matrix,
int
n,
int
i,
int
j)
{
return
matrix
+
i
*
n
+
j;
}
inline
int
prev(int
m,
int
n)
{
return
m
>
0
?
m
-
1
:
n
-
1;
}
inline
int
next(int
m,
int
n)
{
return
m
<
n
-
1
?
m
+
1
:
0;
}
inline
void
reverse(int
*matrix,
int
n,
int
i,
int
j,
int
t)
{
set_value(matrix,
n,
i,
j,
t
-
get_value(matrix,
n,
i,
j));
}
inline
void
swap(int
*a,
int
*b)
{
int
t
=
*a;
*a
=
*b;
*b
=
t;
}
int
*
intialize_matrix(int
n)
{
int
len
=
sizeof(int)
*
(n
*
n);
int
*matrix
=
(int
*)
malloc(len);
memset(matrix,
0,
len);
return
matrix;
}
int
int_length(int
n)
{
int
len
=
0;
while
(n
>
0)
{
n
/=
10;
++len;
}
return
len;
}
void
generate_odd_matrix(int
*matrix,
int
n,
int
s)
{
int
i
=
0,
j
=
n
>>
1,
end
=
s
+
n
*
n;
set_value(matrix,
n,
i,
j,
s);
while
(++s
!=
end)
{
if
(get_value(matrix,
n,
prev(i,
n),
next(j,
n))
==
0)
{
i
=
prev(i,
n);
j
=
next(j,
n);
}
else
i
=
next(i,
n);
set_value(matrix,
n,
i,
j,
s);
}
}
void
sequential_fill(int
*matrix,
int
n,
int
s)
{
int
end
=
n
*
n;
while
(s
<=
end)
{
*matrix++
=
s++;
}
}
void
generate_4k_matrix(int
*matrix,
int
n,
int
s)
{
sequential_fill(matrix,
n,
s);
int
i,
j,
m,
t
=
n
*
n
+
1;
for
(i
=
0;
i
<
n;
i
+=
4)
{
for
(j
=
0;
j
<
n;
j
+=
4)
{
for
(m
=
0;
m
<
4;
++m)
{
reverse(matrix,
n,
i
+
m,
j
+
m,
t);
reverse(matrix,
n,
i
+
m,
j
+
3
-
m,
t);
}
}
}
}
void
matrix_fill(int
*matrix,
int
n,
int
*small,
int
m,
int
i,
int
j,
int
offset)
{
int
a,
b;
for
(a
=
0;
a
!=
m;
++a)
{
for
(b
=
0;
b
!=
m;
++b)
{
set_value(matrix,
n,
i
+
a,
j
+
b,
get_value(small,
m,
a,
b)
+
offset);
}
}
}
void
print_matrix(int
*matrix,
int
n);
void
generate_4k2_matrix(int
*matrix,
int
n,
int
s)
{
int
m
=
n
>>
1,
m_sqr
=
m
*
m,
k
=
n
/
4,
i,
j,
p;
int
*small_matrix
=
intialize_matrix(m);
generate_odd_matrix(small_matrix,
m,
s);
matrix_fill(matrix,
n,
small_matrix,
m,
0,
0,
0);
matrix_fill(matrix,
n,
small_matrix,
m,
0,
m,
m_sqr
*
2);
matrix_fill(matrix,
n,
small_matrix,
m,
m,
0,
m_sqr
*
3);
matrix_fill(matrix,
n,
small_matrix,
m,
m,
m,
m_sqr);
p
=
m
>>
1;
for
(i
=
0;
i
<
p;
++i)
{
for
(j
=
0;
j
<
k;
++j)
{
swap(get(matrix,
n,
i,
j),
get(matrix,
n,
i
+
m,
j));
}
}
for
(j
=
p;
j
<
p
+
k;
++j)
{
swap(get(matrix,
n,
i,
j),
get(matrix,
n,
i
+
m,
j));
}
for
(++i
;
i
<
m;
++i)
{
for
(j
=
0;
j
<
k;
++j)
{
swap(get(matrix,
n,
i,
j),
get(matrix,
n,
i
+
m,
j));
}
}
for
(i
=
0;
i
<
m;
++i)
{
for
(j
=
0;
j
<
k
-
1;
++j)
{
swap(get(matrix,
n,
i,
m
+
p
-
j),
get(matrix,
n,
i
+
m,
m
+
p
-
j));
}
}
free(small_matrix);
}
void
print_matrix(int
*matrix,
int
n)
{
int
i,
j;
char
*fof
=
"%%%dd
",
format[10];
sprintf(format,
fof,
int_length(n
*
n));
for
(i
=
0;
i
!=
n;
++i)
{
for
(j
=
0;
j
!=
n;
++j)
{
printf(format,
get_value(matrix,
n,
i,
j));
}
printf("\n");
}
printf("\n");
}
int
main()
{
int
n;
printf("Input
the
dimension
m(n
>
3):
\n");
scanf("%d",
&n);
if
(n
<
3)
{
printf("n
must
be
greater
than
3\n");
return
0;
}
int
*matrix
=
intialize_matrix(n);
if
(n
%
2
!=
0)
{
generate_odd_matrix(matrix,
n,
1);
}
else
if
(n
%
4
==
0)
{
generate_4k_matrix(matrix,
n,
1);
}
else
{
generate_4k2_matrix(matrix,
n,
1);
}
print_matrix(matrix,
n);
free(matrix);
return
0;
}

#define后面的FORMAT
来代表"%d\n%s\n%f\n........"
如果在程序中出现FORMAT
就会被替换成"%d\n%s\n%f\n........“
,给你举个简单的例子.
#define
N
10
就相当于
定义一个变量N=10
,程序中出现的N
都会给替换成10.
希望对你有所帮助
!

  • c璇█绋嬪簭璁捐瀹炰緥
    绛旓細/ 缁欎綘鐨勫缓璁細寤鸿浣犺嚜宸卞彂鍔ㄨ剳绛嬶紝瑙e喅濡傛灉鏈夌エ鏁扮浉鍚岀殑鎯呭喌銆傛垜鍐欑殑浠g爜娌℃湁鍋氳繖绉嶅垽鏂紝鎵浠ュ綋鏈夌浉鍚岀エ鏁版椂浼氬嚭閿欒鐨勭粨鏋滐紒/ include <stdio.h> include <stdlib.h> //娓呭睆鍑芥暟鐨勫ご鏂囦欢 char szName[5][10]; //瀛樻斁瀛︾敓鍚嶅瓧 int nNum[5]={0}; //瀛樻斁姣忎釜鍚屽鐨勭エ鏁 int ...
  • 鐢C璇█璁捐涓涓绋嬪簭
    绛旓細棣栧厛鎶婃墍鏈夌殑鍏冪礌浠庡皬鍒板ぇ鎺掍竴娆″簭锛岀劧鍚庢壘鍑虹涓涓暟缁勪笅鏍囪窡鏁扮粍鍏冪礌涓嶅搴旂殑鍏冪礌锛岄偅鏍峰氨鐭ラ亾鎵缂虹殑鏁存暟浜嗐備妇涓緥瀛愶紝姣斿锛宎[999]涓哄寘鍚999涓厓绱犵殑鏁扮粍锛屾暟缁勪腑缂虹殑鏄3鐨勮瘽锛岄偅涔堥氳繃鎺掑簭鍚庯紝a[0]=1,a[1]=2,a[2]=4,a[3]=5鈥︹︼紝浠巃[3]寮濮嬶紝鏁扮粍涓嶆弧瓒砤[i]=i+1鐨勮寰嬶紝鎵浠...
  • 鐢C璇█璁捐灏忔父鎴忕殑绋嬪簭??鎬!!!
    绛旓細鐢C璇█璁捐灏忔父鎴忕殑绋嬪簭??鎬!!! 1,濡傝椽鍚冭泧,浜斿瓙妫嬬瓑娓告垙!2,瑕佺敤C++鐨绋嬪簭璁捐!鎶婄▼搴忓啓璇︾粏鐐硅阿璋!!... 1,濡傝椽鍚冭泧,浜斿瓙妫嬬瓑娓告垙! 2,瑕佺敤C++鐨勭▼搴忚璁!鎶婄▼搴忓啓璇︾粏鐐 璋㈣阿!! 灞曞紑  鎴戞潵绛 3涓洖绛 #鐑# 宸插濂虫у氨搴旇鎵挎媴瀹堕噷澶ч儴鍒嗗鍔″悧? 灏曡殏铓 2009-03-04 路 TA鑾峰緱瓒呰繃...
  • 銆婂崟鐗囨満C璇█绋嬪簭璁捐瀹炶100渚嬧斺斿熀浜8051+Proteus浠跨湡銆 绗03...
    绛旓細瀹炰緥29锛氱敤P0 銆丳1鍙f樉绀烘暣鍨嬪嚱鏁拌繑鍥炲 瀹炰緥30锛氱敤鏈夊弬鍑芥暟鎺у埗P0鍙8浣峀ED娴佹按閫熷害 瀹炰緥31锛氱敤鏁扮粍浣滃嚱鏁板弬鏁版帶鍒舵祦姘磋姳鏍 瀹炰緥32锛氱敤鎸囬拡浣滃嚱鏁板弬鏁版帶鍒禤0鍙8浣峀ED娴佹按鐐逛寒 瀹炰緥33锛氱敤鍑芥暟鍨嬫寚閽堟帶鍒禤1鍙g伅鑺辨牱 瀹炰緥34锛氱敤鎸囬拡鏁扮粍浣滀负鍑芥暟鐨勫弬鏁版樉绀哄涓瓧绗︿覆 鍗曠墖鏈c璇█缂栫▼100涓疄渚嬬洰褰2 瀹炰緥35...
  • 绠鍗曠殑C璇█绋嬪簭璁捐
    绛旓細//鍙互浣跨敤缁撴瀯浣擄紱include<stdio.h> struct people { int age;char name[10];char sex;};void main(){ int n;printf("浜烘暟:");scanf("%d",&n);people p[100];int i;for(i=0;i<n;i++){ printf("杈撳叆鍚嶅瓧锛");scanf("%s",p[i].name);printf("杈撳叆鎬у埆锛");scanf("%s",&...
  • 璁捐涓涓C璇█绋嬪簭
    绛旓細include<stdio.h> include<stdlib.h> include<conio.h> include<string.h> struct student{ int id;char name[10];int age;int cell;int tel;}st[50];int i=0;void shuru() { char a;do{ printf("\n璇疯緭鍏ヨ韩浠借瘉鍙:");scanf("%d",&st[i].id);fflush(stdin);printf("\n璇疯緭鍏...
  • c璇█,鏁扮粍绋嬪簭璁捐
    绛旓細c璇█,鏁扮粍绋嬪簭璁捐 10 璁綼鏄竴涓暣鍨嬫暟缁,n鍜寈閮芥槸鏁存暟,鏁扮粍a涓悇鍏冪礌鐨勫间簰寮傘傚湪鏁扮粍a鐨勫厓绱犱腑鏌ユ壘涓嶺鐩稿悓鐨勫厓绱,濡傛灉鎵惧埌,杈撳嚭x鍦ㄦ暟缁刟涓殑涓嬫爣浣嶇疆;濡傛灉娌℃湁鎵惧埌,杈撳嚭鈥滄病鏈夋壘鍒颁笌x鐩稿悓鐨勫厓绱!鈥濄 杈撳嚭绀轰緥:杈撳叆鏁扮粍鍏冪礌鐨勪釜鏁:6杈撳叆鏁扮粍6涓厓绱:1 3 5 7 9 6 杈撳叆... 灞曞紑 ...
  • c璇█绋嬪簭璇剧▼璁捐淇濆畨鍊肩彮瀹夋帓绯荤粺鎬庝箞鍋?
    绛旓細鏌愬叕鍙告湁7鍚嶄繚瀹変汉鍛橈細璧点侀挶銆佸瓩銆佹潕銆佸懆銆佸惔銆侀檲銆傜敱浜庡伐浣滈渶瑕佽繘琛岃疆浼戝埗搴︼紝涓鏄熸湡涓瘡浜轰紤鎭竴澶┿傞鍏堣姣忎竴涓汉閫夋嫨鑷繁璁や负鍚堥傜殑浼戞伅鏃ャ傝缂栧埗涓绋嬪簭锛屾墦鍗拌疆浼戠殑鎵鏈夊彲鑳芥柟妗堛傚綋鐒朵娇姣忎釜浜洪兘婊℃剰锛屼緥濡傛瘡浜洪夋嫨鐨勪紤鎭棩濡備笅锛氳档锛氭槦鏈熶簩銆佹槦鏈熷洓 閽憋細鏄熸湡涓銆佹槦鏈熷叚 瀛欙細鏄熸湡涓夈佹槦鏈熸棩 鏉...
  • C璇█寰幆缁撴瀯绋嬪簭璁捐棰
    绛旓細(1)鐢╳hile璇彞瀹炵幇 include<stdio.h> void main(){ int m,n;printf("璇疯緭鍏ヤ袱涓鏁存暟:");scanf("%d%d",&m,&n);while(m!=n){ if(m>n)m=m-n;else n=n-m;printf("m=%d n=%d\n",m,n); \\杈撳嚭m,n鍦ㄨ繍绠楁瀯鎴愪腑鐨勫彉鍖 } printf("鏈澶у叕绾︽暟涓:%d\n",m);} (2)鐢╠o...
  • C璇█绋嬪簭璁捐,鐢ㄦ埛杈撳叆涓涓瓧绗︿覆,涓涓瓧绗,缁熻璇ュ瓧绗﹀湪瀛楃涓蹭腑鍑虹幇...
    绛旓細include<stdio.h> main(){char s[99],c;int i=0,n=0;printf("杈撳叆瀛楃涓(鎸塃nter缁撴潫)锛歕n");gets(s);printf("杈撳叆瀛楃(鎸塃nter缁撴潫)锛");c=getchar();for(i=0;i<99;i++){if(c==s[i])n++;} printf("瀛楃涓%s涓瓧绗%c鍑虹幇%d娆",s,c,n);} //鐪嬫椂闂达紝浣犳槸鐢ㄤ笉鍒颁簡...
  • 扩展阅读:c语言小项目实例 ... c语言自学免费网站 ... c++编程软件 ... 初学者c语言编程软件 ... 简单的c语言程序 ... 大一c语言考试知识点 ... c#简单程序实例 ... c语言经典100例 ... c语言程序设计第三版pdf ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网