学生成绩管理代码(c代码)
2016-04-11 19:13
387 查看
author:chen ming dong
一个简单的学成成绩管理系统,就是对结构体的简单应用,也没有用指针,只适合初学结构体,想用结构体做一个小项目的人Look
自己还加了一些特殊的功能。。供大家参考
一个c文件解决
,,大家,,不要学我啊,,会用多个文件的,尽量用.h文件。。不要让一个文件代码太多。。
其实这点代码也不算多,想象uboot中的Makefile一个文件有3000行的。看着都头晕。
但是初学者要学会用,多文件(哈哈。。本人也是个初学者,希望大家给个评价,也促进我学习)
give my best wishes to you!!
一个简单的学成成绩管理系统,就是对结构体的简单应用,也没有用指针,只适合初学结构体,想用结构体做一个小项目的人Look
自己还加了一些特殊的功能。。供大家参考
//这段代码实在visualstudio2016环境下写的 // 要移植到 vc6 中 就去掉几个头文件,把scanf_s(,,,)改成scanf(, , )最后那个参数不要 //#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h> #include<windows.h> //定义一个数组,用来存储学生信息 typedef struct student { char name[20]; int chinese; int math; int english; }str; int i = 0; // 没有用指针,就用数组,来存储学生信息,最多100人 str a[100]; //input功能 int input() { for (i = 0; i <= 100; i++) { printf("请输入姓名:"); scanf_s("%s", a[i].name, sizeof(a[i].name)); printf("请输入语文成绩:"); scanf_s("%d", &a[i].chinese); printf("请输入数学成绩:"); scanf_s("%d", &a[i].math); printf("请输入外语成绩:"); scanf_s("%d", &a[i].english); char b[20]; getchar(); while (1) { printf("dong是否还想输入 y/n\n"); scanf_s("%s", &b, sizeof(b)); getchar(); if (!strcmp(b, "y") || !strcmp(b, "Y")) break; else if (!strcmp(b, "n") || !strcmp(b, "N")) return i; else { continue; } } } return i; } //output 功能 void output() { if (i != 0) { for (int j = 0; j <=i; j++) { printf("%d-------------\n", j + 1); printf("姓名:%s\n", a[j].name); printf("语文:%d\n数学:%d\n外语:%d\n\n", a[j].chinese, a[j].math, a[j].english); } } else printf("还没有数据\n\n"); } void chazhao(char c[20]) { int j; for (j = 0; j <=i; j++) { if (!strcmp(a[j].name, c)) { printf("%d-------------\n",j+1); printf("姓名:%s\n", a[j].name); printf("语文:%d\n数学:%d\n外语:%d\n", a[j].chinese, a[j].math, a[j].english); break; } } if (j - 1 == i) { printf("没有这个人\n\n"); } } //允许我用拼音 好久以前巧的代码了(不想改他了),O(∩_∩)O哈哈~ void charu() { int b,c; printf("要插入到第几个:"); scanf_s("%d", &b, sizeof(int)); for (c=i; b-1 <=c; c--) { strcpy(a[c + 1].name, a[c].name); a[c + 1].chinese = a[c].chinese; a[c + 1].math = a[c].math; a[c + 1].english = a[c].english; } i++; printf("请输入学生信息:\n"); printf("请输入姓名:"); scanf_s("%s", a[b-1].name, sizeof(a[b].name)); printf("请输入语文成绩:"); scanf_s("%d", &a[b-1].chinese); printf("请输入数学成绩:"); scanf_s("%d", &a[b-1].math); printf("请输入外语成绩:"); scanf_s("%d", &a[b-1].english); } //删除功能 void shanchu() { int c; printf("要删除第几个:"); scanf_s("%d", &c, sizeof(int)); for (c = c - 1; c < i;c++) { strcpy(a[c].name, a[c+1].name); a[c].chinese = a[c+1].chinese; a[c].math = a[c+1].math; a[c].english = a[c+1].english; } i--; } //自动生成姓名,这个过程可能有点慢 char* xingming() { char **p; char xingming[20]; xingming[0] = '\0'; p = (char **)malloc(19 * sizeof(char *)); for (int b = 0; b<19; b++) *(p + b) = (char *)malloc(6 * sizeof(char)); strcpy(p[0], "明"); strcpy(p[1], "龙"); strcpy(p[2], "天"); strcpy(p[3], "阳"); strcpy(p[4], "东"); strcpy(p[5], "牛"); strcpy(p[6], "强"); strcpy(p[7], "帅"); strcpy(p[8], "伟"); strcpy(p[9], "舞"); strcpy(p[10], "横"); strcpy(p[11], "鬼"); strcpy(p[12], "桂"); strcpy(p[13], "浩"); strcpy(p[14], "爽"); strcpy(p[15], "龍"); strcpy(p[16], "伊"); strcpy(p[17], "运"); strcpy(p[18], "雷"); srand(time(0)); int c = rand() % 2+1; for (int d = 0; d <= c; d++) { int j = rand() % 18 + 1; strcat(xingming, p[j]); }; return xingming; } void yuanshi() { int b; srand(time(0)); for (i = 0; i < 10; i++) { strcpy(a[i].name, xingming()); b = rand() % 10+ 1; a[i].chinese = b; Sleep(350); printf("."); b = rand() % 100 + 1; a[i].math = b; Sleep(350); printf("."); b = rand() % 100 + 1; a[i].english = b; Sleep(350); printf("."); } i--; printf("\n"); } int main() { int n; char name[20]; while (1) { printf("1-重新输入成绩\t2-输出所有成绩\t3-查找\t4-插入\t5-自动生成(需要11秒)\t6-删除\t\t9-退出\t\t(请不要乱按)\n"); scanf_s("%d", &n, 4); if (n == 1) int i = input(); if (2 == n) output(); if (3 == n) { printf("请输入要查找的人:"); scanf("%s", name, sizeof(name)); chazhao(name); } if (4 == n) { charu(); } if (5 == n) { yuanshi(); } if (6 == n) { shanchu(); } if (9 == n) break; } system("pause"); return 0; }
一个c文件解决
,,大家,,不要学我啊,,会用多个文件的,尽量用.h文件。。不要让一个文件代码太多。。
其实这点代码也不算多,想象uboot中的Makefile一个文件有3000行的。看着都头晕。
但是初学者要学会用,多文件(哈哈。。本人也是个初学者,希望大家给个评价,也促进我学习)
give my best wishes to you!!
相关文章推荐
- python的numpy和matplotlib包的安装
- 用Python计算MIC值
- 继承与派生
- Struts 简单UI标签,ognl表达式语言几个符号
- ubuntu14.04下安装matlab2015b
- MyBatis3与Spring3无缝集成-从iBatis平滑过渡
- 单元测试---googletest
- php 内存不足
- Struts数据效验
- Java_chapter_15_图形
- C#-常用对象-思维导图
- Qt 创建文件浏览器
- C#-入门思维导图
- 加密Spring加载的Properties文件
- 《JAVA源码分析》:LinkedList
- Spring实现数据库读写分离/spring事务配置解释(Annotation/Spring AOP/Reflection)
- Reserve java调用R语言
- C#-基础部分思维导图
- C++ string 中 reverse()、assign()、split()
- Spring配置数据源的三种方式 (dbcp,c3p0,jndi).