课程设计--考试报名管理系统
来源:互联网 发布:斯林百兰严重造假知乎 编辑:程序博客网 时间:2024/04/28 02:00
<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>退出系统:
0 0
- 课程设计--考试报名管理系统
- 考试报名管理系统课程设计
- 数据结构课程设计【考试报名管理系统】
- 数据结构课程设计—考试报名管理系统
- 数据结构课程设计--考试报名管理
- 数据结构课程设计——考试报名管理系统
- 考试报名管理系统
- 考试报名管理系统
- 考试报名管理系统
- 考生报名管理系统 课程设计
- 数据结构课程设计——英语四级考试报名管理
- 全国英语等级考试报名管理系统
- 数据结构课程设计(考试管理系统)
- 数据结构课程设计——CET-6报名管理系统
- 考试报名管理
- 考试报名管理
- 考试报名管理
- 考试报名系统
- pt-online-schema-change使用中的不当,引起的数据库不可写入问题
- 新年快乐!
- 如何成为一个好的程序员...java应用架构师之后
- Linux系统下批量修改文件名称
- [从头学数学] 第19节 长度单位
- 课程设计--考试报名管理系统
- CentOS下拨号上网(网络转载)
- 创建你的第一个应用
- cmake:shell(bat,sh) 脚本方式生成Makefile
- hdoj Problem-1007 A hard puzzle
- <4>动态范围,宽容度
- Ace_OS 命名空间记录
- LINUX服务器巡检执行(定制)
- 如何成为一个好的程序员