c语言,学生信息管理系统。看不懂错误提示??

#include
#include
#include
#include
#include

#define N 100
typedef struct student
{
int num; //学号,姓名,年龄,性别,出生年月,地址,电话,
char name[18];
char sex;
int age;
int y, m;
int tel;
char add[30];
char mail[20];
int res;
int stu;
} SDate;
int PassWord();
void Menu();
int Input_Choice(); //函数声明
void Info_Paixu(SDate *student, int n);
void Info_print(SDate *stu, int n);
int Input_file(SDate *stu1);
int Info_Input(SDate *stu, int count);
void Info_Seach(SDate *stu, int n);
void Info_Change(SDate *stu, int n, int Num);
void Exit();
void Print_file(SDate *stu, int n);
int Info_Del(SDate *stu, int n, int del);
void Info_Change(SDate *stu, int res, int choice);
int Info_Add(SDate *stu, int count);
int main()
{
SDate stu[N];
int ret = 0, res = 0, choice = 0;
char ch;
loop:
ret = PassWord(); //登录函数 默认密码为admin
if (!ret)
{
system("cls");
printf("\n\t\t密码错误或验证码错误!\n"); //默认密码:admin
system("pause");
system("cls");
goto loop;
}
system("cls");
e:
Menu(); //菜单显示函数
printf("你的选择是?\n");
scanf_s("%d", &ret);
switch (ret)
{
case 1:
choice = Input_Choice(); //InputChoice()数据输入方式选择函数
if (choice == 1)
res = Info_Input(stu, res); //键盘输入函数
else if (choice == 2)
res = Input_file(stu); //文件读取函数
else
{
system("cls");
goto e;
}
break;
case 2:
if (res == 0)
{
system("cls");
printf("没有数据输入,请重新选择!\n");
goto e;
}
else
Info_print(stu, res);
break;
case 3:
if (res == 0 || res == 1)
{
system("cls");
printf("没有需要排序数据,请重新选择!\n");
goto e;
}
else
Info_Paixu(stu, res);
break;
case 4:
Info_Seach(stu, res);
break;
case 5:
res = Info_Add(stu, res);
break;
case 6:
Info_print(stu, res);
printf("输入学号进行删除:");
scanf_s("%d", &choice);
res = Info_Del(stu, res, choice);
break;
case 7:
printf("请输入需要修改的学号:");
scanf_s("%d", &choice);
Info_Change(stu, res, choice);
break;
case 8:
Print_file(stu, res);
break;
case 9:
Exit();
break;
default:
printf("您的选泽有误!\n");
}
getchar();
printf("返回主菜单重新选择y/n?");
scanf_s("%c", &ch);
if (ch == 'Y' || ch == 'y')
{
system("cls");
goto e;
}
return 0;
}

int yanzheng() //验证码模块
{
int a, b, c, d;
srand((unsigned)time(NULL));
a = rand() % 100;
b = rand() % 100;
c = a + b;
printf("\n\t **************************\n");
printf("\t\t验证码: %d+%d=?\n", a, b);
printf("\t\t 答案为:");
scanf_s("%d", &d);
if (c == d)
return 1;
else
return 0;
}
int PassWord() //登录模块
{
int i = 0;
char passWord[18];
char p[] = "admin"; //默认密码设置
char ch;
printf("\t 欢迎使用学生信息管理系统\n");
printf("\n");
printf("\t\t用户名:Admin\n");
printf("\n");
printf("\t\t密码:");
while ((ch = _getch()) != 13)
{
putchar('*');
passWord[i] = ch;
i++;
}
passWord[i] = '\0';
if (strcmp(p, passWord) == 0)
yanzheng();
else
return 0;
}

