您的位置:首页 > 其它

课程设计--考试报名管理系统

2016-01-01 11:44 706 查看
<span style="font-size:18px;">/*
Copyright (c)2015,烟台大学计算机与控制工程学院
All rights reserved.
文件名称:学期总结
作    者:佟兴锋
完成日期:2015年12月31日
版 本 号:v1.0

问题描述:课程设计--考试报名系统
*/</span>


.h文件

<span style="font-family:FangSong_GB2312;font-size:18px;">#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#include<windows.h>
#include<string>
#include<iostream>
using namespace std;

struct ID
{
char name[20];  //定义年龄
_int64 num;     //定义考号
int age;        //定义年龄
char sex[5];    //定义性别
char kind[20];  //定义报考类型
ID *next;       //定义结构体指针
};
void sort(ID *head);
ID a[100];//定义结构体数组
int shuzudaxiao=0;
int sum_age=0,max_age=0,min_age=100,pc=0;
float ave_age=0;
ID *creat()//建立学生信息:准考证号,姓名,年龄,性别,报考类型
{
ID *p1,*p2,*head;
int pd;
p1=p2=head=NULL;
printf("\t\t\t 开始输入记录!!!\n");
printf("please input pd:\n");
scanf("%d",&pd);
while(pd!=0)//如果pd不等于0,执行循环
{
p1=(ID*)malloc(sizeof(ID));//创建头结点p1
printf("请输入学生的准考证号:\n");
scanf("%I64d",&p1->num);
printf("请输入学生的姓名:\n");
scanf("%s",p1->name);
printf("请输入学生的年龄:\n");
scanf("%d",&p1->age);
max_age=p1->age;
if(min_age>p1->age)
min_age=p1->age;
printf("请输入学生的性别:\n");
scanf("%s",p1->sex);
printf("请输入学生的报考类别:\n");
scanf("%s",p1->kind);
if(head==NULL)//如果头结点不等于NULL,完成交换
{                                                                                </span>
<span style="font-family:FangSong_GB2312;font-size:18px;">           head=p1;
p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
printf("please input pd:\n");
scanf("%d",&pd);
pc++;
}
printf("\t\t\t\t建 立 信 息 成 功!\n");
printf("\n");
printf("\n");
p2->next=NULL;
return(head);//返回创建链表的头指针
}
ID *insert(ID *head)//插入学生信息:准考证号,姓名,年龄,性别,报考类型
{
ID *temp,*p1,*p2;
int pd;
start: p1=head;
printf("\t\t\t插入操作开始!!!\n");
temp=(ID *)malloc(sizeof(ID));//创建头结点temp
printf("请输入学生的准考证号:\n");
scanf("%I64d",&temp->num);
printf("请输入学生的姓名:\n");
scanf("%s",temp->name);
printf("请输入学生的年龄:\n");
scanf("%d",&temp->age);
printf("请输入学生的性别:\n");
scanf("%s",temp->sex);
printf("请输入学生的报考类别:\n");
scanf("%s",temp->kind);
if (head==NULL)//如果头结点为空,完成交换
{
head=temp;
temp->next=NULL;
}
else
{
while(p1!=NULL)
{
p2=p1;
p1=p1->next;
}
p2->next=temp;
temp->next=NULL;
}
printf("插入末尾成功");
pc++;
printf("是否继续插入 1.Yes 2.No;\n");
scanf("%d",&pd);
if(pd==1)//如果pd等于1,回到start
goto start;
printf("\t\t\t\t插 入 信 息 成 功!\n");
printf("\n");
printf("\n");
return (head);//返回创建链表的头指针
}
ID *delet(ID *head)//删除学生信息:准考证号,姓名,年龄,性别,报考类型
{
ID *p1,*p2;
_int64 num;
printf("请输入要删除的学生的准考证号:");
scanf("%I64d",&num);
p1=head;
if (head==NULL)//如果头结点为空,跳到end
{
printf("没有记录\n");
goto end;
}
while(num!=p1->num && p1!=NULL)//删除节点p1
{
p2=p1;
p1=p1->next;
}
if(num==p1->num)
{
if (p1==head)
head=p1->next;
else
p2->next=p1->next;
pc--;
}
printf("\t\t\t\t删 除 信 息 成 功!\n");
printf("\n");
printf("\n");
end:return head;//返回创建链表的头指针
}
ID *search(ID *head)//查找学生信息:准考证号,姓名,年龄,性别,报考类型
{
ID *p1,*p2;
_int64 num;
printf("请输入要查找的准考证号:");
scanf("%I64d",&num);
p1=head;
while(num!=p1->num && p1!=NULL)//循环查找节点p1
{
p2=p1;
p1=p1->next;
}
if(num==p1->num)//输出节点p1的数据项
{
printf("学生的准考证号:%I64d\n",p1->num);
printf("\n");
printf("学生的姓名:%s\n",p1->name);
printf("\n");
printf("学生的年龄:%d\n",p1->age);
printf("\n");
printf("学生的性别:%s\n",p1->sex);
printf("\n");
printf("学生的报考类别:%s\n",p1->kind);
}
return head;//返回创建链表的头指针
}
ID *modify_num(ID *head)//修改学生信息:准考证号,姓名,年龄,性别,报考类型
{
ID *p;
int i,m,n;
_int64 num;
start:
printf("请输入要修改的学生的准考证号:");
scanf("%I64d",&num);
p=head;
while(p!=NULL )
{
if(num==p->num)
{
m=1;
while(m==1)
{
m=0;
printf("\t\t 1.修改学生的准考证号\n");
printf("\t\t 2.修改学生的姓名\n");
printf("\t\t 3.修改学生的年龄\n");
printf("\t\t 4.修改学生的性别\n");
printf("\t\t 5.修改学生的报考类别\n");
printf("请选择(1--5):");
scanf("%d",&i);
switch( i )
{
case 1 :
printf("请输入修改后的准考证号:");
scanf("%I64d",&p->num);
break;
case 2:
printf("请输入修改后的姓名:");
scanf("%s",p->name);
break;
case 3:
printf("请输入修改后的年龄:");
scanf("%d",&p->age);
break;
case 4:
printf("请输入修改后的性别:");
scanf("%s",&p->sex);
break;
case 5:
printf("请输入修改后的报考类别:");
scanf("%s",p->kind);
break;
default:
printf("输入错误,请重新输入");
}
}
break;
}
p=p->next;
}
printf("是否继续修改其他学生情况(1改 2不改):");
scanf("%d",&n);
if(n==1)
goto start;
return head;//返回创建链表的头指针
}
ID *print(ID *head)//显示操作结果:准考证号,姓名,年龄,性别,报考类型
{

ID *p;
p=head;
printf("*********************************************************************\n");
printf("显示结果是:\n");
printf("\n");
if(head!=NULL)
do
{
printf("%I64d        %-14s%-10d%-10s%-10s\n",p->num,p->name,p->age,p->sex,p->kind);
p=p->next;
} while(p!=NULL);
printf("*********************************************************************\n");
printf("\n");
printf("\n");
return head;//返回创建链表的头指针
}
ID *length(ID *head)//显示报考人数
{
int n=0;
ID *p;
p=head;</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">      while(p!=NULL)</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">    {
n++;
p=p->next;
}
printf("报名总人数为: %d\n",n);
printf("\n");
return head;
}
/*
void sort(ID *&L,_int64 a[],int n)  //建立有序(升序)的单链表
{
ID *s,*r;
int i;
L=(ID *)malloc(sizeof(ID)); //创建头结点
L->next=NULL;
for (i=0;i<n;i++)
{
r=L; //r指向头结点
s=(ID *)malloc(sizeof(ID));//创建新结点
s->num=a[i];
s->next=NULL;
while(r->next!=NULL && r->next->num < a[i]) //找到插入点
r = r->next;
s->next=r->next; //将*s插入*r之后
r->next=s;
}
}</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">*/</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">void sort(ID *head)
{
struct ID *p1,*p2,*p0;
_int64 b;
char temp[20];
int NO=0;
p0=head;</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">      p2=head;</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">    p1=p2->next;
b=p2->num;
while(p0->next!=NULL)
{
while(p1!=NULL)
{      </span>
<span style="font-family:FangSong_GB2312;font-size:18px;">                       if((p1->num)<b)</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">	   {	</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">                            b=p1->num;</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">	      p2=p1;
}
p1=p1->next;	</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">                 };</span>
<span style="font-family:FangSong_GB2312;font-size:18px;">	b=p2->num;
p2->num=p0->num;
p0->num=b;
b=p2->age;
p2->age=p0->age;
p0->age=b;
strcpy(temp,p2->sex);
strcpy(p2->sex,p0->sex);
strcpy(p0->sex,temp);
strcpy(temp,p2->kind);
strcpy(p2->kind,p0->kind);
strcpy(p0->kind,temp);
strcpy(temp,p2->name);
strcpy(p2->name,p0->name);
strcpy(p0->name,temp);
p0=p0->next;
p2=p0;
p1=p2->next;
b=p2->num;
};

}
void welcome()//登录考试报名管理系统
{
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t*****************************************************************\n");
printf("\t    欢   迎   进   入   考   试   报   名   管   理   系   统    \n");
printf("\t*****************************************************************\n");
char username[20];
string passward;
printf("\n");
printf("\t\t\t请输入用户名: ");
gets(username);
printf("\n");
printf("\t\t\t请输入您的密码:");
cin>>passward;
//  gets(passward);
while(passward!="123456")
{
printf("\t\t\t密码错误,请重新输入!!!\n");
printf("\n");
printf("\t\t\t请输入用户名:");
cin>>username;//输入字符串
printf("\n");
//	scanf("%d\n",username);
printf("\t\t\t请输入密码:");
//	scanf("%d\n",passward);
cin>>passward;
}
system("cls");//清屏
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\t*************************************\n");
printf("\t\t*  密  码  正  确 ,请  稍  候 !!!  *\n");
printf("\t\t*************************************\n");
Sleep(1000);//睡眠1秒
system("cls");//清屏
}</span>


main.cpp:

<span style="font-size:18px;">#include <stdio.h>
#include <iostream>
#include "txf.h"
using namespace std;
void main()//主函数
{
welcome();
ID *head;//定义头指针
int choise;
while(1)
{
printf("\t\t*********************************************\n");
printf("\t\t*********************************************\n");
printf("\t\t********学 生 考 试 报 名 管 理 系 统********\n");
printf("\t\t*************     1.建立文件     ************\n");
printf("\t\t*************     2.插入数据     ************\n");
printf("\t\t*************     3.删除数据     ************\n");
printf("\t\t*************     4.修改记录     ************\n");
printf("\t\t*************     5.查找记录     ************\n");
printf("\t\t*************     6.报名人数     ************\n");
printf("\t\t*************     7.信息排序     ************\n");
printf("\t\t*************     0.退出         ************\n");
printf("\t\t*********************************************\n");
printf("\t\t*********************************************\n");
printf("请选择(0-7):");
scanf("%d",&choise);
switch(choise)
{
case 1:
head=creat();//创建学生信息
print(head);
break;
case 2:
head=insert(head);//插入学生信息
print(head);
break;
case 3:
head=delet(head);//删除学生信息
print(head);
break;
case 4:
head=modify_num(head); //修改学生信息
print(head);
break;
case 5:
head=search(head);//查找学生信息
break;
case 6:
head=length(head);//统计报考人数
break;
case 7:
sort(head);//按考号排序
print(head);
break;
case 0:
exit(0);//退出系统
break;
default :
printf("输入错误,请重新输入!\n");
break;
}
}</span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">}</span></span>



运行结果:

<1>建立学生信息



<2>插入学生信息



<3>查找信息



<4>统计报名人数



<5>按考生号升序排序



<6>删除学生信息



<7>退出系统:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: