c语言程序设计课题考验什么

c语言程序设计课题考验什么,第1张

考查考生对c程序设计中基本概念和基本知识的理解

一、C语言概述。

1. 了解C语言的基本符号。

2. 了解C语言的词汇(关键字、标识符、常量、运算符、标点符号等)。

3. 掌握C程序的基本框架。

4. 能够使用Visual C++ 6. 0 集成开发环境编辑、编译、运行与调试程序。

二、数据类型、表达式和基本运算。

1. 掌握C数据类型(基本类型,指针类型)及其定义方法。

2. 了解C的常量定义(整型常量,字符常量,逻辑常量,实型常量,地址常量,符号常量)。

3. 掌握变量的定义与使用方法(变量的定义及初始化,全局变量,局部变量)。

4. 掌握C运算符的种类、运算优先级和结合性。

5. 熟练掌握C表达式类型及求值规则(赋值运算,算术运算符和算术表达式,关系运算符和关系表达式,逻辑运算符和逻辑表达式,条件运算,指针运算,逗号表达式)。

给,已经编译运行确认了:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<conio.h>

#define N 10

int M=0

struct student

{

char num[13]

char name[20]

char sex

char address[30]

intage

}

typedef struct LB

{

struct student XINXI

struct LB *next

}LB_1,*LB_2

void CAIDANG()

{

printf(" \t \t \t (欢迎使用本班级档案管理系统)\t\t\t\t\n")

printf("★*★*★*★*★*★*★*★*★*★ 欢迎进入我们的系统 ★*★*★*★*★*★*★*★*★*★\n\n")

printf("1.录入学生资料\t\t\t\t\t4.查询学生信息\n\n")

printf("2.修改学生信息\t\t\t\t\t5.删除学生信息\n\n")

printf("3.保存学生信息\t\t\t\t\t0.退出档案系统\n\n")

printf("\n")

printf("★*★*★*★*★*★*★*★*★*★ 欢迎进入本系统 ★*★*★*★*★*★*★*★*★*★\n")

}

/*文本颜色*/

void color()

{

textbackground(8)

textcolor(9)

clrscr()

}

void Wrong()

{

printf("\n对不起您的输入错误!\n")

}

void SORRY()

{

printf("\n对不起该同学现没有任何信息!\n")

}

void printe(LB_1 *p)/* 本函数用于输出英文*/

{

printf(" %-2s %s\t %s\t%s\t %d\t \n",p->XINXI.num,p->XINXI.name,p->XINXI.sex,p->XINXI.address,p->XINXI.age)

}

/* 该函数用于定位链表中符合要求的接点,并返回该指针*/

LB_1 *Locate(LB_2 l,char findmess[],char nameornum[])

{

LB_1 *r

if(strcmp(nameornum,"num")==0) /* 按学号查询*/

{

r=l->next

while(r!=NULL)

{

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

return r

r=r->next

}

}

else if(strcmp(nameornum,"name")==0) /* 按姓名查询*/

{

r=l->next

while(r!=NULL)

{

if(strcmp(r->XINXI.name,findmess)==0)

return r

r=r->next

}

} return 0

}

/*以下是增加学生信息的函数*/

void TIANJIA(LB_2 l)

{

LB_1 *p,*r,*s

char num[13]

r=ls=l->next

while(r->next!=NULL) /*些处循环一直到最后*/

r=r->next

while(1)

{

printf(" 请输入添加的学生学号(输入'0'返回上一级菜单:)")

scanf("%s",num)

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

break

while(s)

{

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

{

printf("(必看提示):学号为'%s'的学生已有信息,若要修改请你输入'2 修改'!\n",num)

printe(s)

printf("\n")

return

}

s=s->next

} p=(LB_1 *)malloc(sizeof(LB_1))

strcpy(p->XINXI.num,num)

printf(" 请你输入学号:")

scanf("%s",p->XINXI.num)

getchar()

printf(" 请你输入姓名:")

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

getchar()

printf(" 请你输入性别:")

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

getchar()

printf(" 请你输入地址:")

scanf("%s",p->XINXI.address)

getchar()

printf(" 请你输入年龄:")

scanf("%d",&p->XINXI.age)

getchar()

/* 下面是把指针变量转到链表的下一个结点中以便循环的时候使用*/

p->next=NULL

r->next=p

r=pM=1

}

}

/*以下是删除学生信息的函数*/

void SHANCHU(LB_2 l)

{

int sel

LB_1 *p,*r

char findmess[20]

if(!l->next)

{

printf("\n******(必看提示):对不起,现文件中没有信息:所以您不能查询!\n")

return

}

printf("\n <必看提示><以学号删除请输入1\n><以姓名删除请输入2\n>PLEASE:")

scanf("%d",&sel)

if(sel==1)

{

printf("请输入要删除的学生的学号PLEASE:")

scanf("%s",findmess)

p=Locate(l,findmess,"num")

if(p)

{ r=l

while(r->next!=p)

r=r->next

r->next=p->next

free(p)

printf("\n*******(必看提示):该学生的信息已完全删除成功!\n")

M=1

}

else

SORRY()

}

else if(sel==2)

{

printf("请输入要删除的学生的姓名PLEASE:")

scanf("%s",findmess)

p=Locate(l,findmess,"name")

if(p)

{ r=l

while(r->next!=p)

r=r->next

r->next=p->next

free(p)

printf("\n******(必看提示):该学生信息已成功删除!\n")

M=1

}

else

SORRY()

}

else

Wrong()

}

