c语言随机点名程序,随机点名编程,基于C语言实现随机点名器(附源码)

c语言随机点名程序,随机点名编程,基于C语言实现随机点名器(附源码)

这篇文章主要为大家详细介绍如何基于C语言实现一个简单的随机点名器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手尝试一下

突发奇想写了个随机点名器…以供使用

随机点名器

主要的函数

#包含" myList.h "

#定义文件名' stu.txt '

void menu();//画面界面;

void用户选项(节点*头节点);//用户选项

int main(void) {

SetConsoleTitle(L '随机抽查系统');

node * List=createrList();

readInfoFromFile(列表,文件名);

while (true) {

menu();

用户选项(列表);

系统("暂停");

系统(“cls”);

}

系统("暂停");

返回0;

}

空的菜单(){

printf('\t\t\t学生点名系统\ n’);

printf('\t\t1)开始随机抽查'

\t\t2)添加学生\n '

\t\t3)删除学生'

\t\t4)修改学生信息\n '

\t\tq)退出\ n’);

printf('请输入你的选项:');

}

void userOptions(Node* List) {

学生信息;

char choose=" 0

choose=enter();

切换(选择){

案例"1":

printf('\t\t\t*开始随机抽查* \ n ');

seekNode(List,roll call(length node(List)));

打破;

案例"2":

printf('\t\t\t\t\t\t已有学生如下\ n’);

printfNode(列表);

printf('\t\t\t*添加学生* \ n ');

printf('注意请从%d之后开始也就是" %d\n ",LengthNode(List),length node(List)1);

printf('\t\t请输入学生序号:');

scanf_s('%d ',信息。num);

printf('\t\t请输入学生学号:');

scanf_s('%ld ',信息。号);

printf('\t\t请输入学生姓名:');

scanf_s('%s ',info.name,sizeof(info。姓名));

insetNodeByHead(List,info);

打破;

案例"3":

printf('\t\t\t\t\t\t已有学生如下\ n’);

printfNode(列表);

printf('\t\t\t*删除学生* \ n ');

printf('\t\t请输入学生学号(后两位即可):');

scanf_s('%ld ',信息。号);

deletenodeapoinnumber(列表,信息。号);

打破;

案例"4":

printf('已有学生如下\ n’);

printfNode(列表);

printf('\t\t\t*修改学生信息* \ n ');

printf('\t\t请输入学生学号:');

scanf_s('%ld ',信息。号);

更新节点(列表,信息。号);

打破;

案例“问”:

printf(' \ t \ t退出!\ n’);

退出(0);

打破;

默认值:

打破;

}

weiteInfoToFile(列表,文件名);

}

enter.h

(这个就是我自己写来玩的,读取输入的字符,你们也可以自己弄一个,就可以不用我这个了。但是要记得修改一下引用这个的代码喔)

#pragma once //防止重复引用

#包含" myList.h "

//处理写入

char enter(void);//函数声明

char enter(void) {

短计数=1;//次数

char input=getchar();//读取单个字符

fflush(stdin);//清空输入缓存区,防止读取后,又读取

for(int I=1;i=12i ) {//如果超过误输入超过13次,强制退出程序

if (input=='\n') {//如果读取的一直是回车,就会执行,否则返回该值

数数;

scanf_s('%c ',输入,3);

fflush(stdin);

if (count==5) {

printf('\n\t\t\t\t\t\t别再调皮了!\ n’);

继续;

}

else if (count==11) {

printf('\n\t\t\t\t\t\t别在摁回车键了!最后一次机会了\ n’);

继续;

}

else if (count==13) {

printf('\n\t\t\t\t\t\t程序已强制退出!拜拜’);

退出(0);

}

}

否则{返回输入;}

}

返回0;

}

myList.h

#杂注一次

#包含标准视频

#包含标准库

#包含标准布尔

#包含时间。h

#包含windows.h

#include 'enter.h '

typedef结构学生{//类型

长整型数;

char name[10];

int num//给定一个序号然后添加一个学生后就自加1;

}学生;

typedef结构节点{

学生数据;

结构节点*下一个

}节点;

//创建链表

Node* createrList(void) {

Node *头节点=(Node *)malloc(sizeof(Node));

if (headNode) {

头节点-next=NULL;

}

返回头节点

}

//创建结点

Node* createrNode(学生数据){

Node * new节点=(Node *)malloc(sizeof(Node));

if (newNode) {

新节点-数据=数据;

new node-next=NULL;

}

返回新节点

}

//插入结点

void insetNodeByHead(Node * head Node,学生数据){

Node* newNode=createrNode(数据);

新节点-下一个=头节点-下一个;

头节点-next=新节点;

}

//删除结点

void deletenodeapoinnumber(Node * head Node,long int number) {

节点* pos节点=头节点-下一个;

Node * posFrontNode=headNode

if (posNode==NULL) {

printf('\t\t表中没有学生\ n’);

}

否则{

while (posNode-data.number!=number) {//没有找到就继续找

posFrontNode=posNode

pos node=pos node-next;

if (posNode==NULL) {//找完最后一个了还没有

printf('\t\t表中没有该学生\ n’);

返回;

}

}

//找到了,执行删除操作

pos前节点-下一个=pos节点-下一个;

免费(pos节点);

printf('\t\t删除完成!');

}

}

//修改结点

void upDataNode(Node* headNode,long int number) {

节点* pos节点=头节点-下一个;

Node * posFrontNode=headNode

char choose=" 0

if (posNode==NULL) {

printf('\t\t该表中没有学生\ t ');

}

否则{

while (posNode-data.number!=数字){

posFrontNode=posNode

pos node=pos node-next;

if (posNode==NULL) {

printf('\t\t表中没有该学生\ n’);

返回;

}

}

while (true) {

printf('\t\t请选择要修改的选项:1)姓名2)学号问)退出!\ n’);

printf('\t\t请输入:');

choose=enter();

切换(选择){

案例"1":

printf('\t\t请输入你要更改的名字(原姓名是%s):',位置节点数据。姓名);

scanf_s('%s ',posNode-data.name,sizeof(pos node-data。姓名));

系统("暂停");

打破;

案例"2":

printf('\t\t请输入你要更改的学号(原学号是%ld):',位置节点数据。号);

scanf_s('%ld ',位置节点数据。号);

系统("暂停");

打破;

案例“问”:

printf(' \ t \ t退出!');

返回;

默认值:

printf('请输入正确选项:');

打破;

}

}

}

}

//打印结点

void printfNode(Node* headNode) {

node * p move=头节点-next;

printf('\t\t\t\t\t\t\t\t学号\t\t姓名\ n’);

while (pMove!=NULL) {

printf(' \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t % LD \ t % s \ n ',pMove-data.number,pMove-data。姓名);

p move=p move-next;

}

printf(' \ n ');

}

//文件读

bool readInfoFromFile(Node * head Node,char* fileName) {

学生数据;

布尔一=假;

文件* fp

fopen_s(fp,fileName,' r ');

if (fp==NULL) {

fopen_s(fp,fileName,' w ');

}

if(FP==NULL){ return EOF;}

while (fscanf_s(fp,' %d\t%ld\t%s '

,data.num,data.number,data.name,sizeof(data.name))!=EOF) {

insetNodeByHead(headNode,data);

}

if(FP==NULL){ return EOF;}

fclose(FP);

返回0;

}

//文件写

bool weitein fotofile(节点*头节点,字符*文件名){

文件* fp

fopen_s(fp,fileName,' w ');

node * p move=头节点-next;

if(FP==NULL){ return EOF;}

while (pMove) {

fprintf_s(fp,' %d\t\t%ld\t\t%s\n ',pMove-data.num,pMove-data.number,pMove-data。姓名);

p move=p move-next;

}

if(FP==NULL){ return EOF;}

fclose(FP);

返回0;

}

//求出链表长度然后返回

int length节点(结构节点*头节点){

int length=0;

struct Node * p move=head Node-next;

while (pMove) {

长度;

p move=p move-next;

}

返回长度;

}

//读取随机数然后选出该学生

void seekNode(Node* headNode,long int rand_1) {

节点* pos节点=头节点-下一个;

Node * posFrontNode=headNode

if (posNode==NULL) {

printf('\t\t该表中没有学生\ t ');

}

其他

{//这里的数字改为数字

while (posNode-data.num!=rand_1) {

posFrontNode=posNode

pos node=pos node-next;

if (posNode==NULL) {

printf('\t\t该表中没有这这个学号(%ld)的学生\n ',rand _ 1);

返回;

}

}

printf('就决定是你了-');

printf('\t\t%ld\t%s\n\n\n ',posNode-data.number,posNode-data。姓名);

}

}

//产生随机数

长整型点名(长整型长度){

长整型数;

srand((无符号)时间(空));

number=rand()% length 1;//33 40;//长度一

退货数量;

}

到此这篇关于基于C语言实现随机点名器(附源码)的文章就介绍到这了,更多相关C语言随机点名器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: