c语言课程设计人员管理系统
- 格式:docx
- 大小:36.18 KB
- 文档页数:45
c语言管理系统设计源代码以下是一个简单的C语言管理系统示例,用于管理学生信息。
该系统可以添加、删除、修改和查找学生信息。
c复制代码#include<stdio.h>#include<stdlib.h>#include<string.h>struct student {char name[50];int roll;float marks;};struct student students[100];int count = 0;void add_student() {struct student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter roll number: ");scanf("%d", &new_student.roll);printf("Enter marks: ");scanf("%f", &new_student.marks);students[count] = new_student;count++;}void delete_student() {int index;printf("Enter index of student to delete: ");scanf("%d", &index);for (int i = index; i < count - 1; i++) {students[i] = students[i + 1];}count--;}void modify_student() {int index;struct student new_student;printf("Enter index of student to modify: "); scanf("%d", &index);printf("Enter new name: ");scanf("%s", new_);printf("Enter new roll number: ");scanf("%d", &new_student.roll);printf("Enter new marks: ");scanf("%f", &new_student.marks);students[index] = new_student;}void find_student() {char name[50];printf("Enter name of student to find: "); scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) { printf("Roll number: %d\n", students[i].roll); printf("Marks: %.2f\n", students[i].marks); return;}}printf("Student not found.\n");}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Delete student\n");printf("3. Modify student\n");printf("4. Find student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case1: add_student(); break;case2: delete_student(); break;case3: modify_student(); break;case4: find_student(); break;case5: exit(0); break; // exit the program here, otherwise the loop will keep running indefinitely, as it is in the do-while loop above. We are not returning, but rather exiting the program completely, so we do not need to return anything. The return value of main is always 0, and this is how the program exits. If you want to return a value other than 0, you can do so like this: return 1; or return -1; or return any other integer value you want to represent an error condition. The operating system will interpret this as the program's exit status. In this case, it will be seen as successful, as it is returning 0. The return value of main is not used for anything in this program, but it can be used in other programs to determine whether the program exited successfully or with an error. For example, if you were writing a shell script that executed this program and needed to know if it was successful or not, you could check the return value of the program and act accordingly. This is a common practice in programming, and it is important to understand how it works so that you can use it effectively in your own programs.。
教务管理系统c语言课程设计一、教学目标本课程的教学目标是使学生掌握教务管理系统的基本原理和设计方法,能够运用C语言进行简单的教务管理系统开发。
具体分为以下三个部分:1.知识目标:使学生掌握C语言的基本语法、数据结构、算法和面向对象编程思想,了解教务管理系统的功能和结构。
2.技能目标:培养学生具备运用C语言进行程序设计的能力,能够独立完成简单的教务管理系统模块设计与实现。
3.情感态度价值观目标:培养学生对编程事业的热爱,提高学生解决实际问题的积极性,培养学生的团队协作精神和自主学习能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基础知识:数据类型、运算符、表达式、语句、函数等。
2.数据结构:数组、链表、栈、队列、树、图等。
3.算法:排序算法、查找算法、常用算法分析等。
4.面向对象编程:类、对象、封装、继承、多态等。
5.教务管理系统设计:系统需求分析、系统架构设计、模块划分、功能实现等。
三、教学方法为了达到本课程的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解知识点,使学生掌握基本概念和原理。
2.案例分析法:分析实际案例,使学生了解教务管理系统的应用场景和设计方法。
3.实验法:让学生动手编写代码,培养实际编程能力。
4.讨论法:分组讨论问题,培养学生的团队协作精神和解决问题的能力。
四、教学资源为了支持本课程的教学内容和教学方法,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。
2.参考书:《数据结构与算法分析》(C语言版)、《深度探索C++对象模型》等。
3.多媒体资料:教学PPT、视频教程、在线编程练习等。
4.实验设备:计算机、网络环境、编程调试工具等。
五、教学评估本课程的评估方式包括以下几个部分:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置课后作业,评估学生的编程能力和对知识的理解程度。
一、实验目的1. 熟练掌握C语言编程技能,提高编程能力。
2. 理解并应用结构体、数组、链表等数据结构。
3. 学会使用文件操作,实现数据的持久化存储。
4. 设计并实现一个员工管理系统,提高实际编程能力。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 语言:C语言三、实验内容员工管理系统主要包括以下功能:1. 数据录入:录入员工信息,包括姓名、工号、性别、出生年月、部门、职位、联系方式等。
2. 数据显示:显示所有员工信息。
3. 数据查找:按工号或姓名查找员工信息。
4. 数据修改:修改指定员工的个人信息。
5. 数据删除:删除指定员工的个人信息。
6. 数据排序:按工号、姓名、部门等字段对员工信息进行排序。
四、实验步骤1. 创建员工结构体```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_NAME_LEN 50#define MAX_DEPT_LEN 50typedef struct {int id; // 员工工号char name[MAX_NAME_LEN]; // 员工姓名char gender; // 性别('M'、'F')char birth[11]; // 出生日期("YYYY-MM-DD") char dept[MAX_DEPT_LEN]; // 部门char position[MAX_NAME_LEN]; // 职位char contact[MAX_NAME_LEN]; // 联系方式} Employee;```2. 创建员工信息文件```cvoid createFile() {FILE fp = fopen("employee.dat", "wb");if (fp == NULL) {printf("创建文件失败!\n");exit(1);}fclose(fp);}```3. 数据录入```cvoid inputEmployee(Employee e) {printf("请输入员工工号:");scanf("%d", &e->id);printf("请输入员工姓名:");scanf("%s", e->name);printf("请输入性别(M/F):");scanf(" %c", &e->gender);printf("请输入出生日期(YYYY-MM-DD):"); scanf("%s", e->birth);printf("请输入部门:");scanf("%s", e->dept);printf("请输入职位:");scanf("%s", e->position);printf("请输入联系方式:");scanf("%s", e->contact);}```4. 数据显示```cvoid displayEmployee(Employee e) {printf("工号:%d\n", e->id);printf("姓名:%s\n", e->name);printf("性别:%c\n", e->gender);printf("出生日期:%s\n", e->birth);printf("部门:%s\n", e->dept);printf("职位:%s\n", e->position);printf("联系方式:%s\n", e->contact);}```5. 数据查找```cvoid searchEmployee(Employee e) {int id;printf("请输入要查找的员工工号:");scanf("%d", &id);FILE fp = fopen("employee.dat", "rb");if (fp == NULL) {printf("文件打开失败!\n");exit(1);}while (fread(e, sizeof(Employee), 1, fp) == 1) { if (e->id == id) {displayEmployee(e);break;}}fclose(fp);}```6. 数据修改```cvoid modifyEmployee(Employee e) {int id;printf("请输入要修改的员工工号:");scanf("%d", &id);FILE fp = fopen("employee.dat", "rb+");if (fp == NULL) {printf("文件打开失败!\n");exit(1);}while (fread(e, sizeof(Employee), 1, fp) == 1) { if (e->id == id) {displayEmployee(e);printf("请输入新的员工姓名:");scanf("%s", e->name);printf("请输入新的性别(M/F):");scanf(" %c", &e->gender);printf("请输入新的出生日期(YYYY-MM-DD):"); scanf("%s", e->birth);printf("请输入新的部门:");scanf("%s", e->dept);printf("请输入新的职位:");scanf("%s", e->position);printf("请输入新的联系方式:");scanf("%s", e->contact);fseek(fp, -sizeof(Employee), SEEK_CUR);fwrite(e, sizeof(Employee), 1, fp);break;}}fclose(fp);}```7. 数据删除```cvoid deleteEmployee(Employee e) {int id;printf("请输入要删除的员工工号:");scanf("%d", &id);FILE fp = fopen("employee.dat", "rb+");if (fp == NULL) {printf("文件打开失败!\n");exit(1);}Employee temp;int flag = 0;while (fread(e, sizeof(Employee), 1, fp) == 1) { if (e->id == id) {flag = 1;break;}}if (flag) {fseek(fp, -sizeof(Employee), SEEK_CUR);fread(&temp, sizeof(Employee), 1, fp);fwrite(&temp, sizeof(Employee), 1, fp);printf("删除成功!\n");} else {printf("未找到指定员工!\n");}fclose(fp);}```8. 数据排序```cvoid sortEmployee(Employee e, int (cmp)(const void , const void )) { qsort(e, 10, sizeof(Employee), cmp);}```9. 主函数```cint main() {Employee e;createFile();while (1) {printf("1. 数据录入\n");printf("2. 数据显示\n");printf("3. 数据查找\n");printf("4. 数据修改\n");printf("5. 数据删除\n");printf("6. 数据排序\n");printf("0. 退出\n");printf("请选择操作:");int choice;scanf("%d", &choice);switch (choice) {inputEmployee(&e);break;case 2:// 假设已经有10个员工信息for (int i = 0; i < 10; i++) { displayEmployee(&e);}break;case 3:searchEmployee(&e);break;case 4:modifyEmployee(&e);break;case 5:deleteEmployee(&e);break;case 6:sortEmployee(&e, cmpById);break;case 0:return 0;printf("无效的选项!\n");}}return 0;}```五、实验总结通过本次实验,我们学习了C语言编程的基本技能,掌握了结构体、数组、链表等数据结构,以及文件操作。
课程信息管理系统c语言课程信息管理系统(C语言)一、引言课程信息管理系统是一种用来管理和组织课程信息的软件系统。
它能够对教学计划、课程表、学生选课等进行管理,帮助学校、教育机构或教师高效地管理课程信息。
本文将通过介绍课程信息管理系统的功能、特点和实施过程,详细阐述C语言在该系统中的应用。
二、功能介绍1. 学生管理:该系统能够记录学生的个人信息,如学号、姓名、班级等,并能进行学生选课管理,包括选课、退课等操作。
2. 课程管理:系统可以管理各门课程的信息,如课程编号、课程名称、学分等,并能进行课程安排,制定教学计划。
3. 教师管理:系统可以记录教师的基本信息,提供教师选课、授课安排等功能。
4. 成绩管理:系统能够记录学生的各科成绩,并提供成绩查询、统计等功能,方便学生和教师进行学业评估。
5. 课程评价:系统可以记录学生对课程的评价和反馈,帮助学校和教师改进教学质量。
三、特点和优势1. 数据集中管理:课程信息管理系统将学生、教师、课程等信息集中管理,方便快捷,减少重复工作。
2. 数据安全性高:系统采用数据库来存储和管理数据,确保数据的安全性和完整性。
3. 操作简便:系统界面友好,操作简单明了,即使对计算机操作不熟悉的教师和学生也能够轻松上手。
4. 信息共享:系统支持信息共享,学生、教师和管理者可以通过系统查询相关信息,提高工作效率。
5. 数据分析功能:系统能够对学生选课情况、成绩分布等进行统计和分析,为教学改革提供数据支持。
四、实施过程1. 需求分析:通过与学校、教师和学生的沟通,明确系统的需求和功能。
2. 系统设计:根据需求分析的结果,设计系统的数据库结构、界面和功能模块。
3. 编码实现:使用C语言编写相应的代码,实现系统的各个功能模块。
4. 测试调试:对系统进行功能测试和性能测试,确保系统的稳定性和可靠性。
5. 上线部署:将系统部署到服务器上,并进行相关的数据迁移和备份工作。
6. 培训和维护:对教师和学生进行系统培训,并进行后期的系统维护和更新。
1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。
流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。
流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。
c语言课程设计学生学籍管理系统一、教学目标本课程旨在让学生掌握C语言的基本语法,培养学生编写结构化程序的能力,使学生能够运用C语言实现简单的学生学籍管理系统。
通过本课程的学习,学生将能够:1.知识目标:–理解C语言的基本数据类型、运算符和表达式;–掌握函数的定义和调用,理解局部变量和全局变量的概念;–熟悉控制结构,如if语句、for循环和while循环;–了解数组、字符串和指针的基本使用方法。
2.技能目标:–能够使用C语言编写简单的程序,解决实际问题;–掌握基本的调试技巧,能够找出并修复程序中的错误;–具备阅读和理解他人代码的能力。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生的自主学习能力;–培养学生团队协作的精神,增强学生的沟通能力;–培养学生解决问题的能力,提高学生的创新意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、函数、局部变量和全局变量等;2.控制结构:if语句、for循环、while循环等;3.数据结构:数组、字符串、指针等;4.学生学籍管理系统的实现:学生信息的添加、删除、修改和查询等功能。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学:1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解并掌握C语言在学生学籍管理系统中的应用;3.实验法:让学生动手编写代码,实现学生学籍管理系统的功能,提高学生的实际操作能力。
四、教学资源本课程的教学资源包括:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。
以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。
五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。
c语言课课程设计管理系统一、教学目标本章节的教学目标是使学生掌握C语言课程设计管理系统的基本概念、原理和方法,培养学生运用C语言进行程序设计的能力,提高学生的实际操作技能和解决实际问题的能力。
具体来说,知识目标包括:1.掌握课程设计管理系统的基本概念和原理。
2.理解C语言在课程设计管理系统中的应用。
3.熟悉常用的数据结构和算法。
技能目标包括:1.能够使用C语言进行程序设计。
2.能够运用常用的数据结构和算法解决实际问题。
3.能够独立完成课程设计管理系统的开发和调试。
情感态度价值观目标包括:1.培养学生的团队合作意识和沟通能力。
2.培养学生的自主学习能力和探究精神。
3.培养学生对C语言和课程设计管理系统的兴趣和热情。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据结构、算法和课程设计管理系统的基本概念和原理。
具体来说,教学大纲如下:1.C语言的基本语法:数据类型、变量、运算符、表达式、语句等。
2.数据结构:数组、链表、栈、队列、树、图等。
3.算法:排序算法、查找算法、动态规划算法等。
4.课程设计管理系统的基本概念和原理:系统结构、模块划分、功能实现等。
三、教学方法为了实现教学目标,本章节将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解,使学生掌握C语言和课程设计管理系统的基本概念和原理。
2.讨论法:通过小组讨论,培养学生的团队合作意识和沟通能力。
3.案例分析法:通过分析实际案例,使学生了解课程设计管理系统的应用和实现方法。
4.实验法:通过实际操作,培养学生运用C语言进行程序设计的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:《C语言程序设计》等。
2.参考书:《C语言编程实践》、《数据结构与算法》等。
3.多媒体资料:课件、教学视频等。
4.实验设备:计算机、网络设备等。
以上教学资源将有助于丰富学生的学习体验,提高学生的实际操作技能和解决实际问题的能力。
课程设计任务书目录一、题目要求 (1)二、算法设计 (3)三、编程实现 (6)四、结果分析 (13)五、参考文献 (14)一、题目要求题目名称:设计字符串比较的函数和销售员业绩管理程序内容:1. 有两个字符串,各有10个字符,是编程完成如下功能:(1)分别找出两个字符串中最大的字符元素;(2)将两字符串对应位置元素逐个比较,并统计输出两个字符串对应元素大于、小于和等于的次数。
2. 销售员业绩管理程序主要用结构体数组实现,用结构体表示每项记录,包含数据为:编号、姓名、销售产品名、产品单价、销售数量、销售额。
其中销售额通过计算得到,计算公式:销售额=产品单价*销售数量设计各个函数,分别实现以下功能:(1)录入:完成业绩信息的输入,最好是追加方式;(2)删除:完成业绩信息的删除;(3)修改:允许对已经录入的数据重新进行编辑、修改;(4)显示:显示所有业绩信息(多者可分页显示) ,可以根据某种条件显示,如出销售额大小顺序;(5)查询:a) 输入姓名,显示该销售员的销售记录,并计算销售总额;c) 输入产品名,显示该产品的销售记录及总量;(6)统计: 统计所有销售员的销售总额,以图形显示比较结果,如下:Jack |**********Marry |*******************John |**************(7)退出程序。
设计菜单,通过选择菜单调用以上各函数。
要求:利用C语言编写上述程序,开发环境可采用Turbo C 2.0 或Visual C++ 6.0等。
二、算法设计1. 有两个字符串,各有10个字符,是编程完成如下功能:(1)分别找出两个字符串中最大的字符元素;(2)将两字符串对应位置元素逐个比较,并统计输出两个字符串对应元素大于、小于和等于的次数(第一题流程图)2. 销售员业绩管理程序主要用结构体数组实现,用结构体表示每项记录,包含数据为:编号、姓名、销售产品名、产品单价、销售数量、销售额。
个人帐簿管理系统目录摘要 (1)1绪论 (1)2系统分析 (1)2.1功能需求 (1)2.2数据需求 (1)2.3性能需求 (2)3总体设计 (2)3.1系统设计方案 (2)3.2功能模块设计 (2)4详细设计 (3)4.1录入数据模块 (3)4.2修改数据子模块 (4)4.3查询数据子模块 (5)4.4排序数据子模块 (6) (6)4.6删除数据子模块 (7)5调试与测试 (8)5.1调试 (8)5.2测试 (8)6结论 (9)结束语 (9)参考文献 (9)附录1-用户手册 (10)附录2-源程序 (13)摘要个人帐簿管理系统的开发是为了方便个人记录每月的全部收入及开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。
并进行查询和排序等。
主要实现以下功能:(1) 记录月份以及每月的食品消费,房租,子女教育费用,水电费,医疗费,储蓄等内容。
(2) 要求该系统能查看该数据并进行修改和查询等。
(3)并用冒泡法进行排序以及能进行内容的删除。
报告从系统分析,总体设计,详细设计,调试与测试方面进行描述和介绍。
关键词:个人帐簿管理系统;扩充;修改;删除。
1绪论当今社会是个劳逸结合的社会,计算机在人们的生活中越来越重要,个人账簿管理的开发给大众的生活平添了方便。
个人账簿管理系统是一个比较普遍的管理系统,它的存在方便个人记录每月的全部收入及开支情况。
根据课程设计任务书要求,个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。
进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。
另外要求建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充(追加),修改和删除;完成对每月的开支排序,以及完成系统查询功能。
可进行功能的适当扩充。
2系统分析2.1 功能需求个人帐簿管理系统要求记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等并能进行修改,查询,排序,删除等功能。
内蒙古科技大学本科生课程设计说明书题目:C语言课程设计——人员管理系统学生姓名:武飞学号:专业:计算机科学与技术班级:2013-3指导教师:王丽颖内蒙古科技大学课程设计任务书一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
人员管理系统现有一批人员的数椐,要求输入计算机并存放在内存中,然后增加若干个新人员的记录,并可输出人员清单,实现文件存盘和读入文件进行修改的功能。
人员的基本信息包括姓名,性别,年龄,身份证号和简历(80个字符以内)。
要求设计菜单来调用其各功能模块:新建文件、打开文件输入记录、输出记录查询记录(至少具有两种查询方式,例如以姓名查询和以身份证号查询)修改、插入和删除记录保存文件、退出三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天? 选择课程设计题目,分析课题的要求第二天? 编程第三天? 编程及调试第四天? 写课程设计报告第五天? 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查目录内蒙古科技大学课程设计任务书····················第一章需求分析··························1.1引言····························1.2任务概述··························1.3数据描述··························1.4功能需求..........................第二章概要设计. (4)2.1总体设计 (4)2.2数据类型设计(或数据结构设计) (4)2.3接口设计··························2.4运行界面设计........................第三章详细设计. (6)3.1输入模块设计 (6)3.2输出模块设计························3. 3查找模块设计························3.4保存及读取模块设计 (9)第四章测试分析 (11)4.1测试程序执行情况 (11)第五章用户手册(可选) (14)5.1使用说明 (14)5.2运行说明 (14)第六章课程设计总结 (15)附录:程序代码...........................参考文献.. (24)第一章需求分析1.1引言随着管理人数的增加,手动管理人员将会显得不方便。
这时就需要使用软件来实施人性化的管理。
1.2任务概述做一个程序对人员信息实现:新建文件、打开文件、输入记录、输出记录、查询记录、修改、插入和删除记录、保存文件、退出功能1.3数据描述采用结构体来储存人员信息。
人员信息包括姓名、性别、年龄、身份证号、个人简历。
姓名长度输入时不能超过10。
性别输入时只能输入时一个字符w/m。
身份证长度输入时不能超过20 。
个人简历长度输入时不能超过120。
1.4功能需求新建文件、打开文件输入记录、输出记录查询记录(至少具有两种查询方式,例如以姓名查询和以身份证号查询)修改、插入和删除记录保存文件、退出第二章概要设计2.1总体设计开始1.更新人员信2..身份证号查3.姓名查找4.修改信息5.插入信息6.删除信息7.输出信息8.保存信息9.读取文件0.退出2.2数据类型设计(或数据结构设计)typedef struct student{char name[M]; //姓名char sex; //性别int year; //年龄char num[20]; //身份证号char jian[120]; //个人简历}stu; //结构体储存2.3接口设计表2.1:函数列表2.4运行界面设计第三章 详细设计3.1 输入模块设计int read(stu st[]){int i=-1;system( "cls" );printf("\t\t* 1.更新成员信息 *\n");printf("\t\t***********************************\n");do{i++;printf("请输入姓名:\n");scanf("%s",&st[i].name);if(atoi(st[i].name)>=0){printf("请输入性别(w/m):scanf(" %c",&st[i].sex);printf("请输入年龄:\n");scanf("%d",&st[i].year);printf("请输入身份证号:\n");scanf("%s",&st[i].num);printf("请输入简历:\n");scanf("%s",&st[i].jian);printf("\n 编号%d 数据添加成功!\n",i+1);printf("输入姓名为负数结束输入!\n");printf("\n") ;}else break;}while(st[i].num>0);printf("\n--------------------------------------------------------------------\n");printf("数据更新成功!\n");system("pause"); //按任意键继续return i;}3.2输出模块设计void print(stu st[],int n){int i;system( "cls" ); //清屏printf("\n--------------------------------------------------------------------\n");printf("编号\t姓名\t性别\t年龄\t身份证号\t\t简介\n");for(i=0;i<n;i++){printf("%d\t%s\t%c\t%d\t%-24s%s\n",i+1,st[i].name,st[i].sex,st[i] .year,st[i].num,st[i].jian);}}3.3 查找模块设计void shenfenzheng(stu st[],int n){char x[20];int i;system( "cls" );printf("\t\t* 2.身份证号查找 *\n");printf("输入你要查询的身份证号:");scanf("%s",x);for(i=0;i<n;i++){if(strcmp(st[i].num,x)==0){printf("姓名\t 性别\t 年龄\t 身份证号\t\t 简介\n");printf("%s\t%c\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].year, st[i].num,st[i].jian);printf("\n--------------------------------------------------------------------\n");system("pause");return;}}printf("未找到!");printf("\n--------------------------------------------------------------------\n");system("pause");}void xingming(stu st[],int n) Array{char x[10];int i;system( "cls" );printf("\t\t***********************************\n");printf("\t\t* 3.姓名查找printf("输入你要查询的姓名:");scanf("%s",x);f or(i=0;i<n;i++){if(strcmp(st[i].name,x)==0){printf("姓名\t 性别\t 年龄\t 身份证号\t\t 简介\n");printf("%s\t %c\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian);printf("\n--------------------------------------------------------------------\n");printf("按键返回!");getchar(); /*按任意健*/getchar();return;}}printf("未找到!");printf("\n--------------------------------------------------------------------\n");system("pause");}3.4保存及读取模块设计{FILE *fp;N{printf("保存文件失败!\n");return;}fwrite(st,sizeof(stu),n,fp);printf("保存成功!\n");fclose(fp);system("pause");}int duqu(stu st[]){FILE *fp;int i;if((fp=fopen("ren.txt","r"))==NULL){printf("文件不存在!打开失败!\n");return 0;}Nfor(i=0;!feof(fp);i++){fread(&st[i],sizeof(stu),1,fp);}fclose(fp);printf("读取成功!\n");system("pause");return i-1;}第四章测试分析4.1测试程序执行情况第五章用户手册(可选)5.1使用说明运行程序会显示菜单根据菜单输入编号实现相应功能;1.更新人员信息2.身份证号查找3.姓名查找4.修改信息5.插入信息6.删除信息7.输出信息8.保存文件9.读取文件0.退出5.2运行说明只有退出程序时。