/*以下是查询学生信息*/

void CHAXIONG(LB_2 l)

{ int sel

char findmess[20]

LB_1 *p

if(!l->next)

{ printf("\n******(必看提示):对不起,现文件中没有信息:所以您不能查询!\n")

return

}

printf("\n以学号查询请输入1:\n以姓名查询请输入2:\n以性别查询请输入3:\n以性别查询请输入4:\nPLEASE:")

scanf("%d",&sel)

if(sel==1)/*输入学号查询*/

{

printf("请你输入要查找的学号:")

scanf("%s",findmess)

p=Locate(l,findmess,"num")

if(p)

{ printf("\t\t\t\t查找结果\n")

printf(" 学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\n",p->XINXI.num,p->XINXI.name,p->XINXI.sex,p->XINXI.address,p->XINXI.age)

}

else

SORRY()

}

if(sel==2) /* 输入姓名查询*/

{

printf("请你输入要查找的姓名:")

scanf("%s",findmess)

p=Locate(l,findmess,"name")

if(p)

{ printf("\t\t\t\t查找结果\n")

printf(" 学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\n",p->XINXI.num,p->XINXI.name,p->XINXI.sex,p->XINXI.address,p->XINXI.age)

}

else

SORRY()

}

else

Wrong()

}

/*以下是修改学生信息的函数*/

void XIUGEI(LB_2 l)

{

LB_1 *p

long int i,j

char findmess[20]

if(!l->next)

{ printf("\n(必看提示):对不起,现文件中没有信息:所以您不能查询!\n")

return

}

for(i=1i<=2i++)

{

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

printf("请输入密码:")

scanf("%s",&j)

if(j==2007)break

else

{if(j!=2007)

return(CAIDANG())

}

}

printf("请你输入要修改的学生学号:")

scanf("%s",findmess)

p=Locate(l,findmess,"num")

if(p)

{ printf("请你输入新学号(原来是%s):",p->XINXI.num)

scanf("%s",p->XINXI.num)

printf("请你输入新姓名(原来是%s):",p->XINXI.name)

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

printf("请你输入新性别(原来是%s):",p->XINXI.sex)

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

printf("请你输入新地址(原来是%s):",p->XINXI.address)

scanf("%s",p->XINXI.address)

printf("请你输入新年龄(原来是%d):",p->XINXI.age)

scanf("%s",p->XINXI.age)

getchar()

M=1

}

else

SORRY()

}

/*保存在文件中*/

void BAOCONG(LB_2 l)

{

FILE* fp

LB_1 *p

int flag=1,count=0

fp=fopen("c:\\lyg","wr")

if(fp==NULL)

{

printf("\n=====>提示:重新打开文件时发生错误!\n")

exit(1)

}

p=l->next

while(p)

{

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

{ p=p->next

count++

}

else

{ flag=0

break

}

}

if(flag)

{ printf("\n 提示;正在保存文件 共保存了%d条信息\n",count)M=0

}

fclose(fp)

}

/*以下是主函数*/

void main()

{

LB_2 l/* 连表*/

FILE *fp/* 文件指针*/

int sellong i,j,d

char ch

char jian

int count=0

LB_1 *p,*r

color()

clrscr()

l=(LB_1*)malloc(sizeof(LB_1))

l->next=NULL

r=l

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

if(fp==NULL)

{

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

printf("\n")

printf(" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" Welcome to come to our system!!! \n"

" You can only inquire your own messages! If you want to see about other \n"

" students' messages,you need first to send inquirment to them,asking for \n"

" agreement,then you can visit his/her messages! \n"

" Have a good time! now you can come in!!! \n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" 注意:系统启动码为 : ILOVEMYSCHOOLVERYMUCH !!!\n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"

" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n")

printf("欢迎使用,本系统中现没有任何记录,您要先创建文件请按以下 *** 做进行PLEASE:\n")

printf("\n提示:文件还不存在,是否创建?(y/n)请做选择--\n")

printf("\n")

scanf("%c",&jian)

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

{fp=fopen("C:\\lyg","wb")

clrscr()

}

{for(i=1i<=2i++)

{

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

printf("请输入密码:")

scanf("%ld",&j)

if(j==2007)break

else

{if(j!=2007)return

}

}

}

exit(0)clrscr()

}

while(!feof(fp))

{

p=(LB_1*)malloc(sizeof(LB_1))

if(fread(p,sizeof(LB_1),1,fp)) /* 将文件的内容放入链表中*/

{

p->next=NULL

r->next=p

r=p/*把该结点放入链表中*/

count++

}

}

fclose(fp)/* 关闭文件*/

while(1)

{

CAIDANG()

printf("请你选择 *** 作:")

scanf("%d",&sel)

clrscr()

printf("\n\n\n")

if(sel==0)

{

if(M==1)

{ getchar()

printf("\n(必看提示):链表中的信息已经改动,如果确认把改动保存在文件中请做选择(y/n)?\n")

scanf("%c",&ch)

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

BAOCONG(l)

}

breakclrscr()

}

switch(sel)

{

case 1: TIANJIA(l)break

case 4: CHAXIONG(l)break

case 3: BAOCONG(l)break

case 2: XIUGEI(l)break

case 5: SHANCHU(l)break

default: getchar()break

}

} end:

getchar()

}


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

原文地址: http://outofmemory.cn/yw/7690113.html

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

发表评论

登录后才能评论

评论列表(0条)

保存