用C语言编写一个简单的成绩管理系统

Python011

用C语言编写一个简单的成绩管理系统,第1张

(ps:没有自己编译过)

//我写 C++比较多

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <conio.h>

#define TOTAL_STUD 1000

typedef struct stud {

char name[20]

int score

} students[TOTAL_STUD],sorted[TOTAL_STUD]

void delstud (int i) {

students[i].name = "无效学生"

students[i].score = -999

return

}

#define show(listname,i) printf("%04d    %s    %d\n",i,listname[i].name,listname[i].score)

int cmpfunc (const void * a, const void * b)

{

return ( *(stud*)a.score - *(stud*)b.score )

} // 本段代码修改自此处

void run(int menu) {

switch (menu) {

case 1:

char uname[20]

int uid,uscore

printf("请输入学生姓名:")

scanf("%s",uname)

printf("\n 请输入学生学号:")

scanf("%d",&uid)

printf("\n 请输入学生成绩:")

scanf("%d",&uscore)

students[uid].name = uname

students[uid].score = uscore

printf("\n\n插入成功!\n\n")

break

case 2:

int delid

printf("要删除谁?学号?")

scanf("%d",&delid)

delstud(delid)

break

case 3:

for (int i = 0i <TOTAL_STUDi++) {

strcpy(sorted[i].name,students[i].name)

sorted[i].score=students[i].score

}

qsort(sorted,TOTAL_STUD,sizeof(stud),cmpfunc)

printf("学号 姓名 分数\n")

for (int i = 0i <TOTAL_STUDi++) {

if (sorted[i].score >-900) show(sorted,i)

}

break

case 4:

for (int i = 0i <TOTAL_STUDi++) {

if (students[i].score >-900) show(students,i)

}

break

case 5:

int delid

printf("要查询谁?学号?")

scanf("%d",&delid)

show(students,delid)

break

default:

printf("-- %d 无此功能。请重试。--",menu)

}

return

}

int main() {

int key = -1

for (int i = 0i <TOTAL_STUDi++) {

delstud(i)

}

while (key != 0) {

printf("---成绩管理系统 V0.9 ---\n 请选择:\n1 -- 录入\n2 -- 删除\n3 -- 排序输出\n4 -- 不排序输出\n5 -- 查询\n0 -- 退出")

key=getch()-48

if (key>0) run(key)

else {

printf("谢谢使用!再见!")

return 0

}

}

return 0

}

1、一定要先写好主函数的框架,然后再往上面加东西,这样说有点笼统,我把我的主函数在下面,可以借鉴下哈。我的主函数是一个while(1)的无限循环,里面一个switch选择,利用一个菜单函数,让其返回值当成switch选择的值,然后进入不同的功能主函数,其他功能主函数和主函数的套路一样。

2、输入模块一定要注意输入的格式,我采用的尾插法,每次处理好一个节点后就让用户判定是否继续输入,在格式控制方面,我当用户输入一次,就判定它是否符号规范,如果不规范,就重新输入。最后存入文件中。

3、一定要把函数写的利用率高一点,这样就可以减少代码的重复书写,这个全凭自己的写代码的风格了,我自己在这点也没有做太好,反省中,以前刚开始学c的时候有人说c语言的主体是函数,不太懂,等写完这个,感觉说的真的很对,c语言的函数写好后,在该用的时候直接引用,很方便。

完整代码: