课程设计代码
㈠ c++课程设计源代码
c++课程设计 学生管理系统源代码
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
typedef struct stu
{
char name[20];
long int number;
int snum;
char sex[20];
char add[30] ;
char time[20];
char tel[20];
struct stu *next;
}stu,*student;
int init(student &s);
void insert(student &s);
void print(student &s);
int delete(student &s);
void find (student &s);
void findname(student &s);
void findnum(student &s);
void modifay(student &s);
void putfile(student &s);
void getfile(student &s);
void main()
{
student s;
init(s);
cout<<"欢迎使用学生管理系统."<<endl;
cout<<" "<<endl;
cout<<endl;
while(1)
{
int i;
mainint:
cout<<"请选择相关操作:"<<endl<<"1.建立学生资料文件."<<endl<<"2.浏览."<<endl<<"3.删除."<<endl;
cout<<"4.查询."<<endl<<"5.修改."<<endl<<"6.打开学生文件."<<endl<<"7.退出管理系统." <<endl<<"请选择:";
cin>>i;
if(i<0||i>7)
{
cout<<"输入了错误的数字,Again!"<<endl<<endl;
goto mainint;
}
switch(i)
{
case 1: insert(s);break;
case 2: print(s);
putfile(s);
break;
case 3: ldelete(s);break;
case 4: find(s);break;
case 5: modifay(s);
break;
case 6: getfile(s);break;
case 7: exit(0);
}
}
}
int init(student &s)
{
s=(student)malloc(sizeof(stu));
if (s)
{
s->next=NULL;
return 0;
}
else return -1;
}
void insert(student &s) //insert
{
cout<<endl;
student p,q;
p=(student)malloc(sizeof(stu));
cout<<"请输入学生信息:"<<endl;
cout<<"姓名:";
cin>>p->name;
cout<<endl;
cout<<"学号:";
cin>>p->number;
cout<<endl;
cout<<"性别:";
cin>>p->sex;
cout<<endl;
cout<<"家庭住址:" ;
cin>>p->add;
cout<<endl;
cout<<"出生年月:" ;
cin>>p->time;
cout<<endl;
cout<<"宿舍号:";
cin>>p->snum;
cout<<endl;
cout<<"宿舍号码:";
cin>>p->tel;
q=s;
while(!(q->next==NULL)&&(q->next->number<p->number))
q=q->next;
p->next=q->next;
q->next=p;
//if()p->next=NULL;
//free(p);
}
int ldelete(student &s) //delete
{
cout<<endl;
student p,a;
p=s ;
cout<<"请输入删除的学号:";
long int number;
cin>>number;
while(p)
{ if (p->number==number)
{
a->next=p->next;
free(p); return(0);}
else
{ a=p;
p=p->next;} }
cout<<"没有找到你要删除的选项!"<<endl<<endl;return(-1);
}
void print(student &s)
{
int a;
a=0;
student p;
p=s->next;
cout<<"姓名 "<<"学号 " <<"性别 "<<"家庭住址 "<<"出生年月 "<<"宿舍号"<<"宿舍号码"<<endl;
while(p)
{
a++;
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
p=p->next;
}
cout<<endl;
if (a==0)
cout<<"还没有学生信息!"<<endl<<endl ;
}
void find (student &s) //find
{
findl:
cout<<"请选择查找方法:"<<endl<<"1.按姓名查找."<<endl<<"2.按学号查找."<<endl;
cout<<"请选择:";
int k;
cin>>k;
if(k<0||k>3)
{
cout<<"输了入错误数字,Again!"<<endl<<endl;
goto findl;
}
switch(k)
{
case 1: findname(s);break;
case 2: findnum(s);break;
}
}
void findname(student &s) //find by name
{
student p;
p=s->next;
cout<<"请输入姓名:";
char name[20];
int j;
j=0;
cin>>name;
cout<<"你要查找的资料是:"<<endl;
cout<<"姓名 "<<"学号 " <<"性别 "<<"家庭住址 "<<"出生日期 "<<"宿舍号 "<<"宿舍号码"<<endl;
while(p)
{
if (strcmp(p->name,name)==0)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
j++;
}
p=p->next;
}
cout<<endl;
if(j==0)
cout<<"对不起,没找到你要的信息!"<<endl<<endl ;
}
void findnum(student &s) //find by number
{
student p;
p=s->next;
cout<<"请输入学号:";
long int number;
int j;
j=0;
cin>>number;
cout<<"你要查找的资料是:"<<endl;
cout<<"姓名 "<<"学号 "<<"性别 "<<"家庭住址 "<<"出生日期 "<<"宿舍号 "<<"宿舍电话"<<endl;
while(p)
{
if (p->number==number)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
j++;
}
p=p->next;
}
cout<<endl;
if(j==0)
cout<<"对不起,没找到你要的信息"<<endl<<endl ;
}
void modifay(student &s) //modifay
{
student q,p,l,m;
int j;
j=0;
q=s->next;
l=s;
m=s;
cout<<"请输入要修改的学号:" ;
long int num;
cin>>num;
cout<<"姓名 "<<"学号 "<<"性别 "<<"家庭住址 "<<"入学时间 "<<"宿舍号 "<<"电话号码"<<endl;
while(q)
{
if (q->number==num)
{
cout<<"你要修改的信息是:"<<endl;
cout<<q->name<<" "<<q->number<<" "<<q->sex<<" "<<q->add<<" "<<q->time<<" "<<q->snum<<" "<<q->tel<<" "<<endl;
j++;
p=(student)malloc(sizeof(stu));
cout<<"请输入新的学生信息:"<<endl;
cout<<"姓名:";
cin>>p->name;
cout<<endl;
cout<<"学号:";
cin>>p->number;
cout<<endl;
cout<<"年龄:";
cin>>p->age;
cout<<endl;
cout<<"性别:";
cin>>p->sex;
cout<<endl;
cout<<"家庭住址:" ;
cin>>p->add;
cout<<endl;
cout<<"入学时间:" ;
cin>>p->time;
cout<<endl;
cout<<"电话号码:";
cin>>p->tel;
l->next=q->next;
free(q);
goto tt;
}
else
{
l=q;
q=q->next;
}
}
cout<<endl;
if (j==0) cout<<"没找到你要的数据!"<<endl<<endl ;
tt:
while(!(m->next==NULL)&&(m->next->number<p->number))
m=m->next;
p->next=m->next;
m->next=p;
}
void putfile(student &s)
{
student p;
p=s->next;
FILE *fp;
if((fp=fopen("information.txt","w"))==NULL)
{
cout<<"打不开文件"<<endl<<endl;
exit(0);
}
while(p)
{
if(fwrite(p,sizeof(struct stu),1,fp)!=1 )
{
cout<<"文件写入错误"<<endl<<endl;
return;
}
p=p->next;
}
fclose(fp) ;
}
void getfile(student &s)
{
student p,q;
q=s;
FILE *fp1 ;
if((fp1=fopen("information.txt","r"))==NULL)
{
cout<<"打不开文件"<<endl;
exit(0);
}
cout<<"姓名 "<<"学号 "<<"性别 "<<"家庭住址 "<<"入学时间 "<<"宿舍号 "<<"电话号码"<<endl;
p=(student)malloc(sizeof(stu));
while(fread(p,sizeof(struct stu),1,fp1)!=0)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->age<<" "<<p->tel<<endl;
while(!(q->next==NULL)&&(q->next->number<p->number))
q=q->next;
p->next=q->next;
q->next=p;
p=(student)malloc(sizeof(stu));
}
fclose(fp1);
cout<<endl;
}
㈡ 跪求数据结构课程设计(C语言版)代码,感激不尽
在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。[1]
定义与声明
结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。[1]
struct tag {
member-list
} variable-list ;
在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。以下为示例:[1]
//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//同时又声明了结构体变量s1
//这个结构体并没有标明其标签
struct {
int a;
char b;
double c;
} s1;
//同上声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//结构体的标签被命名为SIMPLE,没有声明变量
struct SIMPLE{
int a;
char b;
double c;
};
//用SIMPLE标签的结构体,另外声明了变量t1、t2、t3
struct SIMPLE t1, t2[20], *t3;
//也可以用typedef创建新类型
typedef struct{
int a;
char b;
double c;
} Simple2;
//现在可以用Simple2作为类型声明新的结构体变量
Simple2 u1, u2[20], *u3;
在上面的声明中,第一个和第二声明被编译器当作两个完全不同的类型,即使他们的成员列表是一样的,如果令t3=&s1,则是非法的。[1]
结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表和树等。[1]
//此结构体的声明包含了其他的结构体
struct COMPLEX{
char string[100];
struct SIMPLE a;
};
//此结构体的声明包含了指向自己类型的指针
struct NODE{
char string[100];
struct NODE *next_node;
};
如果两个结构体互相包含,则需要对其中一个结构体进行不完整声明,如下所示:[1]
struct B;
//对结构体B进行不完整声明
//结构体A中包含指向结构体B的指针
struct A{
struct B *partner;
//other members;
};
//结构体B中包含指向结构体A的指针,在A声明完后,B也随之进行声明
struct B{
struct A *partner;
//other members;};
结构体作用
结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。[1]
在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。[1]
结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。[1]
结构体的大小与内存对齐
结构体的大小不是结构体元素单纯相加就行的,因为我们主流的计算机使用的都是32bit字长的CPU,对这类型的CPU取4个字节的数要比取一个字节要高效,也更方便。所以在结构体中每个成员的首地址都是4的整数倍的话,取数据元素时就会相对更高效,这就是内存对齐的由来。每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。[1]
规则:
1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。[1]
2、结构(或联合)的整体对齐规则:在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对齐将按照#pragma pack指定的数值和结构(或联合)最大数据成员长度中,比较小的那个进行。[1]
3、结合1、2可推断:当#pragma pack的n值等于或超过所有数据成员长度的时候,这个n值的大小将不产生任何效果。
㈢ 求c++课程设计的源代码
题目本身不难;题目的陈述,这个文本本身难以卒读!
很难想象文本出自,华南理工大学教师之手;抄袭+生吞活剥的英翻中??
㈣ 请问一下,这是一个一个C语言的课程设计的总代码,求大神给一张大致的流程图。小弟谢了
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char num[10][6] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
int parse(char * input)//就3中操作数 要么是+号,要么是=号 要么是要运算的数据【英文标示的】
{
int i = 0; int match = 0;
for (i = 0; i < 10; i++)
{
match = strcmp(input, num[i]);//比较用户输入和 num数组中的值 比如 three 是第3个元素, 输入three 刚好能返回3
if (match == 0) return i;
}
return -1;
}//+,=返回-1 数据返回对应的十进制数
struct TStack //栈的结构体定义
{
int data;
struct TStack * next;
};
struct TStack * root = 0; //全局变量,栈的根节点
void stack_push(int data)//元素入栈
{
struct TStack * x = (struct TStack *)malloc(sizeof(struct TStack)); //实例化一个节点
x->data = data; //给节点赋值
x->next = root; //新节点指向根
root = x; //根从新赋值为根 保证跟都指向最后一个元素
}
int stack_pop(int * data) //弹出栈顶元素 并用data返回 ,栈非空返回1 否则返回0
{
struct TStack * x = root; //x=跟节点
if (!x) return 0;//如果栈为空就返回0
root = x->next ; //出栈后 栈顶指针下移
*data = x->data ;//用data返回栈顶元素的值
free(x);//释放栈顶元素的内存空间
return 1;//返回操作成功
}
int SumFromStack(void)//把栈内所有的英文数据换成一个十进制数据。
{
int x = 0, y = 0, z = 0, sum = 0;
int tens[] = {1, 10, 100, 1000, 10000};
do
{
x = stack_pop(&y);// y得到栈顶元素,x为返回状态
if (x == 0) break;//栈中元素为空,就退出
sum += y * tens[z++]; //sum 用来得到一个操作数 例如 three five =35
}while(z < 5); /*最大计算到五位数*/
return sum;
}
void print(int C) //给定一个数值 返回对应的英文形式 如: 256-->two five sxi
{
char str[256]=""; size_t i = 0;
sprintf(str, "%d", C);//c的%d形式存到str中 比如 C=258 那么 str[0]='2',str[1]='5',str[2]='8'
for (i = 0; i < strlen(str); i++)
printf("%s ", num[str[i] - '0']);//根据字符与‘0’的距离 打印出数字对应的num中的字符串。
printf("\n");
}
int main(void)
{
char str[256] = ""; int A = 0, B = 0, x = 0;//A,B用来记录2个要加的数的十进制 x 用来记录输入的是数据还是+,=号
do
{
A = 0; B = 0; root = 0; x = 0;
for(;;)
{
str[0] = 0;
scanf("%s", str);//获取字符串的输入
x = parse(str);//根据输入的字符串转换成对应进制数
if (x < 0 )//parse 返回-1 有可能是+号,有可能是=号
{
if (str[0] == '+') A = SumFromStack();//遇到+号,那么肯定+左边的数据全入栈,可以用A得到一个翻译成十进制的运算数
if (str[0] == '=')
{
B = SumFromStack();// 遇到=号那么肯定第二个家数也全部入栈了,B得到一个翻译成10进制的元算数据
break;
}
}
else //否则是运算数据那么就入栈
{
stack_push(x);
}
}
if (A || B) print(A + B);//如果A,B不同时为0,那么用print函数打印A+B对应的 特殊编码字符 如234->tow three four
}while(A || B);//一旦A,B同时为0 就退出
system("pause");
return 0;
}
流程图中写出了详细的函数调用和程序思路。
楼主如果不给出程序的话,我自己动手写还方便点。人家的代码看着蛋疼。好在他的思路还是清晰好理解的。 流程图附下,楼主赶紧去准备课程设计吧。
【楼主好好珍惜啊,注释也是一句一句写的,流程图一个一个在visio里面话的,看着你是真的想学东西,所以我弄的很详细。不是为了你的分数来的,而是我对程序的 兴趣】
㈤ JAVA课程设计源代码
关键是你给的分太少了。。 亲 。。
课程设计 多浩大的一个工程了 。。。 就给5分。。
这样一个课设最少得做2天吧。。。
㈥ 嵌入式Linux课程设计源代码
Linux课程体系了解一下:
Linux云计算网络管理实战
Linux系统管理及服务配置实战
Linux Shell自动化运维编程实战
Linux云计算网络管理实战
大型网站高并发架构及自动化运维项目
网站安全渗透测试及性能调优项目实战
公有云运维技术项目实战
企业私有云架构及运维实战
Python自动化运维开发基础
Python自动化运维开发项目实战
㈦ java课程设计源代码(急!!!!)
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
public class game21 extends JFrame {
private JLabel label_2;
private int number;
private int sum;
final JLabel label = new JLabel();
final JLabel label_1 = new JLabel();
public static void main(String[] args) {
new game21();
}
public game21() {
super("21点?!");
getContentPane().setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent arg0) {
onClick();
}
});
button.setText("出牌");
button.setBounds(170, 350, 106, 28);
getContentPane().add(button);
label.setBorder(new LineBorder(Color.black, 1, false));
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setFont(new Font("", Font.BOLD, 26));
label.setText("背面");
label.setBounds(158, 81, 137, 153);
getContentPane().add(label);
label_1.setText("你已经拥有的牌:");
label_1.setBounds(109, 22, 270, 45);
getContentPane().add(label_1);
this.setBounds(200, 300, 501, 528);
this.setVisible(true);
getContentPane().add(getLabel_2());
}
public int randNumber() {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
return (int) (Math.random() * 10 + 1);
}
public void onClick() {
number = this.randNumber();
this.sum += number;
label.setText("" + number);
String strTemp = this.label_1.getText();
strTemp += "" + number + " ";
label_1.setText(strTemp);
String temp = "合计:" + sum;
label_2.setText(temp);
isWin();
}
public void isWin() {
if (sum > 21) {
JOptionPane.showMessageDialog(this, "你输了");
clear();
return;
} else if (sum == 21) {
JOptionPane.showMessageDialog(this, "你赢了");
clear();
return;
} else {
int i = JOptionPane.showOptionDialog(this, "是否继续?", "提示",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE, null, null, null);
if (i == JOptionPane.OK_OPTION) {
onClick();
} else
return;
}
}
private void clear() {
label_2.setText("合计:");
sum = 0;
number = 0;
label_1.setText("你已经拥有的牌:");
}
/**
* @return
*/
protected JLabel getLabel_2() {
if (label_2 == null) {
label_2 = new JLabel();
label_2.setText("合计:");
label_2.setBounds(313, 35, 66, 18);
}
return label_2;
}
}
真好无聊中。。
㈧ 求 c++课程设计源代码
这些都有包括课程设计,程序源码+设计报告。
第四章详细设计
#include "fstream"
#include "iostream"
#include "cstring"
using namespace std;
/************************学生信息定义**********************************/
typedef struct Stu
{ char name[8];
char num[6];
char room[5];
}Stu;
typedef struct{
Stu *elem;
int length;
}Snode;
/*****************************学生信息处理及用户交互****************/
int Init_Stu(Snode &st); //创建学生信息
int Sort_Stu(Snode &st,int low,int high); //快速排序算法
int Search_Stu(Snode st, char sn[]); //学生姓名二分查找并输出
void s(Stu &s1,Stu s2); //结构体s2赋给s1
int display(Snode st); //学生数据输出
void SavePass(); //密码问题
int quanxian(); //管理员登陆
/*******************************主函数程序****************************/
int main()
{ int suc=0;
char ch1,choice,look[10];
Snode stu;
while(suc==0)
{ suc=quanxian();
if(suc==0)
{ cerr<<"您输入的用户信息不存在,请重新输入:"<<endl<<"退出输入'y'或 'Y',否则'n'或'N':"<<endl<<endl;
cin>>ch1;
if(ch1=='y'||ch1=='Y')
return 0;
}
cout<<endl<<endl<<endl<<endl;
}
cout<<"\t\t****\n\n\t\t\t 欢迎进入学生宿舍管理查询系统 \n\n\t\t****\n\n";
cout<<"\t\t\t***************主菜单***************\n\n";
cout<<"\t\t\t\t1> 学生信息录入\n\n";
㈨ 微机原理课程设计代码
CODE SEGMENT
ASSUME CS:CODE
START: PUSH CS
POP DS
MOV CX,8
PUSH CX
@0:
MOV AL,0
MOV CX,10
@1:
PUSH AX
MOV AX,18
CALL DELAY_PROC
POP AX
MOV DL,AL
MOV AH,2
OR DL,30H
INT 21H
INC AL
LOOP @1
POP CX
LOOP @0
MOV AH,4CH
INT 21H
DELAY_PROC PROC NEAR ;延迟子程式, 延迟 ax/18秒
PUSH ES
PUSH DX
MOV DX,40H
MOV ES,DX
MOV DX,ES:[006CH] ;取系统1/18秒计数
ADD DX,AX ; 延时 x/18
DELAY10:
CMP ES:[006CH],DX ;时限到了?
JBE DELAY10 ;没
POP DX
POP ES
RET
DELAY_PROC ENDP
CODE ENDS
END START
㈩ 求C语言课程设计的源代码
课程设计报告内容 报告应包括以下内容: 摘要(300~400字) 目录 1. 概述 2. 课程设计任务及要求 2.1 设计任务 2.2 设计要求 3. 理论设计 3.1方案论证 3.2 系统设计 3.2.1 结构框图及说明 3.2.2 系统原理图及工作原理 3.3 单元电路设计 3.3.1单元电路工作原理