学生成绩管理相关代码

合集下载

Python学生成绩管理系统-完整代码

Python学生成绩管理系统-完整代码

Python学生成绩管理系统完整代码1.#----------STUDENT类-------------2.class STUDENT:3.def __init__(self):4. =""5. self.id=06. self.chinese=07. self.math=08. self.english=09. self.sum=010.11.def Input(self):12. =input("请输入学生姓名:")13. self.id=input("请输入学生学号:")14. self.chinese=int(input("请输入语文成绩:"))15. self.math=int(input("请输入数学成绩:"))16. self.english=int(input("请输入英语成绩:"))17. self.sum=self.chinese + self.math + self.english18.19.def Show(self):20.print("姓名:",,"\t学号:",self.id,"\t语文成绩:",self.chinese,"\t数学成绩:",self.math,"\t英语成绩:",self.english,"\t","总分:",self.sum)21.22.def ShowMenu():23.print("***********\t\t学生成绩管理系统\t\t************")24.print("***********\t\t \t\t***********")25.print("***********\t\t1.录入学生成绩 \t\t***********")26.print("***********\t\t2.显示学生成绩 \t\t***********")27.print("***********\t\t3.排序统计成绩 \t\t***********")28.print("***********\t\t4.查找学生成绩 \t\t***********")29.print("***********\t\t5.删除学生信息 \t\t***********")30.print("***********\t\t6.修改学生信息 \t\t***********")31.print("***********\t\t7.保存学生信息 \t\t***********")32.print("***********\t\t0.安全退出系统 \t\t***********")33.print()34.35.def AddItem():36. stu = STUDENT()37. stu.Input()38. if_exist=FindStudentID(stu.id) #根据学号id查重39.if if_exist <= len(GradeList):40.print("学号冲突!学生已存在!学号必须唯一!请重新输入!")41. input("按回车键继续...")42.return43. GradeList.append(stu)44.print("录入成功!")45. input("按回车键继续...")46.47.def Display():48.for i in range(len(GradeList)):49. GradeList[i].Show()50.# for stu in GradeList:51.# stu.Show()52. input("按回车键继续...")53.54.def Sort():55.print("正在排序!请稍后...")56. GradeList_cp=GradeList[:] #创建列表完整副本,排序统计操作不会影响到原列表元素位置57. GradeList_cp.sort(key=lambda x:x.sum,reverse=True) #lambda匿名函数,冒号前是参数,冒号后是表达式58. sum_max=GradeList_cp[0].sum59. sum_min=GradeList_cp[-1].sum60. s=061.for i in range(len(GradeList_cp)):62. s=s+GradeList_cp[i].sum63. sum_average=float( s / len(GradeList_cp))64.65. GradeList.sort(key=lambda x: x.sum, reverse=True) #将原列表元素,按总分由高到低排序66.print("排序完成!")67.print("总分最高为:",sum_max)68.print("总分最低为:",sum_min)69.print("总分平均分为:",sum_average)70. input("按回车键继续...")71.72.def FindStudent(name):73.for i in range(len(GradeList)):74.if GradeList[i].name == name :75.return i76. i=99999977.return i78.79.def FindStudentID(id):80.for i in range(len(GradeList)):81.if GradeList[i].id == id :82.return i83. i=99999984.return i85.86.def Find():87.print("\t\t*********************************")88.print("\t\t1.按学生姓名查找 2.按学生学号查找")89.print("\t\t*********************************")90. x=input("\t\t请选择功能:")91.if x=="1" :92. name=input("请输入学生姓名:")93. index=FindStudent(name)94.if index == 999999:95.print("未找到该学生!")96.else:97. GradeList[index].Show()98. input("按回车键继续...")99.elif x=="2" :100. id=input("请输入学生学号:")101. index=FindStudentID(id)102.if index == 999999:103.print("未找到该学生!")104.else:105. GradeList[index].Show()106. input("按回车键继续...")107.else :108.print("非法输入!请重新输入!")109. input("按回车键继续...")110.111.def RemoveItem():112. name=input("请输入要删除的学生姓名:")113.print("正在执行删除操作!请稍后...")114. index=FindStudent(name)115.del GradeList[index]116.print("删除成功!")117. input("按回车键继续...")118.119.def ModifyItem():120. name=input("请输入要修改信息的学生姓名:") 121. index=FindStudent(name)122.print("修改前学生信息如下:")123. GradeList[index].Show()124.print("请重新输入新的学生信息:")125. GradeList[index].Input()126.print("修改后学生信息如下:")127. GradeList[index].Show()128. input("按回车键继续...")129.130.def Save():131. file_stu=open('students.txt','w')132.for i in range(len(GradeList)):133. str_student=GradeList[i].name+"\t"+GradeList[i].id+"\t"+str(GradeList[i].chinese )+"\t"+str(GradeList[i].math)+"\t"+str(GradeList[i].english)+"\t"+str(GradeList[i].sum) 134. file_stu.write(str_student)135. file_stu.write('\n')136. file_stu.close()137.print("保存文件成功!")138. input("按回车键继续...")139.140.def ReadFile():141.try:142. file_stu = open('students.txt', 'r')143. temp_student=file_stu.readlines()144.for i in range(len(temp_student)):145. stu = STUDENT()146. str_student=temp_student[i].split('\t')147. = str_student[0]148. stu.id = str_student[1]149. stu.chinese = int(str_student[2])150. stu.math = int(str_student[3])151. stu.english = int(str_student[4])152. stu.sum = int(str_student[5])153. GradeList.append(stu)154.del stu155.print("读取文件成功!")156. file_stu.close()157.except IOError:158.print("打开异常!这是一个新系统,请录入学生信息!")159.return160.161.#主体代码162.GradeList=[]163.print("******************************************")164.print("****** 欢迎进入学生成绩管理系统 *******")165.print("******************************************")166.print("\t正在加载学生信息!请稍后...")167.ReadFile()168.169.QUIT=False170.input("按回车键继续...")171.while(QUIT!=True):172. ShowMenu()173. x=input("\t\t请选择功能:")174.if x=="0" :175. QUIT=True176.elif x=="1" :177. AddItem()178.elif x=="2" :179. Display()180.elif x=="3" :181. Sort()182.elif x=="4" :183. Find()184.elif x=="5" :185. RemoveItem()186.elif x=="6" :187. ModifyItem()188.elif x=="7" :189. Save()190.else :191.print("非法输入!请重新输入!") 192. input("按回车键继续...")。

python超详细实现完整学生成绩管理系统

python超详细实现完整学生成绩管理系统

python超详细实现完整学⽣成绩管理系统⽬录学⽣成绩管理系统简介源代码students.txtmain.pyLogin.pydb.pyMenuPage.pyview.py学⽣成绩管理系统简介⼀个带有登录界⾯具有增减改查功能的学⽣成绩管理系统(⾯向对象思想,利⽤tkinter库进⾏制作,利⽤.txt⽂件进⾏存储数据)源代码仅供学习参考,最好还是⾃⼰多敲多练习(实践是检验真理的唯⼀标准) students.txt⽤于存储数据main.pyfrom tkinter import *from Login import *import tkinter as tkroot = ()root.title('欢迎进⼊学⽣成绩管理系统')LoginPage(root)root.mainloop()Login.pyfrom tkinter import *from tkinter.messagebox import *from MenuPage import *class LoginPage(object):def __init__(self, master=None):self.root = master # 定义内部变量rootself.root.geometry('%dx%d' % (300, 180)) # 设置窗⼝⼤⼩ername = StringVar()self.password = StringVar()self.createPage()def createPage(self):self.page = Frame(self.root) # 创建Frameself.page.pack()Label(self.page).grid(row=0, stick=W)Label(self.page, text='账户: ').grid(row=1, stick=W, pady=10)Entry(self.page, textvariable=ername).grid(row=1, column=1, stick=E)Label(self.page, text='密码: ').grid(row=2, stick=W, pady=10)Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=E) Button(self.page, text='登陆', command=self.loginCheck).grid(row=3, stick=W, pady=10) Button(self.page, text='退出', command=self.page.quit).grid(row=3, column=1, stick=E) def loginCheck(self):name = ername.get()password = self.password.get()if name == 'hacker707' and password == 'admin':self.page.destroy()MenuPage(self.root)else:showinfo(title='错误', message='账号或密码错误!')db.pyimport jsonclass StudentDB(object):def __init__(self):self.students = []self._load_students_data()def insert(self, student):self.students.append(student)print(self.students)def all(self):return self.studentsdef delete_by_name(self, name): # 删除数据for student in self.students:if name == student["name"]:self.students.remove(student)breakelse:return Falsereturn True# 查询def search_by_name(self, name):for student in self.students:if name == student["name"]:return student # 姓名+成绩else:return False# 修改def update(self, stu): # 修改数据name = stu["name"]for student in self.students:if name == student["name"]:student.update(stu)return Trueelse:return False# 加载⽂件def _load_students_data(self):with open("students.txt", "r", encoding="utf-8") as f:text = f.read()if text:self.students = json.loads(text)# 保存数据def save_data(self):with open("students.txt", 'w', encoding="utf-8") as f:text = json.dumps(self.students, ensure_ascii=False)f.write(text)db = StudentDB()MenuPage.pyimport tkinter as tkfrom view import *class MenuPage(object):def __init__(self, master=None):self.root = masterself.root.geometry('%dx%d' % (600, 400))self.create_page()self.input_page = InputFrame(self.root)self.query_page = QuerryFrame(self.root)self.delete_page = DeleteFrame(self.root)self.update_page = UpdateFrame(self.root)self.about_page = AboutFrame(self.root)self.input_page.pack()def create_page(self):# 创建菜单对象menubar = tk.Menu(self.root)# add_command 添加menubar.add_command(label="录⼊", command=self.input_data) # label menubar.add_command(label="查询", command=self.query_data) # label menubar.add_command(label="删除", command=self.delete_data) # label menubar.add_command(label="修改", command=self.update_data) # label menubar.add_command(label="关于", command=self.about_data) # label # 设置菜单栏self.root.config(menu=menubar)# 切换界⾯def input_data(self):self.input_page.pack()self.update_page.pack_forget()self.delete_page.pack_forget()self.about_page.pack_forget()self.query_page.pack_forget()def query_data(self):self.input_page.pack_forget()self.query_page.pack()self.update_page.pack_forget()self.delete_page.pack_forget()self.about_page.pack_forget()def update_data(self):self.input_page.pack_forget()self.update_page.pack()self.delete_page.pack_forget()self.about_page.pack_forget()self.query_page.pack_forget()def delete_data(self):self.input_page.pack_forget()self.update_page.pack_forget()self.delete_page.pack()self.about_page.pack_forget()self.query_page.pack_forget()def about_data(self):self.input_page.pack_forget()self.update_page.pack_forget()self.delete_page.pack_forget()self.about_page.pack()self.query_page.pack_forget()view.pyimport tkinter as tkfrom db import dbfrom tkinter import ttk# 录⼊类class InputFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = master = tk.StringVar()self.math = tk.StringVar()self.chinese = tk.StringVar()self.english = tk.StringVar()self.status = tk.StringVar()self.create_page()def create_page(self):bel(self).grid(row=0, stick=tk.W, pady=10)bel(self, text="姓名:").grid(row=1, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=).grid(row=1, column=1, stick=tk.E)bel(self, text="数学:").grid(row=2, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=self.math).grid(row=2, column=1, stick=tk.E)bel(self, text="语⽂:").grid(row=3, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=self.chinese).grid(row=3, column=1, stick=tk.E)bel(self, text="英语:").grid(row=4, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=self.english).grid(row=4, column=1, stick=tk.E)tk.Button(self, text="录⼊", command=self.recode_student).grid(row=5, column=1, stick=tk.E, pady=10) bel(self, textvariable=self.status).grid(row=6, column=1, stick=tk.E, pady=10)# 录⼊成绩def recode_student(self):student = {"name": .get(),"math": self.math.get(),"chinese": self.chinese.get(),"english": self.english.get(),} # ⼀个学⽣的成绩db.insert(student)# get()得到值# set()设置值self.status.set("插⼊数据成功!")self._clear_data()db.save_data()# 清空⽂本数据def _clear_data(self):.set("")self.math.set("")self.chinese.set("")self.english.set("")# 查询类class QuerryFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = masterself.create_page()# 创建查询界⾯def create_page(self):self.create_tree_view()self.show_data_frame()# grid()tk.Button(self, text="刷新数据", command=self.show_data_frame).pack(anchor=tk.E, pady=5) # Treeviewdef create_tree_view(self):# 表头columns = ("name", "chinese", "math", "english")self.tree_view = ttk.Treeview(self, show='headings', columns=columns)self.tree_view.column("name", width=80, anchor='center')self.tree_view.column("chinese", width=80, anchor='center')self.tree_view.column("math", width=80, anchor='center')self.tree_view.column("english", width=80, anchor='center')self.tree_view.heading("name", text='姓名')self.tree_view.heading("chinese", text='语⽂')self.tree_view.heading("math", text='数学')self.tree_view.heading("english", text='英语')self.tree_view.pack()# 显⽰数据def show_data_frame(self):# 删除原节点 map(int,值)for i in map(self.tree_view.delete, self.tree_view.get_children("")):pass# 拿到列表⾥⾯所有值、students[]students = db.all()# 同时拿到索引跟value值for index, stu in enumerate(students):self.tree_view.insert('', index, values=(stu["name"], stu["chinese"], stu["math"], stu["english"]))class DeleteFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)bel(self, text='删除数据').pack()self.status = tk.StringVar()self.de_name = tk.StringVar() # 获取删除学⽣的姓名self.create_page()# 创建界⾯def create_page(self):bel(self, text="根据姓名删除信息").pack(anchor=tk.W, padx=20)e1 = tk.Entry(self, textvariable=self.de_name)e1.pack(side=tk.LEFT, padx=20, pady=5)tk.Button(self, text='删除', command=self._delete).pack(side=tk.RIGHT)bel(self, textvariable=self.status).pack()# 删除def _delete(self):name = self.de_name.get()print(name)result = db.delete_by_name(name)if result:self.status.set(f'{name}已经被删')self.de_name.set("")else:self.status.set(f'{name}不存在')class UpdateFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = masterbel(self, text='修改界⾯').pack()self.change_frame = tk.Frame(self)self.change_frame.pack() = tk.StringVar()self.math = tk.StringVar()self.chinese = tk.StringVar()self.english = tk.StringVar()self.status = tk.StringVar()self.create_page()def create_page(self):bel(self.change_frame).grid(row=0, stick=tk.W, pady=10)bel(self.change_frame, text="姓名:").grid(row=1, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=).grid(row=1, column=1, stick=tk.E)bel(self.change_frame, text="数学:").grid(row=2, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=self.math).grid(row=2, column=1, stick=tk.E)bel(self.change_frame, text="语⽂:").grid(row=3, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=self.chinese).grid(row=3, column=1, stick=tk.E)bel(self.change_frame, text="英语:").grid(row=4, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=self.english).grid(row=4, column=1, stick=tk.E)# 按钮tk.Button(self.change_frame, text='查询', command=self._search).grid(row=6, column=0, stick=tk.W, pady=10) tk.Button(self.change_frame, text='修改', command=self._change).grid(row=6, column=1, stick=tk.E, pady=10) bel(self.change_frame, textvariable=self.status).grid(row=7, column=1, stick=tk.E, pady=10)# 查询def _search(self):name = .get()student = db.search_by_name(name)if student:self.math.set(student["math"])self.chinese.set(student["chinese"])self.english.set(student["english"])self.status.set(f'查询到{name}同学的信息')else:self.status.set(f'没有查询到{name}同学的信息')# 更改成绩def _change(self):name = .get()math = self.math.get()chinese = self.chinese.get()english = self.english.get()stu = {"name": name,"math": math,"chinese": chinese,"english": english,}r = db.update(stu)if r:self.status.set(f"{name}同学的信息更新完毕")else:self.status.set(f"{name}同学的信息更新失败")class AboutFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = masterself.create_page()def create_page(self):bel(self, text="关于本作品(⼈⽣苦短,我⽤python)").pack(anchor=tk.W)以上就是使⽤python实现学⽣成绩管理系统,如果有改进的建议,欢迎在评论区留⾔奥~这篇⽂章参加了csdn的活动,还请⼤家多多三连⽀持⼀下博主,你们的⽀持就是我创作的动⼒到此这篇关于python超详细实现完整学⽣成绩管理系统的⽂章就介绍到这了,更多相关python 学⽣成绩管理系统内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

