C#项目编译报“LC.exe已退出,代码为-1错误”解决办法

本文介绍了解决 C# 项目编译时出现的“LC.exe 已退出,代码为-1”的错误方法。该问题通常由于证书原因引起,解决步骤包括删除项目中 properties 目录下的 license.licx 文件。

转: C#项目编译报“LC.exe已退出,代码为-1错误”解决办法


有的时间,在项目中编辑运行以后,竟然出错了,错误提示就是:

“LC.exe”已退出,代码为 -1

怎么解决呢?下面给你方法:

因为证书的原因,把项目中“properties”目录下的“license.licx”文件删除,再编译就成功了。如图:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #define MAX_STUDENTS 100 #define MAX_COURSES 10 #define MAX_NAME_LEN 20 #define FILENAME "D:\\luojh\\Documents\\学生成绩管理系统\\student_grades.txt" #define ADMIN_PASSWORD "admin123" typedef struct { int id; char name[MAX_NAME_LEN]; char className[MAX_NAME_LEN]; } Student; typedef struct { int id; char name[MAX_NAME_LEN]; } Course; typedef struct { int studentId; int courseId; float score; } Score; typedef struct { Student students[MAX_STUDENTS]; Course courses[MAX_COURSES]; Score scores[MAX_STUDENTS * MAX_COURSES]; int studentCount; int courseCount; int scoreCount; } GradeSystem; // 函数声明 void initSystem(GradeSystem *sys); int login(); void adminMenu(GradeSystem *sys); void userMenu(GradeSystem *sys); void saveToFile(GradeSystem *sys); void loadFromFile(GradeSystem *sys); void addStudent(GradeSystem *sys); void deleteStudent(GradeSystem *sys); void modifyStudent(GradeSystem *sys); void findStudent(GradeSystem *sys); void addCourse(GradeSystem *sys); void deleteCourse(GradeSystem *sys); void modifyCourse(GradeSystem *sys); void findCourse(GradeSystem *sys); void inputScore(GradeSystem *sys); void displayAll(GradeSystem *sys); float findScore(GradeSystem *sys, int studentId, int courseId); int findStudentIndex(GradeSystem *sys, int id); // 新增:查找学生索引 int main() { GradeSystem sys; initSystem(&sys); loadFromFile(&sys); int userType = login(); if(userType == 1) { adminMenu(&sys); } else { userMenu(&sys); } saveToFile(&sys); printf("\n系统已退出,数据已保存。\n"); return 0; } void initSystem(GradeSystem *sys) { sys->studentCount = 0; sys->courseCount = 0; sys->scoreCount = 0; // 初始化三门核心课程 strcpy(sys->courses[0].name, "高等数学"); sys->courses[0].id = 1; strcpy(sys->courses[1].name, "程序设计基础"); sys->courses[1].id = 2; strcpy(sys->courses[2].name, "线性代数"); sys->courses[2].id = 3; sys->courseCount = 3; } int login() { int choice; char password[20]; printf("\n=== 学生成绩管理系统 ===\n"); printf("1. 管理员登录\n"); printf("2. 普通用户登录\n"); printf("请选择角色: "); scanf("%d", &choice); if(choice == 1) { printf("请输入管理员密码: "); scanf("%s", password); if(strcmp(password, ADMIN_PASSWORD) == 0) { return 1; } else { printf("密码错误!\n"); exit(0); } } return 2; } void adminMenu(GradeSystem *sys) { int choice; do { printf("\n=== 管理员菜单 ===\n"); printf("1. 添加学生\n"); printf("2. 删除学生\n"); printf("3. 修改学生信息\n"); printf("4. 查找学生\n"); printf("5. 添加课程\n"); printf("6. 删除课程\n"); printf("7. 修改课程信息\n"); printf("8. 查找课程\n"); printf("9. 录入成绩\n"); printf("10. 显示所有信息\n"); printf("0. 退出系统\n"); printf("请选择操作: "); scanf("%d", &choice); switch(choice) { case 1: addStudent(sys); break; case 2: deleteStudent(sys); break; case 3: modifyStudent(sys); break; case 4: findStudent(sys); break; case 5: addCourse(sys); break; case 6: deleteCourse(sys); break; case 7: modifyCourse(sys); break; case 8: findCourse(sys); break; case 9: inputScore(sys); break; case 10: displayAll(sys); break; case 0: saveToFile(sys); break; default: printf("无效选择!\n"); } } while(choice != 0); } void userMenu(GradeSystem *sys) { int choice; do { printf("\n=== 普通用户菜单 ===\n"); printf("1. 查找学生\n"); printf("2. 查找课程\n"); printf("3. 显示所有信息\n"); printf("0. 退出系统\n"); printf("请选择操作: "); scanf("%d", &choice); switch(choice) { case 1: findStudent(sys); break; case 2: findCourse(sys); break; case 3: displayAll(sys); break; case 0: break; default: printf("无效选择!\n"); } } while(choice != 0); } void saveToFile(GradeSystem *sys) { FILE *fp = fopen(FILENAME, "w"); if(fp == NULL) { printf("无法打开文件进行写入!\n"); return; } // 保存学生信息 fprintf(fp, "[Students]\n"); for(int i = 0; i < sys->studentCount; i++) { fprintf(fp, "%d,%s,%s\n", sys->students[i].id, sys->students[i].name, sys->students[i].className); } // 保存课程信息 fprintf(fp, "[Courses]\n"); for(int i = 0; i < sys->courseCount; i++) { fprintf(fp, "%d,%s\n", sys->courses[i].id, sys->courses[i].name); } // 保存成绩信息 fprintf(fp, "[Scores]\n"); for(int i = 0; i < sys->scoreCount; i++) { fprintf(fp, "%d,%d,%.1f\n", sys->scores[i].studentId, sys->scores[i].courseId, sys->scores[i].score); } fclose(fp); printf("数据已成功保存到文件\n"); } void loadFromFile(GradeSystem *sys) { FILE *fp = fopen(FILENAME, "r"); if(fp == NULL) { printf("文件不存在,将创建新文件。\n"); return; } char line[100]; int section = 0; // 0: none, 1: students, 2: courses, 3: scores // 重置计数器 sys->studentCount = 0; sys->courseCount = 0; sys->scoreCount = 0; while(fgets(line, sizeof(line), fp)) { // 移除换行符 if(line[strlen(line)-1] == '\n') line[strlen(line)-1] = '\0'; if(strcmp(line, "[Students]") == 0) { section = 1; continue; } else if(strcmp(line, "[Courses]") == 0) { section = 2; continue; } else if(strcmp(line, "[Scores]") == 0) { section = 3; continue; } switch(section) { case 1: { Student s; char *token = strtok(line, ","); if(token == NULL) { printf("学生数据格式错误: %s\n", line); continue; } s.id = atoi(token); token = strtok(NULL, ","); if(token == NULL) { printf("学生数据格式错误: %s\n", line); continue; } strcpy(s.name, token); token = strtok(NULL, ","); if(token == NULL) { printf("学生数据格式错误: %s\n", line); continue; } strcpy(s.className, token); sys->students[sys->studentCount++] = s; break; } case 2: { Course c; char *token = strtok(line, ","); if(token == NULL) { printf("课程数据格式错误: %s\n", line); continue; } c.id = atoi(token); token = strtok(NULL, ","); if(token == NULL) { printf("课程数据格式错误: %s\n", line); continue; } strcpy(c.name, token); sys->courses[sys->courseCount++] = c; break; } case 3: { Score sc; char *token = strtok(line, ","); if(token == NULL) { printf("成绩数据格式错误: %s\n", line); continue; } sc.studentId = atoi(token); token = strtok(NULL, ","); if(token == NULL) { printf("成绩数据格式错误: %s\n", line); continue; } sc.courseId = atoi(token); token = strtok(NULL, ","); if(token == NULL) { printf("成绩数据格式错误: %s\n", line); continue; } sc.score = atof(token); sys->scores[sys->scoreCount++] = sc; break; } } } fclose(fp); printf("成功加载 %d 名学生, %d 门课程, %d 条成绩记录\n", sys->studentCount, sys->courseCount, sys->scoreCount); } // 新增:查找学生索引 int findStudentIndex(GradeSystem *sys, int id) { for(int i = 0; i < sys->studentCount; i++) { if(sys->students[i].id == id) { return i; } } return -1; // 未找到 } void addStudent(GradeSystem *sys) { if(sys->studentCount >= MAX_STUDENTS) { printf("学生数量已达上限!\n"); return; } Student s; printf("输入学号: "); scanf("%d", &s.id); // 检查学号是否已存在 if(findStudentIndex(sys, s.id) != -1) { printf("该学号已存在!\n"); return; } printf("输入姓名: "); scanf("%s", s.name); printf("输入班级: "); scanf("%s", s.className); sys->students[sys->studentCount++] = s; saveToFile(sys); printf("学生添加成功!\n"); } void deleteStudent(GradeSystem *sys) { int id; printf("输入要删除的学生学号: "); scanf("%d", &id); int index = findStudentIndex(sys, id); if(index == -1) { printf("未找到该学生!\n"); return; } // 移除学生记录 for(int j = index; j < sys->studentCount-1; j++) { sys->students[j] = sys->students[j+1]; } sys->studentCount--; // 删除该学生的所有成绩 for(int i = 0; i < sys->scoreCount; i++) { if(sys->scores[i].studentId == id) { for(int j = i; j < sys->scoreCount-1; j++) { sys->scores[j] = sys->scores[j+1]; } sys->scoreCount--; i--; } } saveToFile(sys); printf("学生删除成功!\n"); } void modifyStudent(GradeSystem *sys) { int id; printf("输入要修改的学生学号: "); scanf("%d", &id); int index = findStudentIndex(sys, id); if(index == -1) { printf("未找到该学生!\n"); return; } printf("输入新姓名(当前: %s): ", sys->students[index].name); scanf("%s", sys->students[index].name); printf("输入新班级(当前: %s): ", sys->students[index].className); scanf("%s", sys->students[index].className); saveToFile(sys); printf("修改成功!\n"); } void findStudent(GradeSystem *sys) { int id; printf("输入要查找的学生学号: "); scanf("%d", &id); int index = findStudentIndex(sys, id); if(index == -1) { printf("未找到该学生!\n"); return; } printf("\n=== 学生信息 ===\n"); printf("学号: %d\n姓名: %s\n班级: %s\n", sys->students[index].id, sys->students[index].name, sys->students[index].className); // 显示该学生的成绩 printf("\n=== 成绩信息 ===\n"); for(int j = 0; j < sys->courseCount; j++) { float score = findScore(sys, id, sys->courses[j].id); if(score >= 0) { printf("%s: %.1f\n", sys->courses[j].name, score); } else { printf("%s: 未录入\n", sys->courses[j].name); } } } void addCourse(GradeSystem *sys) { if(sys->courseCount >= MAX_COURSES) { printf("课程数量已达上限!\n"); return; } Course c; printf("输入课程编号: "); scanf("%d", &c.id); // 检查课程编号是否已存在 for(int i = 0; i < sys->courseCount; i++) { if(sys->courses[i].id == c.id) { printf("该课程编号已存在!\n"); return; } } printf("输入课程名称: "); scanf("%s", c.name); sys->courses[sys->courseCount++] = c; saveToFile(sys); printf("课程添加成功!\n"); } void deleteCourse(GradeSystem *sys) { int id; printf("输入要删除的课程编号: "); scanf("%d", &id); // 不允许删除系统默认的三门课程 if(id >= 1 && id <= 3) { printf("系统默认课程不允许删除!\n"); return; } for(int i = 0; i < sys->courseCount; i++) { if(sys->courses[i].id == id) { for(int j = i; j < sys->courseCount-1; j++) { sys->courses[j] = sys->courses[j+1]; } sys->courseCount--; // 删除该课程的所有成绩 for(int i = 0; i < sys->scoreCount; i++) { if(sys->scores[i].courseId == id) { for(int j = i; j < sys->scoreCount-1; j++) { sys->scores[j] = sys->scores[j+1]; } sys->scoreCount--; i--; } } saveToFile(sys); printf("课程删除成功!\n"); return; } } printf("未找到该课程!\n"); } void modifyCourse(GradeSystem *sys) { int id; printf("输入要修改的课程编号: "); scanf("%d", &id); for(int i = 0; i < sys->courseCount; i++) { if(sys->courses[i].id == id) { printf("输入新课程名称(当前: %s): ", sys->courses[i].name); scanf("%s", sys->courses[i].name); saveToFile(sys); printf("修改成功!\n"); return; } } printf("未找到该课程!\n"); } void findCourse(GradeSystem *sys) { int id; printf("输入要查找的课程编号: "); scanf("%d", &id); for(int i = 0; i < sys->courseCount; i++) { if(sys->courses[i].id == id) { printf("\n=== 课程信息 ===\n"); printf("课程编号: %d\n课程名称: %s\n", sys->courses[i].id, sys->courses[i].name); // 显示选修该课程的学生成绩 printf("\n=== 学生成绩信息 ===\n"); for(int j = 0; j < sys->studentCount; j++) { float score = findScore(sys, sys->students[j].id, id); if(score >= 0) { printf("%s (学号:%d): %.1f\n", sys->students[j].name, sys->students[j].id, score); } } return; } } printf("未找到该课程!\n"); } void inputScore(GradeSystem *sys) { int studentId, courseId; float score; printf("输入学生学号: "); scanf("%d", &studentId); printf("输入课程编号: "); scanf("%d", &courseId); // 检查学生和课程是否存在 int studentExists = 0, courseExists = 0; for(int i = 0; i < sys->studentCount; i++) { if(sys->students[i].id == studentId) { studentExists = 1; break; } } for(int i = 0; i < sys->courseCount; i++) { if(sys->courses[i].id == courseId) { courseExists = 1; break; } } if(!studentExists || !courseExists) { printf("学生或课程不存在!\n"); return; } printf("输入成绩: "); scanf("%f", &score); // 检查成绩范围 if(score < 0 || score > 100) { printf("成绩必须在0-100之间!\n"); return; } // 检查是否已有成绩记录 for(int i = 0; i < sys->scoreCount; i++) { if(sys->scores[i].studentId == studentId && sys->scores[i].courseId == courseId) { sys->scores[i].score = score; saveToFile(sys); printf("成绩更新成功!\n"); return; } } // 添加新成绩 if(sys->scoreCount < MAX_STUDENTS * MAX_COURSES) { sys->scores[sys->scoreCount].studentId = studentId; sys->scores[sys->scoreCount].courseId = courseId; sys->scores[sys->scoreCount].score = score; sys->scoreCount++; saveToFile(sys); printf("成绩录入成功!\n"); } else { printf("成绩记录已达上限!\n"); } } // 查找特定学生和课程的成绩 float findScore(GradeSystem *sys, int studentId, int courseId) { for(int i = 0; i < sys->scoreCount; i++) { if(sys->scores[i].studentId == studentId && sys->scores[i].courseId == courseId) { return sys->scores[i].score; } } return -1; // 未找到成绩 } // 显示所有信息 void displayAll(GradeSystem *sys) { // 显示学生信息 printf("\n=== 学生信息 (%d 人) ===\n", sys->studentCount); printf("%-10s %-15s %-15s\n", "学号", "姓名", "班级"); for(int i = 0; i < sys->studentCount; i++) { printf("%-10d %-15s %-15s\n", sys->students[i].id, sys->students[i].name, sys->students[i].className); } // 显示课程信息 printf("\n=== 课程信息 (%d 门) ===\n", sys->courseCount); printf("%-10s %-15s\n", "课程号", "课程名"); for(int i = 0; i < sys->courseCount; i++) { printf("%-10d %-15s\n", sys->courses[i].id, sys->courses[i].name); } // 显示成绩信息 printf("\n=== 成绩信息 ===\n"); if(sys->studentCount == 0) { printf("当前没有学生记录!\n"); return; } // 打印表头 printf("%-10s %-15s %-15s", "学号", "姓名", "班级"); for(int i = 0; i < sys->courseCount; i++) { printf(" %-15s", sys->courses[i].name); } printf("\n"); // 打印每个学生的所有成绩 for(int i = 0; i < sys->studentCount; i++) { printf("%-10d %-15s %-15s", sys->students[i].id, sys->students[i].name, sys->students[i].className); for(int j = 0; j < sys->courseCount; j++) { float score = findScore(sys, sys->students[i].id, sys->courses[j].id); if(score >= 0) { printf(" %-15.1f", score); } else { printf(" %-15s", "未录入"); } } printf("\n"); } }请你直接上手修改,帮我解决这个问题
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值