void Menu() //菜单模块
{
printf("\t 欢迎使用学生信息管理系统\n");
printf("\n*******************************************\n");
printf("** \t\t1、学生信息录入\t\t \n");
printf("
\t\t2、学生信息浏览\t\t \n");
printf("
\t\t3、学生信息排序\t\t \n");
printf("
\t\t4、学生信息查找\t\t \n");
printf("
\t\t5、学生信息添加\t\t \n");
printf("
\t\t6、学生信息删除\t\t \n");
printf("
\t\t7、学生信息修改\t\t \n");
printf("
\t\t8、学生信息保存\t\t \n");
printf("
\t\t9、退出\t\t\t \n");
printf("
*****************************************\n");
}

int Input_Choice() //数据输入方式选择
{
int i;
system("cls");
printf("\t 欢迎使用学生信息管理系统\n");
printf("\t\t1、键盘录入\n");
printf("\t\t2、文件读取\n");
printf("\t\t0、返回\n");
printf("\t你的选择是?");
scanf_s("%d", &i);
return i;
}

int Info_Input(SDate *stu, int count) //信息从键盘输入模块
{
SDate *p;
p = stu;
system("cls");
printf("请输入第%d个学生学号(输入0结束):\n", count + 1);
scanf_s("%d", &p->num);
while (p->num != 0)
{
printf("请输入该学生姓名:\n");
scanf_s("%s", p->name);
printf("请输入该学生年龄:\n");
scanf_s("%d", &p->age);
getchar();
printf("请输入该学生性别:\n");
scanf_s("%c", &p->sex);
printf("请输入该学生出生年月:\n");
scanf_s("%d%d", &p->y, &p->m);
printf("请输入该学生住址:\n");
scanf_s("%s", p->add);
printf("请输入该学生联系电话:\n");
scanf_s("%d", &p->tel);
printf("请输入该学生E-Mail:\n");
scanf_s("%s", p->mail);
count++;
p++;
system("cls");
printf("请输入第%d个学生学号(输入0结束):\n", count);
scanf_s("%d", &p->num);
}
return count;
}

int Input_file(SDate *stu1) //信息从文件输入模块
{
int rin = 0;
SDate *p;
FILE *fp;
p = stu1;

if ((fp = fopen_s("StuInfo.txt","r")) == NULL)
    printf("该文件不存在!\n");
while (!feof(fp))
{
    fscanf(fp, "%d %s %c %d %d %d %d %s %s\n", &p->num, p->name, &p->sex, &p->age, &p->y, &p->m, &p->tel, p->add, p->mail);
    p++;
    rin++;
}
fclose(fp);
printf("文件读取成功!\n");
return rin;

}

void Info_print(SDate *stu, int n) //信息输出至屏幕模块
{
SDate *p;
if (n == 0) //学号,姓名,年龄,性别,出生年月,地址,电话,
printf("没有录入信息!\n");
else
{
printf("\n以下是%d个同学的信息\n", n);
printf("学号 姓名 性别 年龄 出生年月 电话 地址 E-Mail\n");
for (p = stu; p printf("%d %s %c %d %d-%d %d %s %s\n", p->num, p->name, p->sex, p->age, p->y, p->m, p->tel, p->add, p->mail);
}
}

void Print_file(SDate *stu, int n) //信息保存至文件模块
{
FILE *fp;
SDate *p;
p = stu;
if ((fp = fopen("StuInfo.txt", "a")) == NULL)
printf("文件读取失败!\n");
else
{
for (; p fprintf(fp, "%d %s %c %d %d %d %d %s %s\n", p->num, p->name, p->sex, p->age, p->y, p->m, p->tel, p->add, p->mail);
fclose(fp);
printf("\n保存成功!\n");
}
}

void Info_Paixu(SDate *stu, int n) //学号排序模块
{
int i, j;
SDate p;
for (i = 0; i {
for (j = 0; j {
if ((stu[j].num)>(stu[j + 1].num))
{
p = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = p;
}
}
}
printf("排序完成!\n");
}

void Exit() //退出模块
{
printf("谢谢使用!\n");
exit(1);
}

void Info_Seach(SDate *stu, int n) //查询模块,目前仅支持学号或姓名的精准查询
{
int num, choice;
char name[10];
int flag = -1, i;
system("cls");
printf("请输入查询方式:\t1、学号查询\n\t \t2、名字查询\n");
printf("您的选择是?");
scanf_s("%d", &choice);
if (choice == 1)
{
lab1:
printf("请输入需要查找的学号:\n");
scanf_s("%d", &num);
for (i = 0; i<n; i++)
{
if (num == stu[i].num)
{
flag = i;
printf("%d %s %c %d %d-%d %d %s %s\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].y, stu[i].m, stu[i].tel, stu[i].add, stu[i].mail);
}
}
if (flag == -1)
{
printf("未找到!请重新选择\n");
printf("1、返回继续查询\n2、退出查询,返回主菜单\n3、退出程序你的选择是?");
scanf_s("%d", &choice);
if (choice == 1)
{
system("cls");
goto lab1;
}
if (choice == 2)
goto end;
else
Exit();
}
}
else if (choice == 2)
{
lab2:
printf("请输入需要查找的姓名:\n");
scanf_s("%s", name);
for (i = 0; i<n; i++)
if (strcmp(name, stu[i].name) == 0)
{
flag = i;
printf("%d %s %c %d %d-%d %d %s %s\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].y, stu[i].m, stu[i].tel, stu[i].add, stu[i].mail);
}
if (flag == -1)
{
printf("您的输入有误!请重新选择\n");
printf("\t\t1、返回继续查询\n\t\t2、退出查询,返回主菜单\n\t\t3、退出程序\t\t\n你的选择是?");
scanf_s("%d", &choice);
if (choice == 1)
{
system("cls");
goto lab2;
}
if (choice == 2)
goto end;
else
Exit();
}
}
end:
;
}

void Info_Change(SDate *stu, int n, int Num) //信息修改模块
{
int i;
for (i = 0; i<n; i++)
if (stu[i].num == Num)
{
printf("请输入该学生姓名:\n");
scanf_s("%s", stu[i].name);
printf("请输入该学生年龄:\n");
scanf_s("%d", &stu[i].age);
getchar();
printf("请输入该学生性别:\n");
scanf_s("%c", &stu[i].sex);
printf("请输入该学生出生年月:\n");
scanf_s("%d%d", &stu[i].y, &stu[i].m);
printf("请输入该学生住址:\n");
scanf_s("%s", stu[i].add);
printf("请输入该学生联系电话:\n");
scanf_s("%d", &stu[i].tel);
printf("请输入该学生E-Mail:\n");
scanf_s("%s", stu[i].mail);
printf("学号为%d的同学信息修改完成!\n", Num);
}
}

int Info_Del(SDate *stu, int n, int del) //信息删除模块
{
int i, j;
for (i = 0; i<n; i++)
if (stu[i].num == del)
for (j = i; j<n - 1; j++)
stu[j] = stu[j + 1];
n--;
printf("删除成功!\n");
return n;
}

int Info_Add(SDate *stu, int count) //信息添加模块
{
SDate *p;
system("cls");
printf("当前共有%d个数据\n", count + 1);
p = stu + (count);
printf("请输入第%d个学生学号(输入0结束):\n", count + 1);
scanf_s("%d", &p->num);
while (p->num != 0)
{
printf("请输入该学生姓名:\n");
scanf_s("%s", p->name);
printf("请输入该学生年龄:\n");
scanf_s("%d", &p->age);
getchar();
printf("请输入该学生性别:\n");
scanf_s("%c", &p->sex);
printf("请输入该学生出生年月:\n");
scanf_s("%d%d", &p->y, &p->m);
printf("请输入该学生住址:\n");
scanf_s("%s", p->add);
printf("请输入该学生联系电话:\n");
scanf_s("%d", &p->tel);
printf("请输入该学生E-Mail:\n");
scanf_s("%s", p->mail);
count++;
p++;
system("cls");
printf("请输入第%d个学生学号(输入0结束):\n", count + 1);
scanf_s("%d", &p->num);
}
return count;
}

4个回答

scanf_s("%d", &p->tel);
你这个优先级不对,是先对p取地址了。

别的错误懒得看了,你应该贴出错误提示来。

错误 提示先贴出来呀

不要贴一整段代码,别人想帮你还要理清你的代码逻辑,还是直接贴错误吧

贴错误吧,这样手机看不方便

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c语言问题:使用c语言制作学生信息管理系统
scanf_s("%s", &stu[count].num) 错误:严重性 代码 说明 项目 文件 行 禁止显示状态 禁止显示状态 警告 C6064 缺少“scanf_s”的整型参数(对应于转换说明符“2”)。 Project1 C:\USERS\ASUS\DESKTOP\C语言考核\PROJECT1\PROJECT1\源.C 179 len = strlen(stu[count].num); 错误:严重性 代码 说明 项目 文件 行 禁止显示状态 禁止显示状态 警告 C4013 “strlen”未定义;假设外部返回 int Project1 C:\Users\ASUS\Desktop\c语言考核\Project1\Project1\源.c 66 求解答
C语言学生管理系统(包含密码界面)
简易成绩管理系统 运用所学知识编写简易成绩管理系统,该系统包括: 1.系统登录界面; (10分) 要求:设置系统初始密码为"123456",在登录界面中输入密码登录,输错三次密码自动退出系统,界面效果如图1所示。 回"CAUsers\Team WeiDeskopbD-bugfinlte (此为参照面 ***迎使用学生成绩管理系统**** 请输入密码,123 密码错误,你还有2饮机会请输人密码123、 密码错误,您还有1这机会请输人密码,456 您已连续输错三次密码,请退出系统 图1:输错三次密码示例 2.功能选择界面; (10分) 要求:步骤a中登录系统时正确输入密码跳转到此界面,在此界面中可以输入功能对应的数字代码,分别执行相应的功能,参照界面如图2所示。 *****欢迎使用学生成绩首理系统***** 请输入密码: 123456 -欢迎使用简易成绩管理系统------ 1.成绩录入2. 成绩统计3.成绩查询 名次统计 .退出 图2:输入密码正确,进入功能选择界面 系统的功能有: (1)成绩录入; (20分) 要求:输入4名学生的姓名和每位学生5门课程的成绩,录入完成后计算每位学生的总分、平均分,界面效果如图3所示。 请选择您要使用的功能(1-5):成绩录入: 请输入蔞确养制慧棄:發明。0 8078 90请福入籌鷂养制幾续: 909689清输入事普养績慧嶺:魏 96 9098 第4位学生姓名:韩梅梅 请输入韩梅梅门谋成绩:8786 89 90 98录入完成! 图3成绩录入界面参照 (2) 成绩统计; (20分) 请选择必要使用的项能(1-3,2成绩统计,编号 要求:选择此功能时系统能输出全体学生的姓名、各学科成绩、总分、平均分等信息,界面效果如图4所示。图4成绩统计界面参照(3)成绩查询; (10分) 要求:查询并显示指定学生的成绩信息(编号、姓名、5门课程成绩、总分、平均分),要查询的学生名字由键盘输入,界面效果如图5所示。 请选择您要使用的功能(1-5): 3成绩查询: 查我到该学生的租关信息 清选择您要使用的功能(-5) 3成查询, 请怕入
c语言:这是一个学生信息管理系统,编译过了,但是运行的时候出了问题!
代码如下: #include"stdio.h" # include "stdlib.h" #define M 100 struct student { char name[25]; //姓名 char num[25]; //学号 char gender[20]; //性别 char class[35]; //班别 char tel[25]; //手机号 char sex[25]; //性别 }; void input(struct student stu[M]); //输入函数 void output(struct student stu[M]); //输出函数 void lookfor(struct student stu[M]); //查询函数 void modify(struct student stu[M]); //修改函数 void delete_student(struct student stu[M]); //删除函数 int count = 0; struct student t; int main() { int choice, sum; struct student stu[M]; point1: sum = 0; printf("\t\t\t\t * 欢迎使用学生信息管理系统 *\n"); printf("\t\t\t\t\t 1、添加学生信息\n"); printf("\t\t\t\t\t 2、查询学生信息\n"); printf("\t\t\t\t\t 3、修改学生信息\n"); printf("\t\t\t\t\t 4、删除学生信息\n"); printf("\t\t\t\t\t 5、浏览学生信息\n"); printf("\t\t\t\t\t 6、退出系统\n"); printf(" *********************************************************************************\n"); printf("请输入你的选择\n"); scanf_s("%d", &choice); if (choice > 7 || choice <= 0) { sum++; if (sum >= 5) { printf("输入错误次数过多,程序将重新开始\n"); system("pause"); //程序暂停 system("cls"); //清屏语句 goto point1; } } switch (choice) //根据选择,调用不同的函数来完成不同的任务 { case 1:input(stu); break; case 2:lookfor(stu); break; case 3:modify(stu); break; case 4:delete_student(stu); break; case 5:output(stu); break; case 6:printf("感谢你使用学生信息管理系统,请关掉程序!!!\n"); system("pause"); break; default:printf("无效的选择!!!请重新输入!!!\n"); break; } return 0; } void input(struct student stu[M]) //自定义输入函数 { int len; system("cls"); printf("请添加要输入学生的信息\n"); do { printf("请输入由12位数字组成的学生学号\n"); scanf_s("%s", &stu[count].num); len = strlen(stu[count].num); } while (len != 12); printf("请输入同学的姓名\n"); scanf_s("%s", stu[count].name); printf("请输入学生的性别(1.男 2.女):\n"); scanf_s("%s", &stu[count].sex); printf("请输入对应的学生班级: \n"); scanf_s("%s", &stu[count].class); printf("请输入学生的手机号码\n"); scanf_s("%s", &stu[count].tel); count++; } void output(struct student stu[M]) //自定义输出函数 { int j; system("cls"); if (count == 0) { printf("当前已存学生信息为0个\n"); return; } for (j = 0; j < count; j++) { printf("学号\t\t 姓名\t\t性别\t班别\t手机号\n"); for (j = 0; j < count; j++) { printf("%s\t", stu[j].num); printf("%s\t", stu[j].name); printf("%s\t", stu[j].sex); printf("%s\t", stu[j].class); printf("%s\t", stu[j].tel); } } } void modify(struct student stu[M]) //自定义修改函数 { int j, flag = 0, course; char xh[25]; system("cls"); if (count == 0) { printf("当前已存学生信息为0个,无法修改!!!\n"); return; } else { printf("请输入你想要修改的同学学号\n"); scanf_s("%s", &xh); for (j = 0; j < count; j++){ if (strcmp(stu[j].num, xh) == 0) //同上 { printf("你确定要修改学生的信息吗???如果不确定的话,请关掉本程序吧!!!\n"); printf("选择需要修改的内容: 1、姓名 2、学号 3、班别 4、性别 5、手机号\n"); scanf_s("%d", &course); printf("请输入你想要修改后的学生成绩\n"); switch (course) { case 1:printf("请输入你想要修改后的学生名字\n"); scanf_s("%s", &stu[j].name); break; case 2:printf("请输入你想要修改后的学生学号\n"); scanf_s("%s", &stu[j].num); break; //switch控制语句 case 3:printf("请输入你想要修改后的学生班别\n"); scanf_s("%s", &stu[j].class); break; case 4:printf("请输入你想要修改后的学生性别\n"); scanf_s("%s", &stu[j].sex); break; case 5:printf("请输入你想要修改后的学生手机号\n"); scanf_s("%s", &stu[j].tel); break; default:printf("无效的选择!!!请重新输入!!!\n"); break; } } } } } void lookfor(struct student stu[M]) //自定义查询学生信息函数 { int j, flag = 0; char xh[25]; system("cls"); if (count == 0) { printf("当前已存学生信息为0个,无法查询!!!\n"); return; } else { printf("请输入你想要查看的同学学号\n"); scanf_s("%s", &xh); fflush(stdin); for (j = 0; j < count; j++) { if (strcmp(stu[j].num, xh) == 0) //通过字符函数对已存入的学生信息进行比较,找出要查看的学生 { printf("学号\t\t姓名\t\t班别\t性别\t手机号\n"); printf("%s\t", stu[j].num); printf("%s\t", stu[j].name); printf("%s\t", stu[j].class); printf("%s\t", stu[j].sex); printf("%s\t", stu[j].tel); } } if (j == count) printf("很抱歉,没有你所需要的学生信息\n"); } } void delete_student(struct student stu[M]) //自定义删除函数 { int j, index = 0, k = count; char xh[25]; system("cls"); if (count == 0) { printf("当前已存学生信息为0个,无法删除!!!\n"); return; } else { printf("请输入你想要删除的同学学号\n"); scanf_s("%s", xh); fflush(stdin); for (j = 0; j < count; j++) { if (strcmp(stu[j].num, xh) == 0) { for (j = index; j < count; j++) stu[j] = stu[j + 1]; count--; if (count < k) printf("你已经删除成功\n"); } index++; } if (j == count) printf("抱歉!!!没有你所需要删除的学生信息!*_*!\n"); } }
c语言课程设计:学生信息管理系统,求指导啊
(1)系统以菜单方式工作,问题描述 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: 学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能——输出 查询、排序功能——算法 按学号查询 按姓名查询 学生信息的删除与修改(可选项) (2)功能要求,界面简单明了;有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入; 学生信息管理 1. 输入学生信息 2. 输出学生信息 3. 按姓名查询 4. 按学号查询 5. 按姓名排序 6. 按学号排序 7.删除指定学号学生信息 8.修改指定学号学生信息 0. 退出 请选择菜单:
C语言,帮助某学生管理系统设计并实现学生个人信息的查询与删除功能
C语言,帮助某学生管理系统设计并实现学生个人信息的查询与删除功能
小组合作做了一个简陋的学生信息管理系统,修改学生信息的部分一直有问题,麻烦大神帮我看一下到底有什么问题,我真找不出来。
#include<stdio.h> #include<conio.h> #include<string.h> #include<ctype.h> #include<stdlib.h> #define N 10000 typedef struct student { char ID[20]; // 学号 char name[20]; // 姓名 char sex; // 性别 double score[3]; // 三科成绩 double total; // 总分 double avg; // 平均分 }STUDENT; void memu(void); void load(STUDENT stu[],int *nptr); // 将学生信息加载到数组stu中 void save(STUDENT stu[],int n); // 将学生信息保存在磁盘中 void add(STUDENT stu[],int *nptr); // 添加学生信息 void output(STUDENT stu[],int n); // 输出所有学生信息 void InputRecord(STUDENT stu[],int i);// 添加第n+1个学生的信息 void PrintRecord(STUDENT *sptr); // 输出指针sptr所指记录的内容 void edit(STUDENT stu[],int n); // 修改学生信息 void statis(STUDENT stu[], int n); void del(STUDENT stu[],int *nPtr); // 删除学生信息 int main() { int select; int n; STUDENT stu[N]; load(stu,&n); while(1) { memu(); scanf("%d",&select); switch(select) { case 1: // 录入学生成绩 add(stu,&n); break; case 2: // 显示学生信息 output(stu, n); break; case 3: // 修改学生信息 edit(stu,n); break; case 4: // 删除学生信息 del(stu,&n); break; case 5: // 查找学生信息 break; case 6: statis(stu, n); // 统计个科目最高分 break; case 7: // 按总分顺序排序 break; case 0: // 退出系统 break; default: printf("你输入的有误,请重新输入"); break; } } } void memu(void) { system("cls"); printf(" 欢迎使用高校学生管理系统 "); printf("\t\t 菜单 \n"); printf("\t\t1.录入学生的成绩\n"); printf("\t\t2.显示学生信息\n"); printf("\t\t3.修改学生信息\n"); printf("\t\t4.删除学生信息\n"); printf("\t\t5.查找学生信息\n"); printf("\t\t6.统计各科目最高分、平均分和不及格人数\n"); printf("\t\t7.按总分排序\n"); printf("\t\t0.退出系统\n"); } //将学生信息加载到数组stu中 void load(STUDENT stu[],int *nptr) { FILE *fp; //定义文件指针 int i; if((fp=fopen("D:\\student.txt","r"))==NULL) { *nptr=0; return ; } for(i=0; fread(&stu[i],sizeof(STUDENT),1,fp)!=0; i++) { *nptr=i; //*nptr记录文件中当前学生数量 } fclose(fp); //关闭文件 } //将学生信息保存在磁盘中 void save(STUDENT stu[],int n) { FILE *fp; //定义文件指针 if((fp=fopen("D:\\student.txt","w"))==NULL) // { printf("打开文件失败\n"); exit(0); } fwrite(stu,n*sizeof(stu[0]),1,fp); fclose(fp); //关闭文件 } //添加学生信息 void add(STUDENT stu[],int *nptr) { int i=0; char sel = 'Y'; while(sel=='Y') { InputRecord(stu,(*nptr)++); //添加第n+1个学生的信息 printf("if you want stop ? yes(Y) or no(N)\n"); scanf(" %c",&sel); } save(stu,*nptr); } //输入一个学生信息,存到score[i]中 void InputRecord(STUDENT stu[],int i) { int j; //输入学号,并验证合法性 printf("输入第%d个学生的信息\n",i+1); printf("输入学生学号(学号小于9位数字组成)\n"); scanf("%s",&stu[i].ID); printf("请输入学生姓名\n"); scanf("%s",stu[i].name); printf("请输入学生性别(f或m f代表女性 m代表男性)\n"); scanf(" %c",&stu[i].sex); //输入五门课成绩并累加 printf("输入三门课成绩(0~100)\n"); stu[i].total=0; for(j=0;j<3;j++) { scanf("%lf",&stu[i].score[j]); stu[i].total+=stu[i].score[j]; } //计算总成绩 stu[i].avg=stu[i].total/3; } //输出所有学生信息 void output(STUDENT stu[],int n) { int i; //打印表头 printf("%8s%8s%4s%8s%8s%8s%8s%8s%8s%8s\n","ID","NAME","SEX", "SCORE1","SCORE2","SCORE3","SCORE4","SCORE5","total","avg"); //打印所有记录 for(i=0;i<n;i++) { PrintRecord(&stu[i]); } system("pause"); } //输出指针sptr所指记录的内容 void PrintRecord(STUDENT *sptr) { int i; printf("%8s%8s%4c",sptr->ID,sptr->name,sptr->sex); for(i=0;i<3;i++) { printf("%8.2f",sptr->score[i]); } printf("%8.2f%8.2f",sptr->total,sptr->avg); printf("\n"); } void edit(STUDENT stu[],int n) { int i,index; char sel; char str[20]; printf("输入学号"); scanf("%s",str); index=FindByNum(stu,n,str); if(index<0) { printf("该学生信息不存在\n"); //信息不存在的情况 return; } printf("请输入需更改的项目\n1.姓名\n2.性别\n3.科目成绩\n4.总成绩\n5.平均成绩/n(输入序号即可)\n"); int a; //菜单栏 scanf("%d",&a); switch(a) { case 1: printf("修改前的姓名如下:\n"); //修改姓名 PrintRecord(&stu[index]); printf("请输入修改后的姓名:\n"); scanf("%s",stu[index].name); case 2: printf("修改前的性别如下:\n"); //修改性别 PrintRecord(&stu[index]); printf("请输入修改后的性别:\n"); scanf("%s",stu[index].sex); case 3: printf("修改前的科目成绩如下:\n"); //修改科目成绩 PrintRecord(&stu[index]); printf("请输入修改后的科目成绩:\n"); scanf("%s",stu[index].score); case 4: printf("修改前的总成绩如下:\n"); //修改总成绩 PrintRecord(&stu[index]); printf("请输入修改后的总成绩:\n"); scanf("%s",stu[index].total); case 5: printf("修改前的平均成绩如下:\n"); //修改平均成绩 PrintRecord(&stu[index]); printf("请输入修改后的平均成绩:\n"); scanf("%s",stu[index].avg); } save(stu,n); } int FindByNum(STUDENT stu[],int n,char *str) { int i; for(i=0;i<n;i++) if(strcmp( stu[i].ID,str)==0) return i; return -1; } void statis(STUDENT stu[], int n) { int i, fail;//“stu[]”为学生 “score[]”为成绩 “n”为人数 max为最高分数 fail 为不及格人数 sum为50人总分 double score[3], max, sum, avg;//“avg”为平均分 avg = 0; max = 0; fail = 0; sum = 0; for(i = 0; i < n; i++) { sum += stu[i].score[0]; avg = sum/n; if(max < stu[i].score[0]) max = stu[i].score[0]; if(stu[i].score[0] < 60) fail++; } printf("C语言最高分=%.2f\n",max); printf("C语言不及格人数=%d\n",fail); printf("C语言平均分=%.2f\n",avg); fail = 0; sum = 0; max = 0; for(i = 0; i < n; i++) { sum += stu[i].score[1]; avg = sum/n; if(max < stu[i].score[1]) max = stu[i].score[1]; if(stu[i].score[1] < 60) fail++; } printf("英语最高分=%.2f\n",max); printf("英语不及格人数=%d\n",fail); printf("英语平均分=%.2f\n",avg); fail = 0; sum = 0; max = 0; for(i = 0; i < n; i++) { sum += stu[i].score[2]; avg = sum/n; if(max < stu[i].score[2]) max = stu[i].score[2]; if(stu[i].score[2] < 60) fail++; } printf("数学最高分=%.2f\n",max); printf("数学不及格人数=%d\n",fail); printf("数学平均分=%.2f\n",avg); system("pause"); fail = 0; sum = 0; max = 0; } // 删除学生信息 void del(STUDENT stu[],int *nPtr) { int i,index; char str[20]; printf("请你输入学号"); scanf("%s",str); index = FindByNum(stu,*nPtr,str); if(index<0) { printf("\n 亲,不好意思,你所选的学生信息不存在\n"); system("pause"); return ; } for (i = index; i < *nPtr-1;i++) stu[i] = stu[i+1]; (*nPtr)--; printf("\n 恭喜恭喜 删除成功 \n"); system("pause"); save(stu,*nPtr); // 保存到文件中 }
C++编写小型学生信息管理系统,可以对中学生,大学生,研究生的信息进行简单的处理
每一类学生都包含有学生的学生名,成绩1,成绩2,成绩3和平均成绩,其中平均成绩=(成绩1+成绩2+成绩3)/3,每一类学生还有区别于其他类学生的特殊信息,中学生有家长,大学生有专业,研究生有导师。实现以下功能: 1.输入学生的基本信息; 2.根据学生名查询某个学生的信息; 3.计算并显示某个学生的平均成绩。
C语言在windows 10系统里面用什么环境开发比较好呢,很着急不知道
C语言在windows 10系统里面用什么环境开发比较好呢,很着急不知道
用C语言编写简单学生学籍管理系统。有一段已经定义好的函数,求大佬帮忙编写完整。在线急等。求各位大佬帮帮忙,重谢!!
``` #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> typedef struct { int Id; //学号 char name[10]; //姓名 char sex[2]; //性别 int room; //宿舍号 int tel; //电话号码 } StudentInfo; //定义学生信息的结构体类型 typedef struct { int Id; char courseNo[10]; //课程编号 char courseName[20];//课程名 double a; // 课程学分 double b; // 平时成绩 double c; // 实验成绩 double d; // 卷面成绩 double e; // 综合成绩 double f; // 实际学分 } MarkInfo; //定义课程信息的结构体类型 void ReadFile(); //读取文件 void DisplayMainMenu(); //显示主菜单 void DataInput(); //数据录入 void DataQuery(); //数据查询 void DataDelete(); //数据删除 void DataSort(); //数据排序 void QueryById(int ); //按学号查询 void QueryByRoom(int ); //按宿舍查询 void QueryMark(int ); //按成绩查询 void sort1(); //按综合成绩排序 void sort2(); //按实得学分排序 void markput(); //成绩输出 StudentInfo si[30]; // 学生信息结构数组 MarkInfo mi[150]; // 学生成绩结构数组 int sp=0; // 学生信息结构数组中学生数 int mp=0; // 学生成绩结构数组中成绩数 void ReadFile( )//读取文件 { FILE *fp; if((fp = fopen("A.txt","r"))==NULL) printf("cant open the file\n"); while (!feof(fp)) { fscanf(fp,"%d%s%s%d%d",&si[sp].Id,si[sp].name,&si[sp].sex,&si[sp].room,&si[sp].tel); sp++; } fclose (fp); fp = fopen("B.txt","r"); while (!feof(fp)) { fscanf(fp,"%d%s%s%d%d%d%d",&mi[mp].Id,mi[mp].courseNo,mi[mp].courseName,&mi[mp].a,&mi[mp].b,&mi[mp].c, &mi[mp].d); if (mi[mp].c == -1) mi[mp].e = 0.3*(mi[mp].b/1.0)+0.7*(mi[mp].d/1.0); else mi[mp].e = 0.15*(mi[mp].b/1.0)+0.15*(mi[mp].c/1.0)+0.7*(mi[mp].d/1.0); if(mi[mp].e >= 90. ) mi[mp].f = mi[mp].a; else if ( mi [mp].e >= 80. ) mi[mp].f = mi[mp].a *0.8; else if ( mi[mp].e >= 70. ) mi[mp].f = mi[mp].a *0.75; else if ( mi[mp].e >= 60. ) mi[mp].f = mi[mp].a *0.6; else mi[mp].f = 0; mp++; } fclose(fp); } void DisplayMainMenu() //显示主菜单 { printf ("\n 1) 数据录入 \n 2) 数据查询 \n 3) 数据删除 \n 4) 数据排序 \n 5) 程序结束\n "); } void DataInput()//数据查询 { FILE *fp; int i; printf ("学生的学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩\n"); while(1) { scanf("%d%s%s%d%d%d%d",&mi[mp].Id,mi[mp].courseNo,mi[mp].courseName,&mi[mp].a,&mi[mp].b,&mi[mp].c, &mi[mp].d); if(mi[mp].Id==-1) break; if (mi[mp].c == -1) mi[mp].e = 0.3*mi[mp].b+0.7*mi[mp].d; else mi[mp].e = 0.15*mi[mp].b+0.15*mi[mp].c+0.7*mi[mp].d; if ( mi[mp].e >= 90. ) mi[mp].f = mi[mp].a; else if ( mi [mp].e >= 80. ) mi[mp].f = mi[mp].a *0.8; else if ( mi[mp].e >= 70. ) mi[mp].f = mi[mp].a *0.75; else if ( mi[mp].e >= 60. ) mi[mp].f = mi[mp].a *0.6; else mi[mp].f = 0; mp++; } fp = fopen("B.txt","r+"); for(i=0;i<mp;i++) { fprintf(fp,"%d%s%s%d%d%d%d",&mi[i].Id,mi[i].courseNo,mi[i].courseName,&mi[i].a,&mi[mp].b,&mi[i].c, &mi[i].d); fclose(fp); } } void DataQuery()//数据查询 { int x,y,z; printf("\n 1) 学生基本情况查询\n 2) 成绩查询\n");//--------------------------选择查询内容 scanf("%d",&x); if (x == 1) // 查询学生信息 { printf ("1) 按学号查询 2) 按宿舍查询\n");//-------------------------------选择查询方式 scanf("%d",&y); if (y == 1 ) { printf ("输入学号\n");//-----------------------------------------------按学生学号查询 scanf ("%d",&z); QueryById(z); } if (y == 2) { } if ( x ==2) // 查询成绩信息---------------------------------------查询学生成绩(输入学号) { printf ("输入学号\n"); scanf ("%d",&y); QueryMark(y); } } } void DataDelete()//数据删除 { FILE *fp; int x; int i=0; int k,d; printf( "输入学号\n"); scanf( "%d",&x); while( si[i].Id != x) i++; if (i<sp-1) { for ( k=i; k<sp-1; k++) { si[k] = si[k+1]; } } if ( i<sp) sp--; d = 0; for (k=0;k<mp;k++) { if ( mi[k].Id == x ) d++; else mi[k-d] = mi[k]; } mp = mp - d; fp = fopen("D:B.txt","r+"); for(i=0;i<mp;i++) fprintf(fp,"%d%s%s%d%d%d%d",&mi[i].Id,mi[i].courseNo,mi[i].courseName,&mi[i].a,&mi[i].b,&mi[i].c, &mi[i].d); } void sort1() { int i,j; MarkInfo t; for (i=mp-1;i>=1;i--) { for (j=0;j<i;j++) { if (mi[j].e>mi[j+1].e) { t=mi[j]; mi[j] = mi[j+1]; mi[j+1] = t; } } } markput(); } ``` 这段函数是定义好的,求大佬帮帮忙编写完! 要求:使用下面的数据,用C语言设计一个简单的学籍管理系统,实现出最基本的功能。 学生基本信息文件(A.TXT)及其内容:A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成: 学号 姓名 性别 宿舍号码 电话号码 01 张成成 男 501 87732111 02 李成华 女 101 87723112 03 王成凤 女 101 87723112 04 张明明 男 502 87734333 05 陈东 男 501 87732111 06 李果 男 502 87734333 07 张园园 女 102 87756122 … …. .. … ……….. 学生成绩基本信息文件(B.TXT)及其内容: 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分 01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 90 01 B03 高等数学 4 45 -1 88 02 C01 VF 3 65 76 66 … …. ………. .. .. … (一) 功能要求及说明: (1) 数据录入功能: 对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70% . 实得学分的计算: 采用等级学分制. 综合成绩在90-100之间 ,应得学分=学分*100% 综合成绩在80-90之间 ,应得学分=学分*80% 综合成绩在70-80之间 ,应得学分=学分*75% 综合成绩在60-70之间 ,应得学分=学分*60% 综合成绩在60以下 ,应得学分=学分*0% (2)查询功能:分为学生基本情况查询和成绩查询两种 A:学生基本情况查询: A1----输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。 A2---输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。 B:成绩查询: B1:输入一个学号时,查询出此生的所有课程情况,格式如下: 学 号:xx 姓 名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx … … … … ……… … … 共修:xx科,实得总学分为: xxx (3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。 (4 ) 排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
C语言设计一个图书管理系统
1 需求分析 设计一个计算机管理系统完成图书管理基本业务。 【基本要求】 1)每种书的登记内容包括书号、书名、著作者、现存量和库存量; 2)对书号建立索引表(线性表)以提高查找效率; 3)系统主要功能如下: *采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; *借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; *归还:注销对借阅者的登记,改变该书的现存量。 【进一步完成内容】 1)系统功能的进一步完善; 2)索引表采用树表。 3)设计内容 4)程序流程图 5)源程序 6)软件测试报告(包括所用到的数据及结果)
谁能帮我用C语言编一个学生信息管理系统
用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。在主函数里能实现以下功能。 运行后出现一个选择提示。 可选择的功能有1)创建新的学生信息链表 2)增加一个新的学生信息 3)按学号删除某个学生信息 4)按学号查找某个学生信息 5)可以按照学生成绩对链表排序 6)退出系统 补充功能:基础较好的同学可以定义一个SAVE函数保存成score.txt,和一个display函数打开该文件,学生信息要含有学号,姓名,三门成绩,还要计算总分和平均成绩
Java语言可以运行C语言的程序么?Java语言的编程系统运行C语言程序怎么做的?
Java语言可以运行C语言的程序么?Java语言的编程系统运行C语言程序怎么做的?
C语言运行TURBO C语言所用的计算机的配置系统是什么,我要详细的配置型号,谢谢
C语言运行TURBO C语言所用的计算机的配置系统是什么,我要详细的配置型号,谢谢
TRUBO C语言怎么在windows 10 x64系统中运行,除了turbo C还有什么工具软件?
TRUBO C语言怎么在windows 10 x64系统中运行,除了turbo C还有什么工具软件?
C语言输出后怎么有看不懂的数字?
![图片说明](https://img-ask.csdn.net/upload/201911/25/1574689385_3161.png) ``` #include <stdio.h> #include <stdlib.h> int main() { char ctrl(char a[],char b[],char c[]); char c[100],b[50],a[50]; printf("输入一个字符串\n"); gets(a); printf("输入一个字符串\n"); gets(b); ctrl(a,b,c); puts(c); printf("\n"); return(0); } char ctrl(char a[],char b[],char c[]) { int i,j; for(i=0;a[i]!='\0';i++) c[i]=a[i]; c[i]=' '; for(j=0;b[j]!='\0';j++) c[i+j+1]=b[j]; printf("\n"); return(c); } ``` ``` ``` ``` ```
C语言实现学生宿舍管理系统
对于C语言还有点基础,.NET和Java不太懂。 假期培训了iOS开发,才一个多月,本想用OC来做毕业设计的,现在要做开题报告了,不知道怎么写。所以决定用C来编写程序。 问题1:C语言怎么连接数据库,或是保证下次运行程序内容不会重置。 问题2:怎么用C语言构建图形界面(太难的话,就不用给我讲了)
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
如何防止抄袭PCB电路板
目录 1、抄板是什么 2、抄板是否属于侵权 3、如何防止抄板 1、抄板是什么 抄板也叫克隆或仿制,是对设计出来的PCB板进行反向技术研究;目前全新的定义:从狭义上来说,抄板仅指对电子产品电路板PCB文件的提取还原和利用文件进行电路板克隆的过程;从广义上来说,抄板不仅包括对电路板文件提取、电路板克隆、电路板仿制等技术过程,而且包括对电路板文件进行修改(即改板)、对电子产品外形模具进行三维...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
相关热词 c# 引用mysql c#动态加载非托管dll c# 两个表数据同步 c# 返回浮点json c# imap 链接状态 c# 漂亮字 c# 上取整 除法 c#substring c#中延时关闭 c#线段拖拉
立即提问