C语言课程设计学生成绩管理系统源代码吉林大学

C语言课程设计学生成绩管理系统源代码吉林大学

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>typedef struct student{ /*定义结构体*/char IDNumber[16];/*学号*/char FamilyName[16]; /*姓*/char GivenName[16]; /*名*/int sex; /*性别(0代表“女”,1代表“男”)*/int BirthYear; /*出生年*/int BirthMonth; /*出生月*/int BirthDay; /*出生日*/float score[4]; /*成绩*/float sum; /*总分*/float average; /*平均分*/}stu;typedef struct Lnode{student data;Lnode *next;}st, *linklist;/***************************************************************************/ struct tm* ptm;float Sumstu(linklist L);float Averstu(linklist L);float Sumstu(linklist L){ /*计算总分*/linklist s;s=L;int i;s->data.sum=0;for(i=0;i<=4;i++){s->data.sum+=s->data.score[i];}return (s->data.sum);}float Averstu(linklist L){linklist q;q=L;Sumstu(q);q->data.average=q->data.sum/4;return (q->data.average);}void TimeNow() /*获取系统时间*/{struct tm* ptm;long ts;int y,m,d,h,n,s;ts = time(NULL);ptm = localtime(&ts);y = ptm-> tm_year+1900; //年m = ptm-> tm_mon+1; //月d = ptm-> tm_mday; //日h = ptm-> tm_hour; //时n = ptm-> tm_min; //分s = ptm-> tm_sec; //秒}int Menu() /*菜单函数*/{int n;printf("\t\t\t\n\n\n\n欢迎使用学生成绩管理系统\n\n\t\t\t按任意键进入系统!");system("pause");system("cls");printf("************************************************************************* *\n");printf("\n\t\t\t学生成绩管理系统\n\t\t\t\t制作人陈光林(52101407)\n");printf("-------------------------------菜单(Menu)---------------------------------\n");printf("\n\t 1. Enter list 输入记录\n");printf(" \t 2. Delete a record from list 删除记录\n");printf(" \t 3. Print list 显示所有记录\n");printf(" \t 4. Search record on name 按照姓名查找记录\n");printf(" \t 5. Save the file 保存记录到文件中\n");printf(" \t 6. Load the file 从文件中读入记录\n");printf(" \t 7. Compute the score 计算所有学生的总分和均分\n");printf(" \t 8. Query by class 按班级查询显示学生总分\n");printf(" \t 9. Insert record to list 插入记录到表中\n");printf(" \t 0. Quit 退出系统\n");printf("---------------------------------------------------------------------------\n");printf("************************************************************************* ***\n");do{printf("\n\t\t\t 请选择你需要的操作(0—9):");scanf("%d",&n);}while(n<1||n>5); /*如果选择项不在1—9之间则重输*/return(n); /*返回选择项*/}/***************************************************************************/linklist initlist(void) /*建立一个空链表*/{linklist L=(linklist)malloc(sizeof(st));L->next=NULL;return NULL;}/*建立学生信息链表*/st *creastlist(linklist L){int i;float s;linklist p;for(;;){p=(linklist)malloc(sizeof(st)); /*开辟新的节点*/if(!p){printf("\n Out of memory.");return (L);}printf("请输入学生学号");scanf("%s",p->data.IDNumber);if(p->data.IDNumber[0]=='0') break;printf("请输入姓:");scanf("%s",p->data.FamilyName);printf("请输入名:");scanf("%s",p->data.GivenName);printf("请输入性别(0女/1男):");scanf("%d",&p->data.sex);printf("请输入生日:");scanf("%d %d %d",&p->data.BirthYear, &p->data.BirthMonth,&p->data.BirthDay);printf("请输入成绩\n",4);s=0;for(i=0;i<4;i++){do{printf("score%d:",i+1);scanf("%f",&p->data.score[i]);if(p->data.score[i]<0 || p->data.score[i]>100)printf(" Data error,please enter again.\n");}while(p->data.score[i]<0 || p->data.score[i]>100);s=s+p->data.score[i];}p->data.sum=s;p->data.average=s/4;p->next=L;L=p;}return(L);}/****************************************************************************** *****************//*void creastlist(linklist L){st *p;linklist head=NULL;p=(linklist)malloc(sizeof(st));p=L;for(;;){printf("请输入学生学号:\n");scanf("%s",p->data.IDNumber);printf("请依次输入学生姓名:\n");scanf("%s%s",p->data.FamilyName,p->data.GivenName);printf("请输入出生年月日:\n");scanf("%d%d%d",p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay);TimeNow();if(p->data.BirthYear>=ptm-> tm_year+1900){ printf("错误!学生年龄不能为负值!请重新输入!");continue;}else if(p->data.BirthMonth>=ptm-> tm_mon+1){printf("错误!学生年龄不能为负值!请重新输入!");continue;}else if(p->data.BirthDay>=ptm-> tm_mday){printf("错误!学生年龄不能为负值!请重新输入!");continue;}else{printf("请输入性别(0代表女,1代表男:\n");scanf("%d",p->data.sex);if(p->data.sex!=0||p->data.sex!=1) {printf("错误!学生年龄不能为负值!请重新输入!");continue;}else{printf("请分别输入外语、高数、C语言、马哲四门成绩:\n");scanf("%f%f%f%f",&p->data.score[0],&p->data.score[1],&p->data.score[2],&p->data.score[3]);p->next=head;head=p;}}}}*//*输出所有学生的信息*/void print(linklist head){linklist p;p=head;printf("************************************************************************* *");printf("| 学号| 姓名|性别|出生年月日|外语C语言高数马哲|总分|平均分|");printf("--------------------------------------------------------------------------");Sumstu(p);Averstu(p);while(p!=NULL){printf("%s%s%s%d%d%d%f%f%f%f%f%f",p->data.IDNumber,p->data.FamilyName,p->dat a.GivenName,p->data.sex,p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay,p->data.score[0],p->data.score[1],p->data.score[2],p->data.score[3],p->data.sum,p->data.average) ;printf("\n");p=p->next;}printf("\n");}/****************************************************************************** **************/void insert(linklist L){ //插入新的结点linklist s,p=L;stu e;s=(linklist)malloc(sizeof(st));s->data=e; //头插法s->next=p->next;p->next=s;}/****************************************************************************** *************/void search(linklist L){int flag=1;char familyname[16];linklist p;printf("请输入要查询的学生姓名:\n");scanf("%s",familyname);p=L->next;while(p!=NULL){if(strcmp(familyname,p->data.FamilyName)==0){system("cls");Sumstu(p);Averstu(p);printf("************************************************************************* *");printf("| 学号| 姓名|性别|出生年月日|外语C语言高数马哲|总分|平均分|");printf("--------------------------------------------------------------------------");printf("%s%s%s%d%d%d%f%f%f%f%f%f",p->data.IDNumber,p->data.FamilyName,p->data.Gi venName,p->data.sex,p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay,p->data.score[0],p->data.score[1],p->data.score[2],p->data.score[3],p->data.sum,p->data.average);printf("\n");flag=0;break;}elsep=p->next;}if(flag)printf("没有该学生信息或输入错误");Menu();}/****************************************************************************** *************************/void Delete(linklist L){linklist p,q;char num[16];int label=1;printf("请输入要删除的学生学号:\n");scanf("%s",num);p=L->next;q=L;do{if(strcmp(num,p->data.IDNumber)==0){system("cls");printf("\t发现要删除的学生信息,确认删除吗?\n");printf("\t\t确认(Y)取消(N)");getchar();if('y'||'Y'){q->next=p->next;delete p;printf("删除成功!");label=0;}else{exit(0);}}else{q=q->next;p=q->next;}} while(q->next!=NULL);if(label)printf("输入错误或者信息不存在!");}/****************************************************************************** ***************************/void Paixu(linklist L){linklist p;float s1=90,s2=80,s3=70,s4=60;p=L;int i;for(i=0;i<=4;i++){printf("****************************************************");printf("第%d科90分以上的学生:",i);if(p->data.score[i]>=s1){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(s2<=p->data.score[i]<s1){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(s3<=p->data.score[i]<s2){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(s4<=p->data.score[i]<s3){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(p->data.score[i]<s4){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}}}/***************************************************************************************************//*void Query(linklist L){ //此处假设学号形式为20101407linklist p;p=L;char classs[2];float sumclass;printf("请输入您想查询的班级:\n");scanf("%s",classs);do{sumclass=p->data.score[0]+p->data.score[1]+p->data.score[2]+p->data.score[3] ;printf("%s%f",p->data.IDNumber,p->data.sum);}while((strcmp(classs[1],p->data.IDNumber[5])==0)&&(strcmp(classs[2],p->data.IDNu mber[6])==0));}/****************************************************************************** ********************/void ComputeProject(linklist L){linklist p;float sumall[4],averall[4];float Su=0,Av=0;//sumall[4]={0,0,0,0};averall[4]={0,0,0,0};int i,m=0;p=L;for(i=0;i<=4;i++){for(p=L;p->next!=NULL;p=p->next){m++;sumall[i]+=p->data.score[i];}averall[i]=sumall[i]/4;printf("第%d科的平均成绩是:\n",averall[i]);Su+=averall[i];}Av=Su/4;printf("总的平均成绩是:%f\n",Av);}/****************************************************************************** ******************/void compute(linklist L){linklist p;p=L;Sumstu(p);Averstu(p);do{printf("学号:%s\n",p->data.IDNumber);printf("总分:%f\n平均分:%f\n",p->data.sum,p->data.average);p=p->next;}while(p->next!=NULL);}/****************************************************************************** **************/void insert(linklist L, stu e){ //插入新的结点linklist s,p=L;printf("请输入要插入的学生信息:\n");scanf("%s%s%s%d%d%d%f%f%f%f%f%f",p->data.IDNumber,p->data.FamilyName,p->data.Gi venName,p->data.sex,p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay,p->data.score[0],p->data.score[1],p->data.score[2],p->data.score[3],p->data.sum,p->data.average);s=(linklist)malloc(sizeof(st));s->data=e; //头插法s->next=p->next;p->next=s;}/****************************************************************************** *************/void save(linklist L){FILE *fp;linklist p; /* 定义移动指针*/char out];scanf("%s",outfile);if((fp=fopen(outfile,"w"))==NULL) /*为输出打开一个二进制文件,为只写方式*/{printf("Cannot open the file\n");return; /*若打不开则返回菜单*/}p=L; /*移动指针从头指针开始*/while(p!=NULL) /*如p不为空*/{fwrite(p,sizeof(st),1,fp); /*写入一条记录*/p=p->next; /*指针后移*/}fclose(fp); /*关闭文件*/printf("Save the !\n");}/* 从文件读数据函数*/st *Load(linklist L){linklist p1,p2,head=NULL; /*定义记录指针变量*/FILE *fp; /* 定义指向文件的指针*/char in];scanf("%s",infile);if((fp=fopen(infile,"r"))==NULL) /*打开一个二进制文件,为只读方式*/{printf("Can not open the file.\n");return(head);}printf("\nLoading the file!\n");p1=(linklist)malloc(sizeof(st)); /*开辟一个新单元*/if(!p1){printf("Out of memory!\n");return(head);}head=p1;while(!feof(fp)) /*循环读数据直到文件尾结束*/{if(fread(p1,sizeof(st),1,fp)!=1) break; /*如果没读到数据,跳出循环*/p1->next=(linklist)malloc(sizeof(st)); /*为下一个结点开辟空间*/if(!p1->next){printf("Out of memory!\n");return (head);}p2=p1; /*使p2指向刚才p1指向的结点*/p1=p1->next; /*指针后移,新读入数据链到当前表尾*/}p2->next=NULL; /*最后一个结点的后继指针为空*/fclose(fp);printf("\nYou have success to read data from the file!\n");return (L);}/****************************************************************************** **************//****************************************************************************** ***************/void main(){linklist head=initlist();for(;;){switch(Menu()){case 1 :creastlist(head);case 2 :Delete(head);case 3 :print(head);case 4 :search(head);case 5 :save(head);//case 6 :load(head);case 7 :compute(head);//case 8 : Query(head);case 9 :insert(head);case 0 :exit(0);}}}。

学生成绩单管理系统源代码【呕心沥血整理版】

学生成绩单管理系统源代码【呕心沥血整理版】

学生成绩单管理系统利用面向对象编程方法设计一个学生成绩单管理系统,要求实现以下功能:● 录入(添加)学生信息:学号、姓名、平时成绩和考试成绩,系统自动计算总评成绩(平时成绩占20%,考试成绩占80%).可以一次录入多名学生的信息。

● 查询学生成绩:输入要查询的学生的学号,查询该学生的信息并显示。

● 显示学生成绩单:按学号顺序显示学生成绩单。

● 删除学生信息:输入要删除的学生的学号,得到用户确认后,删除该学生的信息.● 修改学生信息:输入要修改的学生的学号,显示该学生的原有信息,用户输入修改后的信息。

● 对成绩进行统计分析:可以对总成绩进行统计分析,分别统计出各个成绩段的人数和比例,本课程班级平均成绩等。

实验步骤如下:1. 创建项目创建一个Win32 Console Application,项目名为“StudentScore"。

2. 定义学生类CStudent(1)新建一个“C/C++ Header File”,文件名为“student.h”,代码如下:// student.h 学生类的定义class CStudent {public:CStudent( char *id=”",char *na=”",int us=0, int ts=0 ); // 构造函数CStudent( const CStudent &s ); // 拷贝构造函数~CStudent();char* GetID(); // 获取学生的学号double GetTotalScore(); // 获取总评成绩static void TableHead(); // 输出表头void Display( ); // 显示学生信息private:char ID[5]; // 学号char name[10]; // 姓名int UsualScore; // 平时成绩int TestScore; // 考试成绩double TotalScore; // 总评成绩void CalcTotalScore(); // 计算总评成绩};(2)新建一个“C++ Source File”,文件名为“stud ent。

学生成绩管理系统源代码

学生成绩管理系统源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dos.h>#include<ctype.h>#include<conio.h>#include<stddef.h>#include<time.h>#define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单\n\r");textcolor(10); getch();clrscr(); break;int shoudsave=0;struct student /* 学生信息结构体定义*/{char num[10],name[20],cla[4];int score1,score2,score3,total,ave;};typedef struct node{struct student data;struct node *next;}Node,*L;void print1(){cprintf("\r======================================================================= =========");}void print2(){cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n");cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n");cprintf("\n\r 3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n");cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩.");cprintf("\n\r 5.学生成绩信息排序在这里你可以看到所有学生的各科成绩.\n"); cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n");cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存中.\n"); cprintf("\n\r 9.帮助学生成绩信息在这里你可以获得帮助信息.\n");cprintf("\n\r 0.退出系统在这里选择是否保存后,你可以安全的退出本系统.\n\n\r ");}void menu(){cprintf("\n\r\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcb\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb");cprintf("\r\xba 学生信息导入\xba 学生信息处理\xba");cprintf("\r\xba____________________________________\xba___________________________ _______________\xba");cprintf("\r\xba 1-->输入学生成绩信息\xba 6-->学生成绩信息统计\xba");cprintf("\r\xba 2-->注销学生成绩信息\xba 7-->显示学生成绩信息\xba");cprintf("\r\xba 3-->查询学生成绩信息\xba 8-->保存学生成绩信息\xba");cprintf("\r\xba 4-->修改学生成绩信息\xba 9-->帮助学生成绩信息\xba");cprintf("\r\xba 5-->学生成绩信息排序\xba 0-->退出系统\xba");cprintf("\r\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xca\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc");}void wrong(){cprintf("\n\r输入错误!请验证后重新输入.\n");}void notfind(){cprintf("\n\r该学生信息不存在!请验证后重新输入.\n");}void printc() /* 此函数用于输出中文格式*/{cprintf("\r学号姓名班级英语数学C语言总分平均分\n ");}void printe(Node *p) /* 此函数用于输出英文格式*/{cprintf("\r%-4s%-4s%4s%5d%5d%8d%5d%7d\n\r",p->data.num,p->,p->data.cla,p->dat a.score3,p->data.score2,p->data.score1,p->data.total,p->data.ave);}Node* Locate(L l,char findinfo[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针*/{Node *r;if(strcmp(nameornum,"num")==0)/* 按学号查询*/{r=l->next;while(r!=NULL){if(strcmp(r->data.num,findinfo)==0)return r;r=r->next;}}else if(strcmp(nameornum,"name")==0) /* 按姓名查询*/{r=l->next;while(r!=NULL){if(strcmp(r->,findinfo)==0)return r;r=r->next;}}return 0;}void input(L l) /* 增加学生*/{Node *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;/* 将指针置于最末尾*/while(1){ cprintf("\r如果输入完毕,请按任意键返回主菜单\n");cprintf("\r如果你还想输入,请按y(yes)继续\n\r");scanf("%s",num);if(strcmp(num,"y")==0){ cprintf("请你输入学号:");scanf("%s",num); } else break;while(s){if(strcmp(s->data.num,num)==0){printf("\t学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);print1();printc();printe(s);print1();printf("\n");getch();return;}s=s->next;}p=(Node *)malloc(sizeof(Node));strcpy(p->data.num,num);cprintf("\r请你输入姓名:");scanf("%s",p->);getchar();cprintf("\r请你输入班级:");scanf("%s",p->data.cla);getchar();cprintf("\r请你输入c语言成绩(0-100):");scanf("%d",&p->data.score1);getchar();cprintf("\r请你输入数学成绩(0-100):");scanf("%d",&p->data.score2);getchar();cprintf("\r请你输入英语成绩(0-100):");scanf("%d",&p->data.score3);getchar();p->data.total=p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total / 3; /* 信息输入已经完成*/p->next=NULL;r=p;shoudsave=1;}}void query(L l) /* 查询学生信息*/{int select;char findinfo[20];Node *p;if(!l->next){cprintf("\n 没有信息可以查询!\n");return;}cprintf("\n1==>按学号查找\n\r2==>按姓名查找\n\r");scanf("%d",&select);if(select==1) /* 学号*/{cprintf("\r请你输入要查找的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){cprintf(" 查找结果\n\r");print1();printc();printe(p);print1();}elsenotfind();}else if(select==2) /* 姓名*/{cprintf("\r请你输入要查找的姓名:");scanf("%s",findinfo);p=Locate(l,findinfo,"name");if(p){cprintf(" 查找结果\n\r");print1();printc();print1();}elsenotfind();}elsewrong();}void Delete(L l) /* 删除学生信息*/{int select;Node *p,*r;char findinfo[20];if(!l->next){cprintf("\n 没有信息可以删除!\n");return;}cprintf("\n1==>按学号删除\n\r2==>按姓名删除\n\r");scanf("%d",&select);if(select==1){cprintf("\r请你输入要删除的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);cprintf("\n\r该学生已经成功删除!\n");shoudsave=1;}elsenotfind();}else if(select==2){cprintf("\r请你输入要删除的姓名:");scanf("%s",findinfo);p=Locate(l,findinfo,"name");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);cprintf("\n\r该学生已经成功删除!\n");shoudsave=1;}elsenotfind();}else wrong();}void modify(L l) /*修改学生信息*/{Node *p;char findinfo[20];if(!l->next){cprintf("\n\r没有信息可以修改!\n");return;}cprintf("\r请你输入要修改的学生学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){cprintf("\r请你输入新学号(原来是%s):",p->data.num);scanf("%s",p->data.num);cprintf("\r请你输入新姓名(原来是%s):",p->);scanf("%s",p->);getchar();cprintf("\r请你输入新班级(原来是%s):",p->data.cla);scanf("%s",p->data.cla);cprintf("\r请你输入新的c语言成绩(原来是%d分):",p->data.score1);scanf("%d",&p->data.score1);getchar();cprintf("\r请你输入新的数学成绩(原来是%d分):",p->data.score2);scanf("%d",&p->data.score2);getchar();cprintf("\r请你输入新的英语成绩(原来是%d分):",p->data.score3);scanf("%d",&p->data.score3);p->data.total=p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total/3;cprintf("\n\r信息修改成功!\n");shoudsave=1;}elsenotfind();}void display(L l){/*显示全部学生信息*/int count=0;Node *p;p=l->next;if(!p){cprintf("\n\r 没有信息可以显示!\n");return;}cprintf(" 显示结果");print1();printc();while(p){ if(count%5==0) getch();printe(p);p=p->next;count++;}print1();cprintf("\n");}void Statistic(L l) /*统计学生信息*/{Node *pm_max,*pe_max,*pc_max,*pt_max,*pa_max; /* 用于指向分数最高的接点*/ Node *pm_min,*pe_min,*pc_min,*pt_min,*pa_min;Node *r=l->next;if(!r){cprintf("\n\r 没有信息可以统计!\n");return ;}pm_max=pe_max=pc_max=pt_max=pa_max=pm_min=pe_min=pc_min=pt_min=pa_min=r; while(r!=NULL){if(r->data.score1>=pc_max->data.score1)pc_max=r;if(r->data.score1<=pc_min->data.score1)pc_min=r;if(r->data.score2>=pm_max->data.score2)pm_max=r;if(r->data.score2<=pm_min->data.score2)pm_min=r;if(r->data.score3>=pe_max->data.score3)pe_max=r;if(r->data.score3<=pe_min->data.score3)pe_min=r;if(r->data.total>=pt_max->data.total)pt_max=r;if(r->data.total<=pt_min->data.total)pt_min=r;if(r->data.ave>=pa_max->data.ave)pa_max=r;if(r->data.ave<=pa_min->data.ave)pa_min=r;r=r->next;}cprintf("====================================统计结果====================================\n");cprintf("\r总分最高者: %-16s %d分\n",pt_max->,pt_max->data.total); cprintf("\r平均分最高者: %-16s %d分\n",pa_max->,pa_max->data.ave); cprintf("\r英语最高者: %-16s %d分\n",pe_max->,pe_max->data.score3); cprintf("\r数学最高者: %-16s %d分\n",pm_max->,pm_max->data.score2); cprintf("\rc语言最高者: %-16s %d分\n\r",pc_max->,pc_max->data.score1); cprintf("\r总分最低者: %-16s %d分\n",pt_min->,pt_min->data.total); cprintf("\r平均分最低者: %-16s %d分\n",pa_min->,pa_min->data.ave); cprintf("\r英语最低者: %-16s %d分\n",pe_min->,pe_min->data.score3); cprintf("\r数学最低者: %-16s %d分\n",pm_min->,pm_min->data.score2); cprintf("\rc语言最低者: %-16s %d分\n\r",pc_min->,pc_min->data.score1); print1();}void Sort(L l){L ll;Node *p,*rr,*s;ll=(L)malloc(sizeof(Node)); /* 用于做新的连表*/ll->next=NULL;if(l->next==NULL){cprintf("\n\r 没有信息可以排序!\n");return ;}p=l->next;while(p){s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息*/s->data=p->data;s->next=NULL;rr=ll;while(rr->next!=NULL && rr->next->data.total>=p->data.total)rr=rr->next;if(rr->next==NULL)rr->next=s;else{s->next=rr->next;rr->next=s;}p=p->next;}free(l);l->next=ll->next;cprintf("\n\r 排序已经完成!\n");}void Save(L l) /* */{FILE* fp;Node *p;int flag=1,count=0;fp=fopen("c:\\student","wb");if(fp==NULL){cprintf("\n\r 重新打开文件时发生错误!\n");exit(1);}p=l->next;while(p){if(fwrite(p,sizeof(Node),1,fp)==1){p=p->next;count++;}else{flag=0;break;}}if(flag){cprintf("\n\r 文件保存成功.(有%d条信息已经保存.)\n\r",count);shoudsave=0;}fclose(fp);}void main() /* */{L l; /* 链表*/FILE *fp; /* 文件指针*/int count=0 ,i,menu_select; /*菜单选择*/char ch ,creat;Node *p,*r;time_t it;clrscr();textmode(C80);window(1,1,80,25);textbackground(1); clrscr();textcolor(10);printf("\r 学生成绩管理系统");printf("\r -------扬州大学信息工程学院软件0902班") ;printf("\r 设计人员:李天鹏");l=(Node*)malloc(sizeof(Node));l->next=NULL;r=l;fp=fopen("c:\\student","rb");if(fp==NULL){cprintf("\n\r 该文件还未存在,是否需要创建?(y/n,Y/N)\n\r");scanf("%c",&creat);if(creat=='y'||creat=='Y'){fp=fopen("c:\\student","wb");}elseexit(0);}gotoxy(9,11); textcolor(12);cprintf("\n\r 文件已经打开,系统正在导入信息");for(i=0;i<6;i++){ cprintf(".");sleep(1);}textcolor(10);gotoxy(9,11); cprintf("\n ");while(!feof(fp)){p=(Node*)malloc(sizeof(Node));if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中*/{p->next=NULL;r->next=p;r=p; /* 将该接点挂入连中*/count++;}}fclose(fp);/* 关闭文件*/gotoxy(1,3);cprintf("\n\r信息导入完毕,系统共导入%d条信息",count);sleep(1);while(1){ menu();textcolor(12);cprintf("\r现在时间: "); it=time(NULL);cprintf(ctime(&it));cprintf("\r左边数字对应功能选择,请按0--9选择操作:\n\r");textcolor(10) ;scanf("%d",&menu_select);if(menu_select==0){if(shoudsave==1){ getchar(); textcolor(128+12);cprintf("\n\r 信息已经改动,是否将改动保存到文件中(y/n Y/N)?\n\r"); scanf("%c",&ch);if(ch=='y'||ch=='Y')Save(l);}cprintf("\n\r 你已经成功退出学生成绩信息系统,欢迎下次继续使用!\n"); break;}switch(menu_select){case 1: clrscr(); input(l); clrscr(); break; /* 输入学生*/case 2: clrscr(); Delete(l); PRINT1 /* 删除学生*/case 3: clrscr(); query(l); PRINT1 /* 查询学生*/case 4: clrscr(); modify(l); PRINT1 /* 修改学生*/case 5: clrscr(); Sort(l); PRINT1case 6: clrscr(); Statistic(l); PRINT1case 7: clrscr(); display(l); PRINT1case 8: clrscr(); Save(l); PRINT1 /* 保存学生*/case 9: clrscr(); cprintf(" ==========帮助信息==========\n");print2(); PRINT1 ;default: wrong(); getchar(); break;}}}。

学生成绩管理链表C代码

学生成绩管理链表C代码

学生成绩管理#include <stdio.h>#include <stdlib.h>#include <Windows.h>#include <string.h>#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef struct{char num[10]; // 学号char name[20]; // 姓名float score; // 成绩}student;typedef student ElemType;typedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;typedef LinkList Sta;//创建一个空表Sta CreateList_L(LinkList L){L=(LinkList)malloc(sizeof(LNode));if(!L) return OVERFLOW;L->next=NULL;return L;}Status ListInsert_L(LinkList L,int i,ElemType e)//在带头结点的单链表L中第i个位置前插入某个学生的信息{LinkList p,s;p=L;int j=0;while(p&&j<i-1){p=p->next;++j;}if(!p||j>i-1) return ERROR;s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;return OK;}//删除学生信息Status ListDelete_L(LinkList L,int i,ElemType *e) {LinkList p=L;int j=0;while(p->next&&j<i-1){p=p->next;++j;}if(!(p->next)||j>i-1)return ERROR;LinkList q=NULL;q=p->next;p->next=q->next;*e=q->data;free(q);return OK;}Status LocateElem_L(LinkList L,student e){if(L==NULL)printf("OK");LinkList p=L->next;if(p==NULL)printf("OK");int i=1;while(p){if(strcmp(p->data.num,e.num)==0) return i;p=p->next;i++;}return 0;}Status GetElem(LinkList L,int i,ElemType *e) // 访问链表,找到i位置的数据域,返回给e {LinkList p;p=L->next;int j=1;while(p&&j<i){p=p->next;++j;}if(!p||j>i) return ERROR;*e=p->data;return OK;}Status ListLength(LinkList L){int i=0;LinkList p=L->next;while(p){i++;p=p->next;}return i;}Status input(char *stu,LinkList L){int n;student s;FILE *fp;fp=fopen(stu,"w");if(fp == NULL){perror("fopen"); // 文件打开失败,打印错误信息return -1;}printf("\n\t请输入学生人数:");scanf("%d",&n);printf("\n\t请输入学生学号、姓名和成绩\n");for(int i=1;i<=n;i++){printf("\n\t学号:");scanf("%s",s.num);printf("\t姓名:");scanf("%s",);printf("\t成绩:");scanf("%f",&s.score);printf("\n");fprintf(fp,"%s %s %f\n",s.num,,s.score);ListInsert_L(L,i,s);}printf("\n\t输入完毕!\n\t");system("pause");fclose(fp);return OK;}void load(char *stu,LinkList L){student s;int i=1;FILE *fp;fp=fopen(stu,"r");if(fp == NULL){printf("can't open file!") ; // 文件打开失败,打印错误信息exit(0);}printf("\n\t\t----学生成绩信息表----\n\n");printf("\n\t\t学号\t姓名\t成绩\n");while(fscanf(fp,"%s%s%f",s.num,,&s.score)!=EOF){ListInsert_L(L,i,s);printf("\n\t\t%s\t%s\t%f\n",s.num,,s.score);i++;}fclose(fp);}//保存Status save(char *stu,LinkList L){LinkList p=L->next;FILE *fp;fp=fopen(stu,"w");if(fp == NULL){perror("fopen"); // 文件打开失败,打印错误信息return -1;}while(p){fprintf(fp,"%s\t%s\t%f\n",p->data.num,p->,p->data.score);p=p->next;}fclose(fp);return OK;}//输出单个学生信息Status Single_Out(student *e){printf("\n\t%s\t%s\t%f",e->num,e->name,e->score);return OK;}//遍历链表并输出void Listtraverse(LinkList L){int i=1;LinkList s=L->next;if(s==NULL)printf("\n用户尚未录入任何数据!!\n");else{printf("\n\t\t--当前全部学生信息如下--\n");printf("\n\t\t学号\t姓名\t成绩\n");while(s){printf("\n\t%d\t",i);printf(s->data.num);printf("\t");printf(s->);printf("\t");printf("%f",s->data.score);printf("\n");s=s->next;i++;}}}int main(){int ID;int keywords;printf("\n\n\t用户名:");scanf("%d",&ID);printf("\n\n\t用户密码:");scanf("%d",&keywords);if(ID==123&&keywords==123){fun();}else{printf("\n\n\t用户名或密码输入错误,系统拒绝访问\n\t请按任意键退出");}system("pause");return 0;}void fun(){system("cls");student s;LinkList L=CreateList_L(L);int i,a;char c;int flag=1;char addlist[30];printf("\n\n\t请输入成绩表的文件名:");scanf("%s",addlist);FILE *fp;fp=fopen(addlist,"r");if(fp == NULL){printf("\n\n\t成绩表不存在,建立一个新的成绩表(Y/N)?");scanf(" %c",&c);if(c=='Y'||c=='y'){fclose(fp);input(addlist,L);}}else{fclose(fp);load(addlist,L);printf("\t\t\n");system("pause");}while(flag){system("cls"); //清屏printf("\n\t---\t 欢迎使用学生管理系统\t---\t\n\n");printf("\n\t\t -------------------- \t\t\n\n");printf("\t|*\t 1 输入学生信息\n\n");printf("\t|*\t 2 删除学生信息\n\n");printf("\t|*\t 3 修改学生信息\n\n");printf("\t|*\t 4 按学号查找学生\n\n");printf("\t|*\t 5 输出成绩表\n\n");printf("\t|*\t 6 保存\n\n");printf("\t|*\t 7 退出\n\n");printf("\t请输入序号选择功能:");scanf("%d",&a);switch(a){case 1:system("cls");printf("\n\t请输入插入位置:");scanf("%d",&i);printf("\n\t请输入学生信息");printf("\n\t学号:");scanf("%s",s.num);printf("\n\t姓名:");scanf("%s",);printf("\n\t成绩:");scanf("%f",&s.score);if(ListInsert_L(L,i,s)){printf("\n\t插入成功\n");}else printf("\n\t插入失败\n");system("pause");break;case 2:system("cls");printf("\n\t请输入要删除的学生学号:");scanf("%s",s.num);i=LocateElem_L(L,s);if(i){if(ListDelete_L(L,i,&s))printf("\n\n\t删除成功!");else printf("\n\n\t删除失败!");}else printf("\n\n\t学号不存在,请核对后输入!");system("pause");break;case 3:system("cls");printf("\n\t请输入要修改的学生学号:");scanf("%s",s.num);i=LocateElem_L(L,s);if(i){printf("\n\n\t确实要修改么Y/N?");scanf(" %c",&c);if(c=='y'||c=='Y'){ListDelete_L(L,i,&s);printf("\n\n\t请输入修改后的信息:\n");printf("\n\t学号:");scanf("%s",s.num);printf("\t姓名:");scanf("%s",);printf("\t成绩:");scanf("%f",&s.score);ListInsert_L(L,i,s);printf("\n\t修改成功!\n\t");}}else printf("\n\n\t学号为%s的学生不存在!!\n",s.num);system("pause");break;case 4:system("cls");printf("\n\n\t请输入要查找的学生学号:");scanf("%s",s.num);i=LocateElem_L(L,s);GetElem(L,i,&s);if(i){Single_Out(&s);system("pause");}else{printf("\n\n\n\t学号为%s的学生不存在,请核对后输入!!\n",s.num);system("pause");}break;case 5:system("cls");Listtraverse(L);system("pause");break;case 6:system("cls");printf("\n\n\t请输入文件名称:");scanf("%s",addlist);save(addlist,L);printf("\n\n\t保存成功!\n\n\t");system("pause");break;case 7:flag=0;break;}}}。

c语言学生成绩管理系统源代码

c语言学生成绩管理系统源代码
printf("亲,木有您输入正确的选择业务代号,请认真核实!\n");
printf(" \n");
printf("请输入您要操作的编号:");
}
}
}
void mima(void) //密码函数
{
int i,x;//i代表密码位数(限6位)x代表在初始登陆界面亲您已经输入密码的次数(限3次)
printf (" ∵ 3.修改学生信息 ∵ \n");
printf (" ∵ 4.删除学生信息 ∵ \n");
printf (" ∵ ∵ \n");
printf (" ∵ ∵ \n");
printf(" \n");
printf(" ---- 电信1102班 \n");
printf(" \n");
printf("\n");
printf("\n");
for (x=1;x<=3;x++)
{
printf("\n");
printf(" 亲,请输入密码:");//当程序执行此处时,与密码的次数已经输入的初值相等,为1。
for (i=0;i<6;i++)//循环逐渐输入密码
printf(" ** ** ** \n");
printf(" ** 欢 ** \n");
void main()
{
void mima(void); //密码

学生成绩管理系统源代码

学生成绩管理系统源代码

学生成绩管理系统源代码#include<stdio.h>#include<stdlib.h>int main(){typedef struct LNode{char name[6];int no;int yw;int sx;int yy;struct LNode *next;}LinkList;struct NameNo{int no;int yw;int sx;int total;char name[6];}st[10];FILE *fp,*fp1;char ch,sname[6];int x,i,j;NameNo tmp;LinkList *p,*s;printf("\n");printf("-------------------------------");printf("学生成绩管理系统");printf("--------------------------------");printf("\n\n");printf("在您的C盘根目录下是否有cj1.txt和cj2.txt文件?如果有请输入,1");printf("否则输入0;如果没有,那么程序将终止!1 or 0?");scanf("%d",&i);if(i==0) return 0;printf("\n\n");printf("对cj1.txt和cj2.txt进行合成请按‘1’");scanf("%d",&i);if(i!=1) return 0;printf("正在把cj1.txt和cj2.txt中的数据进行合并\n");printf("......\n.....\n....\n...\n..\n.\n");if((fp=fopen("c:\\cj1.txt","rt"))==NULL){printf("无cj1.txt文本文件,程序结束。

c++语言学生成绩管理系统源代码

c++语言学生成绩管理系统源代码

我是电大的学生,这是struct 类型的c 语言学生成绩管理系统代码,大家交流一下#include<stdio.h>#include<string.h> #include<stdlib.h>#define MAXN 100 //#define MAXN 100 //一个班最多的人数一个班最多的人数#define MAXM 2 //#define MAXM 2 //成绩的课程门数成绩的课程门数int R;void input(); //1.void input(); //1.学生成绩新建学生成绩新建void sort(); //2.void sort(); //2.学生成绩插入学生成绩插入void load(); //3.void load(); //3.学生成绩修改学生成绩修改void print(); //4.void print(); //4.学生成绩删除学生成绩删除void total(); //5.void total(); //5.学生成绩统计学生成绩统计void search(); //6.void search(); //6.学生成绩查询学生成绩查询void save(); //7.void save(); //7.学生成绩保存学生成绩保存void end(); //8.void end(); //8.结束结束struct student{char name[20]; //char name[20]; //保存全班姓名保存全班姓名保存全班姓名char num[12]; // char num[12]; //保存全班学号保存全班学号保存全班学号char man[20]; //char man[20]; //保存全班性别保存全班性别保存全班性别float score[MAXM]; //float score[MAXM]; //保存全班所有课程成绩保存全班所有课程成绩保存全班所有课程成绩 float sum; //float sum; //保存全班每个人的总成绩保存全班每个人的总成绩保存全班每个人的总成绩float avg; // float avg; //保存每个人的平均成绩保存每个人的平均成绩保存每个人的平均成绩};struct student s[MAXN];struct http{char subject[20]; //char subject[20]; //保存全班所有课程保存全班所有课程保存全班所有课程};struct http c[MAXM];void main() //void main() //欢迎首界面欢迎首界面欢迎首界面{ int select,l;system("color fC");printf("\n");printf("\n");printf("\n");printf("\n");printf(" printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n"); \n"); printf(" * *\n"); printf(" * *\n"); printf(" * printf(" * 欢迎进入终极一班学生管理系统欢迎进入终极一班学生管理系统欢迎进入终极一班学生管理系统 *\n"); *\n"); printf(" * *\n"); printf(" * ︻┳═一︻┳═一︻┳═一 cf ... *\n"); cf ... *\n"); printf(" * printf(" * ┈━═☆甘总管的多塔生活∝╬══→┈━═☆甘总管的多塔生活∝╬══→┈━═☆甘总管的多塔生活∝╬══→ *\n"); *\n"); printf(" * *\n"); printf(" * printf(" * 凸凸^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸凸凸凸凸^-^^-^^-^凸凸 *\n"); printf(" printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n"); \n"); printf(" printf(" ╭ ╭ ╭ v v v╮╮ ╔══╗╔╗╔══╗╔╗ ╔╗╔╗╔╗╔╗╔╗╔╗ ╭╭''''''╮╮\n");printf(" (@ ^o^ @)╚╗╔╝║║╔═╦╦╦═╗║╚╝╠═╦╦╗(~ : : ~~)\n");printf(" (~) : (~)╔╝╚╗║╚╣║║║║╠╣╚╗╔╣║║║║(~) v (~)\n");printf(" ╚══╝╚═╩═╩═╩═╝ ╚╝╚═╩═╝ \n");printf("\n");printf("\n");printf(" printf(" 请按任意键进入下一界面请按任意键进入下一界面请按任意键进入下一界面\n"); \n");printf("------------------------------------------------------------------\n"); system("pause");system("color f2");system("color f1");system("color f3"); system("color fE");system("color fB");system("color f5");system("color f9");system("color f6");system("color f1");system("color f3");system("color fE");system("color fB");system("color f5");system("color f9"); system("color f6");system("color f1");system("color f3");system("color f5");system("color f9");system("color f6");system("color fD");system("pause");system("color fC");system("cls"); // system("cls"); //上面是第一个界面上面是第一个界面上面是第一个界面while(1){system("cls");printf(" ****************欢迎进入终极一班学生管理系统****************\n");printf(" ******************************************************\n");printf(" * ∝╬══→ 1.学生成绩新建 囧rz 欢 *\n");printf(" * ::======>> 2. 2.学生成绩插入学生成绩插入学生成绩插入 迎迎 *\n"); printf(" * printf(" * ┈━═☆┈━═☆┈━═☆ 3. 3.学生成绩修改学生成绩修改学生成绩修改 来来 *\n"); printf(" * printf(" * ∝╬══→∝╬══→∝╬══→ 4. 4.学生成绩删除学生成绩删除学生成绩删除 到到 *\n"); printf(" * ∝╬══→∝╬══→ 5. 5.学生成绩统计学生成绩统计学生成绩统计 英英 *\n"); printf(" * printf(" * ∝╬══→∝╬══→∝╬══→ 6. 6.学生成绩查询学生成绩查询学生成绩查询 雄雄 *\n"); printf(" * printf(" * ▄︻┻═┳▄︻┻═┳▄︻┻═┳ 7. 7.学生成绩保存学生成绩保存学生成绩保存 联联 *\n"); printf(" * printf(" * ∝╬══→∝╬══→∝╬══→ 8. 8.退出退出退出//撒拉嘿撒拉嘿 盟盟 *\n"); printf(" * ( printf(" * (⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙)()()(⊙_⊙⊙_⊙⊙_⊙) *\n"); ) *\n");printf(" ******************************************************\n"); printf("\n"); printf("\n printf("\n"); printf("\n 请输入您的选择编号请输入您的选择编号请输入您的选择编号,,回车键继续:回车键继续:\n"); \n");printf("---------------------------------------------------------------------------\n"); scanf("%d",&select);do {if(select<1||select>8){printf(" printf(" 您输入有误,请重新输入,谢谢!您输入有误,请重新输入,谢谢!!!\n"); scanf("%d",&select);}l=select;}while(l<1||l>8);switch(select) {case 1:input();break; //1. case 1:input();break; //1.学生成绩新建学生成绩新建学生成绩新建case 2:sort(); break; //2. case 2:sort(); break; //2.学生成绩插入学生成绩插入学生成绩插入case 3:load(); break; //3. case 3:load(); break; //3.学生成绩修改学生成绩修改学生成绩修改case 4:print(); break; //4. case 4:print(); break; //4.学生成绩删除学生成绩删除学生成绩删除case 5:total();break; //5. case 5:total();break; //5.学生成绩统计学生成绩统计学生成绩统计case 6:search();break; //6. case 6:search();break; //6.学生成绩查询学生成绩查询学生成绩查询case 7:save();break; //7. case 7:save();break; //7.学生成绩保存学生成绩保存学生成绩保存case 8: end();break; //8. case 8: end();break; //8.结束结束结束default:printf(" default:printf(" 请按相应数学选择系统功能:请按相应数学选择系统功能:请按相应数学选择系统功能:"); ");}}}void input() //1学生成绩输入成绩模块成绩输入成绩模块{int i,j,b;float a=0;printf(" printf(" 请输入该班同学的人数:请输入该班同学的人数:请输入该班同学的人数:\n"); \n");printf(" printf(" 班同学的人数在班同学的人数在1~%d 之间:之间:\n",MAXN); \n",MAXN);scanf("%d",&R);do{if(R<1||R>100){printf(" printf(" 您输入有误,请重新输入,谢谢!您输入有误,请重新输入,谢谢!!!\n"); scanf("%d",&R);}b=R;} while(b<1||b>100);for(i=0;i<MAXM;i++){printf(" printf(" 请输入该班同学的第请输入该班同学的第请输入该班同学的第%d %d 门课程名称为:门课程名称为:\n",(i+1)); \n",(i+1));scanf("%s", &c[i].subject);}for(i=0;i<R;i++){printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的姓名:个同学的姓名:\n",(i+1)); \n",(i+1)); scanf("%s",&s[i].name);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的学号:个同学的学号:\n",(i+1)); \n",(i+1));scanf("%s",&s[i].num);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的性别(注:可以不详):\n",(i+1)); scanf("%s",&s[i].man);printf(" printf(" 请依次输入请依次输入请依次输入%d %d 门学科的成绩:门学科的成绩:\n",MAXM); \n",MAXM);for(j=0;j<MAXM;j++){printf(" printf(" 请输入课程请输入课程请输入课程%s %s 的成绩为:的成绩为:\n",c[j].subject); \n",c[j].subject);scanf("%f",&s[i].score[j]);a=a+s[i].score[j];}s[i].sum=a;s[i].avg=s[i].sum/MAXM;a=0;}}void sort() //2学生成绩插入成绩模块模块{int i,j,k,b;float a=0;printf(" printf(" 请输入要插入的学生的位置请输入要插入的学生的位置1~%d 号:号:\n",R); \n",R);printf(" printf(" 第几个学生的位置之后:第几个学生的位置之后:第几个学生的位置之后:\n"); \n");scanf("%d",&k);do{if(k<1||k>R){printf(" printf(" 您输入有误,请重新输入,谢谢!您输入有误,请重新输入,谢谢!!!\n"); scanf("%d",&k);}b=k;}while(b<1||b>R);R=R+1;for(i=R;i>k;i--){strcpy(s[i].name,s[i-1].name);strcpy(s[i].num,s[i-1].num);strcpy(s[i].man,s[i-1].man);s[i].sum=s[i-1].sum;s[i].avg=s[i-1].avg;for(j=0;j<MAXM;j++) {s[i].score[j]=s[i-1].score[j];}}printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的姓名:个同学的姓名:\n",(k+1)); \n",(k+1));scanf("%s",&s[k].name);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的学号:个同学的学号:\n",(k+1)); \n",(k+1));scanf("%s",&s[k].num);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的性别(注:可以不详):\n",(k+1)); scanf("%s",&s[k].man);printf(" printf(" 请依次输入请依次输入请依次输入%d %d 门学科的成绩:门学科的成绩:\n",MAXM); \n",MAXM);for(j=0;j<MAXM;j++){printf(" printf(" 请输入课程请输入课程请输入课程%s %s 的成绩为:的成绩为:\n",&c[j].subject); \n",&c[j].subject);scanf("%f", &s[k].score[j]);a=a+s[k].score[j];}s[k].sum=a;s[k].avg=s[k].sum/MAXM;}void load() //3学生成绩修改学生成绩修改 {int load1(); int load2();int select,index,b;while(1){printf("*************************************************************\n");printf(" * 1.按学号修改按学号修改 * * \n");printf(" * 2.按姓名修改按姓名修改 * * \n"); printf(" * 0.返回返回 * * \n");printf(" * 请输入您的选择编号:请输入您的选择编号: * * \n");printf("*************************************************************\n");scanf("%d",&select);do{if(select<0||select>2){printf(" printf(" 您输入有误,请重新输入,谢谢!您输入有误,请重新输入,谢谢!!!\n"); scanf("%d",&select);}b=select;}while(b<0||b>2);switch(select){case 1:index=load1(); break;case 2:index=load2();break;case 0:return;}if(index!=-1){int i,j;float a=0,h[MAXM];i=index;printf(" printf(" 请输入请输入请输入%d %d 号的新学号:号的新学号: \n",i+1); \n",i+1);scanf("%s",&s[i].name);printf(" printf(" 请输入请输入请输入%d %d 号的新姓名:号的新姓名: \n",i+1); \n",i+1); scanf("%s",&s[i].num);printf(" printf(" 请输入第请输入第请输入第%d %d 个同学的性别(注:可以不详):\n",(i+1)); scanf("%s",&s[i].man);for(j=0;j<MAXM;j++){printf(" printf(" 请输入课程请输入课程请输入课程%s %s 的成绩为:的成绩为:\n",&c[j].subject); \n",&c[j].subject);scanf("%f",&h[j]);s[i].score[j] =h[j];a=a+s[i].score[j];}s[i].sum=a;s[i].avg=s[i].sum/MAXM;printf(" printf(" 修改成功。

学生成绩管理系统的设计与实现代码

学生成绩管理系统的设计与实现代码

学生成绩管理系统的设计与实现代码本系统有增加学生记录、修改学生记录、删除学生记录、按姓名查询学生记录、按C语言成绩对学生进行排序、退出系统6大功能。

能够对学生的姓名,学号,c语言成绩做相应的操作。

在检测到输入成绩大于55时,会自动加上5。

该管理系统设计功能模块图:下面是源代码:#include "stdio.h"#include "string.h"/*定义学生结构体*/struct Student{char ID[20]; //学号char Name[20]; //姓名float C_Mark; //C语言成绩};/*声明学生数组及学生数量*/struct Student students[1000];int num=0;/*通过学号返回数组下标*/int Student_SearchByIndex(char id[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].ID,id)==0) {return i;}}return -1;}/*通过姓名返回数组下标*/int Student_SearchByName(char name[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].Name,name)==0){return i;}}return -1;}/*显示单条学生记录*/void Student_DisplaySingle(int index){printf("%10s%10s%8s\n","学号","姓名","C语言成绩");printf("-------------------------------------------------------------\n");printf("%10s%10s%8.2f\n",students[index].ID,students[index] .Name,students[index].C_Mark);}/****1、增加学生记录*****/void Student_Insert(){while(1){printf("请输入学号:");scanf("%s",&students[num].ID);getchar();printf("请输入姓名:");scanf("%s",&students[num].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[num].C_Mark);getchar();if (54<students[num].C_Mark && students[num].C_Mark< 60) //把55~59分之间的成绩都加上5分{students[num].C_Mark += 5;}num++;printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******2、修改学生信息**********/void Student_Modify(){while(1){char id[20];int index;printf("请输入要修改的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("该学生不存在!\n");}else{printf("你要修改的学生信息为:\n");Student_DisplaySingle(index);printf("-- 请输入新值--\n");printf("请输入学号:");scanf("%s",&students[index].ID);getchar();printf("请输入姓名:");scanf("%s",&students[index].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[index].C_Mark);getchar();}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****3、删除学生信息****/void Student_Delete(){int i;while(1){char id[20];int index;printf("请输入要删除的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("学生不存在!\n");}else{printf("你要删除的学生信息为:\n");Student_DisplaySingle(index);printf("是否真的要删除?(Y/N)");if (getchar()=='Y'){for (i=index;i<num-1;i++){students[i]=students[i+1];//把后边的对象都向前移动}num--;}getchar();printf("已删除\n");}printf("是否继续删除?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****4、按姓名查询******/void Student_Select(){while(1){char name[20];int index;printf("请输入要查询的学生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if (index==-1){printf("学生不存在!\n");}else{printf("你要查询的学生信息为:\n");Student_DisplaySingle(index);}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******5、按C语言成绩排序*******/void Student_SortByAverage(){int i,j;struct Student tmp;for (i=0;i<num;i++){for (j=1;j<num-i;j++){if (students[j-1].C_Mark<students[j].C_Mark){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}/*显示学生信息*/void Student_Display(){int i;printf("%10s%10s%8s\n","学号","姓名","成绩");printf("-------------------------------------------------------------\n");for (i=0;i<num;i++){printf("%10s%10s%8.2f\n",students[i].ID,students[i].Name ,students[i].C_Mark);}}/*将学生信息从文件(Database.txt)中读出*/void IO_ReadInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","rb"))==NULL){printf("不能打开文件!\n");return;}if (fread(&num,sizeof(int),1,fp)!=1){num=-1;}else{for(i=0;i<num;i++){fread(&students[i],sizeof(struct Student),1,fp);}}fclose(fp);}/*将学生信息写入文件(Database.txt)*/void IO_WriteInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","wb"))==NULL){printf("不能打开文件!\n");return;}if (fwrite(&num,sizeof(int),1,fp)!=1){printf("写入文件错误!\n");}for (i=0;i<num;i++){if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1){printf("写入文件错误!\n");}}fclose(fp);}/***********主程序*********/void main(){int choice;IO_ReadInfo(); //读取文件while(1){/*主菜单*/printf("\n------ 学生成绩管理系统------\n");printf("1. 增加学生记录\n");printf("2. 修改学生记录\n");printf("3. 删除学生记录\n");printf("4. 按姓名查询学生记录\n");printf("5. 按C语言成绩排序\n");printf("6. 退出\n");printf("请选择(1-6):");scanf("%d",&choice);getchar();switch(choice){case 1:Student_Insert();break;case 2:Student_Modify();break;case 3:Student_Delete();break;case 4:Student_Select();break;case 5:Student_SortByAverage();Student_Display();break;case 6:exit(0);break;}IO_WriteInfo();}}1234567891011121415161718192021222324252627282930313233343637383940414243444546474849505152535455565859606162636465666768697071727374757677788081828384858687888990919293949596979899 100102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320322323324325326327328329330331332333334335336337338运行结果:测试第一个功能,输入四个学生的成绩:测试第二个功能,修改学生记录:测试第三个功能,删除学生记录:测试第四个功能,按姓名查询学生记录:测试第五个功能,显示所有学生的成绩,按照C语言成绩由高到底排序:我们可以看到,各项功能的实现,在第2个步骤中,将赵的成绩改为80,而第3个步骤删除了李的成绩。

学生成绩管理系统(JAVA课程设计)

学生成绩管理系统(JAVA课程设计)

Java课程设计课题:学生成绩管理系统一、问题及功能分析1、身份验证,和使用系统的权限设置、判定。

2、实现同学的学号、性别、成绩等信息的录入、编辑3、提供对学号或姓名,进行成绩或所有信息的查询.4、计算学生平均成绩,显示最高成绩学生信息5、能实现按成绩、学号、姓名排序列出学生信息.6、能统计学生成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出。

7、用文件保存数据,以便反复使用.二、概要设计import java。

lang.*;import java.io。

*;class Mytest{public static void main(String[]args)throws IOException{{int select;select = 1;Student stu[]= new Student[10];StudentMis mis=new StudentMis();Scanner sc = new Scanner(System.in);System。

out.println();System.out。

println(”—---—-—-————————-——-——-——-—---—--———-——");System.out。

println(”* *");System。

out.println(”欢迎进入学生成绩管理系统");System。

out。

println(”**”);System。

out.println(”-————--——-—-—---——-——--———-—-—----——--—");while(true){System。

out.println( );System。

out.println(" 请选择您的操作:");System.out.println(” 1.录入学生成绩信息;”);System.out.println(" 2.显示学生成绩信息;”);System。

学生信息管理系统c语言版源代码

学生信息管理系统c语言版源代码

学生信息管理系统c语言版源代码#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT;STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20];printf("\n");printf("还需要操作么,如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢~\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++) {printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:");scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:");scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0){struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:");scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1];}shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误~\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number);printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp;int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL){printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败~\n");return;}printf("存储文件成功~\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r");shuliang=0;if(NULL==fp){perror("读取文件打开失败~\n");return;}memset(student,0x0,sizeof(student));while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败~\n");return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i; printf("导出文件成功~\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break;case 2:ShanChu();break;case 3:LiuLan();break;case 4:ChaZhao();break;case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢~\n"); goto a;}}}main() {menu();}。

python学生成绩管理系统代码开源代码

python学生成绩管理系统代码开源代码

Python 学生成绩管理系统代码开源代码一、介绍1. Python 学生成绩管理系统是一款使用 Python 编程语言开发的学生成绩管理系统,旨在帮助教师和学生更轻松地管理学生成绩信息,提高教学和学习效率。

2. 该系统具有管理学生信息、录入成绩、查询成绩等功能,操作简单方便,适合各类学校和教育机构使用。

二、功能1. 学生信息管理- 实现学生信息的录入、删除、修改等操作,包括学号、尊称、性别、芳龄、班级等基本信息。

2. 成绩录入- 支持教师录入学生成绩信息,包括各科目成绩、总成绩等,方便进行成绩分析和统计。

3. 成绩查询- 学生和教师可以通过系统进行成绩查询,快速准确地了解个人或班级成绩情况。

4. 数据分析- 系统提供成绩分析功能,支持各类成绩报表的生成和导出,方便教师进行成绩分析和评估。

三、代码开源1. 该学生成绩管理系统的代码完全开源,任何人都可以获取并自由使用、修改和分发。

2. 欢迎各类开发者参与进来,为系统的改进和完善贡献自己的力量,共同推动教育信息化的发展。

四、使用方法1. 下载安装 Python 开发环境2. 获取学生成绩管理系统的源代码3. 打开 Python 集成开发环境(IDE),导入系统代码4. 运行系统代码,即可在本地搭建起学生成绩管理系统五、系统截图[这里可以插入系统界面截图,展示系统的操作界面和功能模块]六、未来展望1. 在系统开源的基础上,期待引入更多先进的技术和功能,例如人脸识别、智能推荐等,实现更智能、更便捷的学生成绩管理。

2. 不断优化系统的用户体验和操作界面,提高系统的稳定性和安全性,为广大教育工作者和学生提供更好的服务。

七、结语1. Python 学生成绩管理系统代码开源,是为了促进科技和教育的良性互动,让技术更好地服务于教育事业。

2. 愿我们的努力能够为教育信息化的进步和发展贡献自己的一份力量,让教学和学习变得更加高效和便捷。

以上是关于 Python 学生成绩管理系统代码开源代码的介绍,欢迎大家下载使用,并提出宝贵的意见和建议,让我们一同推动教育信息化事业的发展。

学生管理系统 C语言代码

学生管理系统 C语言代码

#include"stdio.h"#include"stdlib.h"#include"string.h"struct stu_info1{char num[13];//学号char name[10];//姓名char sex[5];//性别char cls[20];//班级}stu1[6];struct stu_info2{char counum[6];//课程号char counam[20];//课程名称int credit;//学分}stu2[6];struct stu_info3{char num[13];//学号char counum[6];//课程号float results;//分数}stu3[12];struct stu_info4{char num[13];//学号char counum[6];//课程号float results;//分数}stu4[12];int n=11;void main(){void gengxin();void input1();void input2();void input3();void output();void xianshi();void chaxun();void printf1();void printf2();input1();input2();output();int i;loop: ;printf("*************欢迎使用分数查询系统*************\n");printf("** 请选择**\n");printf("** 1.录入2.删除无用信息(管理员功能) **\n");printf("** 3.显示4.查询(学生功能) **\n");printf("** 5.显示学生信息6.显示课程信息**\n");printf("** 7.退出**\n");printf("**********************************************\n");scanf("%d",&i);switch(i){case 1: input3();break;case 2:gengxin();break;case 3:xianshi();goto loop;case 4: chaxun();goto loop;case 5: printf1();goto loop;case 6: printf2();goto loop;case 7:break;default:printf("error");break;}}void input1()//录入结构体stu1[]{int i;FILE *fp;if((fp=fopen("A.txt","r"))==NULL){printf("can not open file\n");exit(0);}/* printf(" 学号姓名性别班级\n");*/for(i=0;i<=5;i++){fscanf(fp,"%s%s%s%s",&stu1[i].num,&stu1[i].name,&stu1[i].sex,&stu1[i].cls);/*printf("%-13s %-10s %-5s %-20s\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i] .cls);*/}fclose(fp);}void input2()//录入结构体stu2[]{int i;FILE *fp;if((fp=fopen("B.txt","r"))==NULL){printf("can not open file\n");exit(0);}for(i=0;i<=5;i++){fscanf(fp,"%s%s%d",&stu2[i].counum,&stu2[i].counam,&stu2[i].credit);}fclose(fp);}void input3()//录入成绩{FILE *fp;fp=fopen("C.txt","w");int a,i,j,k;float cetss;char number[13],cnum[6],mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){printf("请输入要录入学生成绩的个数\n");scanf("%d",&a);for(i=1;i<=a;i++){printf("请输入要录入的第%d同学的学号:",i);scanf("%s",number);printf("请输入要录入的第%d同学的课程号:",i);scanf("%s",cnum);for(j=0;j<=5;j++)//学号{if((strcmp(number,stu1[j].num)==0))break;}if(j<=5){for(k=0;k<=5;k++)//课程号{if(strcmp(cnum,stu2[k].counum)==0){printf("请输入要录入同学的成绩:");scanf("%f",&cetss);fprintf(fp,"%s %s %f\n",number,cnum,cetss);break;}}}if(j>5||k>5){printf("Error,please input again");i=i-1;}printf("录入成功\n");}}else{printf("密码错误\n");}}void output()// 录入结构体stu3[]{int i;FILE *fp=fopen("C.txt","r");for(i=0;i<n;i++){fscanf(fp,"%s%s%f",&stu3[i].num,&stu3[i].counum,&stu3[i].results);/*printf("%s%s%f\n",stu3[i].num,stu3[i].counum,stu3[i].results);*/ }fclose(fp);}void xianshi()// 显示成绩{int i,j;for(i=0;i<n;i++){for(j=0;j<6;j++){if((strcmp(stu3[i].num,stu1[j].num))==0)printf("%s\t",stu1[j].name);}for(j=0;j<6;j++){if(strcmp(stu3[i].counum,stu2[j].counum)==0)printf("%s\t",stu2[j].counam);}printf("%3.1f\n",stu3[i].results);}}void chaxun()//查询功能{char number[13],c;int i,j,k,a,b,d;while((c=getchar())!='Q'){a=0,b=0;//a记录学分b记录学科printf("请输入要查询同学的学号\n");scanf("%s",number);for(i=0;i<n;i++){if(strcmp(number,stu3[i].num)==0){printf("学号:%s\t",stu3[i].num);for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){printf("姓名:%s\n",stu1[j].name);}}break;}}d=i;for(i=0;i<n;i++)if(strcmp(number,stu3[i].num)==0){b=b+1;for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<6;k++){if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;}break;}}if(stu3[i].results>=60){a=a+stu2[k].credit;printf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,stu2[k].credit);}elseprintf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,0);}if(d<n){printf("共修%d科\t\t实得总学分:%d\n",b,a);}else{printf("学号输入错误\n");}getchar();printf("退出请按Q+回车,继续查询请按回车键");}}void gengxin()//更新信息,删除C.txt中无用信息{FILE *fp;int i,j,k;char mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){fp=fopen("C.txt","w");for(i=0;i<n;i++){for(j=0;j<6;j++)if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<=5;k++)if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;if(k<=5){fprintf(fp,"%s %s %f\n",stu3[i].num,stu3[i].counum,stu3[i].results);}}}printf("更新C.txt成功\n");fclose(fp);}else{printf("密码错误\n");}}void printf1()//显示学生信息{int i;printf(" 学号姓名性别班级\n");for(i=0;i<=5;i++){printf("%-13s%-10s%-5s %-20s\n\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i].cls);}}void printf2()//显示课程信息{int i;printf(" 课程编号课程名称学分\n");for(i=0;i<=5;i++){printf("%-6s%-20s %-4d\n\n",stu2[i].counum,stu2[i].counam,stu2[i].credit);}}。

学生成绩管理系统(数据结构C语言版源代码)

学生成绩管理系统(数据结构C语言版源代码)

学生成绩管理系统(数据结构C语言版源代码)-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII#include<stdio.h>#include<string.h>#include<stdlib.h>struct students{char Num[10]; /*字符型学生学号*/char Name[20]; /*字符型学生姓名*/char Sex[3]; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据结构*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机组成原理*/struct students *next; /*用与构建连表指向下一结点*/};FILE *fp; /*定义全局变量fp*/void Revisemenu();/*修改菜单*/void Sortmenu();/*排序菜单*/void menu();/*主菜单*/void secret();/*安全验证*/struct students * Input();/*新建学生信息*/void fprint(struct students *head);/*将信息导入文件可追加*/void fprint_(struct students *head);/*将信息导入文件并覆盖*/void Browse(struct students *head);/*浏览全部学生信息*/struct students * create(struct students *head,int *n);/*从tushu_list中读取数据构建链表*/void FindofNum(struct students *head);/*按学号查询学生信息*/void FindofNname(struct students *head);/*按姓名查询学生信息*/void SortEnglish(struct students * head);/*按英语成绩排序*/void SortJava(struct students * head);/*按Java成绩排序*/void SortSjjg(struct students * head);/*按数据结构成绩排序*/void SortSzdl(struct students * head);/*按数字逻辑电路成绩排序*/void SortJsj(struct students * head);/*按计算机组成原理成绩排序*/struct students * Delete(struct students * head,char m[15]);/*按学号删除学生成绩信息*/struct students * Revise();/*修改学生信息(按编号修改)*//*主菜单*/void menu(){printf("\n\n");printf("***************************************************\n");printf(" 学生成绩管理系统 \n");printf("---------------------------------------------------\n");printf(" 1-添加新同学 2-浏览学生信息 \n");printf(" 3-按学号查询 4-按姓名查询 \n");printf(" 5-按成绩排序 6-修改学生信息 \n");printf(" 7-删除学生信息 0-退出系统 \n");printf("---------------------------------------------------\n");printf("___________________________________________________\n");}/*排序菜单*/void Sortmenu(){printf("\n\n");printf("***************************************************\n");printf(" 按成绩排序 \n");printf(" 1-大学英语 2-JAVA编程 \n");printf(" 3-数据结构 4-数字逻辑电路 \n");printf(" 5-计算机组成原理 0-返回上级菜单 \n");printf("***************************************************\n");}/*修改菜单*/void Revisemenu(){printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf(" 1--修改学生姓名 2--修改学生学号 \n");printf(" 3--修改学生性别 4--修改英语成绩 \n");printf(" 5--修改JAVA成绩 6--修改数据结构 \n");printf(" 7--修改数字电路 8--修改计算计 \n");printf(" 0--返回上级菜单 \n");printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");}/*安全验证*/void secret(){char a[20];printf("**欢迎来到学生信息管理系统,进入系统前请先进行密码验证---");printf(" ");do{gets(a); /*输入密码*/system("cls"); /*调用库函数清屏*/printf("对不起!您输入的密码有误,请重新输入---");}while(strcmp(a,"0605")!=0); /*单一密码"0605"*/system("cls");}/*新建学生信息*/struct students * Input(){struct students *p1,*p2,*head; /*建立辅助结点及头结点*/char Name;int n=0,x;printf("\n请按对应项输入学生信息以#结束:\n");printf("姓名学号性别英语 Java 数据结构数字电路计算机组成原理\n");p1=(struct students *)malloc(sizeof(struct students));head=p2=p1;do{ /*使用do while语句输入学生信息*/scanf("%s",&p1->Name);if(strcmp(p1->Name,"#")==0)break; /*判断结束符*/elsescanf("%s%s%lf%lf%lf%lf%lf",p1->Num,p1->Sex,&p1->English,&p1->Java,&p1->Sjjg,&p1->Szdl,&p1->Jsj);Name='#';p1=(struct students *)malloc(sizeof(struct students));p2->next=p1;p2=p1;n++;}while(1);p1->next=NULL;printf("学生信息输入结束!\n");getchar();printf("是否保存学生信息(1.是/2.否):");scanf("%d",&x);if(x==1)fprint(head); /*调用函数保存至文件*/elseprintf("\n文件没有被保存!\n");return head; /*返回头指针*/}/*将信息导入文件可追加*/void fprint(struct students *head){struct students *p1;if((fp=fopen("students_list.txt","a"))==NULL){printf("File open error!\n");exit(0);}for(p1=head;p1->next!=NULL;p1=p1->next) /*遍历*/fprintf(fp,"%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n", p1->Name,p1->Num,p1->Sex,p1->English,p1->Java,p1->Sjjg,p1->Szdl,p1->Jsj);/*将学生信息写入文件*/fclose(fp); /*关闭文件*/printf("\n学生信息已成功保存到文件 students_list.txt 中!\n");getchar();}/*将信息导入文件并覆盖*/void fprint_(struct students *head){struct students *p1;if((fp=fopen("students_list.txt","w"))==NULL){printf("File open error!\n");exit(0);}for(p1=head;p1!=NULL;p1=p1->next) /*遍历*/fprintf(fp,"%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n", p1->Name,p1->Num,p1->Sex,p1->English,p1->Java,p1->Sjjg,p1->Szdl,p1->Jsj);/*将学生信息写入文件*/fclose(fp); /*关闭文件*/;getchar();}/*浏览全部学生信息*/void Browse(struct students *head){char Num[10]; /*字符型学生学号*/char Name[20]; /*字符型学生姓名*/char Sex[3]; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据结构*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机组成原理*/if((fp=fopen("students_list.txt","a+"))==NULL){printf("File open error!\n");exit(0);}printf("-------------------------------------------------------------\n");printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(!feof(fp))/*读取并输出*/{fscanf(fp,"%s%s%s%lf%lf%lf%lf%lf",Name,Num,Sex,&English,&Java,&Sjjg,&Sz dl,&Jsj);printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",Name,Num,Sex,English,Java,Sjjg,Szdl,Jsj);};if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}/*从tushu_list中读取数据构建链表*/struct students * create(struct students * head,int *n){FILE *fp;struct students*p,*p1,*p2;if((fp=fopen("students_list.txt","a+"))==NULL){printf("File open error!\n");exit(0);}while(!feof(fp)){(*n)++;p=(struct students *)malloc(sizeof(struct students));fscanf(fp,"%s%s%s%lf%lf%lf%lf%lf",p->Name,p->Num,p->Sex,&p->English,&p->Java,&p->Sjjg,&p->Szdl,&p->Jsj);if(head==NULL){head=p;p1=p;}else{p1->next=p;p2=p1;p1=p;}}p2->next=NULL;free(p);(*n)--;fclose(fp);return head;}/*按姓名查询学生信息*/void FindofName(struct students *head){int i=0,n=0;char b[20];struct students *p;head=create(head,&n);p=head;printf("\n请输入要查询的学生姓名:");scanf("%s",b);while(p!=NULL){if(strcmp(p->Name,b)==0){printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);i++;}p=p->next;}if(i==0)printf("\n对不起!没有找到名为“%s”的学生信息!\n",b);}/*按学号查询学生信息*/void FindofNum(struct students *head){int i=0,n;char b[20];struct students *p;head=create(head,&n);p=head;printf("\n请输入要查询的学生学号:");scanf("%s",b);while(p!=NULL){if(strcmp(p->Num,b)==0){printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);i++;}p=p->next;}if(i==0)printf("\n对不起!没有找到学号为“%s”学生信息!\n",b);}/*按英语成绩排序*/void SortEnglish(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double English;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;English=p->English; /*将链表中第一个成绩赋给English*/while(p!=NULL){if((p->English)>English)/*比较*/English=p->English;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->English==English){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->English==English){ /*分数相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按英语成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按JAVA成绩排序*/void SortJava(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double Java;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Java=p->Java; /*将链表中第一个成绩赋给Java*/while(p!=NULL){if((p->Java)>Java)/*比较*/Java=p->Java;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Java==Java){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Java==Java){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按Java成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按数据结构排序*/void SortSjjg(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double Sjjg;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Sjjg=p->Sjjg; /*将链表中第一个成绩赋给Sjjg*/while(p!=NULL){if((p->Sjjg)>Sjjg)/*比较*/Sjjg=p->Sjjg;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Sjjg==Sjjg){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Sjjg==Sjjg){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按数据结构成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按数字电路排序*/void SortSzdl(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double Szdl;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Szdl=p->Szdl; /*将链表中第一个成绩赋给Szdl*/while(p!=NULL){if((p->Szdl)>Szdl)/*比较*/Szdl=p->Szdl;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Szdl==Szdl){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Szdl==Szdl){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按数字电路成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按计算机组成原理排序*/void SortJsj(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double Jsj;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Jsj=p->Jsj; /*将链表中第一个成绩赋给Jsj*/while(p!=NULL){if((p->Jsj)>Jsj)/*比较*/Jsj=p->Jsj;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Jsj==Jsj){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Jsj==Jsj){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按计算机组成原理成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按学号删除学生成绩信息*/struct students * Delete(struct students * head,char m[15]){struct students *ptr1,*ptr2;int n;printf("\n所有学生信息如下:\n");Browse(head);printf("\n请输入想要删除的学生学号:");scanf("%s",m);head=create(head,&n);if(head==NULL){printf("无学生信息!\n");return head;}if((strcmp(head->Num,m)==0)&&head!=NULL){ptr2=head;head=head->next;free(ptr2);}if(strcmp(head->Num,m)!=0){ptr1=head;ptr2=head->next;while(ptr2!=NULL){if(strcmp(ptr2->Num,m)==0){ptr1->next=ptr2->next;free(ptr2);}elseptr1=ptr2;ptr2=ptr1->next;}}fprint_(head);printf("\n学号为' %s '学生信息已被删除,并保存至文件!\n",m);return head;}/*修改学生信息(按编号修改)*/struct students * Revise(){int n=0,t;char num[10];char Num[10]; /*字符型学生学号*/char Name[20]; /*字符型学生姓名*/char Sex[3]; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据结构*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机组成原理*/struct students *head=NULL;struct students *p;printf("\n所有学生信息如下:\n");Browse(head);head=create(head,&n);printf("\n输入需要修改的学生的学号:");scanf("%s",num);p=head;while(head!=NULL){if(strcmp(p->Num,num)==0){system("cls");Revisemenu();printf("编号为%s的学生信息如下:\n",num);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);while(1){printf("请选择需要修改的信息:");scanf("%d",&t);switch(t){case 1:printf("请输入新姓名:");scanf("%s",Name);strcpy(p->Name,Name);break;case 2:printf("请输入新学号:");scanf("%s",&Num);strcpy(p->Num,Num);break;case 3:printf("请输入新性别:");scanf("%s",Sex);strcpy(p->Sex,Sex);break;case 4:printf("请输入新英语成绩:");scanf("%lf",&English);p->English=English;break;case 5:printf("请输入新Java成绩:");scanf("%lf",&Java);p->Java=Java;break;case 6:printf("请输入新数据结构成绩:");scanf("%lf",&Sjjg);p->Sjjg=Sjjg;break;case 7:printf("请输入新数字电路成绩:");scanf("%lf",&Szdl);p->Szdl=Szdl;break;case 8:printf("请输入新计算机组成原理成绩:");scanf("%lf",&Jsj);p->Jsj=Jsj;break;case 0:system("cls");menu();goto lab;break;default:printf("对不起,输入有误!");break;}}}elsep=p->next;}lab:fprint_(head);printf("修改完成,并储存至文件!\n");return head;}/*主函数*/void main(){int choice,ch;char m[15];struct students *head=NULL;secret();menu();while(1){printf("请输入选项:");scanf("%d",&choice);switch(choice){case 1:Input();break;case 2:system("cls");menu();Browse(head);break;case 3:system("cls");menu();FindofNum(head);break;case 4:system("cls");menu();FindofName(head);break;case 5:system("cls");Sortmenu();do{printf("请输入您的选择:");scanf("%d",&ch);switch(ch){case 1:system("cls");Sortmenu();SortEnglish(head);break;case 2:system("cls");Sortmenu();SortJava(head);break;case 3:system("cls");Sortmenu();SortSjjg(head);break;case 4:system("cls");Sortmenu();SortSzdl(head);break;case 5:system("cls");Sortmenu();SortJsj(head);break;}}while(ch!=0);system("cls");menu();break;case 6:system("cls");menu();Revise();break;case 7:system("cls");menu();head=Delete(head,m);break;case 0:system("cls");printf("\t\t欢迎下次再来!");exit(0);default:printf("对不起,输入有误!");break;}}return ;}。

学生录入成绩C语言代码,学生成绩管理系统C语言源代码.doc

学生录入成绩C语言代码,学生成绩管理系统C语言源代码.doc

学⽣录⼊成绩C语⾔代码,学⽣成绩管理系统C语⾔源代码.doc 学⽣成绩管理系统C语⾔源代码#include"stdio.h"#include#include#include"process.h"#include"ctype.h"typedef struct{char num[10];char name[10];int c;int math;int English;double aver;}Student;Student stu[99];int shuru(Student stud[],int n)/*输⼊若⼲条记录*/{int i=0;char sign,x[10];double a=0.0;while(sign!='n'&&sign!='N'){printf("输⼊学⽣学号:");scanf("%s",stu[n+i].num);printf("输⼊学⽣姓名:");scanf("%s",stu[n+i].name);printf("输⼊学⽣的C、数学、英语");scanf("%d%d%d",&stu[n+i].c,&stu[n+i].math,&stu[n+i].English);a=1.0*(stu[n+i].c+stu[n+i].math+stu[n+i].English/3);stu[n+i].aver=a;gets(x); /*清除多余的输⼊*/printf("是否继续输⼊?(Y/N):\n");scanf("%c",&sign);i++;}return(n+i);}void xianshi(Student stud[],int n) /*显⽰所有记录*/{int i ;printf("----------------------------------------------------------\n"); /*格式头*/printf("学号 姓名 C 数学 英语 平均成绩 \n");printf("----------------------------------------------------------\n");for(i=0;i{printf("%-10s%-10s%-10d%-10d%-10d%-10.2lf\n",stu[i].num,stu[i].name,stu[i].c,stu[i].math,stu[i].English,stu[i].aver); }}void xiugai(Student stud[],int n) /*修改*/{int i=0,choice=1;char x[10];while(choice!=0){printf("请输⼊您要修改的学⽣的学号:\n");scanf("%s",x);for(i=0;;i++){if(strcmp(stu[i].num,x)==0)break;}printf("请选择您要修改的内容:\n");printf(" ---------------------- \n");printf("| 姓名 请按 1 |\n");printf("| c 请按 2 |\n");printf("| 数学分数 请按 3 |\n");printf("| 英语分数 请按 4 |\n"); printf("| 退出 请按 0|\n"); printf("+-----。

C语言学生管理系统代码

C语言学生管理系统代码
float average; //平均分
struct scores *snext;
}stscores;
//宏定义学生个人信息
#define stmes (stmessage *)malloc(sizeof(stmessage)) //为学生个人信息结构体开辟动态内存空间
fflush(stdin);
s--;
}
switch(a)
{
case '1': mainmessage(); continue;//学生基本信息
case '2': mainresult();continue;//学生的成绩信息
case '3': exit(1);//退出系统
void xiugairesult();//修改学生成绩信息
void delatemessag1();//删除学生个人基本信息
void delatemessag2();//删除班级学生基本信息
void delatemessag3();//删除系基本信息
void delatemessag4();//删除全校基本信息
void ziresult4();//学生成绩信息修改菜单
void addmessage();//添加学生基本信息
void judgefile();//判断文件是否存在
void addresult();//添加学生成绩信息
void searchresult();//查询学生成绩信息
void readresult();//加载学生成绩信息到程序
//全局变量
stmessage *head=NULL;
stscores *shead=NULL;

学生成绩管理系统c语言代码(供参考)

学生成绩管理系统c语言代码(供参考)

C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h”#include”stdlib.h”#include”string.h”typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf(”=〉初始化失败!”);return 0;}else{p->next=NULL;p-〉date.number=0;//头结点存放学生人数printf(”初始化成功!\n”);return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”=>请输入新生姓名!\n”);gets(p—〉);fflush(stdin);printf("=〉请输入学号!\n");while(n==0){scanf("%d”,&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q—〉date。

number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n”);q=head-〉next;break;}else{q=q->next;if(q==NULL) n=1;}}}p—〉date。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附录3.1 连接数据库的模块代码Public cnn As New ADODB.Connection '新建一个数据源Public qy1 As New ADODB.Recordset '数据一个记录集Public qy2 As New ADODB.Recordset '数据一个记录集Sub Main()tkOpenAccessDB App.Path & "\base.mdb" '连接数据库If qy1.State = adStateOpen Then '表状态qy1.CloseEnd Ifqy1.Open "select * from 登陆", cnn, adOpenStatic, adLockReadOnly, adCmdText '查询表内是否有数据If qy1.RecordCount = 0 ThenSet qy1 = cnn.Execute("insert into 登陆 values('admin','admin','超级管理员')") '表内无数据执行此语句新建用户End IfForm3.ShowEnd SubPrivate Sub tkOpenAccessDB( _tkFileName As String, _Optional tkUserID As String, _Optional tkPassword As String _) '连接数据库参数On Error GoTo tkFinishcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _"Data Source=" & tkFileName & ";" & _"Mode=Share Deny None;" & _"Extended Properties=;" & _"Jet OLEDB:System database=;" & _"Jet OLEDB:Registry Path=;" & _"Jet OLEDB:Database Password=;" & _"Jet OLEDB:Engine Type=5;" & _"Jet OLEDB:Database Locking Mode=1;" & _"Jet OLEDB:Global Partial Bulk Ops=2;" & _"Jet OLEDB:Global Bulk Transactions=1;" & _"Jet OLEDB:New Database Password=;" & _"Jet OLEDB:Create System Database=False;" & _"Jet OLEDB:Encrypt Database=False;" & _"Jet OLEDB:Don't Copy Locale on Compact=False;" & _ "Jet OLEDB:Compact Without Replica Repair=False;" & _ "Jet OLEDB:SFP=False;" & _tkUserID, _tkPasswordExit SubtkFinish:MsgBox Err.DescriptionEndEnd Sub3.2 登陆界面与代码Private Sub XPButton1_Click()On Error GoTo finishuser = Text1.TextSet mdbrs = mdbconn.Execute("select * from 登陆 where 用户名='" & Text1.Text & "' and 密码='" & Text2.Text & "'")If mdbrs.EOF = True ThenText1.Text = ""Text2.Text = ""Text1.SetFocusMsgBox "用户名和密码不正确!!"Elseuser111 = mdbrs.Fields(0)sup = mdbrs.Fields(2)If mdbrs.Fields(2) = "超级管理员" Thenadmin = True'MsgBox "您是超级管理员!!"' MsgBox userElseadmin = False'MsgBox "您不是超级管理员!!"End IfUnload MeMDIForm1.ShowEnd IfExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton2_Click()EndEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenCall XPButton1_ClickEnd IfEnd SubPrivate Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = 13 ThenCall XPButton1_ClickEnd IfEnd Sub3.3 主窗体界面与代码Private Sub abou_Click()frmAbout.ShowEnd SubPrivate Sub classma_Click()If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!" Exit SubEnd IfIf mdi = True ThenForm5.ShowMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfEnd SubPrivate Sub cmai_Click()If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm10.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfEnd SubPrivate Sub cs_Click()If mdi = True ThenForm11.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfEnd SubPrivate Sub exit_Click()If mdi = False ThenMsgBox "请保存数据!", vbInformation, "不允许当前操作!"ElseEndEnd SubPrivate Sub kecheng_Click()If mdi = True ThenForm7.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfEnd SubPrivate Sub MDIForm_Load()StatusBar1.SimpleText = " 今天是" & Year(Date) & "年" & Month(Date) & "月" & Day(Date) & "日 , 欢迎您使用学生成绩管理系统 !" & " 当前操作者:" & user111 & " 权限:" & supEnd SubPrivate Sub relog_Click()If mdi = False ThenMsgBox "请关闭打开的窗口!", vbInformation, "不允许当前操作!"ElseUnload MeForm1.ShowEnd IfEnd SubPrivate Sub sturea_Click()If mdi = True ThenForm4.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfPrivate Sub stureg_Click()If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm3.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfEnd SubPrivate Sub stuxuan_Click()If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm8.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.IndexCase 1If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm2.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfCase 2If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm5.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfCase 3If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm3.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfCase 4If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm6.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfCase 5If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm10.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfCase 6If mdi = True ThenForm4.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfCase 7frmAbout.ShowCase 8If mdi = False ThenMsgBox "请保存数据!", vbInformation, "不允许当前操作!"ElseEndEnd IfEnd SelectEnd SubPrivate Sub user_Click()If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm2.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfEnd SubPrivate Sub xuankecha_Click()If mdi = True ThenForm9.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfEnd SubPrivate Sub zhuxiu_Click()If admin = False ThenMsgBox "你没有管理本功能的权限,请与管理员联系!"Exit SubEnd IfIf mdi = True ThenForm6.ShowElseMsgBox "每次只能打开一个窗口,请关闭正在打开的窗口!", vbInformation, "不允许当前操作!"End IfEnd Sub3.4 用户管理界面与代码Dim gridsave As BooleanDim gridedit As BooleanDim griddelete As BooleanPrivate Sub Form_Load()On Error GoTo finishGrid1.SetRegisterInformation "CNwinndy", "W]vyY-nonvk-u\nty-Zbl_e-`hms^" '进行注册With Grid1.AllowUserResizing = True.DisplayFocusRect = False.ExtendLastCol = True.Appearance = Flat.FixedRowColStyle = Flat.ScrollBarStyle = Flat = "Tahoma".DefaultFont.Size = 8.BackColorFixed = RGB(90, 158, 214).BackColorFixedSel = RGB(110, 180, 230).BackColorBkg = RGB(90, 158, 214).BackColorScrollBar = RGB(231, 235, 247).BackColor1 = RGB(231, 235, 247).BackColor2 = RGB(239, 243, 255).GridColor = RGB(148, 190, 231).AllowUserResizing = True.DisplayFocusRect = False.ExtendLastCol = True.Appearance = Flat.FixedRowColStyle = Flat.ScrollBarStyle = Flat.GridColor = RGB(148, 190, 231) = "Tahoma".DefaultFont.Size = 8.Column(0).Width = 0.Column(1).Width = 100.Column(2).Width = 100.Column(3).Width = 100.Column(3).CellType = cellComboBox.ComboBox(3).Clear.ComboBox(3).AddItem "超级管理员".ComboBox(3).AddItem "一般用户"End With'mdbconn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=" & App.Path & "\base.mdb"'mandTimeout = 30'mdbconn.OpenCall callmainGrid1.Column(1).Locked = Truegridsave = Falsegridedit = Truegriddelete = Truemdi = FalseExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub callmain()On Error GoTo finishgridsave = Falsegridedit = Truegriddelete = TrueSet mdbrs = mdbconn.Execute("select * from 登陆")Grid1.Rows = 1i = 3Grid1.Cols = i + 1For i = 0 To 2Grid1.Cell(0, i + 1).Text = mdbrs.Fields(i).Name Nexti = 1Do While Not mdbrs.EOFGrid1.Rows = Grid1.Rows + 1For j = 1 To 3 '设定读取列If mdbrs.Fields(j - 1) = Null Then '空值的处理 Grid1.Cell(i, j).Text = ""ElseGrid1.Cell(i, j).Text = mdbrs.Fields(j - 1)End IfNexti = i + 1mdbrs.MoveNext '读取下一记录LoopGrid1.Column(1).Locked = TrueExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub Form_LostFocus()Form2.ShowEnd SubPrivate Sub Form_Unload(Cancel As Integer)mdi = TrueEnd SubPrivate Sub XPButton1_Click()On Error GoTo finishgridsave = Truegridedit = Falsegriddelete = FalseSet mdbrs = mdbconn.Execute("select * from 登陆")Grid1.Rows = 1Grid1.Rows = 2Grid1.Column(1).Locked = FalseGrid1.Cell(1, 1).SetFocusExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton2_Click()On Error GoTo finishIf gridsave = False ThenMsgBox "不支持保存操作!", vbInformation, "当前不支持"Exit SubEnd IfIf Grid1.Cell(1, 1).Text <> "" And Grid1.Cell(1, 2).Text <> "" ThenSet mdbrs = mdbconn.Execute("select * from 登陆 where 用户名='" & Grid1.Cell(1, 1).Text & "'")If mdbrs.EOF = True ThenSet mdbrs = mdbconn.Execute("insert into 登陆 values('" & Grid1.Cell(1, 1).Text & "','" & Grid1.Cell(1, 2).Text & "','" & Grid1.Cell(1, 3).Text & "')")MsgBox "提交成功!", vbInformation, ""Call callmainElseMsgBox "该管理员己存在!", vbInformation, "不可重名"Exit SubEnd IfElseMsgBox "用户名和密码都不可以是空格!", vbInformation, "错误提示"End IfExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton3_Click()On Error GoTo finishIf gridedit = False ThenMsgBox "当前修改操作不被允许!", vbInformation, "非使用对象"Exit SubEnd IfFor i = 1 To Grid1.Rows - 1Set mdbrs = mdbconn.Execute("update 登陆 set 密码='" & Grid1.Cell(i, 2).Text & "',权限='" & Grid1.Cell(i, 3).Text & "' where 用户名='" & Grid1.Cell(i, 1).Text & "'")NextMsgBox "修改的数据己经完成", vbInformation, "完成操作"Call callmainExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton4_Click()On Error GoTo finishIf griddelete = False ThenMsgBox "当前删除操作不被允许!", vbInformation, "非使用对象"Exit SubEnd IfIf hang = 0 ThenMsgBox "没有选择用户或者没有用户可以删除!", vbInformation, "非使用对象"Exit SubEnd IfSet mdbrs = mdbconn.Execute("delete from 登陆 where 用户名='" & Grid1.Cell(hang, 1).Text & "'")MsgBox "目标己删除,请刷新数据!", vbInformation, "删除成功"Call callmainExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton5_Click()Unload MeEnd SubPrivate Sub Grid1_RowColChange(ByVal Row As Long, ByVal Col As Long)hang = RowEnd Sub3.5 学生管理源代码Dim gridedit1 As BooleanDim gridsave1 As BooleanDim griddelete1 As BooleanPrivate Sub Form_Load()On Error GoTo finishmdi = FalseGrid1.SetRegisterInformation "CNwinndy", "W]vyY-nonvk-u\nty-Zbl_e-`hms^" '进行注册Set mdbrs1 = mdbconn.Execute("select 班级名称 from 班级")Grid1.Cols = 14Grid1.Column(1).Width = 120Grid1.Column(2).Width = 100Grid1.Column(3).Width = 80Grid1.Column(4).Width = 40Grid1.Column(5).Width = 80Grid1.Column(6).Width = 30Grid1.Column(7).Width = 50Grid1.Column(8).Width = 80Grid1.Column(9).Width = 60Grid1.Column(10).Width = 80Grid1.Column(11).Width = 100Grid1.Column(12).Width = 100Grid1.Column(13).Width = 100With Grid1.AllowUserResizing = True.DisplayFocusRect = False.ExtendLastCol = True.Appearance = Flat.FixedRowColStyle = Flat.ScrollBarStyle = Flat = "Tahoma".DefaultFont.Size = 8.BackColorFixed = RGB(84, 201, 134).BackColorFixedSel = RGB(167, 111, 177) .BackColorBkg = RGB(198, 229, 211).BackColorScrollBar = RGB(167, 111, 177) .BackColor1 = RGB(231, 235, 247).BackColor2 = RGB(198, 229, 211).GridColor = RGB(148, 190, 231).Column(0).Width = 0.Column(4).CellType = cellComboBox.ComboBox(4).Clear.ComboBox(4).AddItem "男".ComboBox(4).AddItem "女".Column(9).CellType = cellComboBox.ComboBox(9).Clear.ComboBox(9).AddItem "党员".ComboBox(9).AddItem "团员".ComboBox(9).AddItem "无".Column(2).CellType = cellComboBox.ComboBox(2).ClearDo While Not mdbrs1.EOF.ComboBox(2).AddItem mdbrs1.Fields(0)mdbrs1.MoveNextLoopEnd WithCall callmainGrid1.Column(1).Locked = Truegridsave1 = Falsegridedit1 = Truegriddelete1 = Truemdi = FalseExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer)mdi = TrueEnd SubPrivate Sub XPButton1_Click()On Error GoTo finishgridsave1 = Truegridedit1 = Falsegriddelete1 = FalseSet mdbrs = mdbconn.Execute("select * from 学生信息") Grid1.Rows = 1Grid1.Rows = 2Grid1.Column(1).Locked = FalseGrid1.Cell(1, 1).SetFocusExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton2_Click()'gridsave = TrueOn Error GoTo finishIf gridsave1 = False ThenMsgBox "不支持保存操作!", vbInformation, "当前不支持" Exit SubEnd IfIf Grid1.Cell(1, 1).Text = "" ThenMsgBox "学号不可以是空格!", vbInformation, "错误提示" Exit SubEnd IfIf Grid1.Cell(1, 2).Text = "" ThenMsgBox "请选择班级!", vbInformation, "错误提示"Exit SubEnd IfIf Grid1.Cell(1, 3).Text = "" ThenMsgBox "姓名不可以是空格!", vbInformation, "错误提示" Exit SubEnd IfIf Grid1.Cell(1, 4).Text = "" ThenMsgBox "请选择性别!", vbInformation, "错误提示"Exit SubEnd IfIf Grid1.Cell(1, 6).Text = "" ThenMsgBox "请输入民族!", vbInformation, "错误提示"Exit SubEnd IfIf Grid1.Cell(1, 7).Text = "" ThenMsgBox "请输入籍贯!", vbInformation, "错误提示"Exit SubEnd IfIf Grid1.Cell(1, 8).Text = "" ThenMsgBox "请输入宿舍编号!", vbInformation, "错误提示" Exit SubEnd IfIf Grid1.Cell(1, 9).Text = "" ThenMsgBox "请选择政治面貌!", vbInformation, "错误提示" Exit SubEnd IfIf Grid1.Cell(1, 10).Text = "" ThenMsgBox "请输入电话号码!", vbInformation, "错误提示" Exit SubEnd IfIf Grid1.Cell(1, 11).Text = "" ThenMsgBox "请输入院系!", vbInformation, "错误提示"Exit SubEnd IfIf Grid1.Cell(1, 12).Text = "" ThenMsgBox "请输入专业!", vbInformation, "错误提示"Exit SubEnd IfIf Grid1.Cell(1, 13).Text = "" ThenMsgBox "请输入身份证号!", vbInformation, "错误提示"Exit SubEnd IfSet mdbrs = mdbconn.Execute("select * from 学生信息 where 学号='" & Grid1.Cell(1, 1).Text & "'")If mdbrs.EOF = True ThenSet mdbrs = mdbconn.Execute("insert into 学生信息 values('" & Grid1.Cell(1, 1).Text & "','" & Grid1.Cell(1, 2).Text & "','" & Grid1.Cell(1, 3).Text & "','" & Grid1.Cell(1, 4).Text & "','" & "1985-1-4" & "','" & Grid1.Cell(1, 6).Text & "','" & Grid1.Cell(1, 7).Text & "','" & Grid1.Cell(1, 8).Text & "','" & Grid1.Cell(1, 9).Text & "','" & Grid1.Cell(1, 10).Text & "','" & Grid1.Cell(1, 11).Text & "','" & Grid1.Cell(1, 12).Text & "','" & Grid1.Cell(1, 13).Text & "')")MsgBox "提交成功!", vbInformation, ""Call callmainElseMsgBox "该学生己存在!", vbInformation, "不可重名"Exit SubEnd IfExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton3_Click()On Error GoTo finishIf gridedit1 = False ThenMsgBox "当前修改操作不被允许!", vbInformation, "非使用对象"Exit SubEnd IfFor i = 1 To Grid1.Rows - 1Set mdbrs = mdbconn.Execute("update 学生信息 set 名字='" & Grid1.Cell(i, 3).Text & "',班级='" & Grid1.Cell(i, 2).Text & "',性别='" & Grid1.Cell(i, 4).Text& "',出生日期='" & Grid1.Cell(i, 5).Text & "',民族='" & Grid1.Cell(i, 6).Text & "',籍贯='" & Grid1.Cell(i, 7).Text & "',宿舍='" & Grid1.Cell(i, 8).Text & "',政治面貌='" & Grid1.Cell(i, 9).Text & "',电话号码='" & Grid1.Cell(i, 10).Text & "',院系='" & Grid1.Cell(i, 11).Text & "',专业='" & Grid1.Cell(i, 12).Text & "',身份证号='" & Grid1.Cell(i, 13).Text & "' where 学号='" & Grid1.Cell(i, 1).Text & "'") NextMsgBox "修改的数据己经完成", vbInformation, "完成操作"Call callmainExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton4_Click()On Error GoTo finishDim i As IntegerIf griddelete1 = False ThenMsgBox "当前修改操作不被允许!", vbInformation, "非使用对象"Exit SubEnd IfIf hang = 0 ThenMsgBox "没有选择学生或者没有学生可以删除!", vbInformation, "非使用对象"Exit SubEnd IfSet mdbrs = mdbconn.Execute("select * from 学生信息where 学号='" & Grid1.Cell(hang, 1).Text & "'")i = MsgBox("确认删除学号为:" & mdbrs.Fields(0).Value & "姓名为:" & mdbrs.Fields(2) & "的学生吗?", 4, "删除学生")If i = 6 ThenSet mdbrs = mdbconn.Execute("delete from 学生信息 where 学号='" & Grid1.Cell(hang, 1).Text & "'")MsgBox "目标己删除,请刷新数据!", vbInformation, "删除成功" Call callmainElseMsgBox "目标没有删除!", vbInformation, "删除失败"End IfExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton5_Click()Unload MeEnd SubPrivate Sub callmain()On Error GoTo finishgridsave1 = Falsegridedit1 = Truegriddelete1 = TrueSet mdbrs = mdbconn.Execute("select * from 学生信息")Grid1.Rows = 1i = 13Grid1.Cols = i + 1For i = 0 To 12Grid1.Cell(0, i + 1).Text = mdbrs.Fields(i).NameNexti = 1Do While Not mdbrs.EOFGrid1.Rows = Grid1.Rows + 1For j = 1 To 13 '设定读取列If mdbrs.Fields(j - 1) = Null Then '空值的处理Grid1.Cell(i, j).Text = ""ElseGrid1.Cell(i, j).Text = mdbrs.Fields(j - 1)End IfNexti = i + 1mdbrs.MoveNext '读取下一记录LoopGrid1.Column(1).Locked = TrueExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub Grid1_RowColChange(ByVal Row As Long, ByVal Col As Long) hang = RowEnd Sub3.6 学生查询源代码Dim str As StringPrivate Sub Form_Load()On Error GoTo finishmdi = FalseXPButton2.Enabled = Falsestr = "select * from 学生信息"Grid1.SetRegisterInformation "CNwinndy", "W]vyY-nonvk-u\nty-Zbl_e-`hms^" '进行注册Grid1.Cols = 14Grid1.Column(1).Width = 120Grid1.Column(2).Width = 100Grid1.Column(3).Width = 80Grid1.Column(4).Width = 40Grid1.Column(5).Width = 80Grid1.Column(6).Width = 30Grid1.Column(7).Width = 50Grid1.Column(8).Width = 80Grid1.Column(9).Width = 60Grid1.Column(10).Width = 80Grid1.Column(11).Width = 100Grid1.Column(12).Width = 100Grid1.Column(13).Width = 100With Grid1.AllowUserResizing = True.DisplayFocusRect = False.ExtendLastCol = True.Appearance = Flat.FixedRowColStyle = Flat.ScrollBarStyle = Flat = "Tahoma".DefaultFont.Size = 8.BackColorFixed = RGB(84, 201, 134).BackColorFixedSel = RGB(167, 111, 177) .BackColorBkg = RGB(198, 229, 211).BackColorScrollBar = RGB(167, 111, 177) .BackColor1 = RGB(231, 235, 247).BackColor2 = RGB(198, 229, 211).GridColor = RGB(148, 190, 231).Column(0).Width = 0End WithExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer)mdi = TrueEnd SubPrivate Sub callmain()On Error GoTo finishGrid1.Rows = 1i = 13Grid1.Cols = i + 1For i = 0 To 12Grid1.Cell(0, i + 1).Text = mdbrs.Fields(i).Name Nexti = 1Do While Not mdbrs.EOFGrid1.Rows = Grid1.Rows + 1For j = 1 To 13 '设定读取列If mdbrs.Fields(j - 1) = Null Then '空值的处理 Grid1.Cell(i, j).Text = ""ElseGrid1.Cell(i, j).Text = mdbrs.Fields(j - 1)End IfNexti = i + 1mdbrs.MoveNext '读取下一记录LoopFor i = 1 To 13Grid1.Column(i).Locked = TrueNextExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton1_Click()On Error GoTo finishIf Text1.Text <> "=" Thenstr = "select * from 学生信息 where " & Text1.Text Label2.Caption = strElsestr = "select * from 学生信息"Label2.Caption = strEnd IfXPButton2.Enabled = TrueExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton2_Click()On Error GoTo finishSet mdbrs = mdbconn.Execute(str)Call callmainExit Subfinish:MsgBox Err.DescriptionText1.Text = "="End SubPrivate Sub XPButton3_Click()Unload MeEnd Sub3.7 学生选课源代码Private gridsave4 As BooleanPrivate gridedit4 As BooleanPrivate griddelete4 As BooleanPrivate str As StringPrivate Sub Form_Load()On Error GoTo finishmdi = FalseGrid1.SetRegisterInformation "CNwinndy", "W]vyY-nonvk-u\nty-Zbl_e-`hms^" '进行注册Grid1.Cols = 7Grid1.Column(1).Width = 80Grid1.Column(2).Width = 180Grid1.Column(3).Width = 80Grid1.Column(4).Width = 120Grid1.Column(5).Width = 80Grid1.Column(6).Width = 10With Grid1.AllowUserResizing = True.DisplayFocusRect = False.ExtendLastCol = True.Appearance = Flat.FixedRowColStyle = Flat.ScrollBarStyle = Flat = "Tahoma".DefaultFont.Size = 8.BackColorFixed = RGB(84, 201, 134).BackColorFixedSel = RGB(167, 111, 177).BackColorBkg = RGB(198, 229, 211).BackColorScrollBar = RGB(167, 111, 177).BackColor1 = RGB(231, 235, 247).BackColor2 = RGB(198, 229, 211).GridColor = RGB(148, 190, 231).Column(0).Width = 0End WithSet mdbrs1 = mdbconn.Execute("select * from 学生信息")Grid1.Column(4).CellType = cellComboBoxboBox(4).ClearDo While Not mdbrs1.EOFboBox(4).AddItem mdbrs1.Fields(0).Value & "-" & mdbrs1.Fields(2).Value mdbrs1.MoveNextLoopSet mdbrs2 = mdbconn.Execute("select * from 课程11")Grid1.Column(2).CellType = cellComboBoxboBox(2).ClearDo While Not mdbrs2.EOFboBox(2).AddItem mdbrs2.Fields(0).Value & "-" & mdbrs2.Fields(1).Valuemdbrs2.MoveNextLoopGrid1.Column(5).CellType = cellComboBoxboBox(5).ClearboBox(5).AddItem "主修"boBox(5).AddItem "选修"Call callmainExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer)mdi = TrueEnd SubPrivate Sub callmain()On Error GoTo finishgridsave4 = Falsegridedit4 = Truegriddelete4 = TrueSet mdbrs = mdbconn.Execute("select 课程号,课程名称,学号,姓名,课程类型,id from 学生与课程")Grid1.Rows = 1i = 6Grid1.Cols = i + 1For i = 0 To 5Grid1.Cell(0, i + 1).Text = mdbrs.Fields(i).NameNexti = 1Do While Not mdbrs.EOFGrid1.Rows = Grid1.Rows + 1For j = 1 To 6 '设定读取列If mdbrs.Fields(j - 1) = Null Then '空值的处理Grid1.Cell(i, j).Text = ""ElseGrid1.Cell(i, j).Text = mdbrs.Fields(j - 1)End IfNexti = i + 1mdbrs.MoveNext '读取下一记录LoopGrid1.Column(1).Locked = TrueGrid1.Column(3).Locked = TrueGrid1.Column(6).Locked = TrueExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub Grid1_CellChange(ByVal Row As Long, ByVal Col As Long)On Error GoTo finishIf Grid1.Cell(Row, 2).Text <> "" And Row <> 0 Then'MsgBox "aa"Dim length1, length2, length5 As Integerlength1 = Len(Grid1.Cell(Row, 2).Text)'MsgBox length1length2 = 0Do While length2 < length1length2 = length2 + 1If Right(Left(Grid1.Cell(Row, 2).Text, length2), 1) = "-" ThenGrid1.Cell(Row, 1).Text = Left(Grid1.Cell(Row, 2).Text, length2 - 1)Grid1.Cell(Row, 2).Text = Right(Grid1.Cell(Row, 2).Text, length1 - length2)'MsgBox "bb"Exit DoEnd IfLoopEnd IfIf Grid1.Cell(Row, 4).Text <> "" And Row <> 0 Then'MsgBox "aa"Dim length3, length4 As Integerlength3 = Len(Grid1.Cell(Row, 4).Text)'MsgBox length1length4 = 0Do While length4 < length3length4 = length4 + 1If Right(Left(Grid1.Cell(Row, 4).Text, length4), 1) = "-" ThenGrid1.Cell(Row, 3).Text = Left(Grid1.Cell(Row, 4).Text, length4 - 1)Grid1.Cell(Row, 4).Text = Right(Grid1.Cell(Row, 4).Text, length3 - length4) 'MsgBox "bb"Exit DoEnd IfLoopEnd IfExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton1_Click()On Error GoTo finishgridsave4 = Truegridedit4 = Falsegriddelete4 = FalseSet mdbrs = mdbconn.Execute("select 课程号,课程名称,学号,姓名,课程类型 from 学生与课程")Grid1.Rows = 1Grid1.Rows = 2Grid1.Column(1).Locked = TrueGrid1.Cell(1, 2).SetFocusExit Subfinish:MsgBox Err.DescriptionEnd SubPrivate Sub XPButton2_Click()On Error GoTo finishIf gridsave4 = False ThenMsgBox "不支持保存操作!", vbInformation, "当前不支持"Exit SubEnd IfIf Grid1.Cell(1, 1).Text <> "" And Grid1.Cell(1, 2).Text <> "" And Grid1.Cell(1, 3).Text <> "" And Grid1.Cell(1, 4).Text <> "" And Grid1.Cell(1, 5).Text <> "" Then 'Set mdbrs = mdbconn.Execute("select * from 学生与课程where 课程号='" & Grid1.Cell(1, 1).Text & "'")'If mdbrs.EOF = True ThenSet mdbrs = mdbconn.Execute("insert into 学生与课程(课程号,课程名称,学号,姓名,课程类型) values('" & Grid1.Cell(1, 1).Text & "','" & Grid1.Cell(1, 2).Text & "','" & Grid1.Cell(1, 3).Text & "','" & Grid1.Cell(1, 4).Text & "','" & Grid1.Cell(1, 5).Text & "')")MsgBox "提交成功!", vbInformation, ""Call callmain'Else'MsgBox "该课程己存在!", vbInformation, "不可重名"'Exit Sub。

相关文档
最新文档