c语言学生信息管理系统代码

c语言学生信息管理系统代码,第1张

代码如下:

#include<stdio.h>

#include<malloc.h>

#include<stdlib.h>

#include<string.h>

#include<conio.h>

typedef struct examinee //考生信息结构

{   char examno[20]//准考证号

char name[10]//姓名

char sex[4]//性别

short age//年龄

char examtype[10]//报考科目

}ElemType

typedef struct Node //定义链表结点

{

ElemType data//数据域

struct Node *next//指针域

}Node,*List,*position

List make_empty( List L )//创建一个带头结点的空表

int is_empty( List L )//测试链表是否是空表

int is_last( position p, List L )//测试当前位置是否是表尾

position make_node( position p,int n )//创建结点并输入考生信息

void put_information( position p )//是否输出该考生信息

void put_name_information( List L )//输出姓名为xx的考生信息

int put_pos_information( position p )//输出该地址考生信息

void link_to_tail( List L, position p )//将结点连接到表尾

int ciculation_make()//循环创建考生信息

int judge_put_all()//是否输出所有考生信息

void put_all(List L)//输出所有考生信息。

position find( List L )//查找第一个姓名为xx的元素并返回位置

position find_previous( List L )//查找第一个姓名为xx的元素并返回该元素直接前驱的位置

//int judge_delete_val()//询问是否删除考生数据

int delete_val( List L )//删除指定考生信息并输出其信息

void menu(List L)//菜单函数

List L

//position p

int

main( void ) 

{

List L = NULL//定义头结点指针

position p = NULL//定义表工作指针

L = make_empty( L )//创建空表

printf("\t\t\t★★考生报名管理程序★★\n\t\t----------------------------------------\n")

menu(L)

return 0

}

//创建一个带头结点的空表

List

make_empty( List L)

{

L = ( List ) malloc (sizeof( Node ))

if(NULL == L)

{

printf("内存分配失败")

exit( 1 )

}

L->next = NULL

//printf("空表创建成功。\n")

return L

}

//创建结点并输入考生信息

position

make_node( position p ,int n)

{

if(n) //n为1是创建结点并输入,n为0是修改

{

p = ( position ) malloc ( sizeof ( Node ))

p->next = NULL

}

printf("请输入考生准考证号:")

gets(p->data.examno)

printf("请输入考生姓名:")

gets(p->data.name)

do

{

printf("请输入考生性别,只能输入“男”或者“女”:")

gets(p->data.sex)

}

while( 0 != strcmp( p->data.sex, "男" ) &&0 != strcmp( p->data.sex, "女" ))//判断性别是否有误

printf("请输入考生年龄:")

scanf("%hd",&p->data.age)

getchar()  //如果把这句删掉,就“无法执行”下面的报考类别

/*下面的do while用来判断报考类别是否输入有误*/

do

{

printf("请输入报考类别,只能输入“数学”或“英语”或者“数据结构”:")

gets(p->data.examtype)

}

while( 0 != strcmp( "英语", p->data.examtype ) &&0 != strcmp( "数学", p->data.examtype ) &&0 != strcmp( "数据结构", p->data.examtype ))

if(n)

{

printf("报名成功\n")

}

else

{

printf("修改成功\n")

}

return p

}

//前插法;

void

link_to_tail( List L, position p)

{

p->next = L->next

L->next = p

}

//查找第一个姓名为xx的元素并返回位置

position

find( List L )

{

position p = L->next

char name[10]

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

gets(name)

while( p != NULL &&0 != strcmp( p->data.name , name))

{

p=p->next

}

return p

}

//测试链表是否是空表

int

is_empty( List L )

{

return L->next == NULL

}

//测试当前位置是否是表尾

int

is_last( position p, List L )

{

return p->next == NULL

}

//输出姓名为xx的考生信息

void

put_name_information( List L )

{

position p = find(L)

if(p!=NULL)

{

printf("您要查找的考生信息:\n")

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n\n",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype)

}

else

{

printf("没有您要找的学生。\n")

}

}

//循环创建考生信息

int

ciculation_make()

{

int n = 2

do

{

printf("是否继续创建考生信息?是请输入“1”,不是请输入“0”:")

scanf("%d",&n)

getchar()

}

while( n != 0 &&n != 1)

return n

}

//是否输出考生信息

void

put_information( position p )

