当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

C语言机房上机模拟系统

更新:02-03 整理:39baobao.com
字体:

[求c语言高手解上机实验:顺序表的查找插入与删除]#include#include#define N 10 //顺序表的最大容量 int length=0; //顺序表的当前元素个数#define TRUE 1 #define FALSE 0 #define OK 1#define ERROR 0#define INFEASIBLE...+阅读

#include #include #include #include #include #define ACC_PASS_DELIMITER '|'#define IMAX_PASS_TRY_TIMES 3#define IMAX_BUFF_SIZE 4096#define ACC_FILE "account.txt"#define REC_FILE "record.txt"/* 功能函数,可以自定功能 */ int do_something(void) { char buf[IMAX_BUFF_SIZE]; while

(1) { memset(buf, 0x0, sizeof(buf)); if (scanf("%s", buf) == EOF) break; if (strcmp(buf, "exit") == 0) break; printf("您输入的是[%s]\n", buf); } return 0; } int write_something_to_record(const char *v) { FILE *fp = NULL; fp = fopen(REC_FILE, "a+"); if (fp == NULL) { printf("打开记录文件失败:%s", strerror(errno)); return -1; } fputs(v, fp); fclose(fp); return 0; }/* 上机 */ int online(char *pacc) { FILE *fp = NULL; char buf[IMAX_BUFF_SIZE]; char rbuf[IMAX_BUFF_SIZE]; int i, j, iLen; int iCount = 0; int isFound = 0; time_t my_time; struct tm *rtime; char *acc = NULL; char *pass = NULL; char *tmp = NULL; fp = fopen(ACC_FILE, "r"); if (fp == NULL) { printf("打开账号文件失败: %s\n", strerror(errno)); return -1; } while

(1) { memset(buf, 0x0, sizeof(buf)); printf("请输入账号(长度不要超过%d): ", IMAX_BUFF_SIZE); if (scanf("%s", buf) == EOF) { printf("输入结束,欢迎使用xx系统\n"); fclose(fp); return 0; } while

(1) { if (fgets(rbuf, sizeof(rbuf), fp) == NULL) { break; } iLen = strlen(rbuf); for (i = 0; i if (rbuf[i] == ACC_PASS_DELIMITER) { break; } if (rbuf[i] != buf[i]) break; } if (rbuf[i] == ACC_PASS_DELIMITER) { isFound = 1; break; } } if (!isFound) { printf("账号[%s]不存在\n", buf); fclose(fp); return -1; } /* 删除回车换行 */ j = 0; for (i = 0; i if ((rbuf[i] != '\r') & (rbuf[i] != '\n')) { rbuf[j++] = rbuf[i]; } } rbuf[j] = '\0'; /* 取账号密码 */ sprintf(buf, "%c", ACC_PASS_DELIMITER); tmp = strtok(rbuf, buf); acc = calloc(strlen(tmp)+1, 1); if (acc == NULL) { return -1; } strcpy(acc, tmp); tmp =strtok(NULL, buf); pass = calloc(strlen(tmp)+1, 1); if (pass == NULL) { free(acc); return -1; } iLen = sprintf(pass, "%s", tmp); err_pass: if (iCount memset(buf, 0x0, sizeof(buf)); printf("请输入密码(长度不要超过%d): ", IMAX_BUFF_SIZE); if (scanf("%s", buf) == EOF) { printf("输入结束,欢迎使用xx系统\n"); fclose(fp); free(acc); free(pass); return 0; } if (strcmp(pass, buf) == 0) { /* 成功登录 todo */ printf("time is %s\n", "Time"); my_time = time(NULL); rtime = localtime(&my_time); sprintf(buf, "用户[%s]在%d年%d月%d日-%d时%d分秒%d登录\n", acc, rtime->tm_year+1900, rtime->tm_mon+1, rtime->tm_mday, rtime->tm_hour, rtime->tm_min, rtime->tm_sec); write_something_to_record(buf); strcpy(pacc, acc); fclose(fp); free(acc); free(pass); return 0; } iCount++; goto err_pass; } else { break; } } printf("密码错误次数超限,请联系管理员\n"); free(acc); free(pass); fclose(fp); return -1; }/* 下机 */ int offline(const char *acc) { char buf[IMAX_BUFF_SIZE]; time_t my_time; struct tm *rtime; my_time = time(NULL); rtime = localtime(&my_time); sprintf(buf, "用户[%s]在%d年%d月%d日-%d时%d分秒%d退出\n", acc, rtime->tm_year+1900, rtime->tm_mon+1, rtime->tm_mday, rtime->tm_hour, rtime->tm_min, rtime->tm_sec); write_something_to_record(buf); return 0; } int main(int argc, char **argv) { char buf[IMAX_BUFF_SIZE]; printf("欢迎使用xx系统\n"); while

(1) { memset(buf, 0x0, sizeof(buf)); if (online(buf) == -1) { continue; } do_something(); offline(buf); } return 0; }

本文地址:https://www.39baobao.com/show/29_35289.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

C语言程序设计上机实验考试题目:功能:找出一维和二维数组中的#include<stdlib.h> #include <stdio.h> void maxa(int a[]) { int *p = a; int n = 1; int temp = *p; while( n < 10 ) { n++; p++; if( *p > temp ) temp = *p; } printf...

C语言程序设计上机实验考试题目功能找出一维和二维数组中的#include<stdlib.h> #include <stdio.h> void maxa(int a[]) { int *p = a; int n = 1; int temp = *p; while( n < 10 ) { n++; p++; if( *p > temp ) temp = *p; } printf...

VC上机实验做一个单文档的程序首先在视类头文件中定义成员变量 COLORREF m_Color; 然后在视类构造函数中进行初始化(黑色) m_Color =RGB(0,0,0); 在“红色”菜单响应函数中修改颜色 m_Color =RGB(255,0,0);...

大一c语言上机考试题#include <stdio.h> int fun(int n){ int i; if(n>2 & !(n&1) || n<2) return 0; for(i=3;i*i<=n;i+=2) if(!(n%i)) return 0; return 1; } int main(void){ int s[8],i; pr...

谈谈计算机一级考试上机操作经验和心得全国计算机等级考试一级考试是各等级中参加人数最多、难易程度最低的,然而要通过这一关却也并非想象中的那么容易,而且多半卡壳在上机考核部分,其中不乏一些过于自负的“老鸟”...

C语言上机题:二维数组问题#include const int inf=(1<<30); //这是表示无限大,不这么考究的话就直接赋值999999 #include int main(){ int arr[3][4]; int minRow[3] = {inf ,inf ,inf}; int maxCol[4]...

跪求 C语言程序设计上机报告计算机科学技术系上机实践报告 课程名称:c语言设计 年级: 上机实践成绩: 指导教师:XXX 姓名: 上机实践名称: 学号: 上机实践日期: 上机实践编号: 组号: 上机实践时间:2学时 一、目的 对...

二级C语言上机考试有题库嘛第一套 上机考试试题 1、填空题 下列给定程序中,函数fun()的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“ab,cd”。 试题程...

二级c语言上机题常考题型有什么1.填空题 2.改错题 3.编程题 第一题填空一般有几个类型,其中一个是循环类型,比较难做的抽到这个题型,这种题要好练练!大多数都是变量没有定义,说白了就是填上一个字母n啊i啊i++啥...