{

int n=2

do

{

printf("是否输出该考生信息?是请输入“1”,不是请输入“0”:")

scanf("%d",&n)

getchar()

}

while( n != 0 &&n != 1)

if(n)

{

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype)

}

}

//是否输出所有考生信息

int

judge_put_all()

{

int n = 2

do

{

printf("是否输出所有考生信息?是请输入“1”,不是请输入“0”:")

scanf("%d",&n)

getchar()

}

while( n != 0 &&n != 1)

return n

}

//输出所有考生信息

void

put_all(List L)

{

if(L->next == NULL)

{

printf("现无考生报名!\n")

}

else

{

position p=L->next

while( p != NULL )

{

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype)

p=p->next

}

}

//getchar()

}

//询问是否删除考生数据

int

judge_delete_val()

{

int n = 2

do

{

printf("是否要删除某个考生数据?是请输入“1”,不是输入“0”:")

scanf("%d",&n)

getchar()

}

while( n != 0 &&n != 1)

return n

}

//查找第一个姓名为xx的元素并返回其直接前驱的位置

position

find_previous( List L )

{

position q = L

position p = L->next

char name[10]

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

gets(name)

while( p != NULL &&0 != strcmp( p->data.name , name))

{

q=p

p=p->next

}

if( p != NULL )

{

return q

}

else

return p

}

//删除指定考生信息并输出其信息

int

delete_val(List L)

{

int n=2

position q=NULL

position p=find_previous( L )//返回考生信息地址

if( NULL == p )

{

printf("你要删除的考生不存在\n")

return 0

}

else

{

q = p->next

p->next = q->next

printf("删除成功。\n删除的考生信息为:\n")

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n",q->data.examno,q->data.name,q->data.sex,q->data.age,q->data.examtype)

free(q)

return 1

}

}

//输出该地址考试信息

int

put_pos_information( position p )

{

if(p != NULL )

{

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n\n",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype)

return 1

}

else

{

printf("没有您要查找的学生。")

return 0

}

}

//菜单函数

void

menu(List L)

{

printf("\t\t\t   a. 考生报名入口\n")

printf("\t\t\t   b. 查询考生信息\n")

printf("\t\t\t   c. 修改考生信息\n")

printf("\t\t\t   d. 删除考生信息\n")

printf("\t\t\t   e. 全部考生信息\n")

printf("\t\t\t   f. 程序作者信息\n")

printf("\t\t\t   g.   退出程序\n")

char n='h'

while(n != 'g')

{

do  //确定正确输入

{

printf("请通过字母序号选择功能:")

n = getchar()

getchar()

putchar('\n')

if( n <'a' || n >'g')

{

printf("错误的字母序号。\n")

}

}

while( n <'a' || n >'g' )

switch (n)

{

case 'a':

{

printf("请输入报名考生信息:\n")

position p = make_node( p, 1 )//创建新结点

link_to_tail( L, p )//将新结点连接到表上

put_information( p )   //是否输出该考生信息

putchar('\n')

}

break

case 'b':

{

put_name_information( L )

putchar('\n')

}

break

case 'c':

{

int n=0

position p = NULL

printf("您正在进行修改 *** 作。\n")

p = find(L)

n = put_pos_information( p )

if(n)

{

make_node( p , 0 )

put_information( p )   //是否输出该考生信息

}

putchar('\n')

}

break

case 'd':

{

printf("您正在进行删除 *** 作。\n")

delete_val( L )

putchar('\n')

}

break

case 'e':

{

put_all( L )

putchar('\n')

}

break

case 'f':

{

printf("              修改日期    版本号      修改人      修改内容    \n")

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

printf("              2018.6.19    v2.0       陈百川     增加主菜单\n")

printf("              2018.6.23    v3.0       陈百川   增加生成文件功能\n\n")

printf("            该版本号为v2.0\n")

putchar('\n')

}

break

default:

break

}

}

printf("                     感谢本次使用,祝您生活愉快。")

getch()

}

扩展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:

百度百科——C语言

Dim sqlstring As String

Dim conn As New ADODB.Connection

Dim rs1  As New ADODB.Recordsetconn.Open "provider=Microsoft.Jet.oledb.4.0" & "data source= " & "\数据库路径+名称 " & "Persist Security Info=False"   

sqlstring = "select * from 学生信息表 where 姓名='" & text1.text & "'"

rs1.Open sqlstring, conn, 1, 3

text2.text = rs1!考试成绩   

rs1.Close   

conn.Close


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

原文地址:https://54852.com/yw/8045